Nodes/IAMCCS-nodes/IAMCCS Cine Shotboard Final Frame Trim
ComfyUI Node

IAMCCS Cine Shotboard Final Frame Trim

Sweeping the ghost frames off the end of your shot before it's saved

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
IAMCCS Cine Shotboard Final Frame Trim
  • video
  • frames
  • audio
  • cine_linx
  • video
  • frames
  • audio
  • cine_linx
  • report
trim_policyauto_from_cine_linx
tail_trim_frames1
trim_embedded_video_audioyes

LTX video generation has a dirty little secret: pipelines that pad a latent to hit a duration target often leave one or more garbage tail frames after decode - frozen, chroma-shifted frames that look fine in the latent and ruin the shot when you render it out. IAMCCS Cine Shotboard Final Frame Trim is the pack's cleanup pass: it sits between your final decode and the SaveVideo node and trims those tail frames off video, frames, and audio in one shot.

It's the output-side bookend to IAMCCS Cine Latent Duration Crop (which trims in latent space). This one works on the decoded VIDEO, IMAGE, and AUDIO so that whatever collector or editor picks up the shot gets exactly the frames you intended.

How it works

The node has a trim_policy with three modes:

  • auto_from_cine_linx (default) - reads the intended tail-trim from the cine_linx plan bus. This is the shotboard-integrated mode: the plan says "1 tail frame," and the trim obeys it. It also checks the plan's target frame count and will crop to that length if the rendered output overshot.
  • force_value - ignore the plan, use tail_trim_frames directly.
  • off - pass everything through untouched.

tail_trim_frames (default 1) is the fallback/override count, and trim_embedded_video_audio (default yes) tells it to slice the audio track embedded in the video object by the same amount so lipsync and picture stay aligned.

It handles video, frames, and audio inputs independently - you can feed any combination, and it trims what's present. Outputs mirror the inputs plus cine_linx (with the trim recorded in metadata) and a report that's refreshingly honest about what it did and didn't change.

The inputs that matter

  • trim_policy - pick auto_from_cine_linx if you're in a shotboard workflow, force_value if you just want "always cut N frames."
  • tail_trim_frames - 1 is usually right; the pack's own docs describe these as chroma-offset tail frames, and there's typically only one.

The optional cine_linx is how auto_from_cine_linx learns the plan. Feed it. Without it, auto mode falls back to tail_trim_frames.

Install

Part of IAMCCS-nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

or Manager → search IAMCCS. README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8. It expects the newer VIDEO type that modern ComfyUI uses for video objects - if your pipeline is still on plain image frames, feed the frames input instead.

Where people get burned

  • Trimming audio you wanted. trim_embedded_video_audio defaults to yes. If your shot intentionally runs past the picture (tail-out dialogue), you'll cut it. The node does also pass through a separate audio input untrimmed - so keep your master audio on the audio pin and let embedded audio be handled separately.
  • Auto mode with no plan. Without a cine_linx, auto_from_cine_linx silently behaves like force_value with the default 1. If you expected the plan to decide and it wasn't connected, you might trim more or less than intended - read the report (policy, effective_tail_trim_frames).
  • It's a fixer, not a cause. If every shot comes out with tails, the real problem is upstream duration math (the 8n+1 rounding and padding). This node patches the symptom reliably, which is fine, but don't stop hunting the source.
  • Zero search impressions, one-author tooling. Safe leaf node, but only meaningful if you actually see garbage tail frames - skip it if your shots render clean.
CategoryIAMCCS/Cine/00 Utilities

Inputs (7)

NameTypeDefaultDescription
trim_policyCOMBOauto_from_cine_linx3 options: auto_from_cine_linx, force_value, off
tail_trim_framesINT10–24
trim_embedded_video_audioCOMBOyes2 options: yes, no
videooptVIDEO
framesoptIMAGE
audiooptAUDIO
cine_linxoptIAMCCS_SUPERNODE_LINX

Outputs (5)

NameTypeDescription
videoVIDEO
framesIMAGE
audioAUDIO
cine_linxIAMCCS_SUPERNODE_LINX
reportSTRING