Nodes/Eric_Krea2/Eric Krea2 Component Loader
ComfyUI Node

Eric Krea2 Component Loader

The Krea 2 loader with a save button and a box of spare parts

By EricRollei·Created 2 months ago·Updated about a month ago· 11
Eric Krea2 Component Loader
    • krea2_pipeline
    • settings
    base_pipeline_pathH:\Training\Krea-2-Turbo
    loader_presetcustom
    transformer_picknone
    transformer_path
    text_encoder_picknone
    text_encoder_path
    vae_picknone
    vae_path
    precisionbf16
    attention_backendauto
    devicecuda
    keep_in_vramtrue
    offload_vaefalse
    vae_tilingauto
    vae_tile_px0

    The plain Eric Krea2 Loader gets you running. The Component Loader is for when you want to run your way: it loads the same Krea2Pipeline, but every major component - transformer, text encoder, VAE - can be swapped for a different file, and the whole recipe can be saved as a named preset and recalled with one click.

    Start with base_pipeline_path, which is the full Krea 2 diffusers folder. It supplies the model_index.json, scheduler, tokenizer, and any component you don't override. Two things to know about it. First, the default is H:\Training\Krea-2-Turbo - again Eric's machine, so change it to your checkpoint folder. Second, and this matters more than any other knob here: the is_distilled flag in that folder's model_index.json decides the entire sampling regime. A Turbo checkpoint run against a Raw base renders blown and oversaturated, so make sure your base matches the checkpoint you intend to use.

    Then come the overrides. Each has a Pick dropdown (populated from ComfyUI's model folders) and a Path field, and the dropdown wins:

    • transformer_pick / transformer_path - swap the DiT itself. Single-file .safetensors/.gguf for the pick; a full diffusers folder via path. The .gguf gets dequantized on load.
    • text_encoder_pick / text_encoder_path - override the Qwen3-VL encoder, same story.
    • vae_pick / vae_path - swap the AutoencoderKLQwenImage VAE. This is how people run the FP8 conversion or a different VAE build without editing the base folder.
    • precision - bf16 default; GGUF is dequantized to whatever you set here.
    • attention_backend - auto (FlashAttention if present, else SDPA), flash, sage, or sdpa. auto is ~3x faster than sdpa on Blackwell and lossless; sage is fastest with a slight quality trade.
    • device - cuda, cuda:0, cuda:1, or cpu.
    • keep_in_vram - cache the assembled pipeline between runs; leave on.
    • offload_vae - keep the VAE on CPU during transformer inference to save ~1 GB of VRAM. Worth it on smaller cards.
    • vae_tiling / vae_tile_px - tiled decode/encode policy (auto tiles above 1024 px). off is a diagnostic for tile-seam hunting; the tooltip's trick - if the pattern pitch moves when you change vae_tile_px, it's tiling - is genuinely how you tell seam artifacts from generation artifacts.

    The loader_preset dropdown is where this node earns its keep over the plain Loader. Pick a saved recipe and the paths, precision, attention backend, and device all load in. The ★ Save button writes the current panel to loader_presets.json, and the dropdown refreshes on graph reload. The samples shipped in the preset list (DarkBeast-..., JibMixV10, Kreamania bf16) show this is a node built by someone who A/Bs fine tunes for a living - you're inheriting his habits, which is fine, but treat them as starting points.

    Outputs are krea2_pipeline (into Generate or Multi-Stage Ultra) and settings, a string recipe that Merge Settings can fold into your saved PNG metadata so the whole loader state is reproducible later.

    How to install

    Same pack as everything else: ComfyUI Manager → search "Krea2_ComfyUI_Advanced", or

    cd ComfyUI/custom_nodes
    git clone https://github.com/EricRollei/Krea2_ComfyUI_Advanced
    

    then restart. Requires a diffusers build that includes Krea2Pipeline (install from git with --force-reinstall, since the version string never bumped past 0.39.0.dev0) and transformers>=4.57.0 for Qwen3-VL. Weights are yours to supply - this pack drives the real Hugging Face pipeline, it doesn't bundle the model.

    Common issues

    • Blown/oversaturated Turbo renders. Base path points at a Raw folder (or the is_distilled flag is being read wrong). Load the matching checkpoint.
    • Presets not showing up. The dropdown refreshes on graph reload - restart or reload the workflow.
    • VAE seams in big decodes. Leave vae_tiling on auto; only flip to off to diagnose. Big non-tiled Wan-family decodes can leave a bottom-edge band and spike VRAM.
    CategoryEric/Krea2

    Inputs (15)

    NameTypeDefaultDescription
    base_pipeline_pathSTRINGH:\Training\Krea-2-TurboFull Krea 2 diffusers folder. Supplies model_index.json, scheduler, tokenizer, and any component you don't override below. NOTE: this folder's model_index.json is_distilled flag decides the whole sampling regime (Turbo: guidance forced 0, fixed distilled shift; Raw: real CFG + active negative prompt) - a Turbo checkpoint run against the Raw base renders blown/oversaturated. Default is Turbo as the common case (2026-07-28).
    loader_presetoptCOMBOcustomLoad a saved loader recipe (paths / precision / attention / device) into the panel for this run. 'custom' = use the panel as-is. Use the ★ Save Preset button to add one; the list refreshes on graph reload.
    transformer_pickoptCOMBOnonePick a transformer from models/diffusion_models/krea2/. When not 'none' this OVERRIDES the transformer_path field below. Single-file .safetensors/.gguf only - use the path field for a diffusers folder.
    transformer_pathoptSTRINGOverride transformer: diffusers folder, bare .safetensors/.bin/.pt, or .gguf (dequantized on load). Empty = use base. Ignored when transformer_pick above is set.
    text_encoder_pickoptCOMBOnonePick a text encoder from models/text_encoders/. When not 'none' this OVERRIDES the text_encoder_path field below.
    text_encoder_pathoptSTRINGOverride Qwen3-VL text encoder: HF/transformers folder, bare .safetensors, or .gguf. Empty = use base. Ignored when text_encoder_pick above is set.
    vae_pickoptCOMBOnonePick a VAE from models/vae/. When not 'none' this OVERRIDES the vae_path field below.
    vae_pathoptSTRINGOverride VAE (AutoencoderKLQwenImage): diffusers folder or bare .safetensors. Empty = use base. Ignored when vae_pick above is set.
    precisionoptCOMBObf16Compute dtype (bf16 recommended for Blackwell). GGUF is dequantized to this dtype.
    attention_backendoptCOMBOautoTransformer attention kernel. auto = flash if available else SDPA.
    deviceoptCOMBOcuda4 options: cuda, cuda:0, cuda:1, cpu
    keep_in_vramoptBOOLEANtrueCache the assembled pipeline between runs.
    offload_vaeoptBOOLEANfalseKeep the VAE on CPU during transformer inference (saves ~1 GB).
    vae_tilingoptCOMBOautoTiled-decode/encode policy for the pipeline VAE, honored by standard_decode/standard_encode everywhere. auto: tile only above 128 latent (>1024 px) - previous behavior. force: always tile. off: never tile - tile-seam A/B diagnostic; large non-tiled Wan-family decodes can leave a bottom-edge band and spike VRAM.
    vae_tile_pxoptINT00–2048Custom tile size in PIXELS (0 = VAE default). Needs >=256 to take effect; stride is 75% of tile. If the pattern pitch moves when you move this, the pattern IS tile seams.

    Outputs (2)

    NameTypeDescription
    krea2_pipelineKREA2_PIPELINE
    settingsSTRING