Nodes/Diffusion_pipe_in_ComfyUI/Chroma模型配置器
ComfyUI Node

Chroma模型配置器

Wire up Chroma, the community's uncensored Flux-architecture base, for training

By TianDongL·Created 11 months ago·Updated 7 months ago· 69
Chroma模型配置器
    • model_path
    diffusers_path
    transformer_path
    flux_shifttrue

    If you want Flux-class quality without Black Forest Labs' license, Chroma is the community's answer - an 8.9B Apache 2.0 rework of Flux Schnell, crowdfunded and trained solo by LodestoneRock on roughly $220K of donated compute. The KB calls it "the closest thing the Flux architecture has to a Pony: the default recommendation for uncensored work on a modern base." ChromaModelNode is the piece of this pack that makes Chroma trainable from ComfyUI.

    What it does

    Standard model-config-node behavior: it collects file paths and emits a model_path config for GeneralConfig. But Chroma has a slightly unusual layout, and the inputs reflect it - Chroma's weights live as a single standalone transformer file, while its VAE and text encoder come from a regular Flux diffusers folder:

    • diffusers_path (required) - a full path to a FLUX.1-dev style diffusers folder, e.g. /data/models/FLUX.1-dev. This is where the pack pulls the VAE and text encoder from. The tooltip says "Flux diffusers" and the example is literally a FLUX.1-dev path, so if you already run Flux locally you likely have this.
    • transformer_path (required) - the Chroma single-model file, e.g. chroma-unlocked-v10.safetensors. That's the actual Chroma weights.
    • flux_shift (optional, default true) - the resolution-dependent timestep shift that biases sampling toward more noise. Chroma ships with this on by default here, and it's part of what makes the model behave - leave it unless you know why you're turning it off.

    One required input missing, one error on startup. The source checks both required paths and returns an error dict if either is empty, so this node will at least tell you loudly when you've forgotten something.

    Fitting it into the workflow

    Same skeleton as every training run in this pack: ChromaModelNodeGeneralConfig.model_config, alongside an AdapterConfigNode, a dataset config, and the optimizer. The README table gives Chroma LoRA ✅, full fine-tune ✅, and fp8/quantization ✅ - so you can go beyond LoRA here if you have the VRAM. One caution from the KB is worth carrying into your expectations: "LoRA training is gradient-fragile" on Chroma. Don't be shocked if the first run needs a lower rank or a gentler learning rate than you're used to from Flux itself.

    Installing the pack

    The usual drill for TianDongL/Diffusion_pipe_in_ComfyUI - it's the Linux/WSL2 branch (Windows has its own repo), and the submodules carry the actual training code:

    cd ComfyUI/custom_nodes/
    git clone --recurse-submodules https://github.com/TianDongL/Diffusion_pipe_in_ComfyUI.git
    git submodule update
    pip install -r Diffusion_pipe_in_ComfyUI/requirements.txt
    

    Then restart ComfyUI and import the example workflow from example_workflows/ - it's the fastest way to see the correct wiring, including this node.

    Common issues

    The classic stumble is assuming Chroma's single file is everything you need. It isn't - this node still wants a Flux diffusers folder for the VAE and text encoder, and pointing it at just the safetensors leaves you with an error dict. The other usual suspects are path problems: full absolute paths only, and remember the pack's WSL2 convention of Windows drive-letter paths (Z:/..., not /mnt/z/...). And if training starts but looks bad, revisit flux_shift and drop your LoRA rank before touching anything else.

    CategoryDiffusion-Pipe/Model

    Inputs (3)

    NameTypeDefaultDescription
    diffusers_pathSTRINGFlux diffusers模型文件夹的完整路径(用于加载VAE和text encoder,如:/data/models/FLUX.1-dev)
    transformer_pathSTRINGChroma单模型文件的完整路径(如:/data2/imagegen_models/chroma/chroma-unlocked-v10.safetensors)
    flux_shiftoptBOOLEANtrue分辨率相关的时间步偏移,向更多噪声偏移

    Outputs (1)

    NameTypeDescription
    model_pathmodel_path