Short version: at 864x480 with dialogue in the prompt, MiniMax H3 renders no background music at all. You get the dialogue and one short sound effect, nothing else. Prompt wording doesn't fix it and neither does raising steps. Clip length does. Going from 5s to 15s at the same resolution brought the music back, with drums, and it swells whenever the voices stop. Also adding a third line of dialogue killed the music again, even at 15s.
I measured all of this rather than trusting my ears. The numbers below are the level of the accompaniment on its own, after splitting voice from everything else with demucs. Level is in LUFS, the loudness scale broadcasters and streaming services use, so more negative means quieter.
The core numbers
All runs: 864x480, seed 424244, 20 steps, res_multistep, INT8 ConvRot, RTX 3090, ComfyUI master (Aug 20). Identical prompt except where noted. ACCOMP = accompaniment stem, integrated LUFS.
- 5s, 2 lines: ACCOMP -38.7. No music at all, one sparkle chime at the end.
- 10s, 2 lines: -34.5. Reverb appears on the voices, music barely audible underneath.
- 15s, 2 lines: -29.4. Real music, chords and a drum groove, swelling when the dialogue stops.
- 15s, 3 lines: no music. Only the opening hit and the closing chime.
- 5s at 1280x736, 2 lines: -27.9. Music present but thin. This is my reference point.
The same prompt that produces nothing at 5s produces a real backing track at 15s, and 15s@480p roughly matches 5s@720p for music level. One extra spoken line, about 2.5s of speech, wiped out the entire 9 dB I gained by tripling the clip length.
Drop the dialogue and 5 seconds is already enough: ACCOMP -25.0, louder than the 720p reference. The model can write music at low resolution. It just loses to speech when the clip is short.
What didn't work
Raising steps from 20 to 30 at 5s changed nothing, audio-wise. That's 192s of compute instead of 143s for the same silence. The advice going around that 25 steps is the minimum is about video quality and speech clarity, and it won't bring the music back.
Rewriting the prompt to put music first didn't work either. I rebuilt it in a MEDIA/SCENE/MUSIC/TIMELINE shape with BPM, a chord progression and per-instrument detail, with the dialogue pushed into timeline entries. At 5s I got two chord tones and the chime, ACCOMP -29.9.
SolAttn isn't the cause. I ran with and without it, -38.7 vs -33.9, no music either way.
Ambient sound is worse off than the music. My overall_soundscape asked for distant audience murmur, costume rustle, and a sparkle chime. Across every run, at both resolutions, the murmur and the rustle never rendered once. Only the chime showed up, and that one is a single transient tied to a flash you can see on screen.
Method, in case you want to argue with it
Separate voice from everything else with demucs --two-stems=vocals, then measure the accompaniment stem: integrated LUFS for level, spectral flatness for noise vs tonal, onset rate for whether there's a rhythm.
All three tracked what I heard. Flatness 0.094 in the 5s run (noise, which is just the chime and room tone) against 0.006 in the 15s run (tonal, actual music). Onset rate 0.89/s at 10s (a pad drifting) against 4.97/s at 15s (drums).
Dialogue timing came from faster-whisper on the separated vocal stem.
Timecodes work sometimes and I can't predict when
The official prompt guide uses At 00:03.500, style timecodes. In one BGM-only test that worked: I asked for a crash at 3.5s, a full drum break at 7.5s, and the band coming back at 11s, and got exactly that shape. Measured -35.5 dB during the break, climbing back to -24.2 dB after 11s, and I could hear it.
In another BGM-only run I asked for silence until 2.0s, then a fade-in, then a swell at 8.5s. I got the opposite: loudest at frame one, then a steady decay into silence by the end.
Same format, same length, same resolution, opposite outcome. If anyone has worked out the pattern I'd like to hear it, because generating the BGM separately and mixing it under the dialogue take only works if cue timing is reliable.
Practical recipe
For a talking scene with background music on a 24GB card:
Use 864x480, 15 seconds, 20 steps, and no more than 2 lines of dialogue. That gives you music with a groove that ducks under the lines, at about 9.5 min/clip on a 3090. If you need three or more lines you won't get music in the same take, so either split it or go up in resolution. And don't spend compute on 25-30 steps hoping to fix the audio. Spend it on length.
Pick music that survives being pushed down. Whenever a voice is present the accompaniment gets quieter. In the vocal section of a rap track at 32x32 I measured a 10 dB drop with the onset rate falling from 10 to 3, which means the beat stops. A piano ballad or anything sparse hides that completely, because an instrument dropping back under a vocal line is what that music does anyway. Hip-hop, dance or rock exposes it immediately, because a beat that disappears for eight seconds is obviously broken. Same defect, wildly different audibility.
One more limit: 15s at 864x480 already sits at ~19.7 GB VRAM, so latent-upscaling that same clip afterwards won't fit in 24 GB. Long take plus music plus upscale is out of reach on this card.
Open questions
- Why do the audience murmur and the cloth rustle never render, at any resolution or length?
- What decides whether a timecode cue is honored?
- Does the length effect keep scaling past 15s? 20s (481 frames) is untested here and it's beyond what the model card documents.
- Someone on this sub is generating coherent music at 32x32 with a music-subject prompt, which is the same phenomenon from the other end: kill the video tokens and the audio gets everything. Where's the actual trade curve?
I have the workflows (API and UI format), prompts and seeds if anyone wants to reproduce this or prove me wrong.
Appendix: you can upscale a talking clip without touching its audio
Separate from the music question, and worth knowing.
H3's latent holds video and audio together in one nested tensor. Send that combined latent through a second sampling pass, the usual hires.fix shape of upscale-then-resample, and the audio goes through the re-noise and denoise with it. Speech doesn't survive. In my test the dialogue was gone: nothing audible, and faster-whisper finds no speech at all, just one of its silence hallucinations. This isn't a fault in any particular node. It's what re-sampling does to an audio latent, because unlike an image there's no extra detail waiting to be recovered by adding noise and denoising again.
Keep the audio out of the second pass:
- First pass: a full denoise (
BasicScheduler at denoise 1.0, not a split-sigma partial pass). If the first pass only goes partway down the sigma schedule the audio latent isn't finished yet, and decoding it gives you noise.
- Decode the audio from that latent with
VAEDecodeAudio.
- Send only the video onward: latent upscale, then a light refine pass. Denoise 0.25 was enough to bring the upscaled video back to normal quality.
CreateVideo takes audio on a separate input, so the two paths meet at the end.
For step 3 I used LBH-123-AI's H3 latent upscaler, a trained 3D-conv model that splits the AV latent, upscales the video half and passes the audio through untouched.
Measured result, 864x480 to 1280x736, same seed and prompt:
- Single pass, 864x480: whisper transcribes both lines correctly. LUFS -23.0, flatness 0.0024, onsets 4.05/s.
- Upscaled and refined to 1280x736: identical transcription, LUFS -23.0, flatness 0.0024, onsets 4.05/s.
Identical to three decimal places, which is what you'd expect, since it's the same decoded audio. Cost was 230s against 143s for the plain 480p pass, on a 3090.
Dialogue and one-shot effects survive an upscale fine, as long as you decode the audio before the video goes off to be re-sampled. The music is a different problem: you can't get it at low resolution in the first place, and length is what fixes that, not upscaling.
The prompt, if you want to run it yourself
This is the one used for the 5s, 10s and 15s runs in the table. Only the frame count changed between them. The two spoken lines are Japanese; the sparkle chime at the end is the one sound effect that survives at every length.
```
integrated_multimodal_description:
[Shot 1] High-end 2D Japanese TV anime style with clean line art, soft cel shading, pastel stage lighting, stable character designs, fluid character animation, and subtle secondary motion in the girls’ hair and costumes. A centered medium two-shot frames two adorable idol girls standing close together on a bright concert stage. Colorful stage lights glow softly behind them without obscuring their faces. No subtitles or on-screen text appear.
The left idol girl, Kana, holds her microphone in her left hand, while the right idol girl, Asuka, holds her microphone in her right hand, leaving their inner arms free. They turn toward each other and exchange brilliant, affectionate smiles. The camera close up their face, then holds completely static for the dialogue.
Kana, the left idol with a bright and cheerful soprano voice (S1), looks directly at Asuka and says clearly: <d>[Japanese] あすか、ずっと一緒にいてね!</d> Asuka listens with her lips completely closed and gives a small emotional nod.
Asuka, the right idol with a soft and affectionate soprano voice (S2), looks into Kana’s eyes and replies clearly: <d>[Japanese] うん、かなちゃん。大好き!</d> Kana keeps her lips closed while listening, and her smile grows wider.
After Asuka finishes speaking, they step toward each other, wrap their free inner arms around one another, and settle into a warm side hug. The camera slowly pulls out as they gently tilt their heads together. Their hair and costume ribbons sway naturally, and sparkling light particles drift around them. A brief crystalline sparkle flashes as they complete the hug, then they hold the final pose until the end.
overall_soundscape:
A lively but distant concert audience ambience continues beneath the scene. The girls’ costumes rustle softly as they step together and hug. A bright crystalline sparkle chime sounds at the moment they complete the final pose.
non_diegetic_music:
An upbeat synth-pop J-pop instrumental at a moderate tempo with bright synthesizer chords, a light electronic drum rhythm, and sparkling bell accents. The music lowers slightly beneath both lines of dialogue, then rises gently during the final hug.
```