Multishot Advance Project Cache Preview
Watch your cached shots without loading the model at all
- project
- video_path
- frame_count
- duration
- report
The whole selling point of Multishot Advance Project is that finished shots are cached as raw reusable state, so you can come back a day later, tweak one prompt, and only re-render what actually changed. That's great until you want to check what a cached shot looks like - because the obvious way is to load the model, run the sampler, and watch it either skip or re-render. Both waste time, and one defeats the point.
This node closes that gap: it plays back completed cached clips straight from the project's cache-v2 artifacts, without sampling, without loading the model, and without VAE decoding. It's a preview-only tool for the cache itself.
How it works
Connect the Project node's output:
Multishot Advance Project.project -> Multishot Advance Project Cache Preview.project
The node walks the project's cache manifest, verifies every artifact it plans to show - file sizes, SHA-256 checksums, sampler identity, and schema - and only then builds a temporary player copy and encodes it for playback. If an artifact fails verification, it's treated as a cache miss rather than a crash.
Two details are worth understanding. First, prefix_index selects which cache prefix to show; 0 means "the latest prefix compatible with the current project prompts and sampler identity." Second, the node is strictly read-only - it doesn't prune, rewrite, invalidate, or resume anything. It's a window into the cache, not a management tool. If you want to force a fresh render, that's the Project node's rebuild_project mode or the sampler's rebuild_cache.
The inputs and output
The four settings are small and self-explanatory once you know what a "prefix" is:
project- the Project handle. Required, obviously.prefix_index- 0 = latest compatible prefix. Bump it only if you've rendered multiple prefix generations of the same project.view_mode-complete_prefixplays every cached clip through the selected prefix;last_clip_onlyshows just the final one.preview_quality-quickcaps the temporary copy at 720p;fullkeeps cached resolution. Neither touches the cache.
Outputs: video_path (the temporary file it made), frame_count, duration, and a report string with the verification details.
Installing it
It ships in the pack, so:
cd ComfyUI/custom_nodes
git clone https://github.com/KursatAs/ComfyUI-H3-Multishot-Advance
Restart ComfyUI. It needs the same things the pack's video save node needs - an ffmpeg binary, which the pack resolves via imageio-ffmpeg first (handy for portable ComfyUI installs) and falls back to ffmpeg on PATH.
Common issues
The most common "issue" is actually good news: nothing to preview. If the project has no compatible cached prefix - because settings changed, the cache is empty, or you're in a state where every shot is dirty - the node has nothing to verify and tells you so via report. You can't preview a shot that hasn't been cached.
Second: it's read-only by design, so people who expect it to also trim or repair the cache get confused. Third, remember this previews cache state, not the final joined master - the seams and joins you'd see in the finished video aren't in the per-shot cache artifacts, so a clip can look fine here and still need the sampler's join logic to look right end-to-end.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| project | MULTISHOT_ADVANCE_PROJECT | Connect Multishot Advance Project. Cache Preview never rewrites or invalidates the project. | |
| prefix_index | INT | 00–100 | 0 selects the latest prefix compatible with the current project prompts and sampler identity. |
| view_mode | COMBO | complete_prefix | Preview every cached clip through the selected prefix, or only its final clip. |
| preview_quality | COMBO | quick | quick limits the temporary player copy to 720p; full keeps cached resolution. Neither changes cache. |
| preview_height | INT | 320160–900 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |
| frame_count | INT | — |
| duration | FLOAT | — |
| report | STRING | — |