09. 图像生成模型(Diffusion)与语言模型的结合方式有哪些?
Diffusion 与语言模型的常见结合方式。
简单回答
Diffusion 模型和语言模型的结合主要有三种方式:LLM 作为 Prompt 增强器(用 LLM 改写和扩展用户的文本 Prompt 来提升生成质量)、LLM 作为控制器(LLM 理解复杂指令后生成结构化的生成参数传给 Diffusion 模型)、以及统一模型架构(在一个模型中同时具备文本理解和图像生成能力,如 Chameleon、Transfusion、Janus)。目前工业界最常见的是前两种,统一架构是前沿研究方向。
详细解释
背景:Diffusion 和 LLM 各擅长什么
Diffusion 模型(如 Stable Diffusion、DALL-E 3、Midjourney)擅长生成高质量图像,但它们的文本理解能力相对有限——对复杂的、多属性的 Prompt("一只戴着红色帽子的金色柴犬在雪地里奔跑,背景是富士山")的理解和遵循可能不够精确。
LLM 擅长理解和处理复杂的自然语言指令,但不能直接生成图像。
两者结合的动机很自然:用 LLM 的语言理解能力来弥补 Diffusion 模型的文本理解短板,或者更进一步,在一个统一模型中同时实现语言理解和图像生成。
方式一:LLM 作为 Prompt 增强器
最简单的结合方式。用户给出一个简短的生成指令("画一只可爱的猫"),LLM 把它扩展成一个详细的、适合 Diffusion 模型理解的 Prompt("A cute orange tabby kitten sitting on a windowsill, soft warm lighting, photorealistic, 8k, detailed fur texture, bokeh background")。
这种方式不需要修改 Diffusion 模型本身,只是在前面加一个 LLM 做"翻译和扩展"。DALL-E 3 就用了类似的思路——先用 GPT-4 改写和扩展用户的 Prompt,再把优化后的 Prompt 传给图像生成模型。
实际应用中效果显著——因为 Diffusion 模型对 Prompt 的风格描述("cinematic lighting""oil painting style")和质量描述("8k""highly detailed")非常敏感,LLM 可以自动补充这些关键词。
方式二:LLM 作为控制器 / Agent
更深度的结合是让 LLM 充当图像生成的"导演"。LLM 理解用户的复杂需求后,生成结构化的生成参数——包括场景描述、物体位置布局、风格参数等——传给 Diffusion 模型或多个工具。
比如用户说"帮我设计一个海报,上面有公司 logo 在左上角,中间是产品图,下面是促销文字"。LLM 可以分解这个任务——先生成背景图(调 Diffusion 模型),再把 logo 和文字合成上去(调图像编辑工具),最后做排版。这已经是一个 Agent 任务了——LLM 做规划和分发,Diffusion 模型作为 Agent 的一个工具。
RPG-DiffusionMaster 等工作让 LLM 把复杂场景分解成多个区域,为每个区域生成独立的 Prompt 和布局信息,再用 Diffusion 模型按布局生成,最后合并。这种方式对复杂场景的可控性远好于直接用一段文字 Prompt。
方式三:统一模型架构
这是最前沿也最有野心的方向——用一个统一的模型同时具备文本理解、文本生成和图像生成的能力。
技术路线有几种。一种是把图像也 tokenize 成离散 token(类似 VQ-VAE / VQGAN 的做法),和文本 token 一起在 Transformer 中处理。生成图像时模型输出图像 token 序列,再用 decoder 还原成像素图像。Chameleon(Meta)和 Emu 走的是这条路。
另一种是 Transfusion——在同一个 Transformer 中对文本用 next-token prediction 的 loss,对图像用 diffusion 的 loss。模型内部同时学会了两种生成范式。
Janus(DeepSeek)则是把理解和生成解耦——用不同的视觉编码方式分别处理"理解图像"和"生成图像",避免两个任务在表示空间上的冲突。
统一模型的优势是"原生多模态"——模型在内部理解图文关系,而不是通过外部管线连接。可以做到"看一张图然后画一张类似风格的""理解一段文字描述并生成精确匹配的图"等跨模态的精细控制。
劣势是训练极其困难——同时学好语言和视觉生成需要海量的多模态数据和巨大的算力。目前统一模型在图像生成质量上还追不上专门的 Diffusion 模型(如 Midjourney、Flux),但差距在快速缩小。
和图像编辑的结合
除了图像生成,LLM + Diffusion 在图像编辑上也有很多应用。用户用自然语言描述想要的编辑("把天空变成日落色""把这个人的表情变开心"),LLM 理解编辑意图后控制 Diffusion 模型做 inpainting 或 image-to-image 转换。InstructPix2Pix 是这方面的代表工作。
面试时可以这样答
Diffusion 和 LLM 的结合主要有三种方式。最简单的是 LLM 做 Prompt 增强——用 LLM 把用户的简短指令扩展成详细的、适合 Diffusion 模型理解的 Prompt。DALL-E 3 就是这个思路,效果显著。
更深度的是 LLM 做控制器——理解复杂的生成需求后分解任务、生成布局、调度多个生成工具。这本质上是 Agent 范式,Diffusion 模型作为 Agent 的一个工具。
最前沿的是统一模型——一个 Transformer 同时做文本理解和图像生成。Chameleon 把图像 tokenize 成离散 token 和文本一起处理,Transfusion 在同一个模型里用两种 loss 分别学文本和图像生成。目前统一模型的生成质量还追不上专门的 Diffusion 模型,但这是未来方向。
常见追问
- 图像 tokenize(VQ-VAE/VQGAN)的原理是什么?
- 统一模型和级联模型在生成质量上差距有多大?
- LLM + Diffusion 在图像编辑场景有什么应用?