MiniMax H3 Exact ClipProj 4B / 8B (Lazy)
The lazy CLIP loader that only materializes the 4B or 8B encoder you chose
- 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_profilefrom the H3 settings insidecine_linx:off,4b_v3.1, or8b_v3.1. - Profile
off→ it needsfallback_clipconnected, 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.safetensorsor the 8B equivalent) inmodels/clip_projections, and loads both through the ComfyUI-ClipProj node (ClipProjLoader) with the correct clip type (krea2for 4B,boogufor 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
offwith 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_projectionsspecifically. It doesn't searchcheckpointsortext_encodersfor 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — | |
| fallback_clipopt | CLIP | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| clip | CLIP | — |
| report | STRING | — |