ElevenLabs - Music Generation
Generate a full track from a text prompt, no composer required
- audio
Video needs a soundtrack, and most ComfyUI users don't have a band. This node takes a text description and returns a music track - actual music, not a loop - generated by ElevenLabs and delivered as an AUDIO output ready for your timeline. It calls the /v1/music endpoint, the same model behind the company's music features.
Only two required inputs: api_key and prompt. Describe the music in natural language - "lofi hip hop beat, warm, mellow, 80 bpm," "tense orchestral build with strings and timpani," "upbeat synthwave with driving bass." The model does more with a mood-plus-instruments-plus-tempo description than with a single genre word.
The dials:
duration_seconds- 5 to 300, default 30. Longer tracks cost more, so start short to audition the vibe, then go long for the final.force_instrumental- true for no vocals. The single most useful toggle here; vocals in generated tracks are the fastest way to ruin a background score, so flip this on for anything under dialogue.seed- reproducibility (0 = random).output_format- the standard menu, with the Creator-tier note on high-bitrate mp3/opus.
One output: audio.
Where it fits
Score-for-video is the headline use: generate a bed, loop it or let it run under a scene, duck it under the voiceover. It's also genuinely good for mood boards and trailers, where you need a piece of music that sounds intentional. Because it's metered and per-call, the workflow that works is: short instrumental draft → listen → adjust the prompt → regenerate the final at full length. The pack re-runs every API node on each queue (IS_CHANGED), so regenerating is just a matter of changing the seed and queuing again.
Installing it
Part of the ComfyUI API Toolkit pack. Manager: search "API Toolkit". Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/IxMxAMAR/ComfyUI-API-Toolkit
cd ComfyUI-API-Toolkit
pip install -r requirements.txt
Restart. Needs requests and soundfile.
Gotchas
- This is the most expensive node in the pack per run - full tracks burn credits fast, and 300-second generations are real money. Audition at 30 seconds, commit at full length.
- The output is a single generation, not stems. You can't ask for the vocals separately;
force_instrumentalis your only mix control. - If you need unlimited or local music, Stable Audio and similar open options are the counterweight - but for "give me a usable track from a sentence," this is the one.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| prompt | STRING | Text description of the music to generate. Ignored when composition_plan is set. | |
| duration_secondsopt | FLOAT | 305–300 | Duration of generated music in seconds. Prompt mode only; a composition_plan sets its own length. |
| seedopt | INT | 00–2147483647 | Seed for reproducibility. 0 = random. Determinism not guaranteed. The API accepts a seed only with composition_plan, not with a prompt. |
| force_instrumentalopt | BOOLEAN | false | Generate instrumental-only music (no vocals). Prompt mode only. |
| output_formatopt | COMBO | mp3_44100_128 | Audio output format. mp3_44100_192 and opus require Creator tier+. |
| modelopt | COMBO | music_v1 | 3 options: music_v1, music_v2, music_v2_5 |
| composition_planopt | STRING | Optional JSON composition plan (see Music Composition Plan). Overrides prompt if set. | |
| finetune_idopt | STRING | ID of a music finetune to steer the generation with. | |
| finetune_strengthopt | FLOAT | 1.000–2 | How strongly the finetune influences the result. Used only with finetune_id. |
| use_phonetic_namesopt | BOOLEAN | false | Spell proper names in the prompt phonetically in the lyrics for better pronunciation. Prompt mode only. |
| generation_modeopt | COMBO | default | Optional hint for what to generate. Prompt mode only. 'default' sends nothing. |
| lyrics_textopt | STRING | Lyrics to use for the generation (max 4000 characters). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |