DiffSynth: Krea 2 Loader
Krea 2 Loader — Raw, Turbo, and a Qwen3-VL text encoder
- model_configs
- tokenizer_config
- vram_limit
- pipe
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'skrea/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_configgets a fourth ModelConfig onQwen/Qwen3-VL-4B-Instructwith 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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| torch_dtype | COMBO | bfloat16 | 3 options: bfloat16, float16, float32 |
| device | COMBO | cuda | 2 options: cuda, cpu |
| model_configs | DIFFSYNTH_MODEL_CONFIG_LIST | — | |
| tokenizer_configopt | DIFFSYNTH_MODEL_CONFIG | — | |
| vram_limitopt | DIFFSYNTH_VRAM_LIMIT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | DIFFSYNTH_PIPE | — |