arkennemasis fal · MiniMax Music · $0.035/run
Your Lyrics, Someone Else's Song, 3.5 Cents a Take
- reference_audio
- audio
- audio_path
- info
This is the odd one in the MiniMax music family, and it's worth understanding before you wire it up: it does not take a style description. It takes lyrics plus a reference song, and produces a new track in something like that reference's character. Three and a half cents a generation.
Why you'd reach for it
Local music generation is genuinely good now - ACE-Step runs on a 4GB card and does instrumental music that surprises people. The KB's verdict is specific about where it stops: the sound quality is there, the vocals are the weak suit, and the community's own line is "the lyrics are absolute garbage." That's the seam this node sits in. If your song needs a vocal that reads like a real singer, hosted is still ahead, and at this price the argument for fighting a local model is thin.
There is one honest caveat: this model has essentially no community paper trail. Searching the last two years of r/StableDiffusion, r/comfyui and r/civitai for MiniMax's music models returns nothing usable. Nobody has done your evaluation of it. At 3.5 cents a go, doing your own is cheap - just don't expect a forum consensus to tell you what to expect.
How it works
Pack-standard fal wrapper over the fal-ai/minimax-music endpoint: read FAL_KEY from the .env next to your launcher, validate the inputs, estimate the cost against max_cost_usd, upload the reference audio to fal's CDN (free), submit the one billed request, poll, then download into output/fal/fal-ai_minimax-music/. MiniMax is a closed, API-first lab - this is a hosted capability with no local equivalent.
Inputs
prompt- the lyrics, max 600 characters. The tooltip documents the formatting that actually matters: a newline separates lyric lines, two newlines insert a pause between lines, and wrapping a section in##on both ends asks for accompaniment under it. Sixty words is your budget, so write lean.reference_audio- required, and this is the node's defining constraint. It must be a.wavor.mp3longer than 15 seconds and it should contain music and vocals, not a cappella, not a loop. This is the style anchor; a sparse or noisy reference gives the model little to hold onto.
Optional: max_cost_usd ($20 default; the run stops before uploading when the estimate exceeds it, 0 disables the cap), max_concurrent (default 1 - one paid fal call at a time across a run), reuse_identical_run (default on - identical inputs return the file you already paid for rather than billing twice), extra_json (raw JSON merged into fal's request last for fields with no box).
Outputs: audio - a real waveform plus sample rate, with a player on the node - audio_path with the file on disk, and info (request id, cost estimate, saved files, fal's answer). Pipe the waveform into the pack's Narration Fit or Video Assemble if you're scoring a cut.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install httpx
Or ComfyUI Manager → Install via Git URL. Restart, then:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
in the .env beside run_nvidia_gpu.bat. The node appears under arkennemasis/fal/Audio/MiniMax.
Where it goes wrong
Most likely: a reference clip that's too short or the wrong format. Under 15 seconds, or a FLAC/Opus, and the node can't use it - convert first:
ffmpeg -i reference.m4a -t 30 -ar 44100 reference.wav
Second: writing a style description in the prompt box. It wants lyrics; the description-shaped field lives on the sibling v1.5 and v2 nodes, which are actually cheaper at 3 cents a run. If you don't have a reference track to hand and just want "a melancholy synth-pop song about rain," use one of those instead - you'll get further, for less.
Third, the pack-wide ones: FAL_KEY in the wrong folder is the classic no-op, and reuse_identical_run will silently hand you the previous take when nothing changed. Turn it off when you want a new sample - the same lyrics over the same reference will not always come back identical.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Lyrics 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. Maximum 600 characters. | |
| reference_audio | AUDIO | Reference song, should contain music and vocals. Must be a .wav or .mp3 file longer than 15 seconds. | |
| 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. |