LC Krea2 Regional Inline Canvas
Krea2 regional conditioning without the mask headaches
- clip
- image
- IMAGE
- POSITIVE
- NEGATIVE
- JSON
- MASK
Krea 2 is a 12B base model that actually shipped under a licence that lets most people use it for real, and it reads natural language well enough that you can talk to it. But "put this subject here and that one there" is still the hard case, because regional prompting on a DiT isn't the SDXL dance you learned. This node is LC123's beta take on that: the same inline RGB paint-canvas idea as its Anima sibling, retuned for Krea2's CLIP. Paint red, green, and blue regions on the node, type a prompt per region, and get a single POSITIVE conditioning with the regions baked in, a NEGATIVE, the preview IMAGE, a combined MASK, and a JSON dump.
The workflow shape is a little different from the Anima version, and it's worth knowing before you wire it: there's no MODEL or LATENT pass-through here. The node's docstring is blunt about it - you feed it just the clip, then wire your UNet and empty latent straight to the sampler instead of through this node. That's not a bug; Krea2's spatial regions attach via Comfy conditioning area/strength at sampler level, so the sampler does the regional heavy lifting and this node just prepares the conditioning.
Load Krea2's text encoder with a CLIPLoader set to type krea2 - that's the one gotcha the source calls out explicitly, and it's easy to miss because most of the time you're loading CLIP by architecture and this one is different. Then set width/height/batch_size and brush_size, and paint. The prompt slots are the photographic defaults you'd expect from Krea2 rather than the anime defaults the Anima node ships with: quality_prompt starts at high quality photograph, sharp detail, natural lighting, and the negative is the usual blurry, low quality, distorted, watermark, text, logo list. red_prompt, green_prompt, blue_prompt each describe what lives in their painted region, scene_prompt covers the background, and region_strength controls how hard the regions bite - default 0.95, dial it down if you're getting hard seams.
The three booleans are the same safety net as the Anima version: pause_until_apply (on by default) holds the queue until you hit Apply on the canvas so a stray stroke doesn't trigger a run; stop_on_empty_mask refuses to sample if a region has no paint; keep_mask preserves your paint between runs so you can tweak prompts without redrawing. The canvas_data field is what saves your painting into the workflow file itself, so your regions travel with the JSON when you share or reload.
It's labeled beta in the README, so manage expectations. The regional quality depends on Krea2's own area/strength handling, and you'll likely do a few passes tuning region_strength before the composition holds. If the queue just hangs, check pause_until_apply first - it's the classic "I forgot to press Apply" trap.
Install once for the whole LC123 pack - Manager, search "LC123", or:
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes
Restart. No extra pip packages, and unlike the Anima node there's no second repo to fetch. If you're already on Krea2 and missing a way to place subjects, this is the shortest path from paint to sampling.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| width | INT | 102416–16384 | — |
| height | INT | 102416–16384 | — |
| batch_size | INT | 11–4096 | — |
| brush_size | INT | 921–512 | — |
| region_strength | FLOAT | 0.950–10 | — |
| quality_prompt | STRING | high quality photograph, sharp detail, natural lighting | — |
| scene_prompt | STRING | — | |
| red_prompt | STRING | — | |
| green_prompt | STRING | — | |
| blue_prompt | STRING | — | |
| negative_prompt | STRING | blurry, low quality, distorted, watermark, text, logo | — |
| canvas_data | STRING | — | |
| regional_enabled | BOOLEAN | true | — |
| keep_mask | BOOLEAN | true | — |
| stop_on_empty_mask | BOOLEAN | true | — |
| pause_until_apply | BOOLEAN | true | — |
| imageopt | IMAGE | — | |
| quality_prompt_inopt | STRING | — | |
| scene_prompt_inopt | STRING | — | |
| negative_prompt_inopt | STRING | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| POSITIVE | CONDITIONING | — |
| NEGATIVE | CONDITIONING | — |
| JSON | STRING | — |
| MASK | MASK | — |