Nodes/H3 Relay/H3RelayInternalAcceptLTX
ComfyUI Node

H3RelayInternalAcceptLTX

The node that locks in an LTX-enhanced shot — and why its inputs feel redundant

By akatz-ai·Created 28 days ago·Updated 8 days ago· 15
H3RelayInternalAcceptLTX
  • base_enhanced
  • sequence
  • segment
  • images
  • rolling_context
  • enhanced
  • video
  • video_path
  • status
cache_key
output_crf18
context_window_frames193
context_overlap_frames64
vae_temporal_tile_frames128
vae_temporal_overlap_frames16

When H3 Relay · LTX 2× Enhance expands, one of the nodes it builds is Accept LTX - the thing that takes the freshly diffused, decoded, and cropped LTX frames and records them as the accepted enhanced version of a shot. It's the LTX-side cousin of Accept Raw: same idea (accept a stage into the timeline so it becomes cacheable and chainable), different stream, much hairier input list.

You will never place this node by hand, and that's fine. Understanding what it does helps when you're debugging why an enhancement cached or didn't, because all those inputs are exactly what gets fingerprinted into the cache key.

What each input is doing

The input list reads like a receipts folder, because that's basically what it is. base_enhanced is the running H3_RELAY_ENHANCED stream you're appending to. sequence is the raw H3 continuation state, and segment is the specific raw H3 segment this enhancement corresponds to - together they anchor the enhanced record to a particular accepted raw shot. images are the decoded LTX frames that just came out of the sampler and the rolling-crop node. rolling_context is the H3_RELAY_LTX_ROLLING_CONTEXT token describing how much context and how many delivered frames this window carried - that's how the crop node and the accept node agree on what's actually new footage vs. carried-over tail.

Then there are the parameters the enhance node also passes down so the cache contract stays complete: cache_key (the precomputed fingerprint of this enhancement job), output_crf, and the four tiling controls (context_window_frames, context_overlap_frames, vae_temporal_tile_frames, vae_temporal_overlap_frames).

Here's the part that looks redundant but isn't: several of those values are already embedded in the cache_key. The accept node takes both because the cache key is a precomputed hash, while the raw values are what get written alongside the record for auditing and integrity checks. It's belt and suspenders, not a bug.

The cache contract in practice

When H3 Relay re-runs an LTX enhancement with unchanged inputs, it looks up the record on disk - content-addressed, SHA-256-checked - and returns the accepted artifact without touching the GPU. The cache_key embeds the raw revision and SHA of the source segment, the previous LTX revision, the enhancement prompt, the seed, the model bundle's cache tag, and the tiling parameters. Change any one of those and the key changes, invalidating only that derived artifact. Change the enhancement prompt and you re-run just that shot's finish; your other accepted shots stay put.

One subtlety worth knowing: the accept node writes a CRF-18 master segment, and if you request a different output_crf it just transcodes a derived variant from the master - no repeat inference. That's the same encode-without-resampling trick as the rest of the pack.

Outputs are the standard enhanced tuple: enhanced (H3_RELAY_ENHANCED), video, video_path, status. The enhanced wire is what feeds the next shot's enhance node or the Assemble node.

The "internal" naming is honest - in the reference workflow this node appears as part of the expanded graph, and you should leave it wired as built. If you're tempted to rewire it, know that the cache key and the rolling context have to agree exactly, and a mismatch is the kind of thing that silently disables caching rather than erroring. Install the pack via ComfyUI Manager (H3 Relay) or git clone https://github.com/akatz-ai/h3-relay.git into custom_nodes; needs ComfyUI 0.32.0+, FFmpeg, and the LTX 2.5 files from MODELS.md.

CategoryH3 Relay/internal

Inputs (11)

NameTypeDefaultDescription
base_enhancedH3_RELAY_ENHANCED
sequenceH3_RELAY_SEQUENCE
segmentH3_CHAIN_SEGMENT
imagesIMAGE
rolling_contextH3_RELAY_LTX_ROLLING_CONTEXT
cache_keySTRING
output_crfINT180–51
context_window_framesINT19365–4097
context_overlap_framesINT640–1024
vae_temporal_tile_framesINT12832–4096
vae_temporal_overlap_framesINT168–1024

Outputs (4)

NameTypeDescription
enhancedH3_RELAY_ENHANCED
videoVIDEO
video_pathSTRING
statusSTRING