Nodes/ComfyUI-Easy-Media/H3 Audio Context Latent
ComfyUI Node

H3 Audio Context Latent

Keep sound rolling across segments without touching the video decode

By yolain·Created 4 months ago·Updated about 23 hours ago· 184
H3 Audio Context Latent
  • audio_latent
  • latent
output_frames

easy h3AudioContextLatent is a niche internal node even by this pack's standards - it exists to carry audio continuity between H3 segments when you don't want to (or can't) round-trip the video. Its whole job is to take an audio latent and wrap it into a valid joint audio/video latent that has a silent video stream. The sampler sees a complete H3 AV latent; the video part is empty (noise seeded by the sampler), and the audio part is the continuation you supplied.

What it does

H3 latents are nested: one tensor containing a video stream and an audio stream together, which is why the node has to build the "video" half even though it's discarded. Given your audio_latent and an output_frames target, it:

  • reads the audio samples from the latent (validating they're a 4D tensor);
  • creates a video latent of all zeros sized to H3's video channel layout (24 channels) at the frame count and temporal shape corresponding to output_frames - H3's video latent is spatial 2×2, so the empty stream costs almost nothing;
  • returns the pair as a single nested latent.

Inputs are just those two: audio_latent and output_frames. Output is one latent.

The frame math is H3-specific and worth knowing if you ever touch it: video frames are aligned to the model's frame grid and its temporal downsampling, while audio runs at 40fps internally (the pack's AUDIO_LATENT_FPS). The node computes both from the same output_frames value, so the audio duration and the (silent) video duration agree.

Where it fits

It's part of the context machinery the project pipeline uses for audio continuation, and it's marked dev-only. In the MultiTrack project flow, when a segment needs its sound to continue from the previous one but the video is starting fresh (a new shot with ongoing room tone, say), the pipeline can carry the audio latent forward without decoding video, re-encoding it, or paying for a full AV decode round-trip. That's the efficiency this node exists for: audio-only state, no video pipeline involved.

Outside the pipeline it's a curiosity. You'd reach for it only if you're hand-building an H3 graph and want to seed the audio stream of a latent while letting the sampler invent the video. For a normal user, the thing to know is that it's doing silent-video-plus-real-audio under the hood - so if a segment comes back with silent video that was supposed to have content, this node (or a graph branch feeding it) is where the "video" was emptied.

Installation

Part of ComfyUI-Easy-Media:

# FFmpeg first (the README's hard requirement)
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Media

Restart ComfyUI or install via Manager (search "ComfyUI-Easy-Media"). No extra dependencies.

Troubleshooting

  • "H3 audio latent must contain a four-dimensional tensor" - the input isn't a real H3 audio latent. It must come from the H3 audio VAE path, not a generic LATENT.
  • Video comes out silent - check you didn't wire this node where a full AV latent was expected. It deliberately builds an empty video stream; that's the feature, but it's easy to mistake for a bug.

For 99% of users this node will never be touched directly. But if you're chasing a "why is my continued segment silent / why is the video blank" bug, this is one of the first places the trail leads.

CategoryEasyUse/H3/dev

Inputs (2)

NameTypeDefaultDescription
audio_latentLATENT
output_framesINT

Outputs (1)

NameTypeDescription
latentLATENT