Nodes/RedNode Studio/RedNode Paint Render
ComfyUI Node

RedNode Paint Render

Renders only the region you painted — the rest of the image never moves

By RedNodeAI·Created 2 months ago·Updated 3 days ago· 4
RedNode Paint Render
  • model
  • positive
  • negative
  • vae
  • image
  • clip
  • positive_override
  • negative_override
  • image
seed0
steps8
cfg1.0
sampler_nameeuler
schedulersimple
run_token
passes1

Here's the inpainting workflow that made you dread it: mask a region, sample the whole image, and wait while the model re-renders every pixel so it can change the one area you cared about. RedNode Paint Render is the pack's answer - it renders only what you painted. It crops to the painted region on the Workspace's Paint tab, samples that crop at the tab's mask size and denoise, and composites it back through the feathered mask. The other 95% of the frame is never re-rendered, so it comes back bit-identical, which is the one thing instruction-editing models still can't promise you.

You wire model, positive, negative, and vae like any sampler branch, plus seed, steps, cfg, sampler_name, and scheduler - the stock sampling controls, with defaults that match the pack's turbo recipe (euler, simple scheduler, 8 steps, CFG 1). Then leave the run_token empty and press Generate on the Paint tab: that button fills the token, the node renders the crop, and the result appears both on the node and in the tab's result pane. While the token is empty the node sits out of normal queues entirely - no render of a crop nobody asked for, no wasted compute on every ordinary run. It's the same gating trick as Paint In, and it's why you can leave a full paint rig installed in a workflow without paying for it.

Two inputs make it more than a crop-and-sample box. passes (default 1, up to 10) runs the paint pass over its own result multiple times before handing it back - that's the low-denoise loop people run by hand to settle a shape, done for you: one Generate, one picture at the end, instead of dragging the result back onto the canvas and pressing Generate again. Only the last picture comes back. And the optional clip input is what lets you type a prompt on the Paint tab: wire it, and the tab's prompt box encodes through it; leave it out and the patch renders with whatever conditioning is on the positive/negative inputs, which is your whole-image prompt. There are also positive_override / negative_override conditioning inputs if you want a full grounded encode for the patch rather than plain text.

The optional image input removes all ambiguity: wire it and there's no guessing which image this is working from; leave it empty and it follows whatever the Paint tab is showing. For most people the unwired version is the right one - the tab is the front end, this node is the engine behind it.

Where it sits versus the alternatives: the Paint Out/Paint In pair exists for when you want an external renderer. This node is the internal, do-it-here version - same masking logic, its own sampler, no extra wiring. If you're already using the Workspace's Paint tab, this is the default engine under it.

Installation is the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/RedNodeAI/ComfyUI-RedNodeStudio.git

or search RedNode Studio in ComfyUI Manager, restart. No pip dependencies; works with any model, not just the Krea 2 side.

CategoryRedNode/Image

Inputs (15)

NameTypeDefaultDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
seedINT00–18446744073709550000
stepsINT81–200
cfgFLOAT1.00–30
sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBOsimple9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
run_tokenSTRINGleave this empty. The Paint tab's Generate button fills it in for its own runs; while it is empty this node sits out of normal queues instead of rendering a crop nobody asked for
passesINT11–10How many times to run the paint pass over its own result before handing it back. This is the low-denoise loop done for you: one Generate, one picture at the end, instead of dragging the result back onto the canvas and pressing Generate again. The Paint tab's own count wins when it has one.
imageoptIMAGEthe picture to paint on. Wire it and there is no guessing about which image this is working from. Leave it empty and it falls back to whatever the Paint tab is showing
clipoptCLIPwire this to type a prompt on the Paint tab. Without it the patch is rendered with whatever conditioning is on the positive and negative inputs, which is your whole-image prompt
positive_overrideoptCONDITIONINGconditioning for the painted patch instead of the main positive, for when you want a full grounded encode rather than a plain text one
negative_overrideoptCONDITIONINGthe matching negative for the override

Outputs (1)

NameTypeDescription
imageIMAGE