Nodes/DiffSynth-ComfyUI/DiffSynth: FLUX Loader
ComfyUI Node

DiffSynth: FLUX Loader

FLUX Loader — one node for a dozen FLUX.1-era checkpoints

By modelscope·Created about a month ago·Updated a day ago· 8
DiffSynth: FLUX Loader
  • model_configs
  • tokenizer_1_config
  • tokenizer_2_config
  • nexus_gen_processor_config
  • step1x_processor_config
  • vram_limit
  • pipe
◄torch_dtypebfloat16►
◄devicecuda►

FLUX.1 was the 12B family that replaced SDXL as the quality bar in August 2024, and by mid-2026 it's the thing new models get benchmarked against rather than the thing you reach for first. Dev is non-commercial, Schnell is Apache 2.0 and fast, and a small ecosystem of checkpoints grew on top of both - Kontext for editing, Fill for inpainting, Redux for image prompting, Flex.2 for control, plus IP-Adapter and ControlNet paths.

This one node is the loader for all of them. That's the point and also the source of confusion: the sockets were generated from the DiffSynth FLUX pipeline's own signature, so they cover the union of every variant, not just the one you downloaded.

Inputs

Required: model_configs (merged, from DiffSynth: Merge ModelConfigs), torch_dtype (bfloat16 / float16 / float32), device (cuda / cpu).

Optional, and only some of these apply to you:

  • tokenizer_1_config and tokenizer_2_config - FLUX.1 has two text encoders (CLIP plus T5-XXL), so it has two tokenizer directories. Declare them as separate ModelConfigs when a variant needs them.
  • nexus_gen_processor_config and step1x_processor_config - processor directories for the NexusGen and Step1X variants. Ignore them unless you're loading those checkpoints.
  • vram_limit - from a VRAM Limit node.

Output: pipe → DiffSynth: FLUX Inference (the big one with all the optional image sockets).

The dev wiring from the template: black-forest-labs/FLUX.1-dev → flux1-dev.safetensors, text_encoder/model.safetensors, text_encoder_2/*.safetensors, ae.safetensors, all four merged. The Flex.2 template keeps the same three support files and swaps only the transformer line - ostris/Flex.2-preview → Flex.2-preview.safetensors with FLUX.1-dev's encoder and VAE. That's the pattern for every variant in this family: one transformer swap, everything else stays.

Install

# ComfyUI Manager: search "DiffSynth-ComfyUI" → Install → restart

pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes
git clone https://github.com/modelscope/DiffSynth-ComfyUI.git
cd .. && python main.py

# this is the FLUX pack where quantization actually earns its keep:
pip install "diffsynth[quant] @ git+https://github.com/modelscope/DiffSynth-Studio.git"

FLUX.1-dev is gated on HuggingFace, so a download_source: huggingface declaration will need a token in your environment.

Where people get burned

No GGUF here. If your FLUX workflow depends on Q4-Q8 GGUF files - which is how most people fit 12B on an 8-12GB card - this pack won't take them; it loads safetensors through DiffSynth. The small-card path is instead torch_dtype (fp16 where the card lacks bfloat16), a Quantization Config on the transformer, and CPU offload in the VRAM Config node. Dev needs around 12GB in practice, Schnell less, and NF4 has been the community's way down to 6GB since 2024.

Two smaller ones: a Schnell checkpoint loaded with dev-style settings (or the reverse) produces the kind of output that makes you think the install is broken - Schnell is a 4-step model, dev isn't. And if the DiffSynth node category is empty, DiffSynth-Studio isn't installed; this pack registers nothing when its import diffsynth fails.

CategoryDiffSynth/loader

Inputs (8)

NameTypeDefaultDescription
torch_dtypeCOMBObfloat163 options: bfloat16, float16, float32
deviceCOMBOcuda2 options: cuda, cpu
model_configsDIFFSYNTH_MODEL_CONFIG_LIST—
tokenizer_1_configoptDIFFSYNTH_MODEL_CONFIG—
tokenizer_2_configoptDIFFSYNTH_MODEL_CONFIG—
nexus_gen_processor_configoptDIFFSYNTH_MODEL_CONFIG—
step1x_processor_configoptDIFFSYNTH_MODEL_CONFIG—
vram_limitoptDIFFSYNTH_VRAM_LIMIT—

Outputs (1)

NameTypeDescription
pipeDIFFSYNTH_PIPE—