6GB 显存的老电脑能跑 Qwen-Image-2.1 吗?1660 Ti 实测配方
测试机:GTX 1660 Ti(6GB)+ 16GB 内存 + Windows,ComfyUI 0.37.0 portable(cu126)。 本文所有数字都是这台机器上跑出来的,不是"理论上可以"。
结论先行
- 能跑,1024×1024 完全可用;1328×1328 也能出,只是要等。
- 快稿档(turbo,4 步):热跑 127 秒/张,冷启动约 6 分钟(含模型加载)。
- 质量档(int8 原生权重,25 步):11.43 秒/步,采样 6 分 33 秒,全管线含冷加载约 9.9 分钟。
- 显存峰值约 4.7GB / 6GB;文本编码器 7.9GB 常驻内存、流式上卡,所以内存别同时开重载程序。
一、为什么不是"直接 pip 装 diffusers"
6GB 显存跑 20B 级 DiT,天真做法会在加载阶段就 OOM。可行的组合是三件事叠加:
- 量化:DiT 用 GGUF(Q4_K_M,约 4.2GB)或 int8(7.26GB,靠流式上卡);文本编码器也必须量化(Q4_K_M,5.03GB)。
- 低显存模式:ComfyUI 的
--lowvram,把权重按需换入换出。 - fp32 计算:不要开
--force-fp16。图灵(TU116)没有 fp16 加速单元,实测 fp16 GEMM 比 fp32 慢 6 倍(219ms vs 36.1ms),而且会把模型卡在初始化阶段空转。
二、四个模型文件 + 两个补丁节点
放进 ComfyUI 对应目录,文件名别改(GGUF 的 mmproj 是按文件名匹配的):
models/diffusion_models/
qwen_image_2.1_int8_convrot.safetensors 7.26G 质量档(推荐默认)
qwen_image_2.1_turbo_Q4_K_M.gguf 4.19G 4 步快稿档
models/text_encoders/
qwen3vl_8b_heretic-Q4_K_M.gguf 5.03G
mmproj-qwen3vl_8b_heretic-f16.gguf 1.16G ← 必须同目录
models/vae/
qwen_image_2.1_vae_bf16.safetensors 0.68G
custom_nodes/
ComfyUI-GGUF-main GGUF 加载节点(city96)
ComfyUI-GGUF-Qwen3VL-TE-main 修 12288 维文本编码器报错的补丁
还要给 loader 打一行补丁——带 general.architecture 元数据的 GGUF 会被拒载:
# custom_nodes/ComfyUI-GGUF-main/loader.py 第 12 行附近
IMG_ARCH_LIST = {..., "qwen_image21"}
注意:这个文件在节点更新后会被覆盖,每次更新都要重打。
三、启动
cd ComfyUI_windows_portable
.\python_embeded\python.exe -s ComfyUI\main.py --lowvram --port 8188
日志出现 [GGUF-Qwen3VL-TE] ... patched 就说明补丁生效了。
四、实测性能(1660 Ti 6GB / fp32 / LOW_VRAM)
| 场景 | 耗时 | 备注 |
|---|---|---|
| turbo 4 步 @1024² | 127 秒 | 热跑;冷启动约 6 分钟 |
| turbo 4 步 @1328² | 约 9.5 分钟 | 含文本编码 |
| int8 质量档 25 步 @1024² | 11.43 秒/步,采样 6:33 | 全管线约 9.9 分钟(含冷加载) |
| int8 质量档 25 步 @1328² | 步时约 19.2 秒,采样约 8 分钟 | 按面积外推,实测同量级 |
| 显存峰值 | 约 4.7GB / 6GB | 文本编码器走内存流式 |
分辨率换算记住一条:步耗时与面积成正比——2048² 大约是 1024² 的 4 倍。另外分辨率必须是 16 的倍数(VAE 16× 压缩),1920×1080 无效,要用 1920×1088。
五、为什么 int8 比 GGUF 快 2.28 倍
同一个 25 步配置:GGUF Q4_K_M 是 26.09 秒/步,int8 是 11.43 秒/步。原因不是"量化更狠",而是每步的额外开销:
- GGUF Q4 在 eager 模式下每个算子都要先做 Q4→fp32 反量化,反量化开销约等于矩阵乘本身;
- int8 走的是 Hadamard 旋转 + 动态 W8A8 + DP4A 矩阵指令,整条链更便宜;
- 精度上做过漂移校验(A/B/A 对照),差异 0.5%,肉眼等效于 fp32。
代价是内存:加载期 commit 会多约 9GB,16GB 机器属于薄余量运行,跑的时候别再开浏览器几十个标签。
六、8 个必踩的坑
- PNG 元数据泄密:ComfyUI 默认把整段 workflow(含提示词与模型名)写进 PNG 的 tEXt 块,别人拖回 ComfyUI 就能还原。交付前必须用 PIL 重存清零。
- 文本编码器维度报错:
Given normalized_shape=[4096] ... got [1,512,12288]→ 装 Qwen3VL-TE 补丁节点,且 mmproj 必须与 GGUF 同目录、同名匹配。 - Unexpected architecture type: 'qwen_image21' → 就是上面那行 IMG_ARCH_LIST 补丁没打。
- --force-fp16 卡死:图灵上会卡在 Model Initializing、GPU 100% 空转。永久禁用。
- fp16 的各种变体都是无效功:
--fp16-unet对 GGUF 模型输出与 fp32 逐字节相同(no-op),dequant_dtype=fp16零提速。GGUF 路径上 fp32 就是地板。 - PowerShell 5.1 的 UTF-8 带 BOM:用它生成的 JSON 会被 aiohttp 拒收,改用无 BOM 写入。
- 分辨率非 16 倍数:1920×1080 直接报错,用 1920×1088。
- 后台常驻服务被会话超时杀掉:长任务里的 ComfyUI 会被 10 小时上限掐死,久驻服务要用计划任务保活(幂等启动、活着就跳过)。
七、许可红线(很重要)
- Qwen-Image-2.1 及其衍生(turbo / UC / GGUF)适用 Qwen RESEARCH LICENSE,仅限研究评估;商用交付(包括投标文件配图)需向官方购买授权。
- 需要可商用替代时,上一代 Qwen-Image 1.0 是 Apache-2.0。
- 另外:本地生成的图没有官方水印,但 AIGC 检测器仍能判"AI 生成";如果用于对外发布,按《标识办法》要求应加显式/隐式标识。
八、完整部署仓库
脚本、基准记录与全部踩坑都整理在 GitCode: qwen-image-2.1-lowvram-deploy (ComfyUI + GGUF Q4 / int8 双流水线,含 1660 Ti 实测数据)。
小结
6GB 显存不是"跑不动大模型"的判决书,但需要认清三件事:量化要选对(int8 > GGUF Q4)、计算精度别乱降(fp32 是地板)、显存靠流式换,不靠显存本身。把这三条吃透,一张 2019 年的显卡也能稳定产出 1024² 的图。