IAMCCS_Ltx2HelperModules Finalize
Turn your frames into a finished video
- audio
- parent_contract
- linx
- finalize_payload
- contract
- linx
- video_path
- report
Every multi-segment LTX-2 project ends the same way: a folder full of frames and a decision about how to turn them into a file. Finalize is the end of the au_img2vid helper chain - the output node that combines a frames directory into a video at your chosen FPS, applies the CRF/pixel-format settings, trims to the audio, and muxes the soundtrack in. It's marked as an output node, so it's the thing your graph terminates in.
The nice part is that it doesn't make you re-decide everything at the end: if you've been feeding planner_payload down the chain, Finalize will happily pull the FPS and output naming from the plan instead of you retyping numbers that already drifted from what you actually generated.
How it works
It wraps the pack's IAMCCS_VideoCombineFromDir - read the frames in frames_dir in order, encode at the target frame_rate with the given crf and pix_fmt, and optionally trim + mux the audio. The smarts:
use_planner_fps(default true) - if aplanner_payloadis connected, the FPS comes from the plan, not theframe_ratewidget. Your 24.0 in the widget vs 23.976 in the plan never has to be a fight again.trim_to_audio(default true) - trims the rendered video to the audio duration, so a 30.7-second render doesn't ship with 0.7 seconds of silence because the plan over-ran the soundtrack.filename_prefix- output path/naming;use_planner_fps-style, the goal1 preset can override the default prefix so each project type lands in its own folder.crf(default 19) - x264-style quality/size knob. Lower = bigger, cleaner; for web-shareable LTX output the community typically compresses harder - the KB's long-standing guidance is CRF 30–40 for distribution, so 19 is the archival setting, not the upload setting.pix_fmt-yuv420p(default, universal compatibility) oryuv444p(better chroma, larger files, pickier players).
The inputs and outputs that matter
Wire in: frames_dir (point it at your final extended frames folder - typically the extended_dir from DiskExtension or the last Continuity output), audio (optional), and planner_payload (optional but recommended). Set frame_rate, crf, and pix_fmt once. trim_to_audio and use_planner_fps default on, which is what you want.
Outputs: video_path (STRING - where the file landed), finalize_payload, contract, linx, and report.
Installing it
Ships in IAMCCS-nodes under IAMCCS/Ltx2 Helper Modules. Manager → "IAMCCS" → install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart ComfyUI. It uses ComfyUI's video-combine machinery, so no extra models; keep ComfyUI current.
Common issues
If video_path is empty or the render silently fails, check frames_dir - it must point at sequentially-numbered frame files, and pointing it at an input source directory (like the one your VAE decode wrote) instead of the extended output is the classic wiring slip. Second: trim_to_audio with no audio connected does nothing harmful (nothing to trim to), but trim_to_audio with a stale audio file can cut your video short - make sure the audio you feed is the master, not a segment slice. And if the file comes out the wrong FPS, you connected a planner_payload whose plan differs from the render - that's use_planner_fps working as designed; either update the plan or flip the toggle and set frame_rate directly.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| frames_dir | STRING | iamccs_extension_disk/final_extended | — |
| frame_rate | FLOAT | 24.001–240 | — |
| filename_prefix | STRING | IAMCCS/Ltx2HelperModules | — |
| crf | INT | 190–51 | — |
| pix_fmt | COMBO | yuv420p | 2 options: yuv420p, yuv444p |
| trim_to_audio | BOOLEAN | true | — |
| use_planner_fps | BOOLEAN | true | — |
| audioopt | AUDIO | — | |
| planner_payloadopt | STRING | {} | — |
| parent_contractopt | IAMCCS_SUPERNODE_CONTRACT | — | |
| linxopt | IAMCCS_SUPERNODE_LINX | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| finalize_payload | STRING | — |
| contract | IAMCCS_SUPERNODE_CONTRACT | — |
| linx | IAMCCS_SUPERNODE_LINX | — |
| video_path | STRING | — |
| report | STRING | — |