Nodes/Anima Regional Canvas/Anima Regional Inpaint Canvas
ComfyUI Node

Anima Regional Inpaint Canvas

Regional inpaint for Anima, painted the same way — this is the canvas node's fix-it sibling

By ukr8b3g-cmyk·Created 2 months ago·Updated 16 days ago· 12
Anima Regional Inpaint Canvas
  • model
  • clip
  • vae
  • image
  • IMAGE
  • MODEL
  • POSITIVE
  • NEGATIVE
  • INPAINT_LATENT
  • INPAINT_MASK
  • METADATA
width1024
height1024
batch_size1
brush_size92
region_strength0.95
quality_promptmasterpiece, absurdres, score_7, anime style
scene_prompt
red_prompt
blue_prompt
yellow_prompt
green_prompt
magenta_prompt
negative_promptworst quality, low quality, blurry, bad anatomy
canvas_data
regional_enabledtrue
grow_mask_by6
quality_prompt_in
scene_prompt_in
red_prompt_in
blue_prompt_in
yellow_prompt_in
green_prompt_in
magenta_prompt_in
negative_prompt_in

The sibling node in the Anima Regional Canvas pack does the same painting trick as AnimaRegionalCanvas, but pointed at a different problem: fixing and repainting an existing image instead of generating from scratch. Paint the areas you want changed, leave the rest white, and it returns an inpaint-ready latent where everything you didn't touch stays pixel-identical. Given how much of the 2026 anime workflow is "generate in Anima, then patch the hands/face," that's a genuinely useful corner.

What it's for

Masked inpainting's one enduring advantage over instruction-editing models is the guarantee: only the masked region gets re-denoised, everything else survives exactly. This node gives you that on Anima's regional stack. You connect an input image, paint over just the parts that are wrong or that you want region-controlled, and the node builds the inpaint latent plus the color mask the regional ControlNet needs. One pass, mask and control image in agreement, because they came from the same paint stroke.

How it works

Same mechanism as the standard canvas - paint colors, per-color prompts, masked conditioning - with the inpaint bits bolted on. The painted regions become the inpaint mask (everything non-white), and the white/unpainted area is treated as the keep/base region. If you connect image and vae, the source image is resized to the canvas, encoded through the VAE, and the unpainted pixels are preserved in the latent with a noise mask so the sampler only regenerates what you marked. grow_mask_by (default 6) dilates the mask outward with a max-pool so you don't get a hard seam at the paint edge - raise it if you see a visible boundary line, drop it if the repaint is eating into areas you wanted kept.

The input and output that matter

Beyond the shared canvas inputs, the ones specific to this node:

  • image - optional. The picture you're inpainting over. It appears on the canvas automatically so you can paint accurately.
  • vae - optional, needed for the inpaint latent path.
  • grow_mask_by - mask expansion in pixels, 0–64, default 6.

And the output that replaces the standard node's LATENT:

  • INPAINT_LATENT - goes straight to KSampler latent_image. This is the one you wire.
  • INPAINT_MASK - the mask itself, useful for previewing what you're about to repaint (run it through Convert Mask to Image).

IMAGE still feeds Apply Anima ControlNet-LLLite, and POSITIVE / NEGATIVE go to the sampler as before.

The fallback that saves you a node swap

Connect neither image nor vae and this node quietly degrades to a plain empty-latent generator, behaving like its non-inpaint sibling. That's a small thing that saves real annoyance: you can build one workflow, leave the image input unplugged for straight generation, and only wire in a source image when you actually want to fix something.

Install

Identical to its sibling - it's the same pack:

cd ComfyUI/custom_nodes
git clone https://github.com/ukr8b3g-cmyk/Anima_Regional_Canvas.git

Restart ComfyUI. Or search "anima regional" in ComfyUI Manager. There are no pip dependencies to worry about; the node only uses numpy/torch/Pillow, all already in ComfyUI. You still need the stack it drives, installed separately: kohya's ComfyUI-Anima-LLLite node, the Anima base model, and the anima-lllite-regional-exp-v3.safetensors regional ControlNet from Sen-sou. Example workflows for both nodes ship in the pack's workflows/ folder.

Common issues

The usual suspect list, grounded in how the thing actually behaves:

  • Hard edges on the repaint - your grow_mask_by is too small, or the mask is biting into kept areas. The mask expansion exists precisely to blend the seam.
  • Weak or bleeding regions - remember the regional ControlNet model is experimental, trained on a small dataset. Keep region_strength high and don't blame the canvas when adherence tops out.
  • The image shows on the canvas but nothing changes - check that image and vae are both connected; without vae it silently falls back to the empty-latent path and you're generating from scratch, not inpainting.
  • Low-res output - this is Anima, and it wants resolution. Keep the canvas at 1024+; a small inpaint canvas comes back soft because the model was trained big.

One more honest note: for a simple single-region fix, a plain masked-inpaint workflow without the regional ControlNet is often enough. This node earns its keep when you're repainting several distinct areas at once - hands, face, background - and want each governed by its own prompt without hand-syncing a mask image and a ControlNet map.

CategoryAnima/Regional

Inputs (28)

NameTypeDefaultDescription
modelMODEL
clipCLIP
widthINT102416–16384
heightINT102416–16384
batch_sizeINT11–4096
brush_sizeINT921–512
region_strengthFLOAT0.950–10
quality_promptSTRINGmasterpiece, absurdres, score_7, anime style
scene_promptSTRING
red_promptSTRING
blue_promptSTRING
yellow_promptSTRING
green_promptSTRING
magenta_promptSTRING
negative_promptSTRINGworst quality, low quality, blurry, bad anatomy
canvas_dataSTRING
regional_enabledBOOLEANtrue
grow_mask_byINT60–64
vaeoptVAE
quality_prompt_inoptSTRING
scene_prompt_inoptSTRING
red_prompt_inoptSTRING
blue_prompt_inoptSTRING
yellow_prompt_inoptSTRING
green_prompt_inoptSTRING
magenta_prompt_inoptSTRING
negative_prompt_inoptSTRING
imageoptIMAGE

Outputs (7)

NameTypeDescription
IMAGEIMAGE
MODELMODEL
POSITIVECONDITIONING
NEGATIVECONDITIONING
INPAINT_LATENTLATENT
INPAINT_MASKMASK
METADATASTRING