Generate Lyrics
Suno's text half, without paying for the song
- text
- task_id
- raw_json
- credits_consumed
- credits_left
Lyrics are the part of AI music everyone complains about. Even the strongest local music model, ACE-Step, gets the same criticism people aim at Suno - great instrumentals, and then the words. The KB's audio round-up puts it bluntly: best-in-class songs with clean vocals is one of the two jobs the open ecosystem has not closed, and the lyric-writing step is where that shows.
So this node is the cheap, separable half. Write the words here, iterate on them for a few cents, and only then spend real credits on a Suno music job with the finished text. It's a text node that happens to live under Audio.
What it does
You give it a description of the song, it returns lyrics. KIE documents this as its own endpoint, and the pack files it under KIE Next / Audio / Suno / Lyrics. Because the endpoint returns text rather than media, the node comes back with a text output plus the job bookkeeping - not an audio socket.
The prompt budget is the thing to plan around: 200 characters maximum. That is not much song. So write it like a brief rather than a lyric - theme, mood, the story shape, the style - and let the model do the words.
Inputs and outputs
prompt (required) - the song description. "A nostalgic song about childhood memories and growing up in a small town" is KIE's own example, and that's about the right granularity: theme, emotional register, specificity. Be more specific than you think you need; the docs say detailed prompts get better results, and 200 characters is enough for theme plus mood plus one concrete image.
timeout_seconds - how long the node waits for the job, default 1200 seconds (30–7200).
callback_url - leave empty for normal ComfyUI use.
Outputs are text, task_id, raw_json, credits_consumed and credits_left. text is the one you wire - straight into the lyric field of a Suno music node, or into a text file via a save node. task_id is worth keeping if you want to look the job up later, raw_json is the full response, and the two floats plus the receipt drawn on the node tell you what the draft cost.
One shape note: KIE's own example response for this endpoint carries multiple lyric candidates as an array of items. The pack walks the response for text fields and joins what it finds into the single text output, de-duplicating as it goes. If you asked for several takes, expect them concatenated - split them yourself downstream rather than being surprised by a double chorus.
Install
ComfyUI Manager, search the pack title, or:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Restart ComfyUI. Dependencies are requests, Pillow, numpy, PyYAML - there's no local model, no audio stack to configure, no VRAM. Everything is a call to KIE and everything is metered.
Key once: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The pack validates the key against KIE before it replaces a working one and shows a masked fingerprint plus CONNECTED when it saves. On a headless box, KIE_API_KEY in the environment takes priority over the saved key.
Gotchas
200 characters is a wall. Anything longer is truncated or rejected on your side of the wire, so compress the brief instead of pasting a verse.
It's a text node, not a song. No audio comes back. The pipeline is this node then a Suno music node.
Clean up before you spend. Model lyrics arrive with structural tags like [Verse], [Chorus] and [Bridge] - useful to the music model, noise in a finished caption. Decide which you want before wiring the output onward.
Cards are generated from KIE's live catalogue. The pack indexes KIE's API documentation at startup and re-checks roughly daily, so a change to this endpoint's fields shows up after a ComfyUI restart, not after a plugin update.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A nostalgic song about childhood memories and growing up in a small town | Description of the desired lyrics content. Be specific about theme, mood, style, or story elements you want in the lyrics. More detailed prompts yield better results. The maximum word limit is 200 characters. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |