Nodes/IAMCCS-nodes/IAMCCS Cine PromptRelay Latent Shape Sync
ComfyUI Node

IAMCCS Cine PromptRelay Latent Shape Sync

The width/height mismatch that silently kills PromptRelay, fixed

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
IAMCCS Cine PromptRelay Latent Shape Sync
    • relay_width
    • relay_height
    • process_scale
    • report
    width768
    height448
    process_scale0.50
    round_modeexact_scaled
    multiple_of1

    If you've used ComfyUI-PromptRelay for long LTX videos, you've hit the mismatch: your sampler runs at one spatial resolution while the PromptRelay conditioning latent is built at another, and you get silent conditioning drift or an outright shape error deep into a ten-minute generation. IAMCCS Cine PromptRelay Latent Shape Sync exists to make that mismatch impossible. It's a calculator node - it takes your output resolution and a processing scale, and returns the exact width/height to feed the PromptRelay latent so both stay on the same spatial scale.

    It's the kind of node that reads as "why does this exist" until the moment your 400-frame LTX render dies at step 380 because a latent was 512 wide instead of 384. Then it reads as "oh, right, because of this."

    How it works

    Pure math, no tensors. You give it width, height, and process_scale (default 0.5). It multiplies the source dimensions by the scale and rounds the result according to round_mode:

    • exact_scaled - plain rounding, no multiple enforcement.
    • floor_to_multiple, ceil_to_multiple, nearest_to_multiple - round down/up/nearest to multiple_of (default 1).

    The outputs relay_width and relay_height are meant to plug straight into the PromptRelay EmptyLTXVLatentVideo (or whatever builds the relay latent), while your main latent stays at full resolution. The report output literally tells you where to connect them.

    The inputs that matter

    • width / height - your actual generation resolution (defaults 768×448).
    • process_scale - the factor between sampler latent and relay latent. 0.5 is the sane starting point; the relay doesn't need full res because it's a text-conditioning scaffold.
    • round_mode + multiple_of - for when your relay path demands divisibility (LTX VAEs like clean multiples).

    Outputs: relay_width, relay_height, process_scale (echoed), report.

    Install

    It's one of 150+ nodes in IAMCCS-nodes:

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

    or Manager → search IAMCCS → restart. README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8. The node itself needs nothing, but to be useful you need ComfyUI-PromptRelay installed in custom_nodes - this is a companion, not a replacement.

    Where people get burned

    • Forgetting that the relay latent exists separately. This node only computes numbers; you still have to wire relay_width/relay_height into the PromptRelay latent builder. The report output's "connect to" hint is there for a reason.
    • Scale math you don't expect. If you change your output resolution after locking in process_scale, the relay shape changes too - that's correct behavior, but it means a workflow you tuned at 768×448 may need a re-tune at 1024×576.
    • Rounding to the wrong multiple. LTX wants frame/latent lengths in specific forms (8n+1 for time), but this node is about spatial shape. Don't set multiple_of to 8 expecting it to fix temporal length - that's a different problem, handled by the pack's sequencer/timeline nodes.
    • Zero search impressions, one-author tooling. It's a leaf node, so it's safe to adopt on its own - just know it's solving one narrow class of PromptRelay failures, not all of them.
    CategoryIAMCCS/Cine/00 Utilities

    Inputs (5)

    NameTypeDefaultDescription
    widthINT7681–8192
    heightINT4481–8192
    process_scaleFLOAT0.500.01–4
    round_modeCOMBOexact_scaled4 options: exact_scaled, floor_to_multiple, ceil_to_multiple, nearest_to_multiple
    multiple_ofINT11–256

    Outputs (4)

    NameTypeDescription
    relay_widthINT
    relay_heightINT
    process_scaleFLOAT
    reportSTRING