Earngenix Logo
Skip to main content

ComfyUI Workflow Guide · All Levels · Open Source

Krea 2 Character Consistency in ComfyUI: Full Workflow Guide

Keep the same character across as many poses and scenes as you want — no LoRA training, just one reference photo and Krea 2 Turbo. This guide covers every node, the exact instruction format that holds identity, and every failure mode that breaks it.

12 GB

Min VRAM

RTX 4090

Tested on

v0.3.7+

ComfyUI

All levels

Skill level

By Earngenix Team · · Tested on RTX 4090 (24 GB) · ComfyUI v0.3.7 · Model: krea2_turbo_bf16.safetensors

⚡ Quick Answer

To keep a character consistent in ComfyUI with Krea 2, load one reference photo, encode it through TextEncodeQwenImageEditPlus, and feed it into a ReferenceLatent node alongside your new-scene instruction. Krea 2 Turbo then generates the character in the new pose or setting while keeping the face, hair, and outfit close to the original. Minimum 12 GB VRAM for the FP8 model.

Getting the same character to show up correctly across ten different images used to mean training a LoRA on that character first. Krea 2 changes this — you can hand it one reference photo and a text instruction, and it generates a new pose or scene while keeping the face, outfit, and hairstyle close to the source. No training required.

This guide walks through the exact workflow: which nodes to connect, what each setting does, and how to write instructions that keep identity intact instead of drifting into a different-looking person by the third generation.

If you're working with Qwen Image Edit instead of Krea 2 — including multi-character scenes with two or more people in one frame — see the general ComfyUI character consistency guide. This page focuses specifically on the Krea 2 Turbo node chain.

Tested on: ComfyUI v0.3.7+, RTX 4090 (24 GB VRAM).
Minimum VRAM: 12 GB (FP8 model).

How Identity Is Preserved

Two separate paths carry your reference photo into the sampler, and both matter:

  • The text-encoder path — the reference image is fed into the Qwen3-VL text encoder alongside your instruction, so the encoder "sees" the image while it reads what you're asking for.
  • The image-latent path — the same reference image is separately VAE-encoded into a latent and merged into the conditioning through ReferenceLatent. This is the path doing most of the work to hold the face steady.
Warning: Skipping the VAEEncode → ReferenceLatent chain and relying only on the text-encoded reference will still run, but identity preservation drops noticeably. Both paths need to reach the sampler.

Example: One Reference, Two Scenes

Below is one reference photo and two separate generations from that same reference — swap in your own screenshots here. Click any image to zoom.

Reference photo of the character loaded into the LoadImage node — the source identity every output is checked against🔍 Click to zoom
Reference photo — the LoadImage input every output below is checked against.
Character generated seated in a purple velvet armchair against a red brick wall, identity preserved from the reference photo
🪑 Same reference · 1280×1280 · steps 12 · cfg 2.5
🔍 Click to zoom

New Pose + Setting — Luxury Hotel Lounge

Character generated in a second, different scene from the same reference photo, showing identity holding across separate generations
🌆 Same reference · 1280×1280 · steps 12 · cfg 2.5
🔍 Click to zoom

New Pose + Setting — Second Run, Same Reference

Character generated in a second, different scene from the same reference photo, showing identity holding across separate generations
🌆 Same reference · 1280×1280 · steps 12 · cfg 2.5
🔍 Click to zoom

New Pose + Setting — Third Run, Same Reference

Tip: Write the "KEEP" instruction first, before describing the new scene. Putting preservation language at the start of the prompt weights it more heavily than burying it at the end.

What You Need

Krea 2 ships as separate model, text encoder, and VAE files — ComfyUI does not bundle them into one checkpoint. Download these before you start.

FileSizeVRAMNotesDownload
krea2_turbo_fp8_scaled.safetensors~13 GB12 GB+Recommended for most users↗ Download
krea2_turbo_bf16.safetensors~24.5 GB24 GB+Full precision — for 24 GB+ cards only↗ Download
qwen3vl_4b_fp8_scaled.safetensors~4 GBRequiredReads the reference image and your instruction together↗ Download
Wan2_1_VAE_bf16.safetensors~242 MBRequiredDecodes the finished latent to a PNG↗ Download
FP8 vs BF16 — which to download? The FP8 model is roughly half the file size of BF16 with virtually no visible difference in output quality. If your GPU has under 24 GB VRAM, use FP8. The BF16 version only makes sense on a 24 GB+ card, and even then it's mostly for maximum quality rather than a visible identity improvement.

Pre-flight checklist

12–16 GB VRAM: Use the FP8 model.
24 GB+ VRAM: FP8 or BF16, either works.
8 GB or less: Not reliably runnable — expect out-of-memory errors.
ComfyUI v0.3.7+: TextEncodeQwenImageEditPlus and ReferenceLatent are recent core nodes.

Where to Place the Files

Each file type goes in a different subfolder under ComfyUI's models/ directory. A file in the wrong folder means ComfyUI can't find it and the dropdown stays empty.

ComfyUI / models / folder structure
ComfyUI/
└── models/
├── diffusion_models/
│ └── krea2_turbo_fp8_scaled.safetensorsmain model
│ └── krea2_turbo_bf16.safetensorsalt: full precision
├── text_encoders/
│ └── qwen3vl_4b_fp8_scaled.safetensorstext encoder
└── vae/
└── Wan2_1_VAE_bf16.safetensorsimage decoder
diffusion_models/ — main model (pick one)text_encoders/ — text + image encodervae/ — image decoder
Warning: Do not place the diffusion model inside models/checkpoints/. Krea 2 uses the diffusion_models folder specifically.

Download the Workflow

🔧 Krea 2 Character Consistency — Workflow Download

Download the ready-to-use ComfyUI workflow JSON. Drag it onto the canvas, load your reference photo, and generate.

How to Load the Workflow JSON into ComfyUI

  1. Download the .json file to your computer.
  2. Open ComfyUI in your browser — usually at http://127.0.0.1:8188.
  3. Drag the .json file directly onto the ComfyUI canvas. Drop it anywhere on the empty grey area.
  4. The workflow loads automatically. You should see the model loaders, image loader, prompt, and sampling groups appear on the canvas.
  5. If you see only red error blocks, jump to the Troubleshooting section below.
Krea 2 character consistency workflow loaded on the ComfyUI canvas — model loaders, image loader, prompt, and sampling groups visible🔍 Click to zoom
Screenshot: The loaded workflow on the ComfyUI canvas.

Workflow Structure: What Each Node Does

Eleven nodes, connected left to right. Here's what each one controls:

NodeWhat it does
VAELoaderLoads the VAE. Feeds two places: final image decode, and reference-photo encode.
CLIPLoaderLoads the Qwen3-VL text+image encoder. Type must be set to "krea2".
UNETLoaderLoads the Krea 2 Turbo diffusion model — the model that generates the image.
LoadImageYour reference photo of the character. Feeds both TextEncodeQwenImageEditPlus nodes below.
TextEncodeQwenImageEditPlus (Positive)Reference image + your instruction — what to preserve and what to change.
TextEncodeQwenImageEditPlus (Negative)Text-only prompt describing what to reject (this workflow rejects diptych/split-screen output).
VAEEncodeConverts the reference photo into a latent — this is what anchors identity, not just the text path.
ReferenceLatentCombines positive conditioning with the VAE-encoded reference latent. This is the node that keeps the face consistent.
EmptySD3LatentImageSets the output canvas size, fed by the width/height nodes.
KSamplerRuns generation using the model, positive conditioning, negative conditioning, and starting latent.
VAEDecode → SaveImageConverts the finished latent into a PNG and writes it to disk.
CLIPLoader node in ComfyUI with the type dropdown set to krea2🔍 Click to zoom
Screenshot: CLIPLoader with type set to 'krea2'. This field is easy to leave on the default — check it before generating.

Step-by-Step Setup

  1. In VAELoader, confirm Wan2_1_VAE_bf16.safetensors is selected.
  2. In CLIPLoader, select qwen3vl_4b_fp8_scaled.safetensors and confirm type reads krea2.
  3. In UNETLoader, select your Krea 2 Turbo model file.
  4. Click LoadImage and upload your reference photo. Use a clear, well-lit, front-facing shot — side profiles and heavy shadows make identity lock harder.
  5. Open the TextEncodeQwenImageEditPlus (Positive) node and write your instruction — see the next section for the exact structure.
  6. Leave the negative prompt as-is (rejecting diptych/split-screen output) unless you see a different unwanted pattern.
  7. Set your output width and height in the PrimitiveInt nodes — this workflow defaults to 1280×1280.
  8. Click the orange Queue Prompt button. A progress bar appears below it. On an RTX 4090 at 12 steps, generation takes roughly 15–25 seconds.

How to Write the Instruction

Structure every instruction in two parts: what to preserve, then what to change. Lead with the preservation language — it carries more weight at the start of the prompt than buried at the end.

Instruction structure
KEEP the same [subject] and change the pose and setting: [new pose, new location, new framing — be specific about posture, hands, expression, camera angle]. Preserve exact facial identity, makeup, hairstyle, and clothing details from the reference image.

Worked example from this workflow:

Example instruction — TextEncodeQwenImageEditPlus (Positive)
KEEP the same woman and change the pose and setting: she is now walking barefoot along the shoreline during a beautiful golden sunset, gentle ocean waves touching the sand around her feet. She looks over her shoulder toward the camera while one hand lightly brushes her hair as the sea breeze moves naturally around her. Relaxed, elegant posture with a peaceful, confident expression. Preserve exact facial identity, makeup, hairstyle, body proportions, clothing, accessories, and every visual detail from the reference image.

Negative Prompt

Krea 2 occasionally generates unprompted side-by-side comparison panels. The negative prompt in this workflow suppresses that pattern specifically:

Negative prompt
diptych, split screen, two panels, side by side, before and after comparison, collage, multiple images

Settings That Matter

steps
12— low step counts don't meaningfully improve identity beyond this
cfg
2.5— higher can flatten the natural look
sampler
euler— default this workflow ships with
scheduler
simple— use with euler
resolution
1280×1280— default output canvas
KSampler node in ComfyUI showing steps=12, cfg=2.5, sampler_name=euler, scheduler=simple🔍 Click to zoom
Screenshot: The KSampler node with the default settings for this workflow.

Krea 2 Turbo is a distilled model built for low step counts. Going much higher than 12–16 steps doesn't meaningfully improve identity and just slows generation down. Pushing CFG higher forces more literal instruction-following but tends to flatten the natural look Krea 2 is known for.

Going Further: LoRA-Based Identity Preservation

If you need tighter identity lock than the base workflow gives you — especially for scene-referential instructions like "the woman on the left" — the community has released a dedicated LoRA for this. It's called Krea 2 Identity Edit, released about two weeks after Krea 2 itself went open-source, and it requires an additional node pack rather than the stock nodes covered above.

Node pack: comfyui-krea2edit (by developer lbouaraba on GitHub). Requires the Krea 2 model, the Qwen3-VL 4B text encoder, and the krea2_identity_edit_v1.safetensors LoRA weights. Worth trying if the workflow in this article isn't holding identity tightly enough for your use case.

Need multiple characters in the same frame instead of one at a time? That's a different node setup — see the multi-reference section of the general ComfyUI character consistency guide.

"This node type does not exist" (red node in workflow)

The workflow uses a custom or newer core node you haven't installed.

  1. Click Manager in the top menu.
  2. Click Install Missing Custom Nodes.
  3. Restart ComfyUI completely.

If nodes still show red, update ComfyUI itself — TextEncodeQwenImageEditPlus and ReferenceLatent are recent core additions and won't exist on older builds.

The character's face looks different in the output

This usually means the VAE-encode path isn't reaching the sampler correctly, or the reference photo is a poor angle for the model to lock onto.

  1. Confirm VAEEncode is connected from your LoadImage node, not left disconnected.
  2. Confirm ReferenceLatent receives both the positive conditioning and the VAE-encoded latent.
  3. Try a clearer, more front-facing reference photo.

Out of memory / CUDA error during generation

The BF16 model is roughly 24.5 GB and can exceed VRAM on cards under 24 GB.

  1. Switch to krea2_turbo_fp8_scaled.safetensors instead of the BF16 version.
  2. Lower your output resolution (try 1024×1024 instead of 1280×1280).
  3. Close other GPU-heavy applications before queuing.

Output comes out as a split-screen or diptych image

Krea 2 occasionally generates side-by-side comparison panels unprompted. Confirm the negative prompt still contains the diptych/split-screen rejection text — if it's been cleared or edited, restore it.

Frequently Asked Questions

No. This workflow uses a single reference image and Krea 2's built-in image-conditioning nodes — no training step required. LoRA-based approaches exist and can improve consistency further, but they're optional.

The most common cause is a missing or disconnected VAE-encode path into ReferenceLatent. Text conditioning alone isn't enough to hold identity — the image needs to reach the sampler as a latent too.

Not reliably. Krea 2 Turbo's FP8 model still needs around 12 GB VRAM minimum. Below that, expect out-of-memory errors even at low resolutions.

Turbo is a distilled model built for fast generation at low step counts, around 8–12 steps. Raw is the full base model with roughly 52 steps, better suited to LoRA training than everyday generation. This workflow uses Turbo.

Krea 2 occasionally generates side-by-side comparison panels unprompted. The negative prompt in this workflow rejects diptych and split-screen output specifically to suppress that.

Yes. The general guide covers character consistency using Qwen Image Edit 2511, including multi-character scenes. This guide is specific to Krea 2 Turbo, which uses a different node chain (ReferenceLatent) and a KEEP-first instruction format.

What to Do Next

Download the workflow. Run one test scene. Compare it to the reference.

Once identity holds up on a clean generation, try stacking a style LoRA on top for a different look — see the LoRA guide below for how the loader node fits into a workflow like this one.

Published: 2026-07-13 · Last updated: 2026-07-13 · Tested on RTX 4090 (24 GB VRAM) · ComfyUI v0.3.7 · Model: krea2_turbo_bf16.safetensors

Discussion

Join the discussion

Sign in to leave a comment or reply

💬

No comments yet

Be the first to share your thoughts!