H3 Relay · LTX 2× Enhance
LTX 2× Enhance — the one-pass finishing step that turns 480p H3 into something you'd publish
- ltx_model
- sequence
- previous_enhanced
- enhanced
- video
- video_path
- status
Enhance Shot is the "spend your GPU budget" node in H3 Relay. Generate Shot gives you native 480p H3 with audio, cheap and fast; this node takes that accepted raw shot and finishes it with LTX 2.5 at 2x resolution. It's deliberately the second step, not the first: you're meant to review and reroll the raw shot before you let LTX anywhere near it, because LTX finishing is the expensive part of the pipeline.
The 2x pipeline, and why it's one pass
This is where people get confused, so let's be precise: the LTX finishing path is one 2x pipeline, not two successive 2x passes. It uses two spatial components once each. A learned latent upscaler expands the target latent 2x first - that's the latent_upscale_models component in your LTX bundle. Then the pixel-spatial IC-LoRA (the separate ltx-2.5-22b-ic-lora-pixel-spatial-upscaler LoRA from MODELS.md) guides a generative diffusion refinement from the original low-resolution pixel video. The distilled LoRA on the dev transformer is what makes the low-step schedule work; it doesn't do the upscaling. If you'd read the README and thought "wait, 2x latent plus 2x pixel is 4x," that's exactly the trap the design avoids.
The inputs that matter
Required: ltx_model (the H3_RELAY_MODEL bundle from the LTX loader), sequence (the raw H3 continuation state), enhancement_prompt (LTX finishing direction - connect a text node), output_crf, and the four tiling controls:
- context_window_frames (default 193) - real pixel frames per diffusion window; 193 becomes 25 LTX latent frames. This is a pixel-frame window, not the LTX latent window, which trips people up.
- context_overlap_frames (default 64) - pixel-frame overlap between windows. More overlap costs time but softens window boundaries.
- vae_temporal_tile_frames (default 128) - frames decoded per VAE temporal tile. Larger values reduce decode seams but eat VRAM.
- vae_temporal_overlap_frames (default 16) - the overlap between those decode tiles.
The optional previous_enhanced input lets the next shot build on the previous finished one - LTX carries its own 17-frame/three-latent temporal context, and the rolling machinery (the H3RelayInternalLTXRolling* nodes you'll see appear in the expanded graph) handles freezing the accepted tail of the previous shot at the head of the current one. That's how shots stay temporally consistent across the 2x finish without re-rendering everything.
Outputs: enhanced (the H3_RELAY_ENHANCED stream you chain forward), video, video_path, status.
What to expect from the results
The honest framing from the pack's own docs is that the generative upscaler has fidelity limitations - it's a creative 2x re-render guided by the original low-res pixels, not a lossless super-resolution. It will sharpen and add detail, but it won't resurrect information that isn't there. LTX's community reputation for quality at low resolution is exactly why the raw-then-finish split exists: review the 480p for composition and motion first, then let LTX make it pretty. Expect roughly the behavior of the LTX-2/2.3 ecosystem generally - good structure and speed, occasional soft detail - but at a real 2x resolution jump.
Install and licensing
ComfyUI Manager search H3 Relay, or clone https://github.com/akatz-ai/h3-relay.git into custom_nodes. You need FFmpeg and the LTX 2.5 files from MODELS.md: the 22B dev transformer (int8 convrot), the Gemma4 12B text encoder with its projection, the bf16 video VAE, the latent spatial upscaler x2, the distilled LoRA, and the pixel-spatial IC-LoRA. LTX's community license caps you at $10M annual revenue before you need a commercial agreement, and H3 Relay's own GPL-3.0 license doesn't grant you any model rights - review each upstream license.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| ltx_model | H3_RELAY_MODEL | — | |
| sequence | H3_RELAY_SEQUENCE | — | |
| enhancement_prompt | STRING | LTX finishing direction. Connect a multiline prompt/text node. | |
| output_crf | INT | 180–51 | — |
| context_window_frames | INT | 19365–4097 | Real pixel frames per diffusion window. 193 becomes 25 LTX latent frames. |
| context_overlap_frames | INT | 640–1024 | Real pixel-frame overlap. More overlap costs time but can soften window boundaries. |
| vae_temporal_tile_frames | INT | 12832–4096 | Frames decoded per VAE temporal tile. Larger values reduce decode seams but use more VRAM. |
| vae_temporal_overlap_frames | INT | 168–1024 | — |
| previous_enhancedopt | H3_RELAY_ENHANCED | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| enhanced | H3_RELAY_ENHANCED | — |
| video | VIDEO | — |
| video_path | STRING | — |
| status | STRING | — |