Nodes/PromptMasterLD/🎬 H3 Output - LD
ComfyUI Node

🎬 H3 Output - LD

H3 Output Is the Sane End of the Rail

By Lora-Daddy·Created 6 days ago·Updated 2 days ago· 5
🎬 H3 Output - LD
  • images
  • audio
  • pack
  • video_path
filename_prefixh3
fps24.0
qualitynear-lossless (10-bit, crf 10)

The last node in the graph should be the boring one

Every H3 workflow ends the same way: decoded frames have to become a file, and the file has to be viewable. The stock route is a Create Video node feeding a Save Video node, and between them sits every minor annoyance of H3 output - frame-rate mismatches, missing audio muxes, "where did my render go". H3 Output (🎬 H3 Output - LD, under LD / PromptMaster, in PromptMasterLD) replaces that pair with a single output block: it writes the mp4 and shows it, complete with a live preview and the sampler's own ETA while the render runs.

Decode stays upstream - feed it VAEDecode's frames, or H3 Master / the multishot sampler's finished IMAGE+AUDIO pair - and this node handles everything from there to a file on disk you can actually play.

The inputs

  • images - the finished frames.
  • filename_prefix - the stem for the saved file.
  • fps (default 24) - used only when no pack is connected. A pack carries the render's own frame rate, and that wins; this is the fallback for when you're wiring frames in by hand.
  • quality - output quality for the encode.
  • audio (optional) - the AUDIO to mux in. Forget this and you get a perfectly good silent movie, which is the single most common H3 output mistake there is.
  • pack (optional) - H3 Studio's pack. Connected, it supplies the frame rate and any other render context the node needs, so you stop setting fps by hand.

The one output is video_path (STRING) - the actual path of the file it wrote, which you can pass to a text display or any node that wants to know where the render landed.

What makes it nicer than the stock pair

The preview and ETA aren't cosmetic. H3 renders are slow, and when you've got a multishot chain cooking, the difference between "watch the frames stream in and see the ETA" and "stare at a node that looks dead for twenty minutes" is the difference between babysitting a render and walking away from it. The node also keeps the fps story straight - the whole "is this 24fps or whatever the pack said" question evaporates once a pack is connected, because the pack is the single source of truth.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/Lora-Daddy/PromptMasterLD
cd PromptMasterLD
pip install -r requirements.txt

Restart ComfyUI, or ComfyUI Manager → search "PromptMasterLD".

The gotcha

Silent files. If your render comes out with no audio, the problem is almost never the encoder - it's that the audio socket upstream went empty, or you wired the wrong AUDIO. H3's audio lives in the AV latent and has to be decoded with the audio VAE (H3 Loader's vae_audio) before it exists as an AUDIO you can feed here. Wire audio from that decode and the mux works. And if you're continuing long-form work rather than just saving it, remember H3 Library Save exists for that job - it writes the mp4 and the latent that makes a later continuation seamless, which this plain output node deliberately doesn't do.

CategoryLD/PromptMaster

Inputs (6)

NameTypeDefaultDescription
imagesIMAGE
filename_prefixSTRINGh3
fpsFLOAT24.01–120Used only when no pack is connected — a pack carries the render's own frame rate.
qualityCOMBOnear-lossless (10-bit, crf 10)3 options: near-lossless (10-bit, crf 10), high (8-bit, crf 16), small (8-bit, crf 22)
audiooptAUDIO
packoptLDP_PACK

Outputs (1)

NameTypeDescription
video_pathSTRING