Flow Music 音乐生成与处理(9 合 1)
Flow Music is the compact Suno alternative
- audio
- api_config
- audio1
- audio2
- video
- text
- clip_id
- primary_url
- result_urls
- primary_path
- result_paths
- task_id
- response
This is the whole Flow Music API collapsed into one ComfyUI node: generate a track, write lyrics, upload your own audio, extend it, replace a section, make a cover, split stems, download, and render a music video - nine operations behind a single operation dropdown. If you've used the pack's other 31-in-1 Suno node, this is its leaner cousin; the node hides every control that doesn't apply to the action you picked, so the interface stays honest about what it needs.
Like everything in T8mars/ComfyUI_Seedance, it's an API wrapper. No local generation, no model files - a key from api.seedance.nz and an internet connection are the whole setup.
How it works
Each operation maps to a documented Flow Music action. The node runs a field whitelist per action, so a hidden field never leaks into the request - switch operations and the UI collapses to just the relevant controls. Music generation takes either a sound_prompt (style/sound description) or lyrics (or both); lyric generation takes a prompt up to 3000 characters. The genuinely neat bit is chaining: upload a local AUDIO (or paste a public audio_url), and the node hands back a clip_id you can wire straight into the next node's clip_id input for extend/replace/cover/stems/download/video operations. No external storage, no file juggling.
There's a version selector too. lyria-3.5 is only documented for generation, extend, replace and cover - set it on other actions and you're sending a field upstream won't read.
The inputs that matter
- operation - the nine actions: generation, lyrics, upload-audio, extend, replace, cover, stems, download-audio, video-clip. This is the steering wheel; everything else is contextual.
- sound_prompt / lyrics / prompt - the creative core, depending on operation.
- bpm (min 1 - the API refuses 0), length (1–240s).
- clip_id - chain output from a previous Flow Music node.
- extend_from_s / extend_s - where extension starts in the source, and its duration (max 164s).
- start_s / end_s / instruction - the replacement range and what to replace it with.
- strength (0–1) - cover edit intensity. format - downloaded audio format. preset - the video template for video-clip.
Outputs are the full spread: audio1/audio2 (decoded AUDIO), video (for the video-clip action), text, the reusable clip_id, primary_url/result_urls, primary_path/result_paths, task_id and response.
Installing it
ComfyUI Manager, search "ComfyUI Seedance", or:
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
Restart, then connect a Seedance API Config node (or set SEEDANCE_API_KEY). The pack's only dependency is requests.
Common issues
- Wrong operation, fields ignored - you're filling in controls the selected action doesn't send. Switch operation and watch the node hide them.
clip_idnot connecting - it's aSTRINGoutput; you can wire it directly into the next node'sclip_idinput, which is how every example workflow in the pack does it.- bpm error - set to at least 1.
- Long generation feels stuck - music jobs genuinely take a while; the node polls with a generous timeout (up to 1800s), so a 240-second track at high fidelity isn't a hang.
One note: audio decode in this pack prefers torchaudio but falls back to FFmpeg (found via SEEDANCE_FFMPEG, PATH, or the portable build). If stems come back as empty paths, the result URL probably expired mid-download - re-run; the pack keeps URL ordering and only fails the whole job when every artifact is gone.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| operation | COMBO | flowmusic-generation | Select one documented Flow Music action. | 选择 Flow Music 操作。 |
| version | COMBO | default | Lyria 3.5 is documented only for generation, extend, replace, and cover. | Lyria 3.5 仅用于生成、续写、替换和 Cover。 |
| sound_prompt | STRING | Music style or sound description. | 音乐风格或声音描述。 | |
| lyrics | STRING | Lyrics used by music generation. | 音乐生成使用的歌词。 | |
| prompt | STRING | Lyric-generation prompt, up to 3000 characters. | 歌词生成提示词,最多 3000 字符。 | |
| title | STRING | Optional output title. | 可选输出标题。 | |
| bpm | INT | 120 | Beats per minute; the API requires at least 1. | 每分钟节拍数,至少为 1。 |
| length | INT | 601–240 | Generated duration in seconds, 1 to 240. | 生成时长,1 到 240 秒。 |
| clip_id | STRING | Source clip_id from a completed Flow Music node. | 已完成 Flow Music 节点输出的 clip_id。 | |
| extend_from_s | FLOAT | 0.0 | Source position where extension begins. | 开始续写的源音频时间点。 |
| extend_s | INT | 301–164 | Extension duration, at most 164 seconds. | 续写时长,最多 164 秒。 |
| instruction | STRING | Edit, extension, or cover instruction. | 编辑、续写或 Cover 指令。 | |
| start_s | FLOAT | 0.0 | Replacement range start. | 替换区间起点。 |
| end_s | FLOAT | 10.0 | Replacement range end; must be greater than start_s. | 替换区间终点,必须大于起点。 |
| strength | FLOAT | 0.500–1 | Cover strength from 0 to 1. | Cover 编辑强度,0 到 1。 |
| format | COMBO | mp3 | Downloaded audio format. | 下载音频格式。 |
| preset | COMBO | modern | Video rendering preset. | 音乐视频模板。 |
| seed | INT | 00–18446744073709550000 | Native Flow Music seed for supported generation actions. | Flow Music 原生随机种子。 Fixed reuses the cached result while all inputs stay unchanged; randomize/increment/decrement starts a new execution. | Fixed 在输入不变时复用缓存;随机、递增或递减会触发新任务。 |
| audioopt | AUDIO | Local audio for flowmusic-upload-audio. | flowmusic-upload-audio 使用的本地音频。 | |
| audio_urlopt | STRING | Public audio URL; do not use with local audio. | 公网音频 URL,不能与本地音频同时使用。 | |
| api_configopt | SEEDANCE_CONFIG | Connect Seedance API Config; otherwise SEEDANCE_API_KEY is used. | |
| skip_erroropt | BOOLEAN | false | Return placeholders instead of stopping the workflow. | 失败时返回占位结果,不中断工作流。 |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| audio1 | AUDIO | — |
| audio2 | AUDIO | — |
| video | VIDEO | — |
| text | STRING | — |
| clip_id | STRING | — |
| primary_url | STRING | — |
| result_urls | STRING | — |
| primary_path | STRING | — |
| result_paths | STRING | — |
| task_id | STRING | — |
| response | STRING | — |