Nodes/Protoface/Protoface MiniMax Music 3.0 · Generate Music
ComfyUI Node

Protoface MiniMax Music 3.0 · Generate Music

Lyrics, a prompt, and a finished song

By protoface-ai·Created 22 days ago·Updated 13 days ago· 0
Protoface MiniMax Music 3.0 · Generate Music
    • audio
    • files
    • run id
    ◄prompt►
    ◄bitrate256000►
    ◄is_instrumentalfalse►
    ◄lyrics▾►
    ◄lyrics_optimizerfalse►
    ◄sample_rate44100►
    ◄generation_id0►
    ◄request_scope►

    What it's for

    You want music with a vocal in it. Not a sound effect, not a score bed, not speech - a song, with a singer, generated from a text prompt and some lyrics. MiniMax Music 3.0 does that through your Protoface account and hands the result back as a native AUDIO you can feed into Video Combine, a muxer, or straight to Save Audio.

    This is the one place in the audio stack where hosted still wins on convenience. The local open models have genuinely caught up on speech (Chatterbox, F5-TTS, Kokoro) and there are decent music options, but if what you need is "a 90-second pop track with a chorus, from scratch, this afternoon," wiring a local music pipeline is a project. This is one node. The bill per song is the trade.

    The workflow fit that makes it worth the fee: your video node generates a silent clip, and this node generates the thing that plays over it. Two paid calls, one composited result, no licensing question.

    The inputs

    prompt describes the music - genre, instrumentation, mood, era. "Warm 70s soul, live drums, rhodes, female lead" gets you further than a list of adjectives.

    lyrics is the important one and the tooltip spells out its little markup language, which nobody reads the first time: newline separates lines, a double newline inserts a pause between them, and wrapping a line in ## adds accompaniment. Valid input is 10–3000 characters. That's a real format, so write lyrics with structure - verse, double newline, chorus - instead of one blob.

    is_instrumental defaults to false. Set it true and you get no vocal; combine it with lyrics_optimizer, whose tooltip explains that setting it true with empty lyrics makes the system generate lyrics for you. That's the auto-pilot path.

    bitrate defaults to 256000 and sample_rate to 44100 - CD-ish defaults that are fine. Downsample later if you're shipping to the web; there's no reason to render lower and then regret it.

    generation_id and request_scope are the pack's booking fields, unchanged: keep generation_id fixed to resume the same paid job, increment it for a new one, and note there's no seed here - same prompt and lyrics won't give you the same song twice.

    One UI subtlety worth knowing on this pack: fields like lyrics are dynamic combos with Default / Set / Null modes. Default omits the parameter entirely, Set supplies it, Null explicitly sends null. Blank text is not the same as omission - so a truly empty lyrics field, sent as an empty string, may well be rejected where an omitted one isn't.

    Outputs

    audio (AUDIO, list), files (PROTOFACE_FILE, list - the original encoded file, which is what you want if you care about the bitrate you asked for), and run id for support and resume. Audio outputs are lists, so a multi-result job maps over downstream nodes without extra plumbing.

    Install

    cd ComfyUI/custom_nodes
    git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git protoface
    python -m pip install -r protoface/requirements.txt
    

    ComfyUI 0.41.0+, Python 3.10+, deps httpx, jsonschema, Pillow, av>=14. Manager: search Protoface → protoface-nodes → restart → reload. Then Protoface bottom-right → your key. It's memory-only; expect to re-enter it after every server restart, or use PROTOFACE_API_KEY_FILE on a headless box.

    Where people get bitten

    Lyrics under 10 characters. The API caps the range and the node will let you queue something it then rejects, which is a slow, annoying way to learn the minimum.

    Lyrics markup ignored - a single paragraph with no double newlines will produce a song that phrases oddly, because you never told it where the pauses go.

    And the recovery rule: a timeout or a closed tab is not a failed song. Keep generation_id, requeue, or Protoface Resume Run with the run id. Interrupting doesn't carry a refund promise, so don't cancel to save credits - the job was already submitted.

    CategoryProtoface/Music/minimax

    Inputs (8)

    NameTypeDefaultDescription
    promptSTRINGPrompt for the music generation.
    bitrateCOMBO256000Bitrate for the generated music
    is_instrumentalBOOLEANfalseWhether to generate instrumental music (no vocals).
    lyricsCOMBOLyrics with optional formatting. You can use a newline to separate each line of lyrics. You can use two newlines to add a pause between lines. You can use double hash marks (##) at the beginning and end of the lyrics to add accompaniment. Valid input: 10-3000 characters.
    lyrics_optimizerBOOLEANfalsetrue and lyrics is empty, the system will auto-generate lyrics from.
    sample_rateCOMBO44100Sample rate for the generated music
    generation_idINT00–9007199254740991Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed.
    request_scopeSTRINGAutomatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret.

    Outputs (3)

    NameTypeDescription
    audioAUDIO—
    filesPROTOFACE_FILE—
    run idSTRING—