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上测试通过。


使用方法:

  1. 将此文件放入ComfyUI的custom_nodes目录中。

  2. 用文本编辑器打开,修改设置。

  3. 重启ComfyUI。

  4. 在工作流中添加“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层)。

此模型生成的图像

未找到图像。