SCAIL-2 Fit Video
Your driving video is the wrong size. This node fixes that for SCAIL-2
- video
- video
- width
- height
- summary
Video diffusion models are picky about dimensions in a way that image models aren't, and SCAIL-2 is pickier than most. Feed it a driving video at some arbitrary resolution and you'll either get a failed run or output that looks subtly wrong - off proportions, half-cropped subjects. SCAIL2FitVideo exists to make that failure mode impossible: it resizes your driving video to a resolution SCAIL-2 is actually happy with, preserving aspect ratio, no cropping.
It's a small node and it does one thing, which makes it a nice first stop if you're learning the pack. It sits between your video source and the generation node: VHS_LoadVideo → SCAIL2FitVideo → SCAIL2SimpleVideo's pose_video input. The bundled 1. SCAIL2_simple.json workflow is wired exactly that way.
How it works
The fit logic is straightforward: pick a preset, and the node scales the video's short side to the preset value, computes the long side from the original aspect ratio, then rounds both dimensions to a multiple of 32 - the alignment SCAIL-2 and Wan latents want. Because it scales the short side, a portrait clip and a landscape clip both get handled correctly without you doing the math. Under the hood it resizes in chunks so you don't blow up VRAM on a long clip, and it clamps to a valid 0–1 range.
The inputs that matter
Only three, and really only one you'll touch:
resolution-512p,704p, orcustom. The default is512p.custom_width/custom_height- only shown whenresolutioniscustom. Defaults are 832×480, stepped in 32s.
Pick 512p or 704p and the width/height widgets disappear - the pack's frontend hides them on purpose so you can't override a preset and break the fit.
Which one? 704p is the sweet spot the included workflows use (a 704×1280 drive is the kind of thing people actually run SCAIL-2 at), and it's a good default for quality. 512p is the fast/low-VRAM option for testing - the KB's hardware reports say even 8GB cards can limp through at 360–576p territory, so 512p is the sensible starting point. custom is for when you know your target resolution exactly (say, matching an existing upscale or a specific canvas) and want full control.
Outputs
video- the resized IMAGE batch. Wire this intoSCAIL2SimpleVideo.pose_video.widthandheight- the actual fitted dimensions as INTs. Nice for feeding a text label or preview node so you can see what SCAIL-2 is actually generating at.summary- a JSON string with source shape, target shape, and the fit mode. Useful when you're debugging why output came out a size you didn't expect.
Installing and gotchas
Install the pack once (ComfyUI Manager → "ComfyUI-SCAIL2-Easy", or git clone https://github.com/jieg9341-lab/ComfyUI-SCAIL2-Easy into custom_nodes and restart). This node adds no model downloads of its own and nothing beyond the pack's light dependencies - it's pure tensor math.
The one thing to keep straight: this node resizes, it does not crop. If your driving video has the subject near the edge, fitting the short side can push them out of frame in the resized result, so leave a little headroom in the source clip. And remember the resize doesn't change your subject's proportions - that's the point. It also doesn't fix a too-long clip; frame count is handled on the generation node (max_frames, chunking), not here.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| video | IMAGE | — | |
| resolution | COMBO | 512p | 3 options: 512p, 704p, custom |
| custom_width | INT | 83232–4096 | — |
| custom_height | INT | 48032–4096 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video | IMAGE | — |
| width | INT | — |
| height | INT | — |
| summary | STRING | — |