Nodes/IAMCCS-nodes/IAMCCS SCAIL Multi-Reference (experimental)
ComfyUI Node

IAMCCS SCAIL Multi-Reference (experimental)

Stack six characters into one SCAIL-2 shot (experimental, with a caveat)

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS SCAIL Multi-Reference (experimental)
  • positive
  • negative
  • vae
  • image_1
  • mask_1
  • image_2
  • mask_2
  • image_3
  • mask_3
  • image_4
  • mask_4
  • image_5
  • mask_5
  • image_6
  • mask_6
  • positive
  • negative
width512
height896
length81
replacement_modetrue

IAMCCS_ScailMultiReference is an experimental node for pushing SCAIL-2 past its normal single-character limit: it stacks up to six single-character reference images as separate reference frames, using color-based identity binding (image_1 → palette color 0, image_2 → color 1, and so on), so each character in a driving video can be bound to its own source. If SCAIL-2 is the open motion-transfer model that finally dropped the pose skeleton (Z.ai's Apache-2.0 Wan 2.1 fine-tune that took the community by storm in 2026), this node is an attempt to do multi-character identity on top of it.

Read the word experimental in the title carefully, because the author's own description is unusually candid about it: this is for testing color-based identity binding, and the note at the end says composited single-reference layouts are usually higher fidelity. Translation: if your shot has six characters, the higher-quality path is usually to composite them into one reference image and use SCAIL's normal single-reference mode - this node is the experiment for when you genuinely need them bound separately.

How it works

It extends the base SCAIL-2 multi-reference node. Each of the up to six image_N inputs maps to one palette color, and the order must match the driving colors - the tooltip hammers this because it's the #1 way to get scrambled identity. Each image can take an optional mask_N (a silhouette, e.g. from RMBG background removal); without a mask it defaults to the whole frame. The node then builds positive/negative conditioning for the SCAIL-2 sampler.

Two settings must match what's downstream, per the tooltips: length (frames) must equal the WanSCAILToVideo length, and replacement_mode must match it too - when true, each ref is composited on black (replacement); when false, the full frame is used for animation. Wire this node after WanSCAILToVideo (with its reference left empty) and before SamplerCustom.

Inputs and outputs

Required: positive, negative, vae, width (512), height (896), length (81), replacement_mode (true). Optional: image_1image_6 and matching mask_1mask_6. Outputs: conditioned positive and negative.

Installing it

Part of the IAMCCS-nodes pack. ComfyUI Manager → search IAMCCS, or:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Restart ComfyUI; it's under IAMCCS/video/SCAIL-2. No pip requirements - but it builds on the SCAIL-2 model and its ComfyUI integration, which you must already have working (SCAIL-2 ships in ComfyUI core, so "have the model downloaded and the core workflow running" is the real prerequisite). README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.

Where people get burned

  • Order mismatch: image order and driving color order must line up, or character A gets character B's motion. Re-read the tooltips; this is the entire ballgame for this node.
  • length and replacement_mode mismatched with WanSCAILToVideo - the node produces conditioning, and if those disagree with the video node, identity binding falls apart or frames don't line up.
  • SCAIL-2 is compute-hungry; six references plus a long driving video is a heavy render. If it OOMs, that's the model's cost, not the node - drop length or resolution before blaming the wiring.
  • Taking the author's own caveat to heart: for a final deliverable with multiple characters, the composited single-reference approach is usually cleaner. Treat this node as the experiment it's labeled.
CategoryIAMCCS/video/SCAIL-2

Inputs (19)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
widthINT51232–8192
heightINT89632–8192
lengthINT811–1024Generation length in frames. Must match the WanSCAILToVideo length.
replacement_modeBOOLEANtrueMust match WanSCAILToVideo. Replacement composites each ref on black; animation uses the full frame.
image_1optIMAGESingle character -> palette colour 0. Order must match the driving colours.
mask_1optMASKSilhouette for image_1 (e.g. RMBG mask). Optional; defaults to the whole frame.
image_2optIMAGESingle character -> palette colour 1. Order must match the driving colours.
mask_2optMASKSilhouette for image_2 (e.g. RMBG mask). Optional; defaults to the whole frame.
image_3optIMAGESingle character -> palette colour 2. Order must match the driving colours.
mask_3optMASKSilhouette for image_3 (e.g. RMBG mask). Optional; defaults to the whole frame.
image_4optIMAGESingle character -> palette colour 3. Order must match the driving colours.
mask_4optMASKSilhouette for image_4 (e.g. RMBG mask). Optional; defaults to the whole frame.
image_5optIMAGESingle character -> palette colour 4. Order must match the driving colours.
mask_5optMASKSilhouette for image_5 (e.g. RMBG mask). Optional; defaults to the whole frame.
image_6optIMAGESingle character -> palette colour 5. Order must match the driving colours.
mask_6optMASKSilhouette for image_6 (e.g. RMBG mask). Optional; defaults to the whole frame.

Outputs (2)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING