Nodes/IAMCCS-nodes/LTX-2 FrameRate Sync (int+float)
ComfyUI Node

LTX-2 FrameRate Sync (int+float)

LTX-2 FrameRate Sync

By IAMCCS·Created 11 months ago·Updated 7 days ago· 113
LTX-2 FrameRate Sync (int+float)
    • fps_int
    • fps_float
    • report
    fps24.00
    int_moderound

    Here's a failure mode that'll waste an evening: half your LTX-2 nodes want FPS as an integer and half want it as a float, and if the two disagree even slightly - 24.0 on one side, 24 on the other, or worse, 23.976 somewhere - you get frame counts that are off by one, audio drift, or segments that don't line up. LTX2 FrameRate Sync is a two-output pass-through node that takes one FPS value and hands you both types, guaranteed consistent.

    This is one of those boring utility nodes you don't appreciate until a long multi-segment run silently drifts. The IAMCCS LTX-2 extension ecosystem is that multi-segment run, so the pack uses this node everywhere - the LTX2 Validator's seconds↔length UI syncs through it under the hood, and the helper-module planner chain expects it upstream. If you're building video frames from "FPS × seconds" math, you want a single source of truth for the number.

    How it works

    Feed it one fps FLOAT and it computes fps_int and fps_float for you. The int_mode widget decides how the integer is derived:

    • round (default) - the integer is fps rounded, and the float output keeps your original precision. Standard choice.
    • floor / ceil - the integer snaps down or up, float unchanged. For 29.97 material, floor gets you the 29 that matches most video containers.
    • fixed - the interesting one. It snaps the float to equal the derived integer, so both outputs are perfectly identical. Use this when a downstream node does an exact equality check and 24.0 vs 24 is somehow the difference between working and silently wrong.

    fps_int is clamped to a minimum of 1, and the report STRING shows you the delta between the two - the classic "where did my 0.024 fps go" debugging tool.

    The inputs and outputs that matter

    Two inputs: fps (FLOAT, default 24.0) and int_mode. That's the whole thing.

    Three outputs: fps_int (INT), fps_float (FLOAT), and report (STRING). Wire fps_int into anything that wants a whole number (frame math, most LTX nodes) and fps_float into the pickier float inputs (audio trim, some samplers). One value in, both types out - that's the entire job, and it's the right job.

    Installing it

    Part of IAMCCS-nodes. ComfyUI Manager → search "IAMCCS" → install, or:

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

    Restart ComfyUI, find it under IAMCCS/LTX-2. No models, no dependencies - it's pure arithmetic.

    Common issues

    The only real trap is thinking it does more than it does: it doesn't validate your FPS, it just keeps the two representations in sync. If you set 23.976 and expect 24, that's on you - set the value deliberately. And if you're using fixed mode and get a warning that the float was snapped, that's informational, not an error; it means a genuinely fractional FPS got flattened, so double-check that's what you wanted for audio alignment. LTX's native default is a clean 24fps, which is exactly why the pack's extension presets (lossless_refresh_24fps, videoclip_audio_24fps) all assume 24 - keep it simple and use the presets' FPS unless you have a real reason not to.

    CategoryIAMCCS/LTX-2

    Inputs (2)

    NameTypeDefaultDescription
    fpsFLOAT24.001–240
    int_modeCOMBOround4 options: round, floor, ceil, fixed

    Outputs (3)

    NameTypeDescription
    fps_intINT
    fps_floatFLOAT
    reportSTRING