- 参考
- 整体流程概览
- 条件编码器 (Condition Encoder) - Qwen2.5-VL
- 图像分词器 (Image Tokenizer) - 变分自编码器 (VAE)
- 骨干扩散模型 (Backbone) - 多模态扩散变换器 (MMDiT)
- MS-RoPE (Multimodal Scalable Rotary Position Encoding)
Qwen image这个扩散多模态模型结构
- 条件编码器 (Condition Encoder) - Qwen2.5-VL
- 图像分词器 (Image Tokenizer) - 变分自编码器 (VAE)
- 骨干扩散模型 (Backbone) - 多模态扩散变换器 (MMDiT)
参考
https://zhuanlan.zhihu.com/p/1936021461505663505
整体流程概览
输入:用户提供文本提示 (User prompt),同时模型内部有一个系统提示 (System prompt) 来增强理解能力。
条件编码:Qwen2.5-VL 接收这些提示,将其编码成一组包含丰富语义信息的“条件向量 (conditioning vectors)”。
潜空间准备:图片
在训练时,一张真实的图片会通过 VAE Encoder 被压缩成一个较小的“潜空间表示 (latent representation)”,然后加入随机噪声。
在生成时,模型从一个完全由随机噪声构成的潜空间表示开始。
去噪生成:
MMDiT 骨干网络 作为核心,接收带噪的潜空间表示、来自 Qwen2.5-VL 的条件向量,以及当前的时间步 t。它的任务是预测并逐步去除噪声。这个过程会迭代 N 次。
图像解码:去噪完成后,得到一个“干净”的潜空间表示。最后,VAE Decoder 将这个潜空间表示解码,还原成一张高分辨率的像素图像。
条件编码器 (Condition Encoder) - Qwen2.5-VL
理解用户意图,将输入的文本(甚至可以是图文混合的)提示,转换成扩散模型能够理解的、详细的指令。
模型使用了 一个被冻结的 Qwen2.5-VL 作为编码器。“冻结”意味着在训练扩散模型时,Qwen2.5-VL 本身的参数是固定不变的。这样做的好处是可以直接利用一个已经非常强大的、预训练好的视觉语言模型 (VLM) 的世界知识和指令遵循能力,而无需从头训练。
Qwen-Image 不仅仅是接收简单的文本描述,它采用了更复杂的结构化提示 (Structured Prompt)。
如图所示,它包含一个 <|system|> 部分,这个系统提示会引导模型关注图像的各种细节,如“颜色、数量、文本、形状、大小、纹理、空间关系”等。这使得 Qwen-Image 在遵循复杂和精细指令方面表现出色。用户的具体要求则放在 <|user_text|> 部分。
Qwen2.5-VL 是一个庞大的模型,总参数量达到 70亿 (7B)。
它内部由两部分组成:
ViT (Vision Transformer):包含 32 层,用于处理可能输入的图像部分。
LLM (Large Language Model):包含 28 层,是理解和处理文本指令的核心。其 Intermediate Size 高达 18,944,显示了其强大的表示能力。
这个规模巨大的编码器确保了模型能深刻理解自然语言中的细微差别和复杂的空间构图要求。
总结:Qwen2.5-VL 是一个超强的“翻译官”,它将人类的语言和意图,翻译成机器(MMDiT)能够精确执行的、包含深度语义的数学向量。
图像分词器 (Image Tokenizer) - 变分自编码器 (VAE)
MMDiT 是作画的“画家”,那么 VAE 就是提供“画布”和“颜料”的工具。
它负责在像素空间(我们看到的图像)和潜空间(模型处理的数据)之间进行转换。
在潜空间 (Latent Space) 中进行扩散操作。直接在百万像素级别的图像上进行去噪计算量极大。VAE 可以将一张高分辨率图像无损或低损地压缩到一个小得多的潜空间矩阵中。在 Qwen-Image 中,所有核心的去噪步骤都在这个低维的潜空间完成,极大地提高了效率。
编码阶段:
编码器 (Encoder):获取一张真实图像,通过 Patchify 的过程,将其转化成成一个由向量组成的网格(即潜空间表示)。
解码阶段
解码器 (Decoder):在生成过程的最后,接收由 MMDiT 生成的干净的潜空间表示,并将其“翻译”回一张完整的、高分辨率的像素图像。
Encoder (Enc):有 11 层,参数量为 54M。
Decoder (Dec):有 15 层,参数量为 73M。
Patch / Scale Factor 为 8x8,这意味着 VAE 将图像的每 8x8 像素区域压缩成一个潜空间向量。这个压缩率决定了潜空间的大小。
VAE 通过在像素空间和潜空间之间搭建桥梁,让骨干扩散模型可以在一个更小、更易于处理的空间内进行创作,是实现高效率、高分辨率图像生成的关键。
骨干扩散模型 (Backbone) - 多模态扩散变换器 (MMDiT)
这是 Qwen-Image 的心脏,是真正执行“绘画”工作的组件。它是一个经过特殊设计的 Transformer 架构,专门用于在多模态条件的指导下进行图像去噪。
以用户提示的条件向量为指引,从一个纯噪声的潜空间表示开始,一步步地识别并去除噪声,最终“雕刻”出符合要求的图像的潜空间表示。
规模巨大:MMDiT 是整个模型中最大的部分,参数量高达 200亿 (20B)。它包含 60 个 Transformer 层 (# Layers) 和 24 个注意力头 (# Num Heads),这种巨大的容量是其能够生成高质量、高复杂度图像的保证。
双流架构 (Double-stream):这是 MMDiT 的一个关键设计。从放大图可以看出,MMDiT Block 内部有两条并行的处理流。
一条流处理图像信息(来自带噪的潜空间)
另一条流处理文本条件信息(来自 Qwen2.5-VL)
这两条流并非完全独立。通过交叉注意力 (Cross-Attention)机制(图中 Self-Attention 的 k 和 v 从文本流输入到图像流),文本流的信息会注入到图像流中,从而在每一步去噪时都精确地指导图像内容的生成。
MS-RoPE (Multimodal Scalable Rotary Position Encoding)
如何让模型同时理解图像块的空间位置(例如,“在左上角”)和文本标记的序列位置(例如,描述“左上角”的词)?
Qwen-Image 的解决方案:它设计了一种新颖的对角线位置编码 (Diagonal Position Encoding) 策略,即 MS-RoPE。
如图所示,它将图像网格中的第 i 个图像块 (patch) 和文本序列中的第 i 个词 (token) 在位置编码上进行对齐。例如,(0,0) 位置的图像块与第一个词配对,(1,1) 位置的图像块与第二个词配对,以此类推,沿着对角线进行。
这种方式创造了一种图像空间和文本序列之间的直接关联,使得模型能更好地理解和执行关于物体位置和布局的指令,实现了更强的图文对齐。
MMDiT 是一个极其强大的、专门为图文生成定制的扩散 Transformer。其双流架构有效融合了图文信息,而创新的 MS-RoPE 位置编码则解决了精细空间控制的难题,最终使其能够“听懂”复杂的指令并“画出”惊艳的图像。