TryOff Model Loader [ComfyUI-Flux-TryOff]
The loader that picks which CatVTON/Flux model actually does the job
- transformers_config
- MODEL
Every workflow in ComfyUI-Flux-TryOff starts here. This is the node that loads the actual clothing-editing transformer - the thing that understands garments at all - and hands it to whichever pipeline loader you're using. Pick wrong and everything downstream is confused; pick right and the rest of the graph is just plumbing.
What it actually is
Despite the name, this isn't a model loader in the ComfyUI sense of "load a checkpoint and get a MODEL you can sample with." It's a thin wrapper around diffusers' FluxTransformer2DModel.from_pretrained that pulls one of three Hugging Face fine-tunes of the Flux transformer down into ComfyUI/models/checkpoints automatically on first run:
xiaozaa/cat-tryoff-flux- the try-off model, the pack's whole reason to exist. Takes clothes off.xiaozaa/catvton-flux-beta- the newer try-on fine-tune (putting a garment on a person).xiaozaa/catvton-flux-alpha- the original CatVTON-style try-on weights. The sampleTryOn.jsonworkflow still uses it.
It all descends from nftblackmagic/catvton-flux, which wrapped CatVTON's in-context LoRA idea around FLUX.1-dev-fill. The original was famously fiddly - a Windows-hostile requirements file, a hard 24GB VRAM floor, needing a HF token, no way to draw a mask in its Gradio demo. This pack's contribution is making that usable inside ComfyUI with auto-downloads, CPU offload, and quantization. The model loader is step one of that.
The inputs that matter
Only two required inputs, and you'll only ever touch one of them most of the time:
- model_name - the three choices above. For try-off use
cat-tryoff-flux. For try-on, beta over alpha unless you're reproducing an old workflow. There's no right answer for "which one" beyond matching the task. - device -
cudaorcpu. You wantcuda. CPU with a 12B transformer is a hobby you'll abandon fast.
The one optional input is transformers_config, which comes from the TryOff Quantizer node. Wire it up and the model loads quantized (8-bit/4-bit) instead of full bf16 - the difference between fitting on 16GB and not. More on that in the quantizer's own article.
Where it fits
The node outputs a single MODEL - the transformer - which feeds into either FluxFill Pipeline Loader (the modern path, everything auto-downloads) or the legacy FluxFill Model Loader (needs your own local FLUX.1-dev). Don't run the graph until the pipeline loader is in place; a bare transformer does nothing by itself.
Install & gotchas
ComfyUI Manager: search "ComfyUI-Flux-TryOff" and install. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/asutermo/ComfyUI-Flux-TryOff
Restart ComfyUI. First run downloads the model automatically - a few GB into models/checkpoints, no HF token needed. The pack needs diffusers>=0.32.2, transformers>=4.38.2, accelerate, and numpy<2.0 (pinned - old numpy<2 on purpose). If you quantize, add bitsandbytes yourself; it's not in the requirements file.
Two things the author is upfront about: it's tested on a 4080 and "quite slow" - you want a 4090 or better for anything resembling performant, and even then expect minutes per image. And the sample workflows get their mask from SegFormer via ComfyUI LayerStyle, which you install separately. The most common real-world failure is exactly that missing piece - the SegFormer model itself has to be cloned into ComfyUI/models, not just the node pack.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 3 options: xiaozaa/cat-tryoff-flux, xiaozaa/catvton-flux-beta, xiaozaa/catvton-flux-alpha | |
| device | COMBO | 2 options: cuda, cpu | |
| transformers_configopt | transformers_config | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |