LC Anima Regional Inline Canvas
Paint your regions, stop hand-drawing masks — Anima Regional Inline Canvas
- model
- clip
- image
- IMAGE
- MODEL
- GLOBAL
- RED
- RED_MASK
- GREEN
- GREEN_MASK
- BLUE
- BLUE_MASK
- NEGATIVE
- JSON
- MASK
Anima can hold a five-character scene together in a way the old SDXL anime models never could - that's its whole pitch, a 2B DiT on Cosmos-Predict2 with a Qwen3 text encoder that actually reads your prompt. But "regional control" on a DiT is where things got awkward for a while. You can't just reach for the SDXL regional-prompter habits; you need something that masks both text tokens and image tokens, which is what Sen-sou's Anima Regional Conditioning does. This node is the friendly front-end for that: paint three regions in red, green, and blue on an inline canvas, type a prompt per region, and get back the separate conditionings and masks ready to feed the Sen-sou chain.
That's the whole point, honestly. Before this, setting up a regional Anima workflow meant generating three binary masks, encoding each region's conditioning, wiring a half-dozen AnimaConditioningRegion nodes, and praying the masks lined up. Here you paint on the node itself, and the canvas_data is serialized straight into the workflow JSON, so your paint job is saved with the graph and comes back when you reload or share it.
Mechanically it's simple in the best way. You give it the model and clip (load Anima's CLIP with a CLIPLoader - type anima), set width/height/batch_size, and pick a brush_size. Then paint. pause_until_apply (on by default) stops the queue until you hit Apply on the canvas, so a stray brushstroke doesn't burn a run; stop_on_empty_mask halts if a region is empty instead of silently sampling nothing; keep_mask keeps your paint across runs so you can iterate on prompts without re-painting.
The prompt fields map 1:1 to the outputs. quality_prompt (defaults to masterpiece, absurdres, score_7, anime style - the usual Anima seasoning) plus scene_prompt become the GLOBAL conditioning, which is the background for everything. red_prompt, green_prompt, blue_prompt each combine with quality and ride out on their own conditioning plus a per-region MASK. There's a negative_prompt (Anima's standard worst quality, low quality, blurry, bad anatomy) and a region_strength if you want to loosen or crank how hard each region bites. The wiring pattern is: GLOBAL → AnimaConditioningRegion's background conditioning, then each color's conditioning + mask into the region chain. The MODEL output passes the model through, and JSON dumps the whole thing if you want to inspect or drive it programmatically.
Where people get burned: the Sen-sou node is genuinely good, but its own author warns the composition can come out uneven - you'll be playing with region_strength and mask feathering for a few runs. And if a run does nothing at all, you almost certainly left pause_until_apply on and never pressed Apply. That flag is the top "why is my queue hanging" suspect.
To install, grab the whole LC123 pack once (this node ships inside it) plus the separate Sen-sou repo - the README calls that out explicitly, it's a required dependency, not optional. In ComfyUI Manager search "LC123", or:
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes
git clone https://github.com/Sen-sou/Comfyui-Anima-Regional-Conditioning
Restart ComfyUI. No extra pip packages - the pack runs on ComfyUI's own torch/numpy. If regional control is the one thing keeping you off Anima, this is the missing half.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| 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 | masterpiece, absurdres, score_7, anime style | — |
| scene_prompt | STRING | — | |
| red_prompt | STRING | — | |
| green_prompt | STRING | — | |
| blue_prompt | STRING | — | |
| negative_prompt | STRING | worst quality, low quality, blurry, bad anatomy | — |
| 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 (12)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MODEL | MODEL | — |
| GLOBAL | CONDITIONING | — |
| RED | CONDITIONING | — |
| RED_MASK | MASK | — |
| GREEN | CONDITIONING | — |
| GREEN_MASK | MASK | — |
| BLUE | CONDITIONING | — |
| BLUE_MASK | MASK | — |
| NEGATIVE | CONDITIONING | — |
| JSON | STRING | — |
| MASK | MASK | — |