SCAIL-2 Keyframe Matrix Viewer
Browse your SCAIL-2 keyframes as a clickable matrix, not a wall of thumbnails
- paired_keyframes
The SCAIL-2 Chunk Keyframe Extractor gives you the frames you need to build references, but a stack of boundary and start frames is only useful if you can actually tell which is which. The SCAIL-2 Keyframe Matrix Viewer is the front end for that pile: it saves every original-size keyframe as an individual PNG and renders a labeled, clickable matrix in the node UI where each cell shows the chunk, the frame type, and the frame number, with Open / Download / Copy URL actions pointing at the saved file.
This is an output node - it has no outputs of its own and doesn't feed anything downstream. You wire the extractor's paired_keyframes into paired_keyframes and its summary into summary (both plain inputs, no conversion needed), set filename_prefix to whatever you want the saved PNGs called, and run. When it executes, each keyframe lands as its own file on disk and the matrix appears in the node. The author's point in splitting this from the extractor's contact_sheet is that the contact sheet is just a rendered preview image - resized thumbnails with text baked in, fine for glancing at, useless as source material. This node saves real, original-resolution PNGs you can open and reuse.
The save_location and display_group dropdowns control the two halves of that split, and their option lists mirror each other (temp, output, both, overlap_boundary_only, new_chunk_start_only). save_location picks where the PNGs go - temp keeps them out of your output folder, output puts them with your saved videos, both does both. display_group filters which frames the matrix shows; use overlap_boundary_only or new_chunk_start_only when the paired alternation gets noisy and you only care about one kind of frame right now. If the options look redundant, that's because they are, mildly - you can replicate the filtering on the save side and the display side independently, which is genuinely useful when you want to save everything but only look at boundaries.
Where this earns its keep in the wider workflow: the whole pack is built around building reference images that match chunk boundaries, and SCAIL-2's known failure mode is identity drift between chunks. Browsing a labeled matrix of exactly the frames each chunk will anchor on is how you build references that line up with the motion instead of guessing. It's also the node that finally makes the keyframe-extraction step usable for manual work - click a cell, the original PNG opens, and you've got your reference source at full resolution.
Install is the same as every node in this pack: ComfyUI Manager search comfyui_scail2_multi_cond, or
cd ComfyUI/custom_nodes
git clone https://github.com/TTPlanetPig/comfyui_scail2_multi_cond
then restart ComfyUI. No models, no extra Python packages - the heavy requirement is just having a ComfyUI build with the SCAIL-2 core nodes (WanSCAILToVideo, SamplerCustom, VAEDecode, ColorTransfer).
Two gotchas. First, this is a frontend-heavy node; if the matrix doesn't render, hard-refresh the browser and confirm the console shows [SCAIL Multi Cond] dynamic UI extension loaded - the pack's web JS lives in web/js/ and silently failing to load is the usual culprit. Second, save_location: temp files get wiped by ComfyUI's temp cleanup, so if you've hand-built references from these PNGs, save them somewhere permanent or change the location before you rely on them.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| paired_keyframes | IMAGE | — | |
| summary | STRING | — | |
| filename_prefix | STRING | scail_keyframe | — |
| save_location | COMBO | temp | 6 options: temp, output, , both, overlap_boundary_only, new_chunk_start_only |
| display_group | COMBO | both | 6 options: both, overlap_boundary_only, new_chunk_start_only, , temp, output |
Outputs (0)
No outputs