Load CLIP (w/ Chroma T5 Options)
The CLIP loader with Chroma's tokenizer fix baked in
- clip_info
- clip
Chroma is the community's Apache-licensed, uncensored answer to Flux's licensing - LodestoneRock forked Flux Schnell (the only Apache tier of FLUX.1), stripped it down from 12B to 8.9B parameters, and retrained it on roughly 105,000 donated H100-hours, funded almost entirely by the community itself. It runs on a T5-XXL text encoder, no CLIP-L stage the way stock Flux uses one, and it's famously picky about prompting: short prompts underperform, verbose ones work much better.
Chroma is also picky about its T5 tokenizer settings. This node exists purely to save you from setting those by hand: it loads the CLIP component out of a clip_info bundle and applies Chroma's recommended T5 tokenizer options - minimum padding of 1, minimum length of 0 - automatically. If you've ever loaded Chroma through a generic CLIP loader and gotten inconsistent or subtly wrong results, a mismatched tokenizer padding setting is a real candidate for why.
How it fits the rest of the pack
clip_info is the same MODEL_INFO-family bundle used across Sage's loader nodes - it comes from a metadata-aware loader upstream (the README's "Load Checkpoint w/ Metadata" / "Load Diffusion Model w/ Metadata"), which hashes your file and pulls in whatever Civitai metadata is available, caching it locally. This node is the Chroma-specific sibling of the plain Sage_CLIPLoaderFromInfo - same idea, but with the tokenizer tweak already applied so you don't need a separate "set T5 options" step in your graph.
Inputs and outputs
Just one input, clip_info (the MODEL_INFO bundle), and one output, clip - a loaded CLIP model with Chroma's T5 tokenizer options already set, ready to feed into a text encoder node.
Installing it
Through ComfyUI Manager: search Sage Utils, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/arcum42/ComfyUI_SageUtils
cd ComfyUI_SageUtils
pip install -r requirements.txt
Restart ComfyUI afterward. This node doesn't download Chroma for you - you need the Chroma checkpoint and T5-XXL encoder in place separately (they're sizeable; Chroma at 8.9B parameters is noticeably slower than smaller models on midrange cards, and running it unquantized on 12GB VRAM is a common complaint - FP8 and GGUF builds exist if that's your situation).
Common issues
If you're using this node but not actually running Chroma, you don't need it - use the plain Sage_CLIPLoaderFromInfo instead, since the T5 padding tweak this node applies is specific to Chroma's training and isn't a general improvement for other CLIP models.
If your Chroma outputs look flat, generic, or ignore parts of your prompt, the more likely culprit is prompt length, not this node - Chroma was trained to expect verbose, descriptive prompts, and short ones reliably underperform on it regardless of tokenizer settings. Make sure clip_info is actually populated too: if the upstream loader couldn't hash-match your Chroma checkpoint against Civitai (common if you downloaded straight from HuggingFace and Civitai's copy has a different hash), the bundle may be missing metadata, though the CLIP load itself should still work since it doesn't depend on Civitai's response.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_info | MODEL_INFO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| clip | CLIP | The loaded CLIP model component with Chroma T5 tokenizer options applied. |