Replicate (krea/krea-2-large)
Krea 2 large, the way Krea actually sells it — no 12B weights, no VRAM, just a Replicate bill
- style_reference_images
- output
This node is not a Krea 2 loader. There are no weights on your disk and nothing is running on your GPU - this is a pay-per-image wrapper around Krea's hosted model, served through Replicate, that drops the finished image back into your ComfyUI graph as an ordinary IMAGE tensor. From the canvas it looks like a sampler. Underneath it's an HTTP client with a billing account.
Which is exactly the point, and here's the part most people miss until it's too late: the hosted Krea 2 is a different model from the open one. The open weights went through alignment training the hosted version never did (Krea's own head of research said so on the record), and the hosted product applies in-house prompt expansion on top. Running it via Replicate gets you the unaligned, prompt-expanded behavior the community calls "the version Krea actually sells" - plus the two hosted-only features below. If you've been frustrated by the open checkpoint silently flattening expressions or ignoring body/violence clauses (the "craters" complaint in the KB's krea-2 panel), the hosted tier is the side of the divide that doesn't do that.
The price is the usual one for API wrapper nodes (the KB's external-api-nodes.md frames it well): every image costs money, and your prompt and any reference images leave your machine for Replicate's and Krea's servers, subject to their moderation. If you can run the open weights locally, weigh that per-image cost against your electricity and your tolerance for the alignment gap.
How it works
The pack ships a Replicate integration that generates a node per configured model from a JSON schema - this one is krea/krea-2-large, marked "hidden" in the pack's config, which means it calls Replicate's unpinned model endpoint (replicate.models.get(...), no version hash). That's worth knowing: when Krea updates the model on Replicate, this node starts using the new version without you pinning anything, so outputs can drift between updates.
Style reference images get uploaded from your tensors to Replicate's file hosting, the prediction is created, and the node polls until it succeeds - printing the model's logs into your console as they come, and honoring a ComfyUI interrupt by cancelling the prediction. When it finishes, it downloads the result and hands you a normal IMAGE tensor. Downstream it behaves like any generator: Save Image, upscalers, img2img, all just work.
The inputs that matter
- prompt - write long, specific natural language, and put words you want rendered as text in quotes. That's Krea's own prompting guidance and it holds on the hosted model too.
- creativity -
raw/low/medium/high. This is where Krea's prompt expansion lives:rawrenders only what you describe,hightakes creative liberty. Default ismedium. - style_reference_images + style_reference_strength (0–1, default 0.5) - up to 10 images whose style gets transferred. This is one of the modules Krea explicitly does not release for local weights, so the only way to get it in ComfyUI is through a wrapper like this.
- moodboard_id + moodboard_strength (default 0.35) - a Krea moodboard UUID. You create the moodboard in the Krea webapp (
krea.ai/moodboards), then grab the UUID from the share URL's?share=<uuid>.
Everything else is standard: seed (no default here, so set it yourself if you want a reproducible reroll) and aspect_ratio (1:1 default, plus the usual landscape and portrait ratios).
Output
A single output (IMAGE) - wire it to Save Image, a preview node, or anything else that eats an image.
Installing and the one thing that blocks you
cd ComfyUI/custom_nodes
git clone https://github.com/dadoirie/ComfyUI_Dados_Nodes.git
cd ComfyUI_Dados_Nodes
pip install -r requirements.txt
(requirements includes replicate.) Restart, then make sure your REPLICATE_API_TOKEN environment variable is set and tied to a Replicate account with billing - without it you'll get authentication errors the moment you run the node. There are no model downloads; the model weight lives on Replicate's side.
Troubleshooting that's actually grounded
- Auth or 401 errors - the token isn't set or has no billing. Fix the env var and restart.
- The node fails mid-run - Replicate's logs are printed to the console while it polls; that's the first place to look. "Failed" predictions raise with the logs attached.
- Outputs changed out of nowhere - the unpinned ("hidden") version means Krea pushed a new model version and you silently picked it up. Nothing to fix, just don't assume reproducibility across days.
If you want the real Krea 2 experience without the 12B download, the Qwen3-VL encoder, the VAE, and the alignment caveats - this is the cleanest route. Just keep an eye on the meter.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | — | |
| prompt | STRING | Text prompt describing the image. | |
| creativity | COMBO | medium | 4 options: raw, low, medium, high |
| aspect_ratio | COMBO | 1:1 | 8 options: 1:1, 4:3, 3:2, 16:9, 2.35:1, 4:5, +2 |
| moodboard_id | STRING | Optional Krea moodboard UUID. Moodboards must first be created in the Krea webapp (https://www.krea.ai/moodboards). Get the UUID from the moodboard share URL: `?share=<uuid>`. | |
| moodboard_strength | FLOAT | 0.30–1 | — |
| style_reference_strength | FLOAT | 0.50–1 | — |
| style_reference_imagesopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | IMAGE | — |