Nodes/ComfyUI Seedance/Flow Music 音乐生成与处理(9 合 1)
ComfyUI Node

Flow Music 音乐生成与处理(9 合 1)

Flow Music is the compact Suno alternative

By T8mars·Created 2 months ago·Updated 3 days ago· 31
Flow Music 音乐生成与处理(9 合 1)
  • audio
  • api_config
  • audio1
  • audio2
  • video
  • text
  • clip_id
  • primary_url
  • result_urls
  • primary_path
  • result_paths
  • task_id
  • response
operationflowmusic-generation
versiondefault
sound_prompt
lyrics
prompt
title
bpm120
length60
clip_id
extend_from_s0.0
extend_s30
instruction
start_s0.0
end_s10.0
strength0.50
formatmp3
presetmodern
seed0
audio_url
skip_errorfalse

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_id not connecting - it's a STRING output; you can wire it directly into the next node's clip_id input, 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.

CategorySeedance

Inputs (22)

NameTypeDefaultDescription
operationCOMBOflowmusic-generationSelect one documented Flow Music action. | 选择 Flow Music 操作。
versionCOMBOdefaultLyria 3.5 is documented only for generation, extend, replace, and cover. | Lyria 3.5 仅用于生成、续写、替换和 Cover。
sound_promptSTRINGMusic style or sound description. | 音乐风格或声音描述。
lyricsSTRINGLyrics used by music generation. | 音乐生成使用的歌词。
promptSTRINGLyric-generation prompt, up to 3000 characters. | 歌词生成提示词,最多 3000 字符。
titleSTRINGOptional output title. | 可选输出标题。
bpmINT120Beats per minute; the API requires at least 1. | 每分钟节拍数,至少为 1。
lengthINT601–240Generated duration in seconds, 1 to 240. | 生成时长,1 到 240 秒。
clip_idSTRINGSource clip_id from a completed Flow Music node. | 已完成 Flow Music 节点输出的 clip_id。
extend_from_sFLOAT0.0Source position where extension begins. | 开始续写的源音频时间点。
extend_sINT301–164Extension duration, at most 164 seconds. | 续写时长,最多 164 秒。
instructionSTRINGEdit, extension, or cover instruction. | 编辑、续写或 Cover 指令。
start_sFLOAT0.0Replacement range start. | 替换区间起点。
end_sFLOAT10.0Replacement range end; must be greater than start_s. | 替换区间终点,必须大于起点。
strengthFLOAT0.500–1Cover strength from 0 to 1. | Cover 编辑强度,0 到 1。
formatCOMBOmp3Downloaded audio format. | 下载音频格式。
presetCOMBOmodernVideo rendering preset. | 音乐视频模板。
seedINT00–18446744073709550000Native 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 在输入不变时复用缓存;随机、递增或递减会触发新任务。
audiooptAUDIOLocal audio for flowmusic-upload-audio. | flowmusic-upload-audio 使用的本地音频。
audio_urloptSTRINGPublic audio URL; do not use with local audio. | 公网音频 URL,不能与本地音频同时使用。
api_configoptSEEDANCE_CONFIGConnect Seedance API Config; otherwise SEEDANCE_API_KEY is used.
skip_erroroptBOOLEANfalseReturn placeholders instead of stopping the workflow. | 失败时返回占位结果,不中断工作流。

Outputs (11)

NameTypeDescription
audio1AUDIO
audio2AUDIO
videoVIDEO
textSTRING
clip_idSTRING
primary_urlSTRING
result_urlsSTRING
primary_pathSTRING
result_pathsSTRING
task_idSTRING
responseSTRING