Z-image / Lumina 2 / Newbie fp16 ComfyUI plugin for old Nvidia GPUs
详情
下载文件
模型描述
一个非常“脏”的ComfyUI插件,用于将基于Lumina 2的模型以“安全”方式在旧款NVIDIA显卡(RTX 20xx及更早型号)上使用fp16。
基于Lumina 2的模型包括:Z-Image、Lumina 2 和 NewBie。
此补丁可处理fp16模式下的溢出问题:若检测到溢出,会自动在fp32下重新计算该层。无需裁剪,结果完全一致,速度比fp32快2~4倍。
需澄清的是,此插件未作为常规插件上传至GitHub,因为它非常“脏”。“脏”意味着它直接热补丁(monkey patch)了ComfyUI的核心代码。从编程角度看,这种方法非常糟糕,但这是我能想到的最简单方案。
已在ComfyUI v0.7上测试通过。
使用方法:
将此文件放入ComfyUI的
custom_nodes目录中。用文本编辑器打开,修改设置。
重启ComfyUI。
在工作流中添加“ModelComputeDtype”节点,并将dtype设置为“fp16”。
注意:
该插件在ComfyUI加载时会直接修补其代码。不存在独立节点,所有设置会立即全局生效。
“降低权重”
一种线性代数技巧,可避免绝大多数(90%)溢出,且不影响最终结果。(基本原理:若 A × B 溢出,则改为 (A / 32) × B × 32)
加载模型时会修改权重。
因此不支持LoRA:基础模型权重已被修改,LoRA权重补丁将失效。
但你可以提前合并LoRA并保存检查点。请注意:在生成检查点时需禁用此功能。
支持fp16/bf16/缩放fp8模型。
不支持纯fp8/gguf模型。
关于Z-Image的说明:
所有溢出均可“安全”处理,无需裁剪,结果完全一致。
若启用“降低权重”,则完全不会发生溢出。
关于Lumina 2的说明:
所有溢出均可“安全”处理,无需裁剪,结果完全一致。
若启用“降低权重”,仅需重新计算2个层(共30层)。
关于NewBie的说明:
NewBie 不支持fp16,与Lumina 2相同。我不清楚其作者为何在diffusers中声称支持fp16,可能是复制粘贴错误。
文本嵌入必须被裁剪,因为其在进入DiT之前就已溢出。
若启用“降低权重”,仅需重新计算2个层(共40层)。

