Nodes/ComfyUI-SA-Nodes-QQ/Holocine Frames (QQ)
ComfyUI Node

Holocine Frames (QQ)

Plan multi-shot video cuts with a mathematically clean frame schedule

By siraxe·Created 11 months ago·Updated 2 days ago· 72
Holocine Frames (QQ)
  • shot_list
  • video_length
  • shots_string
video_length161
shots2
distribution0.50

Multi-shot video generation is the current obsession: instead of one continuous clip, you generate several shots and cut between them - but the cuts have to land on frames that make sense for the model's VAE, and they need to be spread across the timeline so your "story" beats actually have room. HolocineFrames is the planner for that. You tell it how long the video is and how many shots you want, and it hands back the exact frame numbers where the cuts should live, spaced sensibly.

It ships in siraxe/ComfyUI-WanVideoWrapper_QQ, the "(QQ)" Wan pack. It's a math helper more than a generation node - think of it as the scheduler that keeps your multi-shot workflow from producing a cut every three frames.

How it works

The node computes cut positions using exponent-based easing. The distribution slider (0.01–1.0, default 0.5) is the creative control:

  • < 0.5 - front-loaded: cuts cluster toward the start of the video.
  • = 0.5 - linear: evenly spaced.
  • > 0.5 - back-loaded: cuts cluster toward the end.

Under the hood it maps distribution to an exponent gamma (roughly 0.35 to 4.0) and places each shot boundary at t^gamma along the timeline, then enforces hard rules so the output is always usable: cuts are strictly increasing, the first cut lands at frame 9 or later, consecutive cuts are at least 8 frames apart, and the last cut is always the final frame. Those constraints exist because a cut at frame 3, or two cuts 2 frames apart, is useless to a diffusion model that needs time to establish each shot.

If you wire in a shot_list (the pack's WANVID_HOLOCINE_SHOT_LIST type), the node uses that list's length instead of the shots integer - so your workflow can carry shot definitions from another node and this one just does the arithmetic.

Inputs and outputs that matter

  • video_length - total target frames (default 161, in the 41–541 range, stepped by 4 to stay VAE-friendly).
  • shots - how many segments (2–10, default 2).
  • distribution - the front/back-loading dial above.
  • shot_list (optional) - overrides shots with an actual list of shot definitions.

Outputs: video_length (INT, echoed back) and shots_string (STRING) - the comma/structured list of cut frame numbers that downstream Holocine-style nodes consume.

Installation

cd ComfyUI/custom_nodes
git clone https://github.com/siraxe/ComfyUI-WanVideoWrapper_QQ.git

Restart ComfyUI (or ComfyUI Manager → search "WanVideoWrapper_QQ"). No extra Python dependencies - it's pure arithmetic and JSON; the pack's requirements.txt is empty. If upgrading from before the v1.3.4 rename to ComfyUI-SA-Nodes-QQ, delete any old wanwrapper_qq folder.

Common issues

The realistic trap is treating video_length as a free number. The node's step is 4 and the range is capped at 541, and that's deliberate - Wan's 3D causal VAE compresses time by 4, so arbitrary lengths like 157 produce awkward latent shapes downstream. Let this node (or the related WanFrames helper) pick your frame counts. Also, shots above 10 is rejected at the widget level, but remember the first-cut ≥ 9 and min-gap ≥ 8 constraints: with a short video and many shots, the node will clamp and compress your schedule - the output is valid, just denser than you might have pictured.

CategoryWanVideoWrapper_QQ

Inputs (4)

NameTypeDefaultDescription
video_lengthINT16141–541
shotsINT22–10
distributionFLOAT0.500.01–1
shot_listoptWANVID_HOLOCINE_SHOT_LIST

Outputs (2)

NameTypeDescription
video_lengthINT
shots_stringSTRING