ClipProj:在 ComfyUI 中将 MiniMax H3 的 32B 文本编码器替换为 4B

ComfyUI Wikinews

一个 ComfyUI 自定义节点用 Qwen3-VL-4B 加上学习到的投影替换了 MiniMax H3 的 15.7 GB Qwen3-VL-32B 文本编码器,将条件 VRAM 降至 4.5 GB。

ComfyUI-ClipProj 是一个新的自定义节点,它将 MiniMax H3 的 Qwen3-VL-32B 文本编码器替换为体积小得多的 Qwen3-VL-4B,并配上一个学习到的线性投影,将条件阶段的 VRAM 占用从 15.7 GB 降至 4.5 GB投影矩阵见 Hugging Face)。DiT、VAE 和采样器均未改动:该节点返回一个行为与官方 CLIP 相同的对象,因此可以直接接入现有的 clip 输入,无需重新连线。

由投影后的 Qwen3-VL-4B 提供条件的完整 MiniMax H3 pipeline

完整的 pipeline:编码器、投影、条件、采样、解码和视频输出(examples/minimax_h3_clipproj.json)。

为什么它能大幅节省 VRAM

MiniMax H3 使用一个截断为 50 层的 Qwen3-VL-32B(NVFP4 格式下 15.7 GB),仅用于将提示词转换为 [seq, 5120] 的条件 tensor。ClipProj 将其替换为 Qwen3-VL-4B(2560 维),并加上一个学习到的线性映射,将其映射到 DiT 所期望的 5120 维空间:

cond = ((h - mean_in) / std_in) @ W * std_out + mean_out

实测编码器内存:

编码器配置VRAM
原始 Qwen3-VL-32B(NVFP4)15.7 GB
Qwen3-VL-4B + ClipProj(bf16)8.3 GB
Qwen3-VL-4B + ClipProj(fp8)5.2 GB
Qwen3-VL-4B + ClipProj(int8_convrot)4.5 GB

投影的学习方式

4B 和 32B 编码器共享相同的 tokenizer(151,936 个 token),因此同一个提示词在两个编码器中会在相同位置产生相同的 token。这使得逐位置的映射可以被学习。校准采用岭回归(ridge regression),而非训练:用两个模型对 N 个提示词进行编码,以流式方式累积 XᵀXXᵀY(内存占用恒定),然后求解。不需要梯度、不需要轮次、不需要学习率。

作者的测量结果(MEASUREMENTS.md)显示,在包含 2,000 个提示词的语料上,提示词间的余弦相似度约为 0.71。在实际生成中,该投影在简单提示词、结构化多镜头提示词(subject_definitions、带时间码的镜头、overall_soundscape)以及带首帧和末帧的 fl2va 上均表现良好。它同样能很好地应对编码器权重的替换:在 bf16 上校准的投影可以用于 abliterated fp8 变体和 int8_convrot

在 ComfyUI 中使用

安装节点:

cd ComfyUI/custom_nodes
git clone https://github.com/nicolab28/ComfyUI-ClipProj

重新启动 ComfyUI。没有 requirements.txt,节点仅导入 torch 和 ComfyUI 自身的模块。首次启动时会创建 ComfyUI/models/clip_projections/ 文件夹;将投影矩阵(mmh3-4b-ClipProj*.safetensorsmmh3-8b-ClipProj*.safetensors)放入其中。示例工作流位于 examples/ 中:将 minimax_h3_clipproj.json 拖到画布上即可。

ClipProj 提示词重写示例

一个将小型编码器与结构化 H3 提示词重写相结合的示例工作流(examples/rewrite_h3_prompt.json)。

当前状态

该节点的 0.1.4 版本会在加载替换编码器之前释放 GPU 显存(修复了两个编码器同时驻留时可能出现的 OOM 尖峰问题)、在重新加载时释放投影缓存,并让残差网络保持其保存时的精度。-mlp 矩阵现在为 fp16 格式,体积缩小一半(4B 为 240 MB,8B 为 288 MB)。

该项目明确是一个概念验证(proof of concept):仅在一套环境(Windows 11、NVIDIA RTX 3090 / 4070 / 3060、ComfyUI 0.31.0)上构建和测试,且探索范围刻意保持有限。预期会存在不完善之处和破坏性变更。

获取方式

评论

使用 GitHub 登录后即可参与讨论。

评论加载中…
ClipProj:在 ComfyUI 中将 MiniMax H3 的 32B 文本编码器替换为 4B | ComfyUI Wiki