Nodes/ComfyUI Seedance/Doubao Seed Audio 1.0 音频生成
ComfyUI Node

Doubao Seed Audio 1.0 音频生成

Want a voice that isn't yours? Doubao Seed Audio clones it from a photo

By T8mars·Created 2 months ago·Updated 3 days ago· 31
Doubao Seed Audio 1.0 音频生成
  • reference_image
  • reference_audio1
  • reference_audio2
  • reference_audio3
  • api_config
  • audio
  • audio_url
  • audio_path
  • task_id
  • response
prompt
speaker
output_formatwav
sample_rate24000
speech_rate0
loudness_rate0
pitch_rate0
skip_errorfalse
seed0

The party trick here is that you can hand this node a photo of a person and it will generate audio in that person's voice. Doubao Seed Audio 1.0 is ByteDance's closed audio model (Doubao is ByteDance's consumer AI brand; the Seed line never gets open weights), and this node is how it sneaks into your ComfyUI graph. It's not a text-to-speech toy - you can clone a voice from up to three reference clips, or let the model infer a voice from a single reference image, which is the workflow the pack's own example files are built around.

The name is a bit of a lie: nothing runs on your machine. This is an API-wrapper node from the T8mars/ComfyUI_Seedance pack, which fronts a budget AI gateway (default https://api.seedance.nz). You pay per call with an API key, not with VRAM.

How it works

The node hits the async /v1/audio/generations endpoint (not the sync /v1/audio/speech one - the README is explicit about that, because the model family does have both). Your prompt and any reference material get uploaded, a task ID comes back, the node polls until the job finishes, downloads the result, and decodes it into a ComfyUI AUDIO. Decoding doesn't even need torchaudio - it falls back to SciPy for the default 24 kHz stereo WAV, so a bare requests-only install just works.

The inputs that actually matter

  • prompt - 5 to 2048 characters. This drives the content: narration text, singing direction, whatever the scene needs.
  • speaker - an optional voice/ID from the API. Fine, but the interesting path is cloning.
  • reference_image or reference_audio1..3 - here's the catch: these are mutually exclusive with speaker, and with each other. Pick one route: an image (the "identify this person" trick), or up to three reference clips (proper voice cloning). The tooltips spell it out, and the node will reject you if you try to mix sources.
  • output_format - wav is the default and the README's advice: easiest for ComfyUI to decode. Switch to mp3/pcm/ogg_opus only if you need it downstream.
  • speech_rate (−50 to 100), loudness_rate (−50 to 100), pitch_rate (−12 to 12) - your fine-control dials. Leave them at 0 to start.

Outputs are audio (the decoded AUDIO, wire it into any save/preview node), plus audio_url, audio_path, task_id and the raw response JSON for debugging.

Installing it

This ships inside T8mars/ComfyUI_Seedance - a small one-person API-wrapper pack. Install from ComfyUI Manager by searching "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 ComfyUI, then get a key from api.seedance.nz/console. Drop a Seedance API Config node in with base_url and api_key, and connect its api_config output here - or set SEEDANCE_API_KEY and skip the node.

Common issues

  • "API key empty" - you skipped the config step; connect the Config node or set the env var.
  • Weird WAV duration - the upstream sometimes stamps WAVs with a 0xFFFFFFFF streaming length marker, so strict readers report a wrong duration. The node itself decodes fine; if external software complains, re-save the audio through ComfyUI's audio save node.
  • Node not in the menu after install - restart ComfyUI; check the plugin lives at ComfyUI/custom_nodes/ComfyUI_Seedance.
  • Reference sources rejected - you wired speaker and a reference image. Pick one.

Remember the whole input leaves your machine for a server you don't control - that's the deal with any closed-model API node, and Seed Audio is ByteDance's model with ByteDance's moderation behind the gateway.

CategorySeedance

Inputs (14)

NameTypeDefaultDescription
promptSTRINGAudio prompt, 5-2048 characters. | 音频提示词,5-2048 字符。
speakerSTRINGOptional speaker/voice id. Mutually exclusive with reference image/audio. | 可选音色 ID,不能与参考图/参考音频同时使用。
output_formatCOMBOwavAudio file format. wav is easiest for ComfyUI decoding. | 输出格式,wav 最容易被 ComfyUI 解码。
sample_rateCOMBO24000Output sample rate. | 输出采样率。
speech_rateINT0-50–100Speech rate adjustment, -50 to 100. | 语速,-50 到 100。
loudness_rateINT0-50–100Loudness adjustment, -50 to 100. | 音量,-50 到 100。
pitch_rateINT0-12–12Pitch adjustment, -12 to 12. | 音高,-12 到 12。
reference_imageoptIMAGEOptional reference image. Cannot be used with speaker or reference audio. | 可选参考图,不能与音色 ID 或参考音频同时使用。
reference_audio1optAUDIOOptional reference audio 1 of 3. Cannot be used with speaker or reference image. | 可选参考音频 1/3,不能与音色 ID 或参考图同时使用。
reference_audio2optAUDIOOptional reference audio 2 of 3. Cannot be used with speaker or reference image. | 可选参考音频 2/3,不能与音色 ID 或参考图同时使用。
reference_audio3optAUDIOOptional reference audio 3 of 3. Cannot be used with speaker or reference image. | 可选参考音频 3/3,不能与音色 ID 或参考图同时使用。
api_configoptSEEDANCE_CONFIGConnect Seedance API Config; otherwise SEEDANCE_API_KEY is used.
skip_erroroptBOOLEANfalseOn failure return 1 second of silence instead of stopping the workflow. | 失败时输出 1 秒静音。
seedoptINT00–18446744073709550000ComfyUI 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 (5)

NameTypeDescription
audioAUDIO
audio_urlSTRING
audio_pathSTRING
task_idSTRING
responseSTRING