6GB 显存的老电脑能跑 Qwen-Image-2.1 吗?1660 Ti 实测配方

发布于 2026-10-21本地生图 · 低显存 · 实测

测试机: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 常驻内存、流式上卡,所以内存别同时开重载程序。
Qwen-Image-2.1 在 GTX 1660 Ti 6GB 上生成的乡村道路改造前后对比图
实测输出:同一条村道的「改造前 / 改造后」对比(1664×928,int8 质量档 25 步 cfg=1)。画面里不放任何文字——AI 渲染中文标注必然乱码,文字一律后期叠。

一、为什么不是"直接 pip 装 diffusers"

6GB 显存跑 20B 级 DiT,天真做法会在加载阶段就 OOM。可行的组合是三件事叠加:

  1. 量化:DiT 用 GGUF(Q4_K_M,约 4.2GB)或 int8(7.26GB,靠流式上卡);文本编码器也必须量化(Q4_K_M,5.03GB)。
  2. 低显存模式:ComfyUI 的 --lowvram,把权重按需换入换出。
  3. 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。

Qwen-Image-2.1 在 6GB 显存上生成的完工道路效果图
同一台的产出:完工效果图(1664×928)。透视、光影与材质一致性是判断低显存方案"能不能用"的关键——不是能出图就行。

五、为什么 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 个必踩的坑

  1. PNG 元数据泄密:ComfyUI 默认把整段 workflow(含提示词与模型名)写进 PNG 的 tEXt 块,别人拖回 ComfyUI 就能还原。交付前必须用 PIL 重存清零。
  2. 文本编码器维度报错:Given normalized_shape=[4096] ... got [1,512,12288] → 装 Qwen3VL-TE 补丁节点,且 mmproj 必须与 GGUF 同目录、同名匹配。
  3. Unexpected architecture type: 'qwen_image21' → 就是上面那行 IMG_ARCH_LIST 补丁没打。
  4. --force-fp16 卡死:图灵上会卡在 Model Initializing、GPU 100% 空转。永久禁用。
  5. fp16 的各种变体都是无效功:--fp16-unet 对 GGUF 模型输出与 fp32 逐字节相同(no-op),dequant_dtype=fp16 零提速。GGUF 路径上 fp32 就是地板。
  6. PowerShell 5.1 的 UTF-8 带 BOM:用它生成的 JSON 会被 aiohttp 拒收,改用无 BOM 写入。
  7. 分辨率非 16 倍数:1920×1080 直接报错,用 1920×1088。
  8. 后台常驻服务被会话超时杀掉:长任务里的 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² 的图。

← 返回技术博客