Simple Load FLUX.2
The loader that figures out which text encoder your FLUX.2 variant needs
- model
- clip
- vae
FLUX.2 is where model loading stops being a checklist and starts being a minefield, because "FLUX.2" is not one thing. There's FLUX.2 dev, Klein 4B, and Klein 9B/KV - different model sizes that expect different text-encoder conditioning, on a family that already swapped out FLUX.1's CLIP+T5 pair for a new-generation VLM encoder. Pick the wrong encoder for the variant you loaded and the results degrade subtly, or not at all load. SimpleSyrup.SimpleLoadFlux2 handles it the only sane way: it inspects the diffusion model you selected and chooses the structurally matched text encoder automatically.
That inspection is the headline feature, so it's worth being precise about. Other FLUX loaders assume one encoder pairing for everything. This one doesn't - the text_encoder tooltip spells it out: Auto detects dev, Klein 4B, or Klein 9B/KV from the loaded model and reports downloads through Comfy node progress. You pick the diffusion model, the node looks at what it actually is, and pulls the matching encoder family. If the required encoder file isn't on disk, it downloads the known, checksum-pinned version (same pinned-download machinery as the FLUX.1 loader - SHA-256 validated, visible progress, no guessing about "close enough" files). The VAE resolves the same way: auto finds or downloads the common checksum-pinned FLUX.2 VAE.
Inputs:
diffusion_model- the FLUX.2 model file. As with the FLUX.1 loader, this node never downloads the diffusion model - you supply that (Klein 4B at ~fp8 is the realistic consumer entry point; the full dev stack wants serious hardware).diffusion_weight_dtype- precision, defaultdefault; FP8 saves memory at slight quality cost.text_encoder- auto, or pick the encoder explicitly if you know your variant and want to control it.text_encoder_device- CPU saves VRAM and slows encoding. Given FLUX.2 is heavy, this is often the difference between fitting and not, so don't be shy about it.vae- auto, or an explicit VAE.
Outputs are the standard model, clip, vae, and everything downstream works exactly like any other loader. The clip output is the FLUX.2-appropriate encoder object, so your text-encode node sees a normal CLIP input even though what's behind it is new-generation.
Honest caveats. FLUX.2 dev in full precision wants an uncomfortable amount of VRAM (the community's numbers are 18-24GB even quantized, 80GB+ full precision), so most people are running Klein 4B - which is exactly the variant where the auto-detection saves you from the worst footgun, because its encoder differs from dev's. And no loader fixes the fact that FLUX.2 is slow; this one just makes sure the right parts are loaded before you start paying for it.
Install: the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Artificial-Sweetener/SimpleSyrup
cd SimpleSyrup && pip install -r requirements.txt
or ComfyUI Manager → search SimpleSyrup → Install → restart, with a current ComfyUI (v3 extension API). Downloads go through huggingface-hub, which the requirements cover. If auto-detection picks the wrong family, you can override with an explicit text_encoder - but with a pinned catalog and inspection up front, you shouldn't have to.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| diffusion_model | COMBO | FLUX.2 diffusion model to load. This node never downloads the diffusion model. | |
| diffusion_weight_dtype | COMBO | default | Weight precision for the diffusion model; FP8 uses less memory but can slightly change results. |
| text_encoder | COMBO | auto | Text encoder for FLUX.2. Auto detects dev, Klein 4B, or Klein 9B/KV from the loaded model and reports downloads through Comfy node progress. |
| text_encoder_device | COMBO | default | Device for the text encoder; CPU saves GPU memory but makes prompt encoding slower. |
| vae | COMBO | auto | VAE used to decode FLUX.2 latents. Auto finds or downloads the common checksum-pinned VAE with visible node progress. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | Loaded diffusion model for downstream MODEL inputs. |
| clip | CLIP | Loaded text encoder for downstream CLIP inputs. |
| vae | VAE | Loaded VAE used to encode images to latents and decode latents to images. |