Nodes/MiniMaxH3-Director-V1.2/Muse Minimax Refine V2 (Beta-matched)
ComfyUI Node

Muse Minimax Refine V2 (Beta-matched)

The second pass that finishes only the Seed Hunt candidate you like

By muse-collective-26·Created 19 days ago·Updated a day ago· 30
Muse Minimax Refine V2 (Beta-matched)
  • clip
  • vae
  • audio_vae
  • model
  • candidate_1_latent
  • candidate_2_latent
  • candidate_3_latent
  • candidate_4_latent
  • ref_images
  • first_frame
  • last_frame
  • ref_audio_1
  • ref_audio_2
  • ref_audio_3
  • images
  • audio
prompt
candidate0
ref_image_sizematch
seed0
steps8
two_stage_first_pass_steps2
sampler_nameeuler
schedulerbeta
two_stage_latent_upscale_model
two_stage_target_megapixels1.0
raw_latent_carry_testtrue
timeline_data{}

If you've seen the Muse MiniMax Director's Seed Hunt, the pitch for this node is short: why run four full-resolution passes to find a good seed when you can scout four cheap ones and pay for one expensive finish? Muse Minimax Refine V2 is the "one expensive finish." It's bundled in the same repo as the Director, and it's what you wire the scouted candidates into when you've picked the one that actually followed your prompt.

The important thing to understand is what it is not. Refine isn't an img2img pixel re-sample or a "sharpen the video" pass. It's a genuine latent continuation: it takes the chosen candidate's own Stage-1 latent - the exact noise state where sampling stopped - and picks up that candidate's sigma schedule from there, finishing at a higher resolution with the same learned latent upscaler the Director uses for its own Stage 2. Nothing about the candidate's content changes, only its resolution. That's why it's called "Beta-matched": this V2 node was originally built to pair with a two-stage scouting Director, got accidentally deleted, and was recovered and reinstated in this repo precisely because it's the one that matches this Director's two-stage/Seed Hunt mechanism.

The flow

On the Director, run two-stage sampling with Seed Hunt on and Latent-Only Scouting (two_stage_seed_hunt_latent_only) on - that's what makes each scout stop after the cheap Stage 1 and exposes the continuable latent on the candidate_1..4_latent outputs. Wire those four into Refine's matching inputs, then click the candidate button in Refine's own UI.

The inputs that matter beyond that: candidate starts at 0, and the node deliberately refuses to run until you pick one - there's no silent "just use candidate 1." prompt takes the Director's compiled_prompt (ignored for multi-chunk candidates, since each chunk already carries its own saved prompt). Wire ref_images from the Director's ref_images_used output so identity stays anchored - without it, any detail the prompt doesn't spell out is free to drift. Same for ref_audio_1/2/3 from the Director's ref_audio_1_used etc., if the original used voice references. model, first_frame, and last_frame are all optional: leave them unconnected and Refine auto-uses whatever the Director embedded on the chosen candidate. Outputs are plain images and audio, straight into your usual Video Combine node.

For a multi-chunk candidate it gets smarter: Refine detects that the latent carries several chunks, refines each in turn, and re-anchors continuity from the previous chunk's freshly refined output the same way the Director does between its own chunks, so the seam survives the resolution bump. raw_latent_carry_test (on by default) is what hard-freezes each continuation chunk's opening against the previous refined chunk's real latent, rather than the weaker pixel re-encode carry.

Install

Same install as the Director - it's the second node in the same package:

cd ComfyUI/custom_nodes
git clone https://github.com/muse-collective-26/MiniMaxH3-Director-V1.2

...or search Muse Minimax Director in ComfyUI Manager and restart. Because Refine's own two-stage finish uses the same latent upscaler family, it shares the Director's two less-obvious requirements: a latent-upscale checkpoint in ComfyUI/models/latent_upscale_models/, and ComfyUI-H3-Motion-Context-MultiRef for the multi-chunk carry. Model weights come from MiniMaxAI/MiniMax-H3 on Hugging Face - see the Director article for the license caveat, which matters here too.

Where people get burned

Two settings behave like traps until you know the reason. seed, steps, and two_stage_first_pass_steps must match what the chosen candidate's Stage 1 was actually generated with - Refine reconstructs the same sigma schedule to continue exactly where sampling stopped, and a mismatched seed means continuing the wrong noise curve from the wrong place. And if Refine "does nothing" with no popup, you're probably refining a candidate slot that never ran - scout only two candidates and click candidate 3, say, and you get a clean block with a console-only warning. (An older version used ExecutionBlockers for empty slots, which silently stopped Refine from running at all whenever you scouted fewer than four; that's fixed.) Pick the right button and the whole flow - scout cheap, refine once - is the closest thing MiniMax H3 has to a sensible production loop.

CategoryMuse Collective

Inputs (26)

NameTypeDefaultDescription
clipCLIP
vaeVAE
audio_vaeVAE
promptSTRINGWire this from the Beta Director's compiled_prompt output. Ignored for a multi-chunk scouting candidate — each chunk already carries its own saved prompt, used instead.
candidateINT00–4Which of the four candidate slots to continue. Set by the button selector in the node's UI. Defaults to 0 (none picked yet) — the node deliberately refuses to run at 0.
ref_image_sizeCOMBOmatchOnly used when ref_images is connected. 'match' scales references down to the output's pixel area (faster). 'max' keeps up to a 2048px short edge for stronger identity fidelity, but reference tokens ride every sampling step so it's several times slower.
seedINT00–18446744073709550000Must match the seed the chosen candidate was actually generated with.
stepsINT81–100Hidden — the real value is restored automatically from the chosen candidate's own Stage-1 generation.
two_stage_first_pass_stepsINT21–6Must match the First-Pass Steps the candidate's own Stage 1 used.
sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBObeta4 options: simple, normal, beta, sgm_uniform
two_stage_latent_upscale_modelCOMBOWhich trained latent-upscale checkpoint to use (from ComfyUI/models/latent_upscale_models/) — same model family the Beta Director's own two-stage upscale uses. Real learned network, not interpolation.
two_stage_target_megapixelsFLOAT1.00.2–2Target resolution for the upscale, in megapixels — matches the upscaler node's own 'megapixels' sizing mode (aspect ratio preserved, pixel-aligned to 32).
raw_latent_carry_testBOOLEANtrueFor multi-chunk candidates only. Genuinely freezes each continuation chunk's own opening latent using the PREVIOUS refined chunk's raw final sampled latent (no VAE round trip) — the same mechanism the Beta Director's own raw_latent_carry_test uses, confirmed via a real render + frame dump to be the one that actually constrains room/prop geometry across a chunk boundary. Off falls back to this node's original always-on pixel-VAE-reencoded carry (weaker, but needs nothing extra installed beyond ComfyUI-H3-Motion-Context-MultiRef, same as either mode).
timeline_dataSTRING{}
modeloptMODELLeave unconnected to auto-use the model the Beta Director embedded on the chosen candidate (_muse_model_used).
candidate_1_latentoptLATENT
candidate_2_latentoptLATENT
candidate_3_latentoptLATENT
candidate_4_latentoptLATENT
ref_imagesoptIMAGEThe same reference photos the original candidate used — without these, fine detail (exact props, skin, likeness) that was only ever anchored by them may drift.
first_frameoptIMAGELeave unconnected to auto-use the first-frame keyframe embedded on the chosen candidate (First/Last Frame and Hybrid modes only).
last_frameoptIMAGESame as first_frame, for the last-frame keyframe.
ref_audio_1optAUDIOThe same reference audio clip(s) that anchored voice in the original candidate — wire from the Beta Director's ref_audio_1_used/2_used/3_used outputs.
ref_audio_2optAUDIOSame as ref_audio_1, for Ref Audio 2.
ref_audio_3optAUDIOSame as ref_audio_1, for Ref Audio 3.

Outputs (2)

NameTypeDescription
imagesIMAGE
audioAUDIO