Nodes/IAMCCS-nodes/MiniMax H3 Exact ClipProj 4B / 8B (Lazy)
ComfyUI Node

MiniMax H3 Exact ClipProj 4B / 8B (Lazy)

The lazy CLIP loader that only materializes the 4B or 8B encoder you chose

By IAMCCS·Created 11 months ago·Updated a day ago· 113
MiniMax H3 Exact ClipProj 4B / 8B (Lazy)
  • cine_linx
  • fallback_clip
  • clip
  • report

MiniMax H3 has an unusual text side. Its CLIP encoder is a Qwen3-VL variant, and you have a real choice to make about which one to run: the small 4B encoder is fast and cheap on VRAM but weaker at following complex prompts; the 8B is noticeably better but eats memory like a second model. The IAMCCS pipeline lets you pick per-shot through H3 Settings, and this node is the loader that honors the choice - lazily.

"Lazy" is doing real work here, not just marketing. ComfyUI normally evaluates every node whose inputs are connected. This loader's fallback_clip input is lazy, so you can wire the old heavy 32B/GGUF CLIP loader into it and that loader will sit there un-evaluated as long as the 4B/8B profile is active. Only the encoder you actually use gets loaded. For an omni model where the text encoder is competing with the 33B diffusion model and the audio VAE for the same VRAM, "only load what you're using" isn't a nicety, it's how the graph fits at all.

How it works

  • It reads a clipproj_profile from the H3 settings inside cine_linx: off, 4b_v3.1, or 8b_v3.1.
  • Profile off → it needs fallback_clip connected, and passes it straight through. That's the backwards-compatible route for workflows still on the historical CLIP loader.
  • Profile 4b/8b → it finds a ComfyUI-format Qwen3-VL-4B or 8B text encoder in your text-encoder paths, looks for the matching projection matrix (mmh3-4b-ClipProj-v3.1.safetensors or the 8B equivalent) in models/clip_projections, and loads both through the ComfyUI-ClipProj node (ClipProjLoader) with the correct clip type (krea2 for 4B, boogu for 8B).

It fails with precise, actionable errors when pieces are missing - it names the missing file and the required addon version rather than dying on an obscure import.

Inputs and outputs

Inputs: cine_linx (required - it decides everything) and fallback_clip (optional, lazy CLIP for the off profile).

Outputs: clip (the CLIP to feed conditioning) and report (which profile/encoder/projection loaded, and the load mode).

Install

Pack first:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Then the real prerequisites, which the README does not make obvious: ComfyUI-ClipProj 0.1.13 or newer, the Qwen3-VL 4B/8B text encoder files visible to ComfyUI, and the mmh3-{4b,8b}-ClipProj-v3.1.safetensors projections in models/clip_projections/. If the projection is missing, the node names the exact path it wants.

Where people get burned

  • Profile off with no fallback connected → hard error telling you to connect the historical CLIP loader or pick a 4B/8B profile. The lazy design means ComfyUI won't warn you at load time; you find out at run.
  • Forgetting to put the projection file in clip_projections specifically. It doesn't search checkpoints or text_encoders for the matrix.
  • The 4B vs 8B difference is a quality vs. memory trade, not a flavor choice. If shots suddenly get dumber at the prompt-following level after you "cleaned up" VRAM, check which profile you're on.
CategoryIAMCCS/MiniMax H3/Exact Memory

Inputs (2)

NameTypeDefaultDescription
cine_linxIAMCCS_SUPERNODE_LINX
fallback_clipoptCLIP

Outputs (2)

NameTypeDescription
clipCLIP
reportSTRING