Generate Persona
The Suno node whose card shows a prompt box, and the catch behind it
- audio
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
A Suno persona is a reusable voice/style identity - a singer you can put on later tracks. This node is the step that creates one on KIE's Suno API. It's a short, thin card, and the interesting thing about it is why the card looks the way it does.
Why the card is mostly one text box
Every node in this pack is generated from KIE's API documentation: the pack reads the request example and parameter metadata for each model and builds widgets from them. When a KIE page publishes response examples but no request schema, there's nothing to infer, and the pack falls back to a generic card - a prompt field plus an expert override. You can tell you're on one of those cards by the tooltip on that override field: "Expert-only payload overrides for APIs whose documentation has no request schema yet."
So the fields are:
prompt (required) - a generic text field, present because the card has a prompt slot and not because this endpoint necessarily wants a described song.
expert_override_json - a raw JSON object merged into the request payload. On a schema-less card this is not a curiosity; it's the actual interface for whatever the endpoint documents in prose but didn't publish as a schema.
timeout_seconds - 1200 default, 30–7200.
callback_url - leave empty for normal ComfyUI use.
If a run comes back complaining about a missing field the card doesn't show, this override is where it goes. That's the documented purpose of the field, and on this card it's the working surface.
What comes back
audio, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left - the pack's standard media signature, and here the media socket is an AUDIO object.
The valuable part is in the payload. KIE's own example response for the persona endpoint shows a task ID, an audio ID, a persona name and a description - something like "Electronic Pop Singer" with a one-line description of the style. That pair (an identifier plus a written description) is the whole point of a persona: it's a handle you reuse. Suno's music-side fields include persona references (the pack's own code deals with personaId and personaModel payload keys for Suno operations), so a persona is something you mint once and then point at from a music-generation job.
Because no socket carries the persona ID forward, read it out of raw_json. That manual handoff is normal across this pack's multi-stage audio nodes.
Install
ComfyUI Manager, searching 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. Requirements are requests, Pillow, numpy, PyYAML; nothing runs locally, nothing needs downloading, and every call is metered on KIE's side.
Key: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. It's validated against KIE before it replaces a saved key, then shows a masked fingerprint and CONNECTED. Headless: set KIE_API_KEY, which takes priority.
Gotchas
A generic card is a signal, not a bug. If a run fails on validation here, don't assume the install is broken - the endpoint's own documentation is missing a schema, and the override field exists for exactly that.
Don't retry a failed submit without reading the message. Some Suno-family failures are local validation (the pack checks documented combination rules before sending), some are provider-side; the distinction decides whether a retry costs you anything.
Keep the pack current. The Suno operations in this pack have had real envelope bugs in earlier versions - including one that sent the wrong model field and made Suno jobs fail at submit. Those are fixed, but only in newer releases.
Fields follow the provider. The pack rebuilds its node library from KIE's API documentation at startup and re-checks about daily, so this card may gain real widgets once KIE documents the request properly. Restart ComfyUI to pick that up.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Prompt sent to this KIE model. | |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. | |
| expert_override_jsonopt | STRING | {} | Expert-only payload overrides for APIs whose documentation has no request schema yet. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |