本教程讲解如何在 Windows 消费级显卡上通过 ComfyUI 本地部署阿里千问图像模型 Qwen-Image-2.1,覆盖模型下载、目录配置、显存行为解读、文生图与图像编辑两套工作流的完整搭建过程。全部步骤均在 RTX 2080 Ti(22GB 显存) 实机跑通,并附带中文书法题字、英文霓虹灯牌、风格转换与人物保持等实测样张,适合想在本地玩转千问文生图的读者对照操作。

前置教程

如想快速开始学习本教程,你可能需要先完成以下前置教程:

资源下载

1. Qwen-Image-2.1 模型概览

1.1 模型定位

Qwen-Image-2.1 是阿里通义千问团队于 2026 年 9 月 20 日开源的图像生成模型,最大的特点是把文生图图像编辑统一在同一个模型里:不加参考图就是文生图模型,接入参考图就是图像编辑模型,无需切换两套权重。

从系列沿革看,初代 Qwen-Image 于 2025 年 8 月发布,采用 20B 参数 MMDiT 架构;Qwen-Image-2.0 于 2026 年 2 月推出;2.1 版把生成侧参数量降到 7B,本地部署门槛显著下降——对消费级显卡用户来说,这是千问图像系列第一次真正跑到主流游戏卡上。

1.2 技术规格

据官方模型卡与 GitHub 仓库说明,Qwen-Image-2.1 的核心规格如下:

项目 规格
Transformer 32 层单流 DiT,7B 参数
文本编码器 Qwen3-VL 8B,同时编码文字指令与条件图像
VAE 64 通道 RGBA 自编码器,空间压缩 16 倍
调度器 Flow Matching,Euler 离散调度与动态位移
默认输出 2048 × 2048,40 步去噪,原生 2K 分辨率
推荐长宽比 7 种,含 4:3、3:2、16:9 及对应竖版
参考图上限 10 张
提示词改写模型 两个 Qwen3.5-VL 9B 微调检查点(可选,非必需)

架构上有两点值得留意。其一是块因果注意力:文本 token 使用因果掩码、图像块使用双向掩码,配合前缀 KV 缓存复用,条件图像与文字指令只在首个去噪步骤计算一次,多参考图编辑任务因此明显加速。其二是原生 RGBA 通道:VAE 直接支持透明通道,可以由文字生成透明背景图像、编辑透明图层或从照片中提取主体。

1.3 ComfyUI 原生支持

ComfyUI 在 0.37 版本提供了 Qwen-Image-2.1 的原生支持,本教程实测环境为 ComfyUI 0.37.0 便携版。原生支持体现在三处:

  1. 新增 TextEncodeQwenImage21 编码节点,同时完成提示词编码、参考图条件注入与初始潜空间生成。
  2. CLIPLoader 加载器新增 qwen_image 类型,用于加载 Qwen3-VL 8B 文本编码器。
  3. 官方工作流模板仓库同步提供 image_qwen_image_2_1_t2i.json 文生图模板,更新 ComfyUI 后可在模板列表直接调用。

提示:本教程选择手动搭建节点而非套用模板,目的是让读者理解每个节点的职责与接线逻辑,掌握后再用模板提效不迟。

1.4 许可证提醒

与初代 Qwen-Image 的 Apache 2.0 不同,Qwen-Image-2.1 采用 Qwen Research License Agreement,仅允许非商业的研究与评估用途,商业使用需另行向官方申请授权,用其输出训练的 LoRA 同样落在非商业边界内。个人学习、测评与内部评估不受影响,商用团队上线前请先落实授权,详细分析见前置资讯文章。

2. 部署前准备

2.1 硬件要求

本教程实测环境如下:

硬件 规格 说明
显卡 NVIDIA GeForce RTX 2080 Ti,22GB 显存 实测跑通全流程
内存 32GB 权重卸载依赖内存容量,建议不低于显存
硬盘 模型三件套合计约 31.5GB 建议 NVMe 固态,缩短加载时间

关键问题是显存。Qwen-Image-2.1 全 bf16 管线的三件套权重合计约 31.7GB,超过任何单卡显存,但 ComfyUI 内置异步权重卸载机制:文本编码器编码完提示词后即时释放显存,再装入扩散模型采样,最后由 VAE 解码,三者不需要同时驻留。实测 22GB 显存全程无 OOM,单图生成约 75 至 85 秒。

不同显存档位的可用性推断如下:

显存档位 可用性 建议
20GB 以上 宽松 可按本教程直接操作
16GB 可行 适当降低输出分辨率,依靠权重卸载分批装载
12GB 及以下 紧张 建议等待社区 FP8/量化版本再尝试,本教程未在该档位实测

提示:内存同样重要。权重在显存与内存之间来回搬运,内存不足会触发磁盘交换导致速度骤降,16GB 显存的显卡建议搭配 32GB 以上内存。

2.2 软件环境

本教程实测软件版本:

组件 版本
ComfyUI 0.37.0(Windows 便携版)
内嵌 Python 3.13.14
PyTorch 2.13.0 + CUDA 13.0

部署 Qwen-Image-2.1 的硬性要求只有一条:ComfyUI 版本不低于 0.37,否则节点列表里不会出现 TextEncodeQwenImage21。旧版本便携包执行根目录下的 update\update_comfyui.bat 即可完成升级。

2.3 ComfyUI 安装确认

ComfyUI 便携版的下载、解压与显卡适配在第 48 篇前置教程中已完整讲解,此处不再重复。若你尚未安装,请先完成该教程的 ComfyUI 安装章节,确认浏览器能打开 http://127.0.0.1:8188 的节点画布界面后,再继续本教程。

3. 模型下载与目录配置

3.1 模型文件清单

ComfyUI 需要三个模型文件,均从 Comfy-Org 重打包仓库下载,文件与放置目录一一对应:

文件名 体积 角色 放置目录
qwen_image_2.1_bf16.safetensors 约 14 GB 扩散模型(7B 单流 DiT) models/diffusion_models
qwen3vl_8b_bf16.safetensors 约 17 GB 文本编码器(Qwen3-VL 8B) models/text_encoders
qwen_image_2.1_vae_bf16.safetensors 约 645 MB VAE(64 通道 RGBA) models/vae

Hugging Face 仓库内的文件位于 split_files 目录下,下载时按上述对应关系取文件即可;ModelScope 页面同样标注了每个文件的放置路径。

3.2 方式一:直接放入 models 子目录

最简单的做法是把三个文件分别拷贝到 ComfyUI 便携包的对应目录:

ComfyUI_windows_portable/
└── ComfyUI/
    └── models/
        ├── diffusion_models/
        │   └── qwen_image_2.1_bf16.safetensors
        ├── text_encoders/
        │   └── qwen3vl_8b_bf16.safetensors
        └── vae/
            └── qwen_image_2.1_vae_bf16.safetensors

3.3 方式二:extra_model_paths.yaml 独立模型目录

如果磁盘分区紧张,或希望多个模型家族共用一套独立模型库,可以用 extra_model_paths.yaml 把外部目录挂载进 ComfyUI。本教程实测即采用此方式,模型统一放在 C:\models\Qwen-Image-2.1 下:

C:\models\Qwen-Image-2.1\
├── diffusion_models\
│   └── qwen_image_2.1_bf16.safetensors
├── text_encoders\
│   └── qwen3vl_8b_bf16.safetensors
└── vae\
    └── qwen_image_2.1_vae_bf16.safetensors

编辑 ComfyUI 便携包根目录下的 extra_model_paths.yaml(不存在则新建),追加以下内容:

qwen_image:
    base_path: C:\models\Qwen-Image-2.1
    diffusion_models: diffusion_models
    text_encoders: text_encoders
    vae: vae

其中 qwen_image 是自定义的分组名,base_path 指向模型根目录,下面三行把子目录分别映射为扩散模型、文本编码器与 VAE 的搜索路径。保存后重启 ComfyUI,启动日志中出现如下三行即挂载成功:

Adding extra search path diffusion_models C:\models\Qwen-Image-2.1\diffusion_models
Adding extra search path text_encoders C:\models\Qwen-Image-2.1\text_encoders
Adding extra search path vae C:\models\Qwen-Image-2.1\vae

提示:YAML 对缩进敏感,二级条目统一使用四个空格缩进,不要混用制表符;修改配置后必须重启 ComfyUI 才能生效。

4. 启动 ComfyUI 与显存行为解读

4.1 启动命令

双击便携包根目录的 run_nvidia_gpu.bat 启动服务。本教程实测的启动参数为:

.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --fp16-unet --disable-dynamic-vram --disable-mmap

其中 --fp16-unet 让扩散模型以 FP16 精度运行以节省显存,--disable-dynamic-vram 关闭动态显存管理、固定采用权重卸载策略,--disable-mmap 禁用内存映射加载。若显存吃紧,可尝试去掉 --disable-dynamic-vram 让 ComfyUI 动态调度显存。

启动成功后日志末尾会给出访问地址,浏览器打开 http://127.0.0.1:8188 即进入节点画布。

4.2 三个模型的装载时序

提交任务后,日志会依次显示三个模型的加载与释放过程,理解这条时序线是排查显存问题的基础:

graph LR A[提交提示词] --> B[加载文本编码器
约 16.7GB] B --> C[编码提示词完成
部分卸载释放显存] C --> D[加载扩散模型
约 13.6GB] D --> E[逐步去噪采样] E --> F[卸载扩散模型
加载 VAE 约 644MB] F --> G[解码潜空间并保存图像]

实测 22GB 显存下的典型日志数据:文本编码器全量载入 16722MB,编码完成后部分卸载释放约 13.6GB;扩散模型接着载入 13571MB 并以双流异步权重卸载方式采样;采样结束后 VAE 载入 644MB 完成解码。三个模型从不同时驻留,这是 31.7GB 权重能在 22GB 显存上跑通的原因。

4.3 实测生成速度

在 RTX 2080 Ti 上的实测速度(896 × 1152 分辨率):

步数 单步耗时 采样总耗时
30 步 约 2.5 秒/步 约 75 秒
40 步 约 2.1 秒/步 约 84 秒

首次生成前还需加上模型从硬盘载入的时间(视固态硬盘速度,一到两分钟),同一会话内连续生成则直接复用已缓存的权重,速度以表中新值为准。

5. 文生图工作流

5.1 节点构成

文生图共需 7 个节点,全部为 ComfyUI 原生节点,无需安装自定义节点:

节点 类型 职责
UNETLoader 加载器 加载 qwen_image_2.1_bf16.safetensors 扩散模型
CLIPLoader 加载器 加载 qwen3vl_8b_bf16.safetensors,类型选 qwen_image
VAELoader 加载器 加载 qwen_image_2.1_vae_bf16.safetensors
TextEncodeQwenImage21 编码器 编码提示词并生成初始潜空间
KSampler 采样器 按步数去噪生成潜空间图像
VAEDecode 解码器 把潜空间解码为像素图像
SaveImage 保存器 输出 PNG 到 output 目录

节点接线关系如下:

graph LR A[UNETLoader] --> D[KSampler] B[CLIPLoader] --> C[TextEncodeQwenImage21] C -- positive/negative --> D C -- latent --> D E[VAELoader] --> F[VAEDecode] D --> F F --> G[SaveImage]

三个加载器互相独立,分别接到消费节点上;TextEncodeQwenImage21 一股脑输出正负条件与初始潜空间,全部喂给 KSampler。搭建完成后可对照教程目录下的 qwen21-t2i-workflow.json 工作流文件核对接线。

5.2 TextEncodeQwenImage21 节点详解

这是 Qwen-Image-2.1 工作流的核心节点,有三个输入:

输入 说明
prompt 正向提示词,支持中文与中英混排
negative_prompt 负向提示词,官方工作流默认留空
resolution 内置潜空间的边长,默认 1024,输出 1024 × 1024

它输出三个结果:positive(正向条件)、negative(负向条件)和 latent(初始潜空间),三个输出都要接到 KSampler 对应输入端。注意 Qwen-Image-2.1 采用 Flow Matching 训练,官方默认不使用负向提示词,negative_prompt 留空即可。

5.3 采样参数配置

KSampler 的推荐参数如下:

参数 推荐值 说明
steps 25 至 40 官方默认 40 步,25 步出图质量已可用
cfg 1.0 Flow Matching 模型标配,负向提示词失效属正常现象
sampler_name euler 与官方 Euler 离散调度匹配
scheduler simple 官方推荐的调度器
denoise 1.0 文生图固定全量去噪
seed 任意 固定 seed 可复现同一张图

5.4 自定义分辨率

TextEncodeQwenImage21 的 resolution 输入只生成正方形潜空间。想要竖版或其他比例时,添加一个 EmptyLatentImage 节点自定义宽高,再把它的输出接到 KSampler 的 latent_image 端,替代编码节点自带的潜空间:

graph LR A[EmptyLatentImage
896 x 1152] --> C[KSampler] B[TextEncodeQwenImage21
仅用 positive/negative 输出] -- positive/negative --> C

本教程实测样张即采用 896 × 1152 的 7:9 竖版构图。建议在模型推荐的 7 种长宽比内选择,总像素量保持在 100 万至 400 万之间,偏离过远会明显降低构图质量。

5.5 实测案例一:英文文字渲染

文字排版是 Qwen-Image-2.1 的官方主推能力。第一条冒烟测试提示词只有一句话:

A neon shop sign that reads "QWEN IMAGE 2.1", rainy night, reflections on wet pavement, cinematic

1024 分辨率、25 步、seed 42,一次出图。生成的霓虹灯牌上 QWEN IMAGE 2.1 十一个字符全部正确,蓝色 QWEN 与红色 IMAGE 2.1 分行排布,雨夜地面反射光效果完整,文字渲染能力确实扎实。

Qwen-Image-2.1 英文霓虹灯牌实测

5.6 实测案例二:中文书法题字

中文场景的测试更有代表性:古诗词插画,要求竖排行书题字加朱红印章。完整提示词如下:

中国风古诗词插画,竖构图。深邃夜空,万千星辰如碎钻洒落银河,星光沿着蜿蜒山径铺向前方。白衣女子立于花树下回眸浅笑,眉眼温柔,裙袂轻扬。画面左上留白处以竖排行书题写诗句:「夜里万千星辰 冗照前程」「不及君之一笑 醉我半生」,墨色书法,落款处一枚朱红印章。水墨与厚涂结合,唯美意境,电影级光影,细节丰富

896 × 1152 分辨率、30 步、seed 20260921,采样约 75 秒。出图还原了全部构图要素:白衣女子立于花树下回眸、星光沿山径蜿蜒铺向银河、左上竖排行书题写两句诗并钤朱红印章,书法字形完整可辨。

Qwen-Image-2.1 中文古诗词插画实测

6. 图像编辑工作流

6.1 节点改动

Qwen-Image-2.1 的图像编辑不需要换模型或加节点,只改两处接线:

  1. 添加 LoadImage 节点,载入要编辑的原图,把图像输出接到 TextEncodeQwenImage21 新出现的 images 输入端。
  2. resolution 改为 0,表示潜空间尺寸跟随参考图分辨率,不再按固定边长新建。

编辑模式的接线如下:

graph LR A[UNETLoader] --> D[KSampler] B[CLIPLoader] --> C[TextEncodeQwenImage21] E[LoadImage
参考图] -- image --> C C -- positive/negative/latent --> D F[VAELoader] --> G[VAEDecode] D --> G G --> H[SaveImage]

搭建完成后可对照教程目录下的 qwen21-edit-workflow.json 工作流文件核对。

6.2 编辑提示词的写法

编辑提示词的结构可以概括为一句话:先写要改什么,再逐项声明什么不许动。改动项放在前面让模型明确执行,保留项(人物五官、姿态、位置、服饰、印章等)逐一点名,越具体越稳。

实测从上一节的古诗词插画出发,第一步要求「转水墨风格」:

将这幅画转为中国风水墨山水画风格:夜空银河与星光山径改为淡墨晕染,柔焦微朦胧,宣纸质感,山间雾气氤氲,远山大片留白,衣袂与花树以写意笔触轻勾淡染,墨色温润平滑;女子的面容、五官、发型、姿态、服饰和她在画面右侧的位置完全保持不变,脸部精致清晰;题字与印章原样保留

35 步采样约 90 秒。风格转换完成度很高:银河、山径、衣袂全部转为写意水墨,宣纸质感与雾气留白到位,人物姿态与位置保持稳定。但出现一个典型问题:原图的题字被连带重绘,两句诗变成了无法辨认的伪汉字

图像编辑实测:转水墨风格后题字被重绘损坏

这说明编辑过程中的文字区域属于「高细节、小面积」内容,风格迁移时极易被重绘损坏。解决办法是把文字当作独立的编辑目标显式下达指令。第二次编辑直接要求重新题写:

保持这幅画的深黑夜空不变,繁星点点,银河清晰可见,保留水墨晕染的山峦雾气与蜿蜒星光小路。保持白衣女子在画面右侧,姿态妆容不变,脸部五官精致清晰。左上角以清晰工整的竖排行书重新题写诗句:「夜里万千星辰 冗照前程」,第二行「不及君之一笑 醉我半生」,每个字端正可读,墨色书法,配一枚朱红印章

出图后题字恢复为端正可读的竖排行书,两句诗逐字正确,朱红印章同步生成,人物、构图与水墨风格保持稳定。

图像编辑实测:显式要求重新题字后书法恢复可读

6.3 与直接文生图的对比

作为参照,我们把水墨风格的完整描述直接写入文生图提示词一次成型(40 步、896 × 1152),出图的题字同样清晰可读,构图留白也更为舒展:

直接文生图生成的水墨风格插画

综合三次实测可以得出结论:目标风格明确时,直接文生图一次成型的文字质量最稳;编辑适合在已有图上做风格迁移或局部调整,但涉及文字时要么在提示词中显式要求重写题字,要么编辑后再补一次文字修正。

6.4 关于多参考图

官方模型卡宣称 Qwen-Image-2.1 支持最多 10 张参考图的编辑与合成,可用于人物一致性保持、多图组装穿搭等场景;ComfyUI 原生节点的 images 输入支持批量接入多张参考图。本教程实测覆盖单参考图场景,多图合成的批量接入方式留待后续教程展开。

7. 实测数据汇总

本教程全部实测在 RTX 2080 Ti(22GB)上完成,汇总如下:

测试 模式 分辨率 步数 采样耗时 结果
英文霓虹灯牌 文生图 1024 × 1024 25 约 63 秒(按单步耗时估算) 字符全部正确
古诗词插画 文生图 896 × 1152 30 75 秒 题字印章完整
水墨风格直出 文生图 896 × 1152 40 84 秒 题字清晰可读
水墨风格转换 图像编辑 896 × 1152 35 90 秒 风格到位,题字被重绘
重新题字修正 图像编辑 896 × 1152 35 98 秒 题字恢复可读

前一次测试在更早的服务会话中完成,采样耗时按同分辨率单步速度推算,其余四组为日志实测值。单步采样耗时在 2.1 至 2.8 秒之间;全程无显存溢出,文本编码器、扩散模型、VAE 按时序分批装载。对一张 2020 年发布的游戏卡来说,7B 生成侧参数的轻量化收益是实打实的。

8. 常见问题

问:提示采样时显存不足(OOM)怎么办?

答:按顺序尝试三件事。第一,把 resolution 降到 768 或使用更小的 EmptyLatentImage 尺寸,分辨率对显存的贡献远大于步数;第二,确认没有其他程序占用显存,浏览器硬件加速也会吃掉一两个 GB;第三,去掉启动参数中的 --disable-dynamic-vram,让 ComfyUI 动态调度显存。仍无法解决的,建议等待社区 FP8 量化版本。

问:节点列表里找不到 TextEncodeQwenImage21?

答:ComfyUI 版本低于 0.37。执行便携包根目录 update\update_comfyui.bat 升级后重启;若升级后启动日志提示工作流模板版本过低,属正常警告,不影响手动搭建节点。

问:模型加载器下拉列表里没有 qwen 开头的文件?

答:检查 extra_model_paths.yamlbase_path 拼写与子目录映射是否正确,确认文件确实放在映射后的目录里,然后重启 ComfyUI;启动日志中的 Adding extra search path 三行是挂载成功的唯一判据。

问:编辑图像时文字总是被改坏怎么办?

答:参考第 6.2 节的做法,把文字作为独立编辑目标显式写进提示词,明确「每个字端正可读」并逐字给出内容;若只需改风格不动文字,可在编辑后用第二次编辑专门修正文字,或直接改用文生图一次成型。

问:cfg 设成 1.0 后负向提示词无效,是配置错了吗?

答:不是。Qwen-Image-2.1 按 Flow Matching 方式训练,官方默认 cfg 即为 1.0,此时候选分支不参与计算,负向提示词自然失效,把质量控制全部交给正向提示词描述即可。

问:生成的图可以商用吗?

答:不可以。Qwen-Image-2.1 采用 Qwen Research License,仅允许非商业研究与评估,商用需向官方另行申请授权,详见前置资讯文章的许可证分析。