Extensions/comfyui-scail2-infinity
ComfyUI Extension

comfyui-scail2-infinity

All-in-one ComfyUI node that automatically generates arbitrarily long SCAIL-2 videos by internally looping chunked workflows with frame anchoring and continuous stitching.

By collbroGTR·Created 2 months ago·Updated 2 months ago· 42
collbroGTR/comfyui-scail2-infinity
Nodes1
On cloudLocal install
Categoryvideo/scail2
Stars42
Updated2 months ago
Readme

comfyui-scail2-infinity

A single all-in-one ComfyUI node — SCAIL-2 Infinity (auto window) — that turns the core WanSCAILToVideo chunked workflow into one node that generates arbitrarily long SCAIL-2 video automatically.

SCAIL-2 is trained on 81-frame chunks with a 5-frame overlap (76-frame step). Normally, to go past 81 frames you wire multiple chunks together by hand, feeding each chunk's decoded output back into the next via previous_frames / video_frame_offset (the same "window" stitching Kijai's WanAnimate does). This node does that loop internally: chunk → sample → decode → re-anchor on the last 5 frames → repeat, until the driving pose video is exhausted, then stitches everything into one continuous video.

What it reuses (nothing reimplemented)

  • comfy_extras.nodes_scail.WanSCAILToVideo.execute() — builds the per-chunk conditioning, empty latent, and adjusted frame offset. It's a pure function of its inputs, so this node just calls it once per window. All SCAIL-2 features (pose mask, reference mask, replacement mode, clip-vision, pose strength/start/end) are passed straight through.
  • nodes.common_ksampler() — samples each chunk.
  • VAE.decode / VAE.decode_tiled — decodes each chunk.

Key parameters

| Param | Default | Notes | |---|---|---| | window_length | 81 | Frames per chunk. SCAIL-2 trained at 81 — keep it. | | previous_frame_count | 5 | Overlap frames anchored from the previous chunk. Trained at 5. | | max_frames | 0 | Hard cap on total frames. 0 = run until the pose video ends. | | decode_tiled | off | Tiled VAE decode to bound decode VRAM at high resolution. | | vary_seed_per_window | off | Off = same seed each chunk (best continuity). |

How length is decided

  • With a pose_video: it generates fixed 81-frame windows stepping by 76 (window_length - previous_frame_count) until the cumulative output reaches the driving video length, then trims the final overshoot. For 228 driving frames that is exactly 3 windows (3 samples). max_frames can cap it shorter.
  • Without a pose_video: exactly one window (no infinite loop).
  • The first 81 output frames are identical to running the stock single-chunk WanSCAILToVideoKSamplerVAEDecode graph.