IAMCCS Cine PromptRelay Latent Shape Sync
The width/height mismatch that silently kills PromptRelay, fixed
- relay_width
- relay_height
- process_scale
- report
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 tomultiple_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_heightinto the PromptRelay latent builder. Thereportoutput'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_ofto 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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 7681–8192 | — |
| height | INT | 4481–8192 | — |
| process_scale | FLOAT | 0.500.01–4 | — |
| round_mode | COMBO | exact_scaled | 4 options: exact_scaled, floor_to_multiple, ceil_to_multiple, nearest_to_multiple |
| multiple_of | INT | 11–256 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| relay_width | INT | — |
| relay_height | INT | — |
| process_scale | FLOAT | — |
| report | STRING | — |