Nodes/VRGameDevGirl Video Enhancement Nodes/VRGDG Music3 Caption Builder
ComfyUI Node

VRGDG Music3 Caption Builder

Fill In the Blanks, or Let the Preset Do It

By vrgamegirl19·Created about a year ago·Updated about 6 hours ago· 665
VRGDG Music3 Caption Builder
    • caption
    • caption_breakdown
    preset
    vocal_profile
    singer_name
    style_name
    genre_subgenre
    mood_themes
    instruments
    vocal_qualities
    production
    tempo_range
    song_arc
    avoid_characteristics
    extra_direction

    If you've written a MiniMax Music3 caption by hand, you know the pain: one long string where you try to cram genre, mood, instruments, vocal character, tempo, song arc, and production style, and the model obeys whichever parts landed in the right order. VRGDG Music3 Caption Builder replaces that with a form. Each field maps to a caption sentence, there are 27 genre presets to start from, and whatever you leave blank comes from the preset instead of vanishing.

    It's part of the VRGameDevGirl pack (vrgamegirl19/comfyui-vrgamedevgirl), the LTX 2.3 / MiniMax H3 music-video builder's companion node set. In the chain it sits downstream of the Lyrics Prepare node and upstream of Music3 Text Encode: cleaned lyrics + structured caption in, one well-formed caption string out.

    How it works

    Pick a preset (27 genre/style presets, from "Raw 90s Alternative Rock" to "Outlaw Country / Americana" and beyond) and every text field below fills in automatically. Then edit whatever doesn't fit your song - the preset is a starting point, not a cage. The design rule is simple: blank fields use the preset, non-blank fields override it. So you can take "Dreamy Indie Rock" and swap in your own instruments without touching the mood and tempo the preset chose.

    The vocal_profile dropdown (14 options) is the shortcut for the two vocal fields: "Female Lead," "Male Baritone," "Female Rock / Rasp," "Androgynous / Neutral," and so on. Choosing one auto-fills singer_name and vocal_qualities; "Use Style Default" restores the generic vocal description from your chosen style. If you want a specific singer reference, type it into singer_name yourself - it's ordinary caption text and stays fully editable.

    The fields, in order of how often you'll touch them: genre_subgenre, mood_themes, instruments, vocal_qualities, production, tempo_range, song_arc, avoid_characteristics, and extra_direction (the "start with voice and dry guitar only" slot for song-specific staging).

    The one trap: the avoid field

    Music3 has no separate negative prompt, and the author is up front about it in the tooltip. avoid_characteristics is appended as an "Avoid" sentence inside the caption - it's guidance, not a guarantee, so don't expect "avoid saxophone" to work like an SDXL negative embedding. This matches where the broader ecosystem has landed: on guidance-distilled and instruction-following models, the negative box is often inert or nonexistent. Use avoid_characteristics for direction ("keep it sparse, no big drums"), not for bans.

    Inputs and outputs that matter

    Outputs: caption - connect this straight to MiniMax Music3 Text Encode's caption input. And caption_breakdown, a human-readable audit of which fields went into the caption. That second output is your debugging tool: when a render comes back sounding nothing like what you asked, read the breakdown and see whether your override actually made it into the string.

    Installing it

    Same one-time install as every node in this pack. ComfyUI Manager → Install Custom Nodes → search vrgamedev, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl.git
    

    then pip install -r requirements.txt, restart, hard-refresh. It's a heavy pack - the requirements pull in TTS and LLM wheels (voxcpm, llama-cpp-python) you won't need for caption building, and on Windows portable the README wants Cython and scikit-build-core installed first (Python 3.12 > 3.13 for compatibility).

    Troubleshooting

    A song that ignores your style override is usually a precedence problem - check the breakdown to confirm your field actually overrode the preset instead of sitting blank next to a preset value. A song that ignores everything is usually a text-encode problem upstream, not a caption problem. And if two presets both produce something close but not right, that's the seed/caption A/B loop: build both, wire them to the pack's Conditioning Blend, and let the blend slider find the middle.

    CategoryVRGDG/Audio/MiniMax Music 3

    Inputs (13)

    NameTypeDefaultDescription
    presetCOMBOChoosing a preset visibly fills every field below. You can then edit any field for this song.
    vocal_profileCOMBOAutomatically fills Singer Name/Phrase and Vocal Qualities. Use Style Default restores the selected style's generic vocal description. Female or Male Lead gives a general voice; register/timbre variants add more specific direction. Custom / keep fields leaves both text fields untouched.
    singer_nameSTRINGSinger name or vocal-direction phrase written into the caption. This is ordinary caption text and remains fully editable.
    style_nameSTRINGShort style label written near the beginning of the caption. Presets fill it automatically.
    genre_subgenreSTRINGLeave blank to use the selected preset. Nonblank text overrides that preset field.
    mood_themesSTRINGLeave blank to use the selected preset. Nonblank text overrides that preset field.
    instrumentsSTRINGLeave blank to use the selected preset. Nonblank text overrides that preset field.
    vocal_qualitiesSTRINGLeave blank to use the selected preset. Nonblank text overrides that preset field.
    productionSTRINGLeave blank to use the selected preset. Nonblank text overrides that preset field.
    tempo_rangeSTRINGLeave blank to use the selected preset. Nonblank text overrides that preset field.
    song_arcSTRINGLeave blank to use the selected preset. Nonblank text overrides that preset field.
    avoid_characteristicsSTRINGAppended as an Avoid sentence. Music3 does not have a separate negative text prompt, so exclusions are guidance rather than guarantees.
    extra_directionSTRINGAny final song-specific direction, such as 'start with voice and dry guitar only'.

    Outputs (2)

    NameTypeDescription
    captionSTRINGConnect to MiniMax Music3 Text Encode → caption.
    caption_breakdownSTRINGHuman-readable audit of the fields used.