图像生成,有2种主流技术。
扩散模型
一个从无序到有序的过程。
训练阶段,学习如何从带有一点噪声的图片恢复出更清晰一点的图片 。
生成阶段,从一张完全随机的噪声图像开始。在每一步,预测并去除图像中的一小部分噪声 。随着噪声被一点点去除,图像的轮廓、颜色和细节会逐渐浮现出来,最终得到出一张清晰、高质量的图像 。
AR Autoregressive Transformer
类似GPT处理语言的模式
第一步先进行图像分词 ,通过一个编码器(通常是VQ-VAE)将图片压缩,并切割成一系列离散的vision tokens。
然后AR Transformer 的任务是,看到前面所有的vision tokens,然后准确地预测出下一个应该是什么 。
当需要生成新图片时,给模型一个开头的提示(比如一个类别标签),它就会生成第一个vision tokens ,以此类推,直到生成代表整张图的所有tokens。最后,再用一个解码器将这些vision tokens翻译回一张完整的图像 。
TransDiff ,将上面2种技术嫁接到一起的工作。
作者来自soul, 代码开源。https://github.com/TransDiff/TransDiff
训练过程分为2个阶段。
第一阶段的目标应该是训练一个强大的基础模型,输入类别标签, AR Transformer编码, Diffusion Decoder 解码出图像。
这里的AR Transformer和Diffusion Decoder可以联合训练,梯度会回传到编码上。(很多用Clip的,这里就是一个固定向量冻结的)。
通过这个阶段,可以学到不错的生成高质量图片的模型了。 FID是统计生成图像和真实图像相似程度的指标。
transdiff的核心应该是第二阶段 MRAR,让模型学会参考、反思、迭代。
这里,AR Transformer的输入不只是标签了,还会加前面得到的图片特征。
类似于,先画一张图,然后审视这次生成的图,参考之前生成的图,在进行创作可以得到更惊艳的作品的感觉。
2张不同类别的图片特征融合一下,就可以解码出混合物种。 说明联合训练得到的编码器可以捕捉到核心概念,解码部分也可以很好的还原成高质量的图片。
代码完全开源,感兴趣的可以了解一下