Skip to content

Seed Audio 1.0

Node name
BytePlus Seed Audio 1.0
Node ID
BytePlusSeedAudio
Find it
Double-click the canvas and search for “Seed Audio 1.0”, or browse BytePlus ModelArk/Speech
Keys needed
Seed Speech API key
Runs when
Its output is used by another node, such as Save Image or Save Video. It is not an output node.

Creates audio from a single prompt: you describe the voice, the mood, the background music and the sound effects, and you write the lines to speak. The voice can come from the prompt alone, from up to three reference clips, from a character image or from a built-in preset voice.

The node needs your separate Seed Speech API key (Singapore region only), and every request it sends is billed. It does not save anything itself: connect Save Audio or Preview Audio to keep or hear the result.

The Seed Audio 1.0 node with reference_mode set to text only, a prompt for a warm narrator and the five list outputs
Default settings with a sample prompt. The other modes add their reference inputs below reference_mode.
InputTypeDefaultWhat it does
text_prompttextDescribe the voice(s), emotion, pacing, ambience, background music and sound effects, and include the lines to speak (name characters inline for dialogue). In 'audio reference' mode, refer to connected clips by order as @Audio1, @Audio2, @Audio3. A quoted line can start with a timestamp range that controls when and how long it is spoken, e.g. "[5.5s:8.0s] Wait for me!". Write the prompt in the same language as the lines to speak. Maximum 3000 characters.
sample_ratechoice24000Output sample rate in Hz.Choices: 8000, 16000, 24000, 32000, 44100, 48000
speech_rateinteger0Speaking speed. 0 = normal, 100 = 2.0x, -50 = 0.5x.Range: -50–100
loudness_rateinteger0Loudness. 0 = normal, 100 = 2.0x, -50 = 0.5x.Range: -50–100
pitch_rateinteger0Pitch shift in semitones (-12 to 12).Range: -12–12
seedinteger42Seed controls whether the node should re-run; results are non-deterministic regardless of seed.Range: 0–2147483647
modeloptionalchoiceseed-audio-1.0seed-audio-1.0: 20 languages (English, Chinese, Japanese, Korean, Mexican & Castilian Spanish, Indonesian, German, Brazilian Portuguese, French, Thai, Vietnamese, Malay, Filipino, Italian, Russian, Dutch, Polish, Turkish, Swedish) plus per-sentence timing control via "[5.5s:8.0s] ..." timestamps.Choices: seed-audio-1.0

reference_mode is required and decides which of the inputs below appear. How to condition the voice: 'text only' (describe everything in the prompt), 'audio reference' (clone up to 3 voices, tagged @Audio1-3), 'image reference' (derive a voice from one character image), or 'preset voice' (pick a built-in named voice that reads the prompt).

No extra inputs for this option.

Advanced inputs (9)
InputTypeDefaultWhat it does
audio_formatoptionalchoicewavFormat requested from the API (the output is decoded to AUDIO either way).Choices: wav, mp3, ogg_opus, pcm
enable_subtitleoptionalon/offoffReturn sentence and word timestamps (subtitles_json and srt outputs).
aigc_watermarkoptionalon/offoffAdd the audible AI-generated marker at the end of the audio.
aigc_metadataoptionalon/offoffImplicit watermark: write AI-generation metadata into the audio header.
content_produceroptionaltextImplicit watermark: name or code of the synthesis provider.
produce_idoptionaltextImplicit watermark: content production ID.
content_propagatoroptionaltextImplicit watermark: name or code of the distributor.
propagate_idoptionaltextImplicit watermark: content distribution ID.
generation_countoptionalinteger1Number of separate generations to run in parallel, each billed as its own request. The API has no seed or variation setting, so every run is a fresh take of the same prompt. All outputs are lists in the same order: the next node runs once per clip.Range: 1–16
  • Reference mode: text only uses the prompt alone. audio reference clones up to three voices, which you call @Audio1, @Audio2 and @Audio3 in the prompt. image reference derives a voice from one character image (reference_image, or an http(s) link in ref_image_url). preset voice reads the whole prompt in the voice you pick in preset_voice. Only audio reference uses @AudioN tags: the node rejects them in text only and image reference.
  • Audio references: each slot takes either a connected clip (up to 30 seconds) or a text source in ref_audio_N_source: a TTS 2.0 or cloned speaker ID, or an audio URL. Use one or the other per slot, and fill the slots in order without gaps. A cloned voice from Seed Voice Clone fits here.
  • Timing: start a quoted line with a time range, such as [5.5s:8.0s] Wait for me!, to control when and how long it is spoken.
  • Subtitles: turn on enable_subtitle to fill subtitles_json (the timing data the service returns, plus a normalized segments list) and srt (one entry per sentence).
  • Several takes: raise generation_count (1 to 16). The API has no seed, so every take is a fresh result of the same prompt. seed only makes ComfyUI run the node again.
OutputTypeWhat it holds
AUDIOAUDIO (list)
subtitles_jsontext (list)
srttext (list)
durationnumber (list)
urltext (list)
  • All five outputs are lists with the same order, one entry per clip. A node connected to them runs once per clip.
  • duration is the length the service reports, in seconds. If the service gives none, the node measures the decoded audio.
  • url is the link Seed Speech returns for the clip. The link can omit the file extension. Seed Speech ASR can still read it: with audio_format on auto, the standard models detect the format from the file.
  • audio_format only changes what is requested from the API. The AUDIO output is always decoded audio.
  • Without enable_subtitle no subtitles are requested, so srt stays empty and subtitles_json has no segments.
  • The prompt holds at most 3000 characters. Write it in the same language as the lines to speak.
  • One clip is up to 2 minutes long. Seed Audio 1.0 supports 20 languages, listed in the tooltip of model.
  • Reference clips are limited to 30 seconds and 10 MB each. Of a reference image batch only the first image is used. It is scaled to between 160,000 and 4,194,304 pixels (2048 x 2048) and sent as JPEG, which must also stay within 10 MB.
  • Each take in a generation_count run is billed on its own and runs in parallel. A failed take is logged and skipped, and the node only fails when every take fails.
  • With enable_subtitle on, a clip can occasionally come back without subtitles. The node writes a message to the console and leaves that clip’s srt empty. Run it again to get them.
  • The advanced watermark inputs add an audible AI marker (aigc_watermark) or metadata in the audio header (aigc_metadata, with the optional provider and ID fields).
  • Interrupting a run stops the node’s wait and drops the takes still in progress. The node sends no cancel request, so a take that was already sent may still be billed.
Message What to do
[BytePlus] No Seed Speech API key is set. Add it in Settings > BytePlus … Add the Seed Speech key in Settings → BytePlus. See API keys.
… Invalid Seed Speech API key. Create one in the Seed Speech console … You probably used a ModelArk key. Seed Speech needs its own key from the Seed Speech console, with the service activated.
… but reference mode is 'text only'. Switch to 'audio reference' … The prompt contains @Audio1 or similar. Switch reference_mode to audio reference and connect the clips, or remove the tags.
[BytePlus] Connect reference audio in order without gaps: … Fill reference slot 1 first, then 2, then 3. Slot N is @AudioN in the prompt.
… Seed Speech concurrency limit reached. Wait for running requests to finish … Wait for running requests to finish, or lower generation_count.