T2I

T2I

版权申明:本文为原创文章,转载请注明原文出处

原文链接:http://example.com/post/7684f23b.html

T2I

Framework

img

类型

  1. Text -> 生成式AI -> video/image
  2. Image -> 生成式AI -> text
  3. Image -> 影像完善/风格转换/质量提升 -> new image 影像生影像
  4. Voice + image -> 生成式AI -> video talking head

基础要点

Image -> consisted of patches(像素点, eg:1024 * 1024) video -> consisted of frame(eg: frame per second -> FPS)

高精度图像要点:一些影像压缩技术

对于图片:

img

对于视频:

img

方法

文字生图需要大量训练资料,有网站提供大量图片文字对,因此文字生图主要目标可理解为:

输入:文字 ----> 输出:patches

  1. One method is generating patch sequently(auto-regressive),很少用,patch之间不是依次传递作用:

img

  1. 进化方式:同时生成patch,难以避免patch之间衔接不够,假如目标是生成一只小狗,这种方式可能导致各个patch的目标都是生成小狗,导致最终图像混乱,或者各个patch之间的杂序未统一,同一张图出现风格不同

img

  1. 对于一些有独特特点的图片,比如一定要包含某个无法用语言完全描述的物品时,可使用个人化的图像生成,加入到图像生成中
    1. img
  2. 文字生影片,方法和上面第二点相似,传入的即为P1.1 P1.2,生成的也还是patches,多个patches可组成一个frame
    1. 挑战:假设FPS为24,image为64*64,1分钟有1440个frame,600w个patch

    2. 每两个patch之间都相互考虑做attention,需要600w * 600w ->36兆次attention

    3. Temporal attention:不同frame中相同位置的patch才做attention -> 1440^2 * (64*64) -> 85亿次attention

    4. Spatial attention:同一个frame中所有的patch才做attention -> (6464)^2 1440 ->240亿次attention

衡量方式
  1. clip score:contrastive language-Image pre-training:有400million的text-image对,方法如下,正确配对->高分,错误配对 -> 低分,正确样本为官方数据,负样本为随机打乱text-image对

img

  1. FID: 先有一个pretrain好的cnn model,用于影像分类,将真实的latent representation和生成图片的latent representation进行比较(需要大量样本)

img

经典方法

Variational Auto-Encoder(VAE)
  • 挑战:一张image由多个patch组成,patch之间虽然能用attention相互影响,无法避免patch之间风格不一致,无法统一(因为model本身就需要联想)
  • 解决方案:添加标注,即资讯
    • img

    • 模型训练(将资讯抽取和图像生成一起进行训练优化,先根据图像生成资讯/标注,再根据标注生成图像,尽量使得生成的image和原始的image足够相似),该过程称之为auto-encoder

    • img

    • 图像生成时标注是随机生成并加入到图像生成的模型中,最终生成图片,因为抽取的标注一般不为文字,而是向量,不同位置数字代表不同信息,因此真实生成图片是标注可随机产生,即随机确定风格

  • 进阶使用
    • 在通过encoder获取到的标注可以自行增减向量,比如原始图片为笑脸,可在生成的标注中减去笑脸向量,加上臭脸向量,在生成图片,最终生成的图片即为臭脸
Flow-based
  • 要点:和VAE类似,不同之处在于,Flow将资讯抽取当作图像生成的反过程,即VAE中的Encoder为Decoder^-1,这就要求Decoder f函数要有反函数
    • img
Diffusion
  • 模型框架(分为forward和reverse两部分)
    • img
  • Reverse Process:Noise image为随机生成的和target image尺寸一致的噪声图片,step后面的数字是和Forward过程相对应的,该图相当于做了1000次的Denoise,目的是一步步过滤掉noise image中的噪声
    • img

    • Denoise细节:由于每一步传入的image噪声程度不同,即随着不断地Denoise,图片的噪声会不断减少,因此添加新的输入用于表示noise严重程度

      • 另外Denoise的方法是先为输入的noise image生成一个纯noise,再将输入的noise image减去预测出的noise,最终得到该步的输出

      • img

  • Forward Process(diffusion model):即Noise predictor训练过程,首先将一张干净的图不断的加噪声,最终生成一张noise image
    • imgimg

    • 然后将数据用于noise predictor训练,这里的2是noise程度,即image2-noise2 = image1,达到上面的reverse效果

  • 结合text:即denoise增加输入text,相应的forward过程也要加入text
    • img
  • 完整框架
    • img
  • 训练
    • noise predictor过程(forward)

      • imgimg

    • reverse过程

    • imgimg

实际上的noise是一次性直接生成的,而不是逐步添加杂序

  • 代码细节:
    • 怎么衡量output image和真实image之间的接近度->最大似然估计,即输出图片为预期图片的概率的乘积最大的网络参数

    • img

    • 首先看VAE过程,目标是最小化输出G(z)和目标x之间的差距,然后找logP(x)的下界

    • img

    • 类似的DDPM过程,确定logP(x)的下界

    • img

    • 计算过程

    • img

GAN(可作为一种外挂,即VAE+GAN, Flow+GAN, Diffusion+GAN)

和其他模型有本质区别(Discriminator来衡量生成图像的好坏,类似于clip)

训练方式:搜集大量的image-text pair作为正样本,准备一个不好的文生图模型,将text和生成的image配对作为负样本

Author

yyyyyyxnp

Posted on

2024-09-23

Updated on

2024-09-29

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.