目录

4070 12GB 跑通 Qwen-Image-Edit 2511 NSFW:从 GGUF 安装到 mmproj 命名踩坑全纪录

一张 RTX 4070 12GB 显卡,从零跑通 Qwen-Image-Edit 2511 NSFW 模型的完整排障之路

4070 12GB 跑通 Qwen-Image-Edit 2511 NSFW:从 GGUF 安装到 mmproj 命名踩坑全纪录

前言

如果你有一张 RTX 4070(12GB 显存),想在 ComfyUI 里跑 Qwen-Image-Edit 2511 的 NSFW 二次训练模型,这篇文章记录了我从模型选择到最终跑通的所有坑点。整个过程涉及 GGUF 量化档位选择、ComfyUI-GGUF 节点安装、文本编码器维度不匹配、显存 offload 瓶颈优化,以及最后那个让人崩溃的 mmproj 文件命名问题。

每一步都有截图级别的细节和日志分析,确保你不用重复踩这些坑。

RTX 4070 12GB 显存与 Qwen-Image-Edit 2511 GGUF 模型大小对比示意

先说实测最终使用配置:

组件文件大小
Unet(主模型)Qwen-Rapid-NSFW-v23_Q4_K.gguf13.34GB
文本编码器Qwen2.5-VL-7B-Instruct-UD-Q4_K_XL.gguf4.79GB
视觉塔Qwen2.5-VL-7B-Instruct-mmproj-BF16.gguf1.35GB
加速 LoRAQwen-Image-Edit-2511-Lightning-4steps-V1.0-bf16.safetensors849.6MB
VAEqwen_image_vae.safetensors253.8MB
Image-Edit-Qwen-Image-2511加载模型

enable_turbo_mode关闭,20步实跑数据:

[INFO] gguf qtypes: F32 (291), BF16 (226), F16 (2)                                                                                                          17:42 [20/146]
[INFO] CLIP/text encoder model load device: cuda:0, offload device: cpu, current: cpu, dtype: torch.float16
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] Requested to load QwenImageTEModel_
[INFO] loaded completely; 7220.68 MB usable, 6222.63 MB loaded, full load: True
[INFO] Unloaded partially: 1343.96 MB freed, 4878.66 MB remains loaded, 58.49 MB buffer reserved, lowvram patches: 0
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] loaded completely; 7257.49 MB usable, 6222.63 MB loaded, full load: True
[INFO] gguf qtypes: F16 (1093), F32 (1), Q8_0 (30), Q4_K (578), Q6_K (232)
[INFO] model weight dtype torch.bfloat16, manual cast: None
[INFO] model_type FLUX
[INFO] Requested to load QwenImage
[INFO] loaded partially; 7068.46 MB usable, 6979.79 MB loaded, 5852.39 MB offloaded, 88.61 MB buffer reserved, lowvram patches: 0
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [03:23<00:00, 10.17s/it]
[INFO] Requested to load WanVAE
[INFO] Unloaded partially: 3444.87 MB freed, 3534.91 MB remains loaded, 91.23 MB buffer reserved, lowvram patches: 0
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] Prompt executed in 226.46 seconds

[INFO] got prompt
[INFO] loaded partially; 6831.03 MB usable, 6742.36 MB loaded, 6089.82 MB offloaded, 88.61 MB buffer reserved, lowvram patches: 0
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [03:41<00:00, 11.05s/it]
[INFO] Requested to load WanVAE
[INFO] Unloaded partially: 2448.94 MB freed, 4293.42 MB remains loaded, 88.61 MB buffer reserved, lowvram patches: 0
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] Prompt executed in 223.05 seconds

[INFO] got prompt
[INFO] loaded partially; 7730.71 MB usable, 7659.90 MB loaded, 5172.28 MB offloaded, 70.82 MB buffer reserved, lowvram patches: 0
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [03:30<00:00, 10.55s/it]
[INFO] Requested to load WanVAE
[INFO] Unloaded partially: 3729.65 MB freed, 3930.25 MB remains loaded, 91.23 MB buffer reserved, lowvram patches: 0
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] Prompt executed in 213.91 seconds

enable_turbo_mode开启,4步实跑数据:速度是快了,但一致性和整体质量不好

[INFO] got prompt
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] Requested to load QwenImageTEModel_
[INFO] loaded completely; 7142.80 MB usable, 6222.63 MB loaded, full load: True
[INFO] Requested to load QwenImage
[INFO] loaded partially; 7569.71 MB usable, 7477.88 MB loaded, 5354.30 MB offloaded, 91.23 MB buffer reserved, lowvram patches: 0
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:25<00:00,  6.28s/it]
[INFO] Requested to load WanVAE
[INFO] Unloaded partially: 3639.12 MB freed, 3838.76 MB remains loaded, 175.59 MB buffer reserved, lowvram patches: 120
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] Prompt executed in 32.88 seconds

[INFO] got prompt
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] Requested to load QwenImageTEModel_
[INFO] Unloaded partially: 3405.49 MB freed, 433.27 MB remains loaded, 175.59 MB buffer reserved, lowvram patches: 235
[INFO] loaded completely; 6876.47 MB usable, 6222.63 MB loaded, full load: True
[INFO] loaded partially; 7513.40 MB usable, 7422.12 MB loaded, 5410.05 MB offloaded, 91.23 MB buffer reserved, lowvram patches: 0
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 4/4 [00:42<00:00, 10.75s/it]
[INFO] Requested to load WanVAE
[INFO] Unloaded partially: 3937.81 MB freed, 3484.31 MB remains loaded, 175.59 MB buffer reserved, lowvram patches: 368
[INFO] Model WanVAE prepared for dynamic VRAM loading. 241MB Staged. 0 patches attached. Force pre-loaded 60 weights: 61 KB.
[INFO] Prompt executed in 50.78 seconds

第一步:模型选择与显存规划

显存是硬约束

Qwen-Image-Edit 2511 的 NSFW 二次训练版本主要有这些:

模型名称类型特点
Qwen-Rapid-AIO-NSFW(v23)Checkpoint 聚合模型社区持续迭代,目前最成熟的 NSFW 版本
WuJi_Qwen2511-AIO-NSFWCheckpoint以 v23 为基础加强一致性
Qwen-Image-Edit NSFW 细节控Checkpoint蔡子东制作,专门修正身体细节
Qwen_ImageEdit_2511_NSFW_v1.0完整整合包含 GGUF/FP8 多版本,需 12GB+

但关键问题是:你的显存能装下哪个?

对于 RTX 4070 12GB:

量化档位文件大小4070 12GB 理论上是否适合
Q2_K7.44GB可以,但质量损失明显
Q3_K10.05GB推荐,留约 2GB 给编码器和 VAE
Q4_K13.34GB不推荐,已超过显存总量
Q5_K 以上15GB+完全不适合

下载地址:

https://www.modelscope.cn/models/hf/Arunk25-Qwen-Image-Edit-Rapid-AIO-GGUF/tree/master/v23

先测试选择:Qwen-Rapid-NSFW-v23_Q3_K.gguf(10.05GB)。Q4_K 虽然质量更好,但 13.34GB 已经超过 12GB 显存总量,会强制 offload 到内存导致速度骤降。

经验教训:文件体积必须明显小于显卡总显存,要给文本编码器(2-4GB)和 VAE 留出空间。通常需要文件体积之外再预留 30%-50% 的显存空间给运行时开销。

Arunk25-Qwen-Image-Edit-Rapid-AIO-GGUF下载

第二步:安装 GGUF 支持节点

ComfyUI 不识 GGUF

下载好 .gguf 文件后,你会发现 ComfyUI 的 UNETLoader 节点下拉框里根本看不到 .gguf 文件——因为 ComfyUI 核心不认识这个格式。

解决方案:安装 ComfyUI-GGUF 节点包(city96 制作,230万+ 下载量)。

安装步骤:

  1. 打开 ComfyUI Manager,搜索 “gguf”
  2. 找到 ComfyUI-GGUF,点击安装
  3. 重启 ComfyUI(必须重启,不会自动生效)

装完还要换节点

装好 GGUF 节点包后,还需要把工作流里的 UNETLoader 节点换成 UnetLoaderGGUF(GGUF 节点包自带的专用加载节点),这样才能在下拉框里看到并选中你的 .gguf 文件。

ComfyUI 节点替换对比:UNETLoader 换为 UnetLoaderGGUF

完整排查顺序

  1. 装 ComfyUI-GGUF 节点包 → 重启 ComfyUI
  2. 删除/替换原生 unet 加载节点 → 改用 UnetLoaderGGUF
  3. 确认 .gguf 文件放在 ComfyUI/models/unet/models/diffusion_models/ 目录
  4. clip_name 和 vae_name 不需要换 GGUF 格式,safetensors 即可

第三步:文本编码器维度不匹配

报错信息

装好 GGUF 节点、选中模型后,第一次运行就报了这个错:

RuntimeError: Given normalized_shape=[3584], expected input with shape [*3584], 
but got input of size[1, 232, 4096]

根因分析

日志里最关键的一行是:Requested to load Qwen3VLTEModel_

这说明当前 clip_name 选的是 Qwen3-VL 系列文本编码器,隐藏层维度是 4096。但 Qwen-Rapid-NSFW 是基于 Qwen-Image-Edit-2511 训练的,内部的 txt_norm 层硬编码为期望 3584 维输入(Qwen2.5-VL-7B 的维度)。

简单说:unet 和文本编码器"不是一对",版本对不上。

解决方法

clip_nameqwen3vl_8b_fp8_scaled.safetensors 换成 qwen_2.5_vl_7b_fp8_scaled.safetensors(约 8.74GB)。

下载地址:

  • 官方:https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/blob/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors
  • 镜像:https://hf-mirror.com/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors

放置位置:/data/models/text_encoders/

踩坑提醒:文件下载好后不等于切换好了。必须手动点开 clip_name 下拉框重新选中文件,刷新浏览器页面让新文件出现在列表里,然后保存工作流再执行。


第四步:速度瓶颈——显存 offload 之谜

维度修好了,但速度慢得离谱

维度问题解决后,40步生成跑了 6 分 55 秒(10.40s/it),降到 20 步后反而变成 7 分 09 秒(21.47s/it)——步数减半,总时间几乎没变。

日志里的真相

loaded partially; 6472.74 MB usable, 6425.36 MB loaded, 3266.88 MB offloaded

模型总共约 9.7GB,但 12GB 显存只能装下 6.4GB,剩下 3.27GB 要在每一步都在 CPU 和 GPU 之间来回搬运。这就是 offload 造成的速度瓶颈。

真正的罪魁祸首:CLIP 编码器太大

对比社区两位用户的配置:

项目我(慢)12400F+4060 用户(快)
Unet 量化Q3_KQ6K
CLIP/文本编码器fp8(7910MB)Q4KM(GGUF 量化,约 2-3GB)
单步耗时10-21 秒/it换算约 80-90 秒/张

fp8 版本的文本编码器占了近 8GB 显存,跟主模型抢显存空间,导致主模型被迫 offload 更多权重。而对方用的是 GGUF 量化版 CLIP,体积小得多,把大部分 VRAM 让给了主模型。

显存分配对比:fp8 CLIP vs GGUF Q4KM 对 12GB 显存的影响

解决方案:换成 GGUF 量化版 CLIP

Qwen2.5-VL-7B-Instruct-GGUF下载

下载地址:

https://huggingface.co/unsloth/Qwen2.5-VL-7B-Instruct-GGUF/tree/main

下载 unsloth/Qwen2.5-VL-7B-Instruct-GGUF 仓库中的文件:

  • Qwen2.5-VL-7B-Instruct-Q4_K_M.gguf(约 4.36GB)——主文本编码器权重
  • mmproj-BF16.gguf(约 1.35GB)——视觉塔配套文件(必须搭配下载,缺一不可

注意:GGUF 格式的 CLIP 文件不能用原生 CLIPLoader 节点加载,需要用 ComfyUI-GGUF 节点包里的 CLIPLoaderGGUF 专用节点。

Qwen2.5-VL-7B-Instruct-GGUF下载

第五步:mmproj 文件命名——一个下划线引发的崩溃

新的报错

下载好两个 GGUF 文件放进去后,新的报错出现了:

Cant find mmproj file for Qwen2.5-VL-7B-Instruct-Q4KM.gguf 
matching qwen2.5-vl-7b-instruct! Qwen-Image-Edit will be broken!

根因:文件名被改动

ComfyUI-GGUF 的 CLIP 加载器会自动在同目录下按文件名规则匹配 mmproj 文件。但下载的文件可能被重命名过(比如少了下划线),导致自动匹配算法认不出对应关系。

正确的命名规则

mmproj 文件名必须以主文件名(去掉量化后缀)开头,中间包含 “mmproj” 关键词:

mmproj-BF16.gguf  →  Qwen2.5-VL-7B-Instruct-mmproj-BF16.gguf

命名规则:主文件名前缀 + mmproj + 精度标识

操作步骤

  1. mmproj-BF16.gguf 重命名为 Qwen2.5-VL-7B-Instruct-mmproj-BF16.gguf
  2. 两个文件放在完全相同的目录下(不能一个在根目录一个在子文件夹)
  3. 重启 ComfyUI(不只是刷新页面)
  4. 在 CLIPLoaderGGUF 节点里只选择主文件,加载器会自动找匹配的 mmproj
mmproj 文件命名规则对比:错误命名 vs 正确命名

验证方法

控制台日志里如果看到类似 loading mmproj for Qwen2.5-VL-7B-Instruct-Q4_K_M 的信息,就说明匹配成功了。


测试可用配置一览

经过以上所有坑点修复后,RTX 4070 12GB 的测试可用配置:

组件文件大小
Unet(主模型)Qwen-Rapid-NSFW-v23_Q3_K.gguf10.05GB
文本编码器Qwen2.5-VL-7B-Instruct-Q4_K_M.gguf4.36GB
视觉塔Qwen2.5-VL-7B-Instruct-mmproj-BF16.gguf1.26GB
加速 LoRAQwen-Image-Edit-2511-Lightning-4steps可选

关键节点

  • Unet 加载:UnetLoaderGGUF
  • CLIP 加载:CLIPLoaderGGUF
  • 步数:20 步(配合 Lightning-4steps 可进一步加速)

总结

整个排障过程的核心教训:

  1. 显存规划要算总账:不只是 unet 体积,还要加上 CLIP 编码器、VAE 和运行时开销
  2. GGUF 节点包是必须的:ComfyUI 核心不支持 GGUF,必须装 ComfyUI-GGUF
  3. 文本编码器要和 unet 配对:Qwen-Image-Edit-2511 需要 Qwen2.5-VL(3584 维),不是 Qwen3-VL(4096 维)
  4. CLIP 也要量化:fp8 版本太大,换成 GGUF Q4KM 能大幅减少显存争抢
  5. mmproj 命名有规则:主文件名前缀 + mmproj + 精度标识,不能乱改名

希望这篇文章能帮你少踩几个坑。


关联阅读\n\n- [[Qwen-Image-Edit]]\n- [[模型下载改HF]]\n- [[Ideogram 4安全过滤]]\n\n—\n\n## 参考来源


–全文完–

感谢阅读
若你有故事想讲、有困惑想聊、或是想找个人说说心里话,甚至只是吐槽发泄一下情绪,都欢迎来找我聊聊:   《内容已折叠,点击展开》

希望我写的每一个字,成为我自己和某个人活下去、拼下去的力量。                     《内容已折叠,点击展开》

“技术终归是工具,而我们一次次认真把问题理顺,守住的其实不只是页面样式和代码输出,还有那一点不愿被混乱打败的心气,是每一个深夜仍愿点灯前行的人。”

转载请注明来自https://oklife.me。

文尾配图水墨画图片