WanAnimatePlus SCAIL_2 Embeds
Reference image, pose stream, masks, and loop-friendly chunking in one node
- vae
- clip_embeds
- ref_image
- bg_image
- pose_images
- prefix_frames
- prefix_mask
- transition_video
- pose_image_mask
- reference_image_mask
- image_embeds
SCAIL-2 is Z.ai's skeleton-free motion transfer model on a Wan 2.1 base - the one that dropped the stick figure entirely, which is why it can do animals, multi-character and cross-identity replacement. It ships in ComfyUI core via Kijai's PR, but core gives you a bare-bones path. This node is the fork's wrapper-native version: it prepares the reference image, driving pose, colored masks, and optional prefix/transition context into one image_embeds bundle that the WanAnimatePlus Sampler consumes - and it layers on the pack's loop-seam and prefix machinery that the stock graph doesn't have.
The core conditioning. ref_image is your character (only the first frame is used if you feed a sequence). pose_images is the driving video, encoded at half resolution for the SCAIL pose stream, with pose_strength as your control multiplier. pose_image_mask and reference_image_mask are the colored per-identity masks - and replacement_mode is the master switch: off means animation mode (pose mask on black background, reference mask on white), on means replacement mode (backgrounds flipped). Get this wrong and the model composites the wrong way. ref_strength scales the reference stream.
The modes that took work. single_frame_prefix_encoding (on by default) encodes prefix_frames as individual full-resolution reference latents instead of expanding the canvas - the modern path, and it doesn't stretch your output. Turn it off and you get the legacy 37-frame front-canvas layout where prefixes hard-freeze the start of the generation. bg_image occupies one reference slot in animation mode (ignored in replacement mode), and preserve_main_ref_background / prefix_alpha_crop control whether backgrounds are kept or alpha-cropped from the masks. transition_video hard-freezes frames at the front for seamless joins, and transition_colormatch offers auto_drift - a light seam fix that compares RGB means between the last 5 frames of one segment and the first 5 of the next, plus the full mkl/reinhard/hm family. loop_colormatch_reference picks what later chunks match against for loop mode.
The window knob. frame_window_size (default 81) is the SCAIL chunk length, auto-rounded to 4n+1. Setting it differently from num_frames enables built-in loop generation with a 5-frame handoff - this is the pack's answer to the manual 81-frame chaining that community threads spent June 2026 automating. The WanAnimatePlus Easy Sampler is the recommended companion, since it keeps the full feature path while exposing only common controls.
The honest grounding. SCAIL-2's strengths and limits come from the model, not this node: proportions survive motion transfer, but faces wander (drop LightX2V LoRAs, raise steps/CFG), it's compute-hungry (minutes per clip), and identity drift across chunks is the persistent failure mode. This node bundles the conditioning so you fight fewer moving parts. Install via ComfyUI Manager (search "WanAnimatePlus") or git clone https://github.com/wuwukaka/ComfyUI-WanAnimatePlus into custom_nodes, restart, and keep the chain WanAnimatePlus end to end - including the fork's sampler, since that's where this embeds object is consumed.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | WANVAE | — | |
| width | INT | 83264–8096 | Width of the video to generate. SCAIL-2 inputs are aligned to multiples of 32. |
| height | INT | 48064–8096 | Height of the video to generate. SCAIL-2 inputs are aligned to multiples of 32. |
| num_frames | INT | 811–10000 | Number of frames to generate |
| frame_window_size | INT | 811–10000 | SCAIL-2 chunk window length. Automatically rounds down to 4n+1. Values different from the normalized num_frames enable built-in loop generation with 5-frame handoff; oversized values are clamped to the largest valid window that fits. |
| force_offload | BOOLEAN | true | Offload VAE after encoding to save VRAM |
| pose_strength | FLOAT | 1.0000–10 | Strength of the SCAIL pose stream |
| ref_strength | FLOAT | 1.0000–10 | Strength of the SCAIL reference stream |
| replacement_mode | BOOLEAN | false | False = animation mode (pose mask black bg, reference mask white bg). True = replacement mode (pose mask white bg, reference mask black bg). |
| clip_embedsopt | WANVIDIMAGE_CLIPEMBEDS | Clip vision encoded image | |
| ref_imageopt | IMAGE | Reference image for SCAIL conditioning. If a sequence is connected, only the first frame is used. | |
| bg_imageopt | IMAGE | Optional single background image for animation mode. In single-frame prefix mode it is encoded as an extra background reference latent; in legacy prefix mode it is placed after prefix_frames. Ignored in replacement mode. | |
| pose_imagesopt | IMAGE | Driving pose video. Encoded at half resolution for SCAIL. | |
| prefix_framesopt | IMAGE | Optional prefix images. In single-frame prefix mode these are encoded as reference latents; in legacy mode they hard-freeze the beginning of the canvas. | |
| prefix_maskopt | IMAGE | Optional colored mask images matching prefix_frames. In single-frame prefix mode this follows the reference-mask path; in legacy canvas-prefix mode it is expanded as 1+4+4... and written into the prefix mask frames. | |
| transition_videoopt | IMAGE | Optional transition frames to hard-freeze at the beginning of the canvas. In legacy canvas-prefix mode, transition frames are placed after the prefix frames. | |
| pose_image_maskopt | IMAGE | SCAIL-2 colored per-identity driving pose mask. Background is normalized to black in animation mode and white in replacement mode. | |
| reference_image_maskopt | IMAGE | SCAIL-2 colored per-identity reference mask image. Background is normalized to white in animation mode and black in replacement mode. | |
| tiled_vaeopt | BOOLEAN | false | Use tiled VAE encoding for reduced memory use |
| transition_colormatchopt | COMBO | disabled | Color match transition_video to ref_image. |
| loop_colormatch_referenceopt | COMBO | previous_matched_frame | SCAIL-2 loop color match reference. The first chunk is not color matched when transition_video is not connected. |
| prefix_alpha_cropopt | BOOLEAN | false | Off keeps prefix masks as white-background reference masks in animation mode. On uses black-background masks and alpha-crops prefix_frames. Replacement mode always uses black-background reference masks. |
| preserve_main_ref_backgroundopt | BOOLEAN | true | Animation mode only. Keep the main reference image background. When off, reference_image_mask is normalized to black background and used to alpha-crop ref_image. Ignored in replacement mode. |
| single_frame_prefix_encodingopt | BOOLEAN | true | Encode prefix images as individual full-resolution reference latents instead of expanding the canvas. |
| by wuwukasi(bilibili)opt | BOOLEAN | true | Follow wuwukasi on bilibili |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image_embeds | WANVIDIMAGE_EMBEDS | — |