Nodes/DiffSynth-ComfyUI/DiffSynth: Krea 2 Loader
ComfyUI Node

DiffSynth: Krea 2 Loader

Krea 2 Loader — Raw, Turbo, and a Qwen3-VL text encoder

By modelscope·Created about a month ago·Updated a day ago· 8
DiffSynth: Krea 2 Loader
  • model_configs
  • tokenizer_config
  • vram_limit
  • pipe
◄torch_dtypebfloat16►
◄devicecuda►

Krea 2 is a 12B diffusion transformer trained from scratch and opened in June 2026, and the interesting part isn't the size - it's that Krea confirmed the open checkpoint got an alignment pass the hosted version never received. Add a text encoder made of Qwen3-VL features with multilayer aggregation, Qwen-Image's VAE, an 8GB floor at fp8, and a community license that's free below $1M trailing revenue, and you have the year's best base to build on. Zero-day LoRA training support meant fine-tunes followed within a week.

This Loader brings the pipeline up under DiffSynth. Required: model_configs (merged, from DiffSynth: Merge ModelConfigs), torch_dtype (bfloat16 / float16 / float32), device (cuda / cpu). Optional: tokenizer_config, and vram_limit from a VRAM Limit node. Output: pipe → DiffSynth: Krea 2 Inference.

The three-corner wiring

Krea 2 keeps its text encoder in a completely different repo, so the ModelConfig block looks less tidy than the FLUX.2 pattern. From the Turbo template, on krea/Krea-2-Turbo:

  • krea/Krea-2-Turbo → turbo.safetensors - the transformer. For the raw checkpoint it's krea/Krea-2-Raw → raw.safetensors. One file, no sharding.
  • Qwen/Qwen3-VL-4B-Instruct → *.safetensors - the text encoder, and yes, it's a full vision-language model doing the encoding.
  • Qwen/Qwen-Image → vae/diffusion_pytorch_model.safetensors - somebody else's VAE, borrowed because it fits.
  • tokenizer_config gets a fourth ModelConfig on Qwen/Qwen3-VL-4B-Instruct with an empty pattern, which resolves the repo's tokenizer side.

Merge the first three, then hand the tokenizer one over separately. It's the same shape as Boogu and HiDream: weights merged, tokenizer declared on its own.

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

# the fp8/8GB path lives behind the quant extras:
pip install "diffsynth[quant] @ git+https://github.com/modelscope/DiffSynth-Studio.git"

The Qwen3-VL encoder is the largest single component here and it's a separate multi-GB download, so budget for it - if you already have a VL-4B in your own cache, a ModelConfig path can spare you the redownload. Default download source is ModelScope; Qwen repos live on HuggingFace too, so switch download_source if one is slow.

Where people get burned

Loading the wrong variant and keeping the wrong settings. Raw and Turbo are not two names for the same thing: Raw is 52 steps at CFG 3.5, Turbo is 8 steps at CFG 1, and running Turbo at 3.5 or Raw at 8 gives you the classic "this model is broken" impression. Settings live on the Inference node, so this is where that mistake gets made and where it gets fixed.

Second: don't skip tokenizer_config. The encoder is a VLM; without its tokenizer you get an error that reads like a missing model rather than a missing folder.

Third: the license is a real constraint, not a footnote - free commercial use below $1M trailing revenue, and above that you need terms. And as with every node here, an empty DiffSynth category in the node menu means DiffSynth-Studio didn't install; the pack imports it at startup.

CategoryDiffSynth/loader

Inputs (5)

NameTypeDefaultDescription
torch_dtypeCOMBObfloat163 options: bfloat16, float16, float32
deviceCOMBOcuda2 options: cuda, cpu
model_configsDIFFSYNTH_MODEL_CONFIG_LIST—
tokenizer_configoptDIFFSYNTH_MODEL_CONFIG—
vram_limitoptDIFFSYNTH_VRAM_LIMIT—

Outputs (1)

NameTypeDescription
pipeDIFFSYNTH_PIPE—