Nodes/comfyui-OreX/📼 Scail2 (OreX)
ComfyUI Node

📼 Scail2 (OreX)

The one-node SCAIL-2 motion transfer that handles long clips

By orex2121·Created about a year ago·Updated 3 days ago· 34
📼 Scail2 (OreX)
  • model
  • positive
  • negative
  • vae
  • pose_video
  • pose_video_mask
  • reference_image
  • reference_image_mask
  • clip_vision_output
  • images
  • frames_numb
  • iteration_numb
width512
height896
noise_seed0
steps6
cfg1.0
sampler_name
scheduler
denoise1.00
chunk_length81
overlap5
pose_strength1.00
pose_start0.00
pose_end1.00
replacement_modetrue

SCAIL-2 is Z.ai's Apache-2.0 motion transfer model - the one that ditched the stick-figure pose skeleton entirely and lets you throw a reference image, a driving video, and masks straight at it, which is why it handles multi-character and even animals where Wan Animate broke down. It shipped directly into ComfyUI core, so you don't need a custom node pack to run it. What you do need is patience with its hard 81-frame native window and its appetite for VRAM - and that's the gap Scail2 (OreX) fills. It wraps the core SCAIL-2 sampler, chunks long driving videos into overlapping segments, and assembles the result into one continuous clip. In short: SCAIL-2's length problem, solved in a single node.

How it works

Under the hood this node is a driver for WanSCAILToVideo from comfy_extras.nodes_scail - the ComfyUI-core SCAIL-2 implementation - so it only works on a recent ComfyUI that has SCAIL-2 support built in. It plans your driving video into chunks of chunk_length frames (default 81, which is SCAIL-2's native window) with overlap frames shared between chunks so motion carries across the boundary instead of snapping. Each chunk goes through the standard sampling path (sampler + scheduler + denoise), gets decoded through your VAE, and - the part that makes long clips feasible - finished tensors are moved to CPU RAM between chunks with a VRAM cache clear, so a 300-frame drive doesn't blow up an 8 GB card in one go. Between chunks it runs a Reinhard color transfer so the lighting doesn't visibly jump, and the noise seed increments per chunk for consistent noise.

Outputs: images (the full stitched IMAGE tensor - wire it to a video save node), plus frames_numb (total frames generated) and iteration_numb (how many chunks it ran).

The inputs that matter

This node looks like a KSampler crossed with a video node, and the wiring is: model/positive/negative/vae from your SCAIL-2 model setup, pose_video from your driving video (frames as IMAGE), plus width/height/steps/cfg/sampler/scheduler like any sampler. Three SCAIL-specific ones to know:

  • pose_strength, pose_start, pose_end - how hard the driving video's motion is applied and over which part of the clip.
  • replacement_mode - on (default) for replacing the subject with your reference; off for character-driven animation.
  • reference_image + reference_image_mask, clip_vision_output - optional but this is where cross-identity replacement happens.
  • chunk_length / overlap - the length controls; keep chunk at 81 unless you know what you're doing.

Install and the real requirements

The pack itself is trivial (Manager or git clone https://github.com/orex2121/comfyui-OreX), but this node's actual dependencies are SCAIL-2 itself: the model weights (use the scaled Comfy-Org/SCAIL-2 download or a GGUF quant, not the 65 GB raw zai-org repo), a matching VAE and text encoder, and a ComfyUI version new enough to include comfy_extras.nodes_scail. If the node throws an import error on that module, update ComfyUI first - the pack can't fix a missing core feature.

The honest truth about cost

SCAIL-2 is quality-over-speed by a wide margin: community numbers are ~5–6 minutes for 81 frames on a 4070 Ti, ~19 minutes for a 14-second clip on a 16 GB 5060 Ti, and 8 GB cards only at Q4 GGUF and low resolution. Chunking makes long clips possible, not fast - it doesn't reduce total compute, it just stops your card from dying mid-run. Identity drift across chunk boundaries is also still a thing, so check your seams on long drives. If that's acceptable, this is the easiest way to get SCAIL-2's no-skeleton magic on clips longer than 81 frames.

CategoryOreX/SCAIL

Inputs (23)

NameTypeDefaultDescription
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
pose_videoIMAGE
widthINT51232–8192
heightINT89632–8192
noise_seedINT00–18446744073709550000
stepsINT61–10000
cfgFLOAT1.00–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
denoiseFLOAT1.000–1
chunk_lengthINT819–1024
overlapINT51–81
pose_video_maskoptIMAGE
reference_imageoptIMAGE
reference_image_maskoptIMAGE
clip_vision_outputoptCLIP_VISION_OUTPUT
pose_strengthoptFLOAT1.000–10
pose_startoptFLOAT0.000–1
pose_endoptFLOAT1.000–1
replacement_modeoptBOOLEANtrue

Outputs (3)

NameTypeDescription
imagesIMAGE
frames_numbINT
iteration_numbINT