arkennemasis fal · MiniMax Music v2.5 · $0.15/run
$0.15 a Song, Five Times the Price of v2 — Worth It?
- audio
- audio_path
- info
Fifteen cents a track, against three cents for Music v2. Five times the money buys you three things you don't get on the cheap node: a full arrangement, room for a real set of lyrics, and an instrumental mode. Whether that's worth it depends entirely on whether you're sketching or finishing.
What's actually different
The v2 node caps your style description at 300 characters and the lyrics at 3000, and it always sings. This one gives the description 2000 characters, the lyrics 3500, adds is_instrumental so you can ask for a vocal-free track, and adds lyrics_optimizer so the model can write the words when you leave them blank. A track with a proper arrangement - intro, verses, a chorus that returns, a bridge, an outro - is what the extra money is buying. For a background bed behind a video, v2 is plenty. For something you'll actually listen to twice, this is the tier.
How it works
Same fal machinery as every node in comfyui-arkennemasis: FAL_KEY read from the .env beside your launcher, inputs validated, cost estimated against max_cost_usd, one billed submit, polling with a live status on the node, results downloaded into output/fal/fal-ai_minimax-music_v2.5/. No media uploads here, so nothing before the submit can cost you anything. MiniMax is closed and API-first - there's nothing to run locally, and the community has essentially no track record with their music models, so judge the output yourself rather than trusting a forum thread that doesn't exist.
Inputs
prompt- the music description: style, mood, genre, scenario. Up to 2000 characters, which is generous enough to describe an arrangement out loud.lyrics- up to 3500 characters,\nbetween lines. The tooltip lists the section tags this model understands:[Intro],[Verse],[Pre Chorus],[Chorus],[Bridge],[Outro],[Interlude],[Hook],[Break],[Solo],[Inst]. It also says plainly that lyrics are required whenis_instrumentalis off andlyrics_optimizeris off - leave the box empty in that configuration and the run is missing a required input, not just a bit vague.is_instrumental- default off. Turn it on for vocal-free music, which is the obvious setting for a score bed under video.lyrics_optimizer- default off. Turn it on with an empty lyrics box and the model writes the words from your description. Useful when you have a mood and no verses; less useful when you've written carefully and want your words used.audio_setting_sample_rate-16000,24000,32000,44100.audio_setting_bitrate-32000,64000,128000,256000.audio_setting_format-mp3,wav,pcm.wavif you're taking it into a DAW.
Optional: max_cost_usd ($20 default; the node refuses before sending when the estimate is over it, 0 disables the cap), max_concurrent (default 1 - one paid fal call at a time across the run), reuse_identical_run (default on: identical inputs return your already-paid file rather than billing twice, restart included), extra_json (JSON merged into fal's request for fields with no box).
Outputs: audio (waveform + sample rate, with a player on the node), audio_path (the file on disk), info (request id, estimate, saved files, fal's answer).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install httpx
Manager: Install via Git URL → paste the repo. Then beside run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
Restart, and it's under arkennemasis/fal/Audio/MiniMax.
Money sense
At fifteen cents a take, "let me just try a few" is different arithmetic than it was on the 3-cent node - six attempts is a dollar. My advice: get the lyrics and tags right on v2 at 3 cents first, then render the keeper here. Both nodes take the same input shape in spirit, and the cheap one is a perfectly good bug-catcher for things like a chorus that reads badly when sung.
Also: instrumental mode plus Video Assemble is the obvious use. Non-diegetic score, no vocal fighting your narration, and you're not paying for singing you were going to duck anyway.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A description of the music style, mood, genre, and scenario. Max 2000 characters. | |
| lyrics | STRING | Lyrics of the song. Use \n to separate lines. Supports structure tags: [Intro], [Verse], [Pre Chorus], [Chorus], [Bridge], [Outro], [Interlude], [Hook], [Break], [Solo], [Inst]. Max 3500 characters. Required when is_instrumental is false and lyrics_optimizer is false. Empty leaves it out. | |
| is_instrumental | BOOLEAN | false | When true, generates vocal-free instrumental music. |
| lyrics_optimizer | BOOLEAN | false | When true and lyrics is empty, auto-generates lyrics from the prompt. |
| audio_setting_sample_rate | COMBO | 44100 | Sample rate of generated audio |
| audio_setting_bitrate | COMBO | 256000 | Bitrate of generated audio |
| audio_setting_format | COMBO | mp3 | Audio format |
| max_cost_usdopt | FLOAT | 20.00–100000 | Safety cap. If the estimated cost of this run is above this many US dollars the node stops BEFORE sending anything to fal. 0 = no cap. |
| reuse_identical_runopt | BOOLEAN | true | If these exact inputs (the settings AND the same pictures/clips/audio) were already paid for and the files are still in output/fal, return them instead of paying again - also after a ComfyUI restart. Turn off for a fresh take with the same settings. |
| extra_jsonopt | STRING | Advanced: a JSON object merged into the request last, for any fal field this node has no box for. Example: {"seed": 7}. Leave empty normally. | |
| max_concurrentopt | INT | 11–32 | How many paid fal calls may run at the same time in one run, across every fal node. 1 (default) = one after another. This node starts its paid part only while fewer than this many fal calls are running. Once any fal node fails, the ones still waiting are not started, so nothing more is billed. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_path | STRING | — |
| info | STRING | JSON: request id, cost estimate, saved files and fal's full answer. |