arkennemasis fal · MiniMax Music v1.5 · $0.03/run
3 Cents a Song, and a Box That Lies About Its Name
- audio
- audio_path
- info
Three cents per generation - thirty-three songs for a dollar. Before you get excited, check which box you're typing in, because on this node prompt is not the prompt. It's the lyrics. The style description goes in lyrics_prompt, which is backwards from the name and the most likely reason your first run sounds nothing like what you asked for.
What it is
The fal wrapper for minimax-music/v1.5, one of a family of MiniMax music endpoints the pack ships as separate nodes. Unlike the plain MiniMax Music node next to it, this one needs no reference track - you supply words and let it make the song. That makes it the entry point for the "I wrote a verse and I want to hear it" job, and at 3 cents the trial-and-error is basically free.
Worth knowing where it stands against local tools: ACE-Step running on your own card is excellent at instrumental music and weak on vocals, which is exactly the gap a hosted song model fills. The community barely discusses MiniMax's music models at all - no verdict exists to borrow - so treat the first few runs as your own listening test.
How it works
Read FAL_KEY from the .env beside your launcher, validate the inputs, estimate the cost, submit one billed request to fal, poll, download into output/fal/fal-ai_minimax-music_v1.5/. No media upload on this one - it's text in, audio out - so nothing before the submit could possibly bill you. The node's price badge and its pre-run estimate both track the per-run rate.
Inputs - mind the naming
prompt- the lyrics. 10 to 600 characters, and the tooltip names the section tags it understands:[intro],[verse],[chorus],[bridge],[outro]. Use them; they're how you get structure instead of a continuous wall of singing.lyrics_prompt- the music description. 10 to 3000 characters, and the tooltip's whole explanation is "Control music generation." Genre, instrumentation, tempo, mood, production feel. Despite the name, this is where "lo-fi hip-hop, dusty drums, warm Rhodes" belongs.audio_setting_sample_rate-8000,16000,22050,24000,32000,44100. Leave it at 44100 unless you have a reason.audio_setting_bitrate-32000,64000,128000,256000.audio_setting_format-mp3,pcm,flac. Pickflacif you're going to master it;pcmis a raw dump you'll have to wrap yourself.
Optional, same four as everywhere in the pack: max_cost_usd (default $20; stops before sending when the estimate is over, 0 = off), max_concurrent (default 1 - one paid fal call at a time in a run), reuse_identical_run (default on - identical inputs return the already-paid file, restart included), extra_json (JSON merged into fal's request last).
Outputs: audio (waveform + sample rate, with a player on the node), audio_path, and info - request id, estimate, saved files, fal's full answer.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/Hishamahmer/comfyui-arkennemasis
pip install httpx
Manager users can install via Git URL instead. Restart, then:
FAL_KEY=your-key-from-fal.ai/dashboard/keys
in the .env next to run_nvidia_gpu.bat. Menu: arkennemasis/fal/Audio/MiniMax, titled with its live price.
Getting a usable take
Write the description first and the lyrics second. Put the genre and the arrangement in lyrics_prompt, then keep the lyrics box tight - 600 characters is roughly two verses and a chorus, so don't paste a whole poem and hope. If the vocal comes back mush, it's usually too many syllables per line rather than a broken model; shorten the lines.
Then the repeats: reuse_identical_run means an unchanged run returns your previous file for free, which is great until you forget you changed nothing and conclude the node is broken. Flip it off for a genuinely new take, and note that a penny-price model is exactly the place where rolling the same lyrics five times is a reasonable strategy - five songs is fifteen cents.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Lyrics, supports [intro][verse][chorus][bridge][outro] sections. 10-600 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 |
| lyrics_prompt | STRING | Control music generation. 10-3000 characters. | |
| 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. |