openai DALL-E 3 从文本描述生成图像原理通俗解释

序言

在数字时代,图像生成技术正日益成为人工智能领域的热点。

本讨论将重点聚焦于两个备受瞩目的模型:DALL-E和其他主流AI绘图方法。

我们将探讨它们的优势、局限性以及未来的发展方向。通过比较分析,我们期望能够更全面地了解这些技术,为未来的研究和应用提供启示。

view

Q: 介绍一下 dall-e

OpenAI的DALL-E是一个基于深度学习的生成模型,专门用于从文本描述生成图像。

它的名字灵感来源于艺术家Salvador Dali和瓦尔特·艾利斯(Walt Disney)的姓氏组合。

DALL-E的设计灵感来自于OpenAI之前的图像生成模型GPT(Generative Pre-trained Transformer)和CLIP(Contrastive Language-Image Pre-training),它融合了这两种模型的思想。

DALL-E的核心思想是使用Transformer架构来处理输入文本,并通过多层次的卷积神经网络来生成与文本描述相关的图像。

与传统的图像生成模型不同,DALL-E并不是简单地将文本转换成像素级别的图像,而是根据文本的语义和结构来生成视觉上相关的图像。

这使得DALL-E能够创造出与现实世界完全不同但符合描述的图像,展现了其在创造性图像生成方面的潜力。

DALL-E的训练过程是基于大规模的图像-文本对数据集进行的,模型通过自监督学习来学习图像和文本之间的对应关系。

在训练过程中,DALL-E被要求预测被遮盖的部分或与输入文本不一致的部分,从而促使它学习生成与输入文本匹配的图像。

DALL-E的应用潜力非常广泛,包括但不限于:

  1. 创意图像生成:DALL-E可以根据文本描述生成创意图像,例如“一只马由拖拉机的形状组成”。

  2. 图像编辑和合成:通过修改输入文本,可以实现图像的编辑和合成,例如“在这个房子的屋顶上加一个草坪”。

  3. 视觉推理和理解:DALL-E可以用于视觉推理任务,例如“给出一段文本描述,推断可能的场景或物体”。

尽管DALL-E展现出了巨大的潜力,但它仍然存在一些挑战,例如在生成图像时保持视觉质量和语义一致性,以及处理复杂的文本输入。

随着深度学习和自然语言处理领域的不断发展,我们可以期待DALL-E在未来会有更多的进步和应用。

Q: 通俗易懂的介绍一下 dall-e 的实现原理

DALL-E的实现原理可以简单概括为以下几个步骤:

  1. 输入文本编码:首先,DALL-E接收到用户提供的文本描述,比如“一只兔子坐在大理石上的薄荷糖上”。这段描述会经过编码器,将文本转换为计算机可以理解的数字形式,称为向量。

  2. 图像生成:接下来,DALL-E的生成器会根据编码后的文本向量生成图像。生成器是一个经过训练的神经网络,它会根据输入的文本描述来“想象”出对应的图像。这个过程类似于一位艺术家根据描述画出一幅图画,但是这里是由神经网络完成的。

  3. 优化和训练:在训练过程中,DALL-E会通过大量的图像-文本对数据进行训练。它会不断地调整生成器的参数,使得生成的图像尽可能地与输入的文本描述相匹配。这个过程通常需要大量的计算资源和时间,以确保生成的图像质量和语义一致性。

  4. 生成图像输出:最后,DALL-E会将生成的图像输出给用户。用户可以根据需要提供不同的文本描述,DALL-E会根据新的描述重新生成图像。

总的来说,DALL-E的实现原理就是通过将文本描述编码成向量,然后利用生成器网络生成对应的图像。

通过不断地优化和训练,DALL-E能够生成与文本描述相符合的图像,展现出强大的创造力和想象力。

Q: 如何根据编码后的文本向量生成图像?

生成图像的过程通常涉及将编码后的文本向量输入到一个生成器模型中。这个生成器模型通常是一个深度神经网络,常见的是基于变分自编码器(VAE)或生成对抗网络(GAN)的架构。

  1. 变分自编码器(VAE)

    • 在VAE中,编码后的文本向量被视为潜在空间中的点,表示图像的潜在特征。
    • 这个潜在点通过解码器(也就是生成器)网络,被映射到图像空间,生成对应的图像。
    • 解码器网络通常是一个反卷积神经网络,通过多层次的反卷积操作逐渐将潜在特征转换为图像。
  2. 生成对抗网络(GAN)

    • 在GAN中,生成器网络接收编码后的文本向量作为输入,生成一张图像。
    • 生成器的目标是生成逼真的图像,使得判别器无法将生成的图像与真实图像区分开来。
    • 判别器网络则负责区分生成的图像和真实的图像,它的目标是尽可能准确地区分两者。

不管是VAE还是GAN,生成器网络都需要经过训练,以学习如何从编码后的文本向量生成对应的图像。

在训练过程中,生成器会不断地调整参数,使得生成的图像尽可能地与真实图像相似,并且符合输入的文本描述。通常需要使用大量的图像-文本对数据进行训练,以获得更好的生成效果。

总的来说,生成图像的过程就是将编码后的文本向量输入到生成器网络中,通过网络的映射和变换,生成对应的图像。

Q: dall-e 是如何根据文本向量生成图像的?

DALL-E(和类似的模型,比如GAN和VAE)通常使用生成对抗网络(GAN)的思想来生成图像。

下面是DALL-E如何根据文本向量生成图像的简要步骤:

  1. 文本编码:首先,输入的文本被编码成一个固定长度的向量。这个向量捕捉了文本描述的语义和内容,将其转化为了机器可以理解的数值形式。在DALL-E中,这通常是通过预训练的Transformer模型(如GPT)来实现的。

  2. 生成器网络:DALL-E有一个生成器网络,它接收文本向量作为输入。这个生成器网络的任务是将输入的文本向量映射到图像空间,并生成与文本描述相对应的图像。这个网络通常包含了多层神经网络,可以是卷积神经网络(CNN)、变分自编码器(VAE)或其他类型的网络结构。

  3. 生成图像:生成器网络根据文本向量生成图像的过程涉及将文本向量转化为一个中间表示,然后通过多个层次的神经网络变换逐渐生成图像。在每个阶段,网络都会增加细节和复杂度,直到生成完整的图像。

  4. 训练:在训练过程中,DALL-E的生成器网络通过反向传播算法和对抗训练策略来学习如何生成逼真的图像。这意味着生成器试图欺骗一个判别器网络,而判别器网络则试图区分生成的图像和真实的图像。通过这种对抗的训练过程,生成器不断地改进自己的能力,生成更加逼真的图像。

  5. 输出图像:最终,生成器网络生成的图像被输出给用户。这些图像通常与输入的文本描述相匹配,反映了模型对文本语义的理解和图像生成的能力。

总之,DALL-E通过一个生成器网络,将输入的文本描述映射到图像空间,并生成与描述相符的图像。这个过程涉及将文本向量转化为图像的中间表示,并通过神经网络变换逐渐生成图像,同时通过对抗训练来提高生成器的性能。

Q: 介绍一下 反向传播算法和对抗训练策略,以及为什么需要?

反向传播算法(Backpropagation)是深度学习中用于训练神经网络的一种优化算法。它通过计算损失函数对网络参数的梯度,然后利用梯度下降等优化算法来更新网络参数,从而使得网络能够逐渐拟合训练数据,实现对任务的学习。

反向传播算法的步骤如下:

  1. 前向传播:从输入数据开始,通过神经网络的前向传播过程,计算输出结果。
  2. 计算损失:将网络的输出结果与真实标签进行比较,计算损失函数的值。
  3. 反向传播:根据损失函数,计算网络参数(权重和偏置)对损失函数的梯度。
  4. 参数更新:根据梯度下降等优化算法,更新网络参数,减小损失函数的值。
  5. 重复步骤1-4,直到达到停止条件(如达到最大迭代次数或损失函数收敛)。

反向传播算法是深度学习中非常重要的一部分,它使得神经网络能够通过大量的数据自动学习特征,并根据任务调整网络参数,从而实现对各种复杂任务的高效学习。

对抗训练(Adversarial Training)是一种通过引入对抗性样本来提高模型鲁棒性的训练策略。在对抗训练中,模型在训练过程中不仅需要优化损失函数来最小化预测误差,还需要对抗性地处理针对模型的攻击。这样,模型不仅能够对正常样本进行准确预测,还能够在面对对抗性样本时保持稳健性。

对抗训练的基本思想是引入对抗性扰动,使得模型在训练中对这种扰动具有鲁棒性。对抗性样本通常是通过对原始样本进行微小的扰动来生成的,这种扰动虽然对人类视觉几乎无影响,但能够导致模型产生错误的预测结果。

对抗训练的目的是使得模型能够在真实世界的复杂环境中保持稳健性,不易受到攻击或噪声的干扰。

在许多应用中,对抗训练已经被证明可以显著提高模型的性能和鲁棒性,特别是在安全相关的领域,如图像识别、语音识别和自然语言处理等。

Q: dall-e 又是如何保证绘制的图像存在一定的逻辑呢?

DALL-E 在生成图像时,尽管它可以生成非常奇特的图像,但也倾向于生成一些与输入描述逻辑相关的图像。这种逻辑性的保证主要来自于以下几个方面:

  1. 训练数据的语义一致性:DALL-E是在大规模的图像-文本对数据集上进行训练的,这些数据集往往是经过筛选和整理的,保证了图像和文本之间的语义一致性。在训练过程中,模型学习到了图像和文本之间的对应关系,从而可以在生成图像时保持一定的逻辑。

  2. 图像-文本匹配:DALL-E是基于文本描述生成图像的,它会尽量保持生成的图像与输入描述之间的匹配程度。在训练时,模型被要求根据文本描述生成与之匹配的图像,从而促使模型学习到生成与输入描述逻辑相关的图像。

  3. 语义空间的连续性:DALL-E的潜在空间(latent space)是连续的,并且具有一定的语义结构。这意味着在潜在空间中,相似的文本描述对应的图像也会在空间中彼此接近。因此,如果输入的文本描述在语义上是连续的,那么生成的图像也会在一定程度上保持连续和逻辑上的一致性。

  4. 生成器网络的限制:DALL-E的生成器网络是在训练数据集上学习到的,并且受到网络结构和参数的限制。这使得生成的图像在一定程度上受到了训练数据的约束,从而保证了生成的图像具有一定的逻辑性和合理性。

尽管DALL-E可以生成非常奇特和想象力丰富的图像,但在许多情况下,它仍然会尽量保持与输入描述相关的逻辑和语义一致性。这使得DALL-E在生成图像时不仅具有创造性和想象力,同时也能够保持一定的合理性和逻辑性。

Q: 通俗点的潜在空间的解释?

想象你有一张彩色图片,它由成千上万个像素点组成。每个像素点都有自己的颜色值,而且这些颜色值组合在一起就构成了这张图片。

潜在空间就像是这张图片的一个简化版。它不是直接表示每个像素点的颜色值,而是表示了图片的一些重要特征,比如图片中的主要物体、背景、纹理等等。

你可以把潜在空间想象成一个更简洁的描述,它捕捉了图片中最重要的信息,但没有具体到每个像素点的细节。

这个潜在空间可以用来做很多事情,比如生成新的图片,修改图片的特征,甚至是进行图像检索。因为它是对图片的高维表示进行了压缩和提取,所以更容易处理和分析。

Q: 潜在空间(latent space)是什么?详细介绍一下

潜在空间(Latent Space)是指在机器学习和深度学习中,数据经过编码或者降维之后所处的抽象空间。

这个概念通常用来描述数据的隐藏特征或者表示,它是通过对原始数据进行转换而得到的,可以更好地表达数据的结构和特征。

下面是关于潜在空间的详细介绍:

  1. 数据表示与潜在空间

    • 在机器学习中,原始数据通常是高维的,而潜在空间是一个低维的抽象空间。将原始数据映射到潜在空间中,可以帮助我们发现数据中的隐藏特征和结构。
    • 潜在空间的维度通常比原始数据的维度要低,这意味着潜在空间中的表示更加紧凑,更容易进行分析和理解。
  2. 自编码器与潜在空间

    • 自编码器(Autoencoder)是一种常用的方法,用来学习数据的潜在表示。自编码器包含一个编码器网络和一个解码器网络,它们共同工作,将原始数据映射到潜在空间,然后再从潜在空间重构出原始数据。
    • 编码器网络将原始数据压缩成潜在空间中的表示,解码器网络则将潜在表示解码成原始数据。潜在空间就是编码器中隐藏层的输出。
  3. 潜在空间的应用

    • 潜在空间可以用来进行数据的生成、重构、插值等操作。通过在潜在空间中进行插值,可以生成具有连续变化的新数据样本。
    • 在图像生成领域,潜在空间可以被用来生成逼真的图像,例如生成对抗网络(GAN)中的潜在空间可以用来生成各种各样的图像。
  4. 潜在空间的特性

    • 潜在空间的结构通常是非线性的,这意味着潜在空间中的点之间的距离可能与原始数据空间中的距离并不相等。
    • 潜在空间的特征通常是可解释的,这意味着我们可以通过分析潜在空间中的点来理解数据的结构和特征。

总的来说,潜在空间是对原始数据进行编码或者降维之后所得到的抽象空间,它可以帮助我们发现数据的隐藏特征和结构,从而实现对数据的分析、生成和理解。

Q: 还是不理解文本向量怎么转换为一张图片,更加通俗的解释一下

理解文本向量如何转换为一张图片可以通过以下简单的类比来理解:

想象一张黑白的彩色填色页(Coloring Page),每一页有很多小格子。现在,我们要根据一段文字描述来填充这张填色页。

  1. 文本向量是描述:我们有一段文字描述,比如“一只红色的苹果在桌子上”。这段描述被转换成了一个数值向量,就像我们把这段文字描述编码成了一串数字。

  2. 生成器是填色工具:我们有一个神奇的填色工具,它能够根据这个数值向量来填充填色页。这个填色工具就是生成器网络,它接收文本向量作为输入,然后输出一张彩色的填色页。

  3. 生成的图片:生成器根据文本向量,按照描述中的信息,开始在填色页上进行填色。对于“一只红色的苹果在桌子上”的描述,它可能会在填色页上绘制一只红色的苹果和一张桌子。通过不断地绘制和调整,最终生成一张与描述相符的彩色图片。

在这个类比中,文本向量就像是一份指示书,告诉填色工具应该如何在填色页上进行填色。生成器网络负责根据这份指示书生成最终的彩色图片。

这样,我们就把文本描述转换成了一张图片,完成了从文字到图像的转换过程。

Q: 详细介绍一下 卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于处理具有网格结构数据(如图像、视频、音频等)的深度学习模型。

CNN的设计灵感来源于生物学中对动物视觉皮层的研究,尤其是皮层中的神经元对于视觉刺激的响应方式。

CNN的核心是卷积层(Convolutional Layer),池化层(Pooling Layer)和全连接层(Fully Connected Layer)。

  1. 卷积层(Convolutional Layer)

    • 卷积层是CNN的核心组成部分。它通过对输入数据(如图像)进行滤波操作,从而提取出不同的特征。
    • 每个卷积层包含多个滤波器(也称为卷积核),每个滤波器对输入数据进行卷积操作,产生一个特征图(Feature Map)。
    • 卷积操作是通过滑动滤波器在输入数据上进行局部乘加运算来实现的,这可以有效地捕获输入数据的局部特征。
  2. 池化层(Pooling Layer)

    • 池化层通常紧跟在卷积层之后。它的作用是对特征图进行下采样,减少特征图的大小和参数数量,从而降低计算复杂度和内存消耗。
    • 最常见的池化操作是最大池化(Max Pooling),它在特定区域内选择最大的特征值作为池化后的值。
  3. 全连接层(Fully Connected Layer)

    • 在CNN的最后几层通常是全连接层。全连接层将前面卷积和池化层提取的特征进行展开,并通过全连接神经网络进行分类或回归等任务。
    • 全连接层中的神经元与前一层中的所有神经元都有连接,因此称为“全连接”。

CNN的训练通常涉及到前向传播和反向传播两个步骤。在前向传播中,输入数据通过一系列卷积、池化和全连接层,最终得到输出结果。在反向传播中,根据输出结果和标签之间的差异,通过梯度下降等优化算法来更新网络参数,从而使网络能够更好地拟合训练数据。

CNN在图像处理领域取得了巨大成功,广泛应用于图像分类、目标检测、语义分割等任务中。

其优点包括对于图像的平移、尺度和部分变换的不变性,以及在处理大规模数据时的高效性。

Q: Ascii 图绘制一下 CNN 网络

这里我们以一个简单的卷积神经网络为例,包含输入层、卷积层、池化层和全连接层。

Input (Image)
      |
      V
   Convolutional Layer 1
      |
      V
   Pooling Layer 1
      |
      V
   Convolutional Layer 2
      |
      V
   Pooling Layer 2
      |
      V
   Fully Connected Layer
      |
      V
    Output (Predictions)

这是一个简化的示意图,实际上,CNN 可能会包含更多层次和复杂的结构。

每个卷积层后面通常会跟随一个激活函数,比如 ReLU,而全连接层通常会连接一个或多个隐藏层,最后是输出层,它决定了网络的输出。

这个网络是用来对图像进行分类的,输入图像经过一系列的卷积和池化操作后,最终通过全连接层输出预测结果。

Q: 详细介绍一下 变分自编码器(VAE)

变分自编码器(Variational Autoencoder,VAE)是一种生成式模型,通常用于学习数据的潜在表示和生成新的数据。

它是由自编码器(Autoencoder)和概率图模型的思想结合而成的。

下面是变分自编码器的详细介绍:

  1. 自编码器(Autoencoder)

    • 自编码器是一种无监督学习的神经网络模型,由编码器(Encoder)和解码器(Decoder)两部分组成。
    • 编码器将输入数据映射到潜在空间中的低维表示,而解码器则将潜在表示映射回原始数据空间,重构原始输入。
    • 自编码器的目标是最小化输入数据与重构数据之间的差异,从而学习数据的有效表示。
  2. 变分自编码器(Variational Autoencoder,VAE)

    • VAE在自编码器的基础上引入了概率分布的概念,将编码器学习到的潜在表示视为概率分布的参数。
    • 在VAE中,编码器不仅学习如何将输入数据映射到潜在空间中的点,还学习如何将输入数据映射到潜在空间中的概率分布。
    • VAE的目标是最大化数据的边缘对数似然,即最大化输入数据在潜在空间中的概率。为了实现这一目标,VAE使用了变分推断和生成模型的技术。
  3. 变分推断(Variational Inference)

    • VAE使用变分推断来近似后验分布,即给定观察数据情况下的潜在表示的条件概率分布。
    • 变分推断的目标是找到一个潜在表示的近似后验分布,使其与真实后验分布尽可能接近。
  4. 生成模型(Generative Model)

    • VAE同时也是一个生成模型,它可以从潜在空间中的随机样本生成新的数据样本。
    • 通过从编码器学习到的概率分布中采样一个潜在表示,然后将其解码成数据空间中的样本,VAE可以生成具有多样性的新数据。

总的来说,变分自编码器(VAE)是一种结合了自编码器和概率图模型的生成模型。

它通过学习数据的潜在表示和概率分布,实现了对数据的有效建模和生成。

VAE在生成图像、语音、文本等领域都有广泛的应用,并且在生成多样性和可解释性方面具有很大优势。

Q: dall-e 和其他主流 AI 绘图的核心优势是什么?有哪些不足

DALL-E和其他主流AI绘图方法相比,具有一些核心优势,同时也存在一些不足之处。

核心优势:

  1. 语义理解和生成:DALL-E能够理解和处理文字描述,并根据描述生成具有语义相关性的图像。这意味着用户可以用自然语言描述想要的图像,而不需要具体的绘画技能。

  2. 多样性和创造性:DALL-E生成的图像通常非常多样化,并且能够展现出想象力的创造性。这使得它在生成艺术作品、概念设计等方面具有很高的灵活性。

  3. 对复杂场景的处理:DALL-E不仅可以生成简单的图像,还可以处理更加复杂的场景和对象,甚至能够理解一些抽象的概念和场景,并据此生成图像。

  4. 灵活性和可控性:用户可以通过调整输入的文本描述,来控制生成图像的内容和特征。这使得DALL-E具有一定程度的可控性,可以根据用户的需求生成不同风格和类型的图像。

不足之处:

  1. 理解能力限制:尽管DALL-E在理解文本和生成图像方面取得了很大进展,但它仍然存在理解能力有限的情况,尤其是对于复杂或模糊的描述可能无法准确理解。

  2. 生成图像质量不稳定:有时候DALL-E生成的图像质量可能不稳定,可能会出现一些奇怪或不合逻辑的图像。这可能是由于模型训练数据的不足或训练过程中的技术限制所致。

  3. 计算资源需求高:DALL-E的训练和推理需要大量的计算资源和时间,尤其是在生成高分辨率或复杂图像时。这使得它在一般消费级硬件上难以实时运行。

  4. 缺乏真实感:虽然DALL-E能够生成具有语义相关性的图像,但它生成的图像通常缺乏真实感和细节,与真实世界中的图像相比还有一定的差距。

小结

本次讨论聚焦于两大图像生成技术:DALL-E和其他AI绘图方法。

我们比较了它们的优势和限制,并探讨了如何结合自然语言处理技术,以提升图像生成的创造性和效果。

通过这次讨论,我们为未来图像生成技术的发展提供了新的思路和启发。比如 openai 后续推出的文本生成视频 sora。

这一篇内容比较简单,后续结合论文,深入学习一下 dall-e 的原理。

本文由博客一文多发平台 OpenWrite 发布!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容