arkennemasis fal · MiniMax Music v2 · $0.03/run
3 Cents, the Same Price as v1.5, Without the Naming Trap
- audio
- audio_path
- info
If you're picking one cheap MiniMax song model, pick this one. Same 3 cents a run as v1.5, but the boxes mean what they say: prompt is the style description, lyrics_prompt is the lyrics. On v1.5 those two are swapped, and people absolutely type the description into the lyrics slot and wonder why the result ignores them.
What it is
The pack's node over fal's minimax-music/v2 endpoint - MiniMax's Music 2.0, which fal describes as generating full compositions from text. Text in, one audio file out, no reference track needed. Three cents a generation means a dollar buys thirty-three attempts, which changes how you use it: write, generate, listen, rewrite. That loop is normally where music generation gets expensive.
Where it fits against local: ACE-Step on your own GPU nails instrumental work and struggles with vocals. A hosted song model is the pragmatic answer when the vocal has to sound sung by a person, and the KB's read on the local ecosystem - instrumental solved, song vocals not - is exactly the gap this node fills. Fair warning: the community corpus has close to nothing to say about MiniMax's music models, so there's no received verdict here. Your ears are the benchmark.
How it works
Standard fal plumbing: FAL_KEY from the .env beside your launcher, input validation, cost estimate against max_cost_usd, one billed submit, polling with a live status on the node, download into output/fal/fal-ai_minimax-music_v2/. Nothing is uploaded on this one, so a failed run before the submit costs zero. The node's title carries its rate and the badge updates as you change the audio settings.
Inputs
prompt- the music description. 10 to 300 characters, and that ceiling is tighter than you'd expect: name the genre, the mood, the scenario, and stop. "Slow 90s R&B ballad, warm analogue keys, rainy-night intimacy" is already most of the budget.lyrics_prompt- the lyrics. 10 to 3000 characters,\nbetween lines, and the tooltip recommends structure tags:[Intro],[Verse],[Chorus],[Bridge],[Outro]. Use them. Without structure you get a continuous vocal blob rather than a song with a chorus that lands twice.audio_setting_sample_rate-8000,16000,22050,24000,32000,44100.audio_setting_bitrate-32000,64000,128000,256000.audio_setting_format-mp3,pcm,flac.
The optional four are pack-wide: max_cost_usd ($20 default, halts before sending if the estimate is above it, 0 = uncapped), max_concurrent (1 by default; one paid fal call at a time across the whole run), reuse_identical_run (default on - an identical run returns your saved file instead of billing again, even after a restart), extra_json (raw JSON merged into the request last, for fal fields this node has no box for).
Outputs: audio - a waveform and sample rate, playable on the node - audio_path for the file, and info with the request id, the estimate and fal's answer.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install httpx
Or ComfyUI Manager → Install via Git URL. Then, next to run_nvidia_gpu.bat:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
Restart ComfyUI; it's under arkennemasis/fal/Audio/MiniMax.
Notes from using the cheap tier
Structure tags are the difference between "AI singing" and "a song." Write a real chorus and repeat it with the same words - the model will treat it as a hook. Keep lines short; long syllables-per-line lines are where vocals turn to slush on every music model, local or hosted.
flac output is worth the extra nothing if you're taking the track into a DAW, and pcm is only useful if you're feeding a raw pipeline. And remember the reuse behaviour: run it twice without changing anything and you'll get the first file back. That's the node not charging you twice, not a bug. Turn reuse_identical_run off when you want a fresh roll - at 3 cents, rolling five takes of the same lyric is a fifteen-cent experiment, which is the best reason to be on this node rather than the $0.15 ones.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A description of the music, specifying style, mood, and scenario. 10-300 characters. | |
| lyrics_prompt | STRING | Lyrics of the song. Use n to separate lines. You may add structure tags like [Intro], [Verse], [Chorus], [Bridge], [Outro] to enhance the arrangement. 10-3000 characters. | |
| 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. |