Nodes/ComfyUI-WanAnimatePlus/WanAnimatePlus SCAIL_2 Flow Sampler
ComfyUI Node

WanAnimatePlus SCAIL_2 Flow Sampler

The sampler that actually runs your SCAIL-2 clip (and does the long-clip loop for you)

By wuwukaka·Created 4 months ago·Updated about a month ago· 409
WanAnimatePlus SCAIL_2 Flow Sampler
  • model
  • positive
  • negative
  • latent
  • vae
  • samples
steps30
cfg6.00
sampler_nameeuler
schedulernormal
shift5.00
seed0
force_offloadtrue
phase1_mask0.500
phase2_mask1.000
phase2_start_step0

This is the node where the pixels actually happen. WanAnimatePlus SCAIL_2 Flow Embeds builds your conditioning and latent; this node runs the denoising, and it's deliberately boring about it: MODEL, positive, negative, and latent go in, LATENT comes out, and underneath it just calls ComfyUI's standard comfy.sample.sample. If you know the official KSampler, you know 80% of this node - which is the point. It exists so the WanAnimatePlus SCAIL-2 machinery can live inside an official-style chain instead of a walled garden of custom types.

The controls that matter

steps, cfg, sampler_name, scheduler, and shift are the usual suspects. Wan is a flow-matching model, so shift (default 5) controls the noise schedule bend, and sampler_name defaults to euler with the full ComfyUI list behind it. seed has control_after_generate, so you can randomize per run. force_offload defaults to true and will save your VRAM by unloading what it can.

The interesting part is the two-phase block, direct from the README: phase1_mask, phase2_mask, and phase2_start_step. These are protection strengths for long clips - 1=freeze/protect, 0=free denoise. The idea, borrowed from the SCAIL-2 sampler-helper community, is to hold the front of each context window (where the previous chunk's output lives) so handoff chunks don't get re-denoised into mush. phase2_start_step is where phase 2 kicks in; 0 disables two-phase sampling.

How it decides what to do

This node reads a hidden runtime from the latent that Flow Embeds produced, and branches:

  • If the clip needs looping and the upstream model has no context handler, it runs its own internal loop - chunked sampling with handoff protection. That path needs the optional vae input to re-anchor chunks, and it'll error loudly if it's missing.
  • If the upstream model does have a context handler (say your model loader already sets one), it disables its internal loop and defers to the official context path. In that case the log even tells you: two-phase settings only affect internal-loop handoff chunks and won't force-control official context sampling.

So when you see phase2_start_step "not doing anything," that's usually why. It's not broken; you're just on the official context path.

Wiring and workflow

Feed it the outputs of WanAnimatePlus SCAIL_2 Flow Embeds, optionally a vae if you're looping, and send samples to WanAnimatePlus VAE Decode. The decode node is smart about the loop: the Flow Sampler can stash decoded video inside the latent it returns, and VAE Decode detects that and hands you the images directly.

Install and honest warnings

Install via ComfyUI Manager (search "ComfyUI-WanAnimatePlus") or:

cd ComfyUI/custom_nodes
git clone https://github.com/wuwukaka/ComfyUI-WanAnimatePlus.git

Restart, and keep the original ComfyUI-WanVideoWrapper installed per the README. One rule the pack repeats everywhere: don't mix these nodes with original WanVideoWrapper nodes in the same workflow - pick the WanAnimatePlus chain entirely. And set your expectations on speed: SCAIL-2 is expensive, minutes per clip on a 4090-class card, and identity drift across long chunks is a known model limitation that two-phase masks help but don't cure.

CategoryWanAnimatePlus

Inputs (15)

NameTypeDefaultDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
latentLATENT
stepsINT301–10000
cfgFLOAT6.000–100
sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBOnormal9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
shiftFLOAT5.000–100
seedINT00–18446744073709550000
force_offloadBOOLEANtrue
phase1_maskFLOAT0.5000–1
phase2_maskFLOAT1.0000–1
phase2_start_stepINT00–10000
vaeoptVAE

Outputs (1)

NameTypeDescription
samplesLATENT