Suno 音乐生成与处理(34 合 1)
The 31-in-1 node that turns a whole music pipeline into one dropdown
- audio1
- audio2
- audio3
- audio4
- api_config
- audio5
- audio6
- audio7
- audio8
- audio9
- audio10
- audio11
- audio12
- audio13
- audio14
- audio15
- audio16
- audio17
- audio18
- audio19
- audio20
- audio21
- audio22
- audio23
- audio24
- audio1
- audio2
- video
- text
- primary_url
- result_urls
- primary_path
- result_paths
- task_id
- response
- model_id
Suno doesn't have open weights - you will never download it, so the only way to get it into a ComfyUI graph is to call it. This node is that call, and then some: Suno_Music is a single node with an operation dropdown covering 31 documented Suno actions, from generation and lyrics to uploads, extend, cover, mashup, stems, sounds, voice creation, export, and analysis. The node's own test log claims all 31 reached their final success state, so the packaging is the real feature here: one node, one dropdown, a whole music API.
A note on what it actually is before you get excited. This is not Suno's official API wrapped by a ComfyUI partner node. Suno_Music lives in T8mars/ComfyUI_Seedance, a pack that talks to the author's own API aggregator (api.seedance.nz) - a Chinese reseller storefront that also proxies video, image, and audio models. That means you pay per call through that reseller, your audio and prompts leave your machine, and upstream moderation applies. Suno is closed and censored at the source; nothing the node does bypasses that. If your goal is local, controllable music, the community's actual answer is ACE-Step, which runs on a potato GPU and is where people go for instrumentals. Reach for this node when you specifically want Suno-quality vocals and lyrics inside a workflow.
How it works
Pick an operation and the node redraws itself to show only the fields that action uses. Generation (suno-generation) posts to /v1/music/generations; the rest hit /v1/music/generations/{action} and then poll the task until it finishes. Local AUDIO references get uploaded automatically - no image hosting or public URL needed on your end, though each audio_url slot accepts a public URL instead if you have one. The really useful bit is task chaining: the task_id output plugs straight into the next Suno node, so extend/cover/stems/export workflows are just nodes wired end to end.
Inputs and outputs that matter
operation- the whole node.suno-generation,suno-lyrics,suno-upload,suno-extend,suno-cover-song,suno-inspo,suno-mashup,suno-upsample-tags,suno-sounds,suno-create-voice,suno-stems, and 19 more.prompt- the prompt, lyrics, or edit instruction for the current action.version-v3.5throughv5.5; only sent when the action supports it.task_id/task_id_2- chain from a previous Suno node; the second one is for mashup.audio1–audio4/audio_url1–audio_url4- reference audio for upload, create-voice, or inspo. Import sources need at least 6 seconds, and don't fill a local audio and a URL in the same slot.custom(custom lyrics),instrumental,title,style,vocal_gender,tags,name,continue_at,start_s/end_s,duration_s,speed- all action-specific; the node hides the ones that don't apply.
Outputs: audio1/audio2 (decoded AUDIO), video (for the mp4-type actions), text (lyrics, tags, or analysis), primary_url/result_urls and primary_path/result_paths for every result, task_id for chaining, and response with the full JSON.
Install and setup
Same as every node in this pack - install once and you have all of them:
# ComfyUI Manager: search "ComfyUI Seedance" or "seedance", or:
comfy node install seedance
Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ../.. && python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt
The only real dependency is requests. Then grab an API key from api.seedance.nz/console and wire it in - add a Seedance API Config node and connect its api_config output, or set SEEDANCE_API_KEY before launching ComfyUI.
Where people get burned
The two classic ones are forgetting the 6-second minimum on uploaded source audio, and assuming cover/mashup/sample/add-* actions run without a prompt - they don't. Mashup specifically needs two task_ids. And remember the economics: every run is a metered API call, so a 31-action music pipeline is a credit-burner by design. Keep skip_error handy for batch runs - on failure it hands back placeholder audio and an error response instead of killing the whole queue.
Inputs (81)
| Name | Type | Default | Description |
|---|---|---|---|
| operation | COMBO | suno-generation | Select one documented Suno action. | 选择 Suno 操作。 |
| prompt | STRING | Prompt, lyrics, or edit instruction for the selected action. | 当前操作使用的提示词、歌词或编辑说明。 | |
| version | COMBO | v6 | Sent only when the selected action supports this version. | 仅在当前操作支持时发送。 |
| custom | BOOLEAN | false | Generation custom-lyrics mode. | 自定义歌词模式。 |
| instrumental | BOOLEAN | false | Generation without vocals. | 生成纯伴奏。 |
| title | STRING | Optional generation title. | 可选曲名。 | |
| style | STRING | Optional generation style. | 可选音乐风格。 | |
| vocal_gender | COMBO | unspecified | Optional generation vocal preference. | 可选人声偏好。 |
| tags | STRING | Style tags for upsample-tags. | 需要扩写的风格标签。 | |
| name | STRING | Persona name. | Persona 名称。 | |
| task_id | STRING | Source Suno task id; connect a previous Suno node. | 源任务 ID,可连接前一个 Suno 节点。 | |
| task_id_2 | STRING | Second source task id for mashup. | 混合作品的第二个任务 ID。 | |
| audio_index | INT | 11–2147483647 | 1-based source track index. | 从 1 开始的音轨序号。 |
| continue_at | FLOAT | 30.0 | Extend from this second. | 从该秒数开始续写。 |
| start_s | FLOAT | 0.0 | Start second for range actions. | 时间范围起点。 |
| end_s | FLOAT | 30.0 | End second for range actions. | 时间范围终点。 |
| duration_s | FLOAT | 5.0 | Fade duration in seconds. | 淡入或淡出时长。 |
| speed | FLOAT | 1.00 | Speed multiplier for adjust-speed. | 速度倍率。 |
| audio1opt | AUDIO | Local audio reference 1; used by upload, create-model, upload-cover, upload-extend, create-voice, or inspo. | 本地音频素材 1;可用于导入、模型创建、翻唱、续写、音色或参考生成。 | |
| audio_url1opt | STRING | Public audio URL 1; do not fill together with audio1. | 公网音频 URL 1,不能与同槽本地音频同时使用。 | |
| audio2opt | AUDIO | Local audio reference 2; used by upload, create-model, upload-cover, upload-extend, create-voice, or inspo. | 本地音频素材 2;可用于导入、模型创建、翻唱、续写、音色或参考生成。 | |
| audio_url2opt | STRING | Public audio URL 2; do not fill together with audio2. | 公网音频 URL 2,不能与同槽本地音频同时使用。 | |
| audio3opt | AUDIO | Local audio reference 3; used by upload, create-model, upload-cover, upload-extend, create-voice, or inspo. | 本地音频素材 3;可用于导入、模型创建、翻唱、续写、音色或参考生成。 | |
| audio_url3opt | STRING | Public audio URL 3; do not fill together with audio3. | 公网音频 URL 3,不能与同槽本地音频同时使用。 | |
| audio4opt | AUDIO | Local audio reference 4; used by upload, create-model, upload-cover, upload-extend, create-voice, or inspo. | 本地音频素材 4;可用于导入、模型创建、翻唱、续写、音色或参考生成。 | |
| audio_url4opt | STRING | Public audio URL 4; do not fill together with audio4. | 公网音频 URL 4,不能与同槽本地音频同时使用。 | |
| api_configopt | SEEDANCE_CONFIG | Connect Seedance API Config; otherwise SEEDANCE_API_KEY is used. | |
| skip_erroropt | BOOLEAN | false | Return placeholders and an error response instead of stopping. | 失败时返回占位结果和错误信息,不中断批处理。 |
| audio5opt | AUDIO | Additional create-model audio reference 5. | 创建自定义模型的附加音频素材 5。 | |
| audio_url5opt | STRING | Additional public create-model audio URL 5; do not fill together with audio5. | 创建模型公网音频 URL 5,不能与同槽本地音频同时使用。 | |
| audio6opt | AUDIO | Additional create-model audio reference 6. | 创建自定义模型的附加音频素材 6。 | |
| audio_url6opt | STRING | Additional public create-model audio URL 6; do not fill together with audio6. | 创建模型公网音频 URL 6,不能与同槽本地音频同时使用。 | |
| audio7opt | AUDIO | Additional create-model audio reference 7. | 创建自定义模型的附加音频素材 7。 | |
| audio_url7opt | STRING | Additional public create-model audio URL 7; do not fill together with audio7. | 创建模型公网音频 URL 7,不能与同槽本地音频同时使用。 | |
| audio8opt | AUDIO | Additional create-model audio reference 8. | 创建自定义模型的附加音频素材 8。 | |
| audio_url8opt | STRING | Additional public create-model audio URL 8; do not fill together with audio8. | 创建模型公网音频 URL 8,不能与同槽本地音频同时使用。 | |
| audio9opt | AUDIO | Additional create-model audio reference 9. | 创建自定义模型的附加音频素材 9。 | |
| audio_url9opt | STRING | Additional public create-model audio URL 9; do not fill together with audio9. | 创建模型公网音频 URL 9,不能与同槽本地音频同时使用。 | |
| audio10opt | AUDIO | Additional create-model audio reference 10. | 创建自定义模型的附加音频素材 10。 | |
| audio_url10opt | STRING | Additional public create-model audio URL 10; do not fill together with audio10. | 创建模型公网音频 URL 10,不能与同槽本地音频同时使用。 | |
| audio11opt | AUDIO | Additional create-model audio reference 11. | 创建自定义模型的附加音频素材 11。 | |
| audio_url11opt | STRING | Additional public create-model audio URL 11; do not fill together with audio11. | 创建模型公网音频 URL 11,不能与同槽本地音频同时使用。 | |
| audio12opt | AUDIO | Additional create-model audio reference 12. | 创建自定义模型的附加音频素材 12。 | |
| audio_url12opt | STRING | Additional public create-model audio URL 12; do not fill together with audio12. | 创建模型公网音频 URL 12,不能与同槽本地音频同时使用。 | |
| audio13opt | AUDIO | Additional create-model audio reference 13. | 创建自定义模型的附加音频素材 13。 | |
| audio_url13opt | STRING | Additional public create-model audio URL 13; do not fill together with audio13. | 创建模型公网音频 URL 13,不能与同槽本地音频同时使用。 | |
| audio14opt | AUDIO | Additional create-model audio reference 14. | 创建自定义模型的附加音频素材 14。 | |
| audio_url14opt | STRING | Additional public create-model audio URL 14; do not fill together with audio14. | 创建模型公网音频 URL 14,不能与同槽本地音频同时使用。 | |
| audio15opt | AUDIO | Additional create-model audio reference 15. | 创建自定义模型的附加音频素材 15。 | |
| audio_url15opt | STRING | Additional public create-model audio URL 15; do not fill together with audio15. | 创建模型公网音频 URL 15,不能与同槽本地音频同时使用。 | |
| audio16opt | AUDIO | Additional create-model audio reference 16. | 创建自定义模型的附加音频素材 16。 | |
| audio_url16opt | STRING | Additional public create-model audio URL 16; do not fill together with audio16. | 创建模型公网音频 URL 16,不能与同槽本地音频同时使用。 | |
| audio17opt | AUDIO | Additional create-model audio reference 17. | 创建自定义模型的附加音频素材 17。 | |
| audio_url17opt | STRING | Additional public create-model audio URL 17; do not fill together with audio17. | 创建模型公网音频 URL 17,不能与同槽本地音频同时使用。 | |
| audio18opt | AUDIO | Additional create-model audio reference 18. | 创建自定义模型的附加音频素材 18。 | |
| audio_url18opt | STRING | Additional public create-model audio URL 18; do not fill together with audio18. | 创建模型公网音频 URL 18,不能与同槽本地音频同时使用。 | |
| audio19opt | AUDIO | Additional create-model audio reference 19. | 创建自定义模型的附加音频素材 19。 | |
| audio_url19opt | STRING | Additional public create-model audio URL 19; do not fill together with audio19. | 创建模型公网音频 URL 19,不能与同槽本地音频同时使用。 | |
| audio20opt | AUDIO | Additional create-model audio reference 20. | 创建自定义模型的附加音频素材 20。 | |
| audio_url20opt | STRING | Additional public create-model audio URL 20; do not fill together with audio20. | 创建模型公网音频 URL 20,不能与同槽本地音频同时使用。 | |
| audio21opt | AUDIO | Additional create-model audio reference 21. | 创建自定义模型的附加音频素材 21。 | |
| audio_url21opt | STRING | Additional public create-model audio URL 21; do not fill together with audio21. | 创建模型公网音频 URL 21,不能与同槽本地音频同时使用。 | |
| audio22opt | AUDIO | Additional create-model audio reference 22. | 创建自定义模型的附加音频素材 22。 | |
| audio_url22opt | STRING | Additional public create-model audio URL 22; do not fill together with audio22. | 创建模型公网音频 URL 22,不能与同槽本地音频同时使用。 | |
| audio23opt | AUDIO | Additional create-model audio reference 23. | 创建自定义模型的附加音频素材 23。 | |
| audio_url23opt | STRING | Additional public create-model audio URL 23; do not fill together with audio23. | 创建模型公网音频 URL 23,不能与同槽本地音频同时使用。 | |
| audio24opt | AUDIO | Additional create-model audio reference 24. | 创建自定义模型的附加音频素材 24。 | |
| audio_url24opt | STRING | Additional public create-model audio URL 24; do not fill together with audio24. | 创建模型公网音频 URL 24,不能与同槽本地音频同时使用。 | |
| custom_model_idopt | STRING | Custom model UUID returned by create-model; version and persona_id are omitted when used. | 创建模型返回的 UUID;使用时不发送 version 和 persona_id。 | |
| gpt_descriptionopt | STRING | Required inspiration description for upload-cover when custom is false, up to 3000 characters. | upload-cover 非自定义模式的灵感描述,最多 3000 字符。 | |
| negative_tagsopt | STRING | Styles to avoid. | 不希望出现的风格。 | |
| style_weightopt | FLOAT | 0.500–1 | Style weight from 0 to 1. | 风格权重,范围 0-1。 |
| weirdnessopt | FLOAT | 0.500–1 | Creativity weight from 0 to 1. | 创意度,范围 0-1。 |
| audio_weightopt | FLOAT | 0.500–1 | Audio weight from 0 to 1. | 音频权重,范围 0-1。 |
| auto_lyricsopt | BOOLEAN | false | Rewrite the supplied lyrics. | 对输入歌词进行二次创作。 |
| persona_idopt | STRING | Optional Persona ID; mutually exclusive with custom_model_id. | 可选 Persona ID,不能与 custom_model_id 同时使用。 | |
| target_duration_sopt | INT | 1010–360 | Target duration from 10 to 360 seconds. | 目标时长 10-360 秒。 |
| varietyopt | COMBO | normal | V6 style variation level. | V6 风格变化程度。 |
| max_modeopt | BOOLEAN | false | Enable Max mode where supported. | 在支持的操作中启用 Max 模式。 |
| audio_formatopt | COMBO | mp3 | Generated audio format. | 生成音频格式。 |
| seedopt | INT | 00–18446744073709550000 | ComfyUI cache seed. Fixed reuses the cached result while all other inputs stay unchanged; randomize/increment/decrement starts a new execution. This value is not sent to models without documented seed support. | ComfyUI 缓存种子;Fixed 在其他输入不变时复用缓存,随机、递增或递减会触发新任务。未声明支持 seed 的模型不会收到此参数。 |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| audio1 | AUDIO | — |
| audio2 | AUDIO | — |
| video | VIDEO | — |
| text | STRING | — |
| primary_url | STRING | — |
| result_urls | STRING | — |
| primary_path | STRING | — |
| result_paths | STRING | — |
| task_id | STRING | — |
| response | STRING | — |
| model_id | STRING | — |