Nodes/ComfyUI-Painter-I2V-AIO/Painter Sampler Advanced
ComfyUI Node

Painter Sampler Advanced

Run two models per clip with Painter Sampler Advanced

By LDNKS094·Created 7 months ago·Updated 7 months ago· 0
Painter Sampler Advanced
  • high_model
  • low_model
  • high_positive
  • high_negative
  • low_positive
  • low_negative
  • latent_image
  • latent
add_noiseenable
noise_seed0
steps20
high_cfg8.00
low_cfg8.00
sampler_name
scheduler
start_at_step0
switch_at_step2
end_at_step10000
return_leftover_noisedisable

Here's the thing people don't get about Wan 2.2 until they've stared at a progress bar for 25 minutes: it's not one model, it's two. A high-noise expert handles motion and scene composition, a low-noise expert handles detail, and they run sequentially over the same latent. The community figured out the practical trick quickly - speed LoRAs absolutely wreck 2.2's quality if applied everywhere, but if you only speed up the low-noise pass you keep the full-quality high-noise motion and save the time. Painter Sampler Advanced is that workaround, turned into a node.

It's from the same pack as the other Painter nodes (LDNKS094's ComfyUI-Painter-I2V-AIO, the unified rewrite of princepainter's Wan 2.1/2.2 tools). It's the "Advanced" sibling of PainterSampler, and the difference is conditioning: where the basic node runs both phases off one positive/negative, this one takes four conditionings so each phase gets its own prompt context.

How it works

The mechanism is a tandem KSampler with a handoff. Phase one runs high_model on high_positive/high_negative from start_at_step up to switch_at_step (default 2) with high_cfg. Then phase two takes the same latent - no new noise added, it just keeps denoising - and runs low_model on low_positive/low_negative from switch_at_step to end_at_step with low_cfg. One seed, one sampler/scheduler, two models, two prompts.

That split is why it pairs with PainterI2VAdvanced, which outputs exactly those four conditionings: the high-noise phase gets the motion-enhanced conditioning (its motion_amplitude and color_protect live there), the low-noise phase gets the original, color-stable reference conditioning with correct_strength. You're getting the Wan 2.2 two-pass architecture, but with the motion kick applied in the phase where it belongs.

The inputs that matter

  • high_model / low_model - the two checkpoints. low_model is where you'd load a Wan 2.2 with a LightX2V-style speed LoRA applied.
  • high_positive / high_negative / low_positive / low_negative - the four conditionings, straight from PainterI2VAdvanced.
  • switch_at_step - which step the high-noise phase hands off. Default 2. On 20 steps, that means the fast/low model does most of the work; raise it if you want more full-quality motion.
  • high_cfg / low_cfg - both default to 8, standard Wan territory.
  • steps, sampler_name, scheduler, noise_seed, latent_image - all behave like a normal sampler.

Output is a single latent, which goes to VAE decode like any other. return_leftover_noise and add_noise are for chaining - leave them at their defaults unless you know you're handing a half-denoised latent to something else.

Installing it

Same pack, same steps as PainterI2VExtend: ComfyUI Manager (search "Painter I2V AIO") or

cd ComfyUI/custom_nodes
git clone https://github.com/LDNKS094/ComfyUI-Painter-I2V-AIO

Then restart. No extra Python dependencies; the node uses only stock ComfyUI sampling internals.

Where people get burned

The most common mistake is wiring this to the wrong conditioning node. PainterI2VExtend only outputs positive/negative - those go to PainterSampler (basic), not here. This node needs the four-way conditioning only PainterI2VAdvanced produces. And check switch_at_step vs end_at_step: the node clamps them so the low phase always gets at least one step, but if you set them almost equal you collapse the dual-phase design back into a single-phase run and defeat the whole point. Also note it's a V3-API node - if it doesn't appear, update ComfyUI.

Categorysampling/painter

Inputs (18)

NameTypeDefaultDescription
high_modelMODEL
low_modelMODEL
add_noiseCOMBOenable2 options: enable, disable
noise_seedINT00–18446744073709550000
stepsINT201–10000
high_cfgFLOAT8.000–100
low_cfgFLOAT8.000–100
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
high_positiveCONDITIONING
high_negativeCONDITIONING
low_positiveCONDITIONING
low_negativeCONDITIONING
latent_imageLATENT
start_at_stepINT00–10000
switch_at_stepINT21–10000
end_at_stepINT100000–10000
return_leftover_noiseCOMBOdisable2 options: disable, enable

Outputs (1)

NameTypeDescription
latentLATENT