π΅ Music Studio - LD
The node that writes the song so you don't mangle it
- instructions
- input
- report
Music Studio - LD is a prompt builder for MiniMax's Music 3 generation, and the first thing to understand is that it doesn't make sound. It's not a sampler, it calls no API and holds no key. What it does is harder than it sounds: it produces the two separate text strings a music model actually wants, in the exact shape the model expects, so that whatever node or script on your canvas calls the model gets fed correctly.
Here's the trap it exists to stop you falling into. Music 3 keeps the lyrics and the "how it should sound" description in separate fields - input and instructions, roughly. Merge them into one prompt and you ruin the generation: lyric text leaks into the caption, or the section tags like [Verse] and [Chorus] get eaten by formatting. So this node hands back two outputs, never one: instructions (the structured caption - Global Metadata / Vocal Details / Arrangement, in the node's words) and input (your lyrics, untouched, tags intact). A third report output tells you what it validated and where it grumbled.
The dials you actually set
Required inputs are just caption and lyrics (paste either in if you're not using the panel). Everything else is optional and defaults to off, and here's a design choice worth respecting: the pack's writer only emits a law for a dial you've actually set, so a bare shot reads as a clean brief rather than a padded one.
intent- what you want, in your own words. Read by the writer, not sent to the model. This is your input channel if you're using the H3 Studio panel's local LLM.sounds_like- a reference feel for the writer only ("a smoky 90s basement bar"). Never reaches the caption, deliberately: you don't want to ask the model to imitate a named artist.exclude- treated as a hard constraint the caption may never reverse.music_seconds(60β180, default 120) - how long the song runs. This decides the section count, not just the word budget; the lyric writer builds a running order to fit it.
Then the music menu: 19 genres, 172 artist profiles, tempo, scale, mood, arc, vocal gender and timbre, delivery, harmony, vocal FX, lead instrument, arrangement, groove, production style, space, era, language, and song structure. Mostly set to off, mostly self-explanatory when you turn one on. vocal_gender has an instrumental option; if you leave lyrics attached to an instrumental it will warn you that the model will sing them anyway.
How it fits a workflow
The panel side (part of the pack's H3 Studio) writes the caption and lyrics for you through your local LM Studio model - the backend the whole pack expects at http://127.0.0.1:1234, ideally with the README's recommended uncensored Qwen3-27B fine-tune loaded. But the node works fine as a hand-fed text box: paste a caption and lyrics, run it, and read report for validation - word counts against the running-order plan, section tags spotted, warnings near Music 3's ~5,000-token ceiling. Wire instructions and input to whatever actually calls the model.
Installing and gotchas
It's part of the PromptMasterLD pack, so install is the same as every other node here:
cd ComfyUI/custom_nodes
git clone https://github.com/Lora-Daddy/PromptMasterLD
# restart ComfyUI
Run it with an empty caption and you'll get a report line that says exactly that: NO CAPTION. The model will still run on lyrics alone, but with no control over the sound - which is a fine way to discover you forgot the whole point. And one honest caution: this whole corner of the pack is young and thinly documented - MiniMax Music generation barely shows up in the usual ComfyUI corners, so expect to be one of the first people in your circles copy-pasting its prompts. Treat the report output as your manual; it was built to catch the mistakes you'd otherwise make silently.
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| caption | STRING | The finished structured caption. The panel writes this for you; you can also paste one. | |
| lyrics | STRING | Lyrics with section tags on their own lines: [Verse], [Chorus], [Bridge]... Leave empty for an instrumental. This text goes to the model UNTOUCHED and never appears in the caption. | |
| intentopt | STRING | What you want, in your own words. Read by the writer, not sent to the model. | |
| genreopt | COMBO | off | 19 options: off, pop_ballad, pop_rock, cinematic_pop, orchestral, electronic, +13 |
| artistopt | COMBO | off | 172 options: off, eminem, snoop, kendrick, tupac, biggie, +166 |
| subgenreopt | STRING | β | |
| tempoopt | COMBO | off | 10 options: off, very_slow, slow, mid_slow, mid, upbeat, +4 |
| scaleopt | COMBO | off | 9 options: off, major, minor, dorian, mixolydian, phrygian, +3 |
| moodopt | COMBO | off | 13 options: off, intimate, melancholy, euphoric, defiant, tender, +7 |
| arcopt | COMBO | off | 8 options: off, build, burst, swell_fall, steady, strip, +2 |
| vocal_genderopt | COMBO | off | 6 options: off, female, male, duet, choir, instrumental |
| vocal_timbreopt | COMBO | off | 12 options: off, warm_alto, bright_soprano, mezzo, husky, breathy, +6 |
| deliveryopt | COMBO | off | 11 options: off, conversational, belted, whispered, rap, melismatic, +5 |
| harmonyopt | COMBO | off | 8 options: off, none, octave, thirds, stacked, gospel, +2 |
| vocal_fxopt | COMBO | off | 11 options: off, dry, room, hall, plate, slap, +5 |
| leadopt | COMBO | off | 13 options: off, piano, ac_guitar, el_guitar, synth, strings, +7 |
| instrumentsopt | COMBO | off | 13 options: off, band, acoustic, orchestral, electronic, piano_only, +7 |
| grooveopt | COMBO | off | 12 options: off, four_floor, backbeat, shuffle, swung, halftime, +6 |
| productionopt | COMBO | off | 10 options: off, modern, vintage, lofi, raw, polished, +4 |
| spaceopt | COMBO | off | 7 options: off, intimate, wide, cathedral, club, outdoor, +1 |
| eraopt | COMBO | off | 9 options: off, 1950s, 1960s, 1970s, 1980s, 1990s, +3 |
| languageopt | COMBO | off | 15 options: off, english, spanish, french, german, italian, +9 |
| structureopt | COMBO | off | 8 options: off, standard, simple, ballad, aaba, dance, +2 |
| sounds_likeopt | STRING | A reference feel for the WRITER only β an era, a scene, a production style. Never reaches the caption: the model should not be asked to imitate a named artist. | |
| excludeopt | STRING | Anything that must not appear. Treated as a hard constraint the caption may never reverse. | |
| seedopt | INT | 00β18446744073709550000 | β |
| music_secondsopt | INT | 12060β180 | How long the song runs. The lyric writer builds a running order to fit it, so this decides the section count, not just the word budget. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| instructions | STRING | β |
| input | STRING | β |
| report | STRING | β |