Nodes/ComfyUI-MiniMax-H3-Guide/MiniMax H3 Foley Target (Plan v2)
ComfyUI Node

MiniMax H3 Foley Target (Plan v2)

H3 foley without a reference stream

By ethanfel·Created 22 days ago·Updated 14 days ago· 207
MiniMax H3 Foley Target (Plan v2)
  • h3_plan
  • video_frames
  • h3_plan
  • h3_video
  • foley_preview
source_fps24.00

Foley is the film-industry word for the sound that matches on-screen action - footsteps on tile, a glass set down on wood. H3 can do this: you hand it a silent video and it generates a synchronized audio track. But there's a subtle trap in how you present the source. If you register the video as a normal H3 Video Reference, the model treats it as reference media and costs you an expensive Ref2VA stream. Foley Target (Plan v2) exists to prevent exactly that: it carries the source frames as target media, not as a reference, so the picture track becomes the preserved sampler latent instead of a conditioning input.

The mechanism is clean and it's worth understanding because it explains everything the node does. Apply Reference Plan later VAE-encodes this picture track, keeps it with video mask 0 (preserve), and generates the audio stream with audio mask 1 (generate). The source pixels are locked; only the sound is produced. It's the same per-token masking trick the pack uses for AV latents, applied to a whole video.

Inputs that matter

  • video_frames - the decoded source-video frames. The tooltip is emphatic: connect this batch only here, not to Video Reference. That's the whole point - the frames become the preserved latent rather than expensive conditioning.
  • source_fps - the real frame rate of your batch. A loader forced to 24 FPS should use 24 here. Wrong FPS = wrong timing on the generated audio.
  • h3_plan - from Project Setup, and the Project duration must match the source video's real duration. The compiler validates this alignment.

Outputs

  • h3_plan - continue to optional references, Shots, then Prompt Merge.
  • h3_video - the picture track resampled to 24 FPS and padded to the exact H3 target grid.
  • foley_preview - source timing, native frame preparation, mask semantics, and prompting guidance.

The Foley timeline

The pack's Foley doc has a clear pattern: create one Shot per real source cut, and write visible timing anchor → audible result in chronological order. Ambience goes in overall_soundscape; discrete events go inside the Shot where they occur; non_diegetic_music should be N/A unless you want an audience-only score. No visual/camera requests - the picture track is latent-locked.

Install and prerequisites

cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-MiniMax-H3-Guide

No extra Python dependencies. But Foley specifically requires MiniMax H3 per-token mask support - ComfyUI PR #15375 or an equivalent compatibility patch. If your ComfyUI build doesn't have it, the node won't produce the locked-video/generated-audio latent it's supposed to. Check that before debugging anything else.

Gotchas

  • Picture changes = you connected it twice. The #1 Foley failure per the pack's own troubleshooting table: if the video is also connected to a Video Reference, it leaks into conditioning and the "locked" picture moves. One connection, Foley Target only.
  • Audio is noisy or muted. The doc suggests testing deterministic/ODE sampling or eta=0.
  • Events drift after cuts. That means you didn't make one Shot per real source cut. The audio event timing is tied to the shot structure.
  • The source audio "disappears." That's expected - Foley regenerates the complete audio stream. If you wanted to keep part of the original soundtrack, you need the separate audio-time mask workflow, not Foley mode.

This is one of the pack's genuinely original-feeling nodes, and it's a good reason to care about the project even if Plan v2's verbosity isn't your thing: locking the picture and generating synchronized sound is a clean, useful trick that hand-written H3 prompting gets wrong constantly.

CategoryMiniMax H3/Plan v2

Inputs (3)

NameTypeDefaultDescription
h3_planMINIMAX_H3_PLAN_V2Connect Project Setup before adding references or Shots. The Project duration must match the source video's real duration.
video_framesIMAGEDecoded source-video frames. Connect this batch only here, not to Video Reference: the picture track becomes the preserved sampler latent rather than expensive Ref2VA conditioning.
source_fpsFLOAT24.000.01–240Frame rate represented by video_frames. A loader forced to 24 FPS should use 24 here.

Outputs (3)

NameTypeDescription
h3_planMINIMAX_H3_PLAN_V2Continue to optional reference nodes, Shots, then Prompt Merge.
h3_videoIMAGEThe source picture track resampled to 24 FPS and padded to the exact H3 target grid.
foley_previewSTRINGSource timing, native frame preparation, mask semantics, and prompting guidance.