Comfy-Org/ComfyUI · error · Exception
Seed Audio returned no audio (code={response.code}): {respon
Error message
Seed Audio returned no audio (code={response.code}): {response.message} What it means
Raised after the Seed Audio API call succeeds at the transport level but the response object contains an empty `audio` field. The message includes the service's numeric response code and message, so the upstream refusal reason (content moderation, invalid reference audio, quota, etc.) is surfaced directly. This is an API-side failure, not a local validation error.
Source
Thrown at comfy_api_nodes/nodes_bytedance.py:3395
response = await sync_op(
cls,
ApiEndpoint(path="/proxy/byteplus/api/v3/tts/create", method="POST"),
response_model=SeedAudioResponse,
data=SeedAudioRequest(
model=model,
text_prompt=text_prompt,
references=references,
audio_config=SeedAudioConfig(
sample_rate=int(sample_rate),
speech_rate=speech_rate,
loudness_rate=loudness_rate,
pitch_rate=pitch_rate,
),
),
)
if not response.audio:
raise Exception(
f"Seed Audio returned no audio (code={response.code}): {response.message}"
)
return IO.NodeOutput(audio_bytes_to_audio_input(base64.b64decode(response.audio)))
class ByteDanceExtension(ComfyExtension):
@override
async def get_node_list(self) -> list[type[IO.ComfyNode]]:
return [
ByteDanceImageNode,
ByteDanceSeedreamNode,
ByteDanceSeedreamNodeV2,
ByteDanceSeedreamLayerSeparationNode,
ByteDanceTextToVideoNode,
ByteDanceImageToVideoNode,
ByteDanceFirstLastFrameNode,
ByteDanceImageReferenceNode,
ByteDance2TextToVideoNode,View on GitHub (pinned to 1c6d8d45b3)
Solutions
- Read the code/message in the error text — it is the upstream service's own reason and dictates the fix.
- Rephrase the prompt or swap the reference audio if the code indicates content policy or invalid input.
- Verify the ByteDance/Volcengine API credentials and that the account has Seed Audio access.
- Retry once after a short wait — transient service failures can return an empty audio payload.
Defensive patterns
Strategy: try-catch
Try / catch
try:
audio = await seed_audio_node.execute(...)
except Exception as e:
if "returned no audio" in str(e):
# inspect code/message embedded in the error text, then retry once or surface to user
log.warning(f"Seed Audio empty result: {e}")
raise Prevention
- Keep prompts within the service's content policy to avoid non-zero response codes.
- Use clean, audible reference audio clips (valid WAV/MP3, non-silent).
- Confirm API credentials and Seed Audio entitlements before batch runs.
When it happens
Trigger: A sync_op call to the ByteDance Seed Audio endpoint returns 2xx with response.audio empty and a non-zero response.code — e.g. prompt rejected by content filters, unreadable reference audio, or service-side generation failure.
Common situations: Prompts with disallowed content; corrupted or silent reference audio clips; invalid API credentials hitting a service-level error path; transient upstream incidents; region/account restrictions on the Seed Audio model.
Related errors
- ByteDance request failed. Code: {response.error['code']}, me
- The prompt references @Audio{max_tag}, but only {len(audio_i
- Reference mode '{MODE_IMAGE}' requires a reference_image inp
- @AudioN tags are not used in '{MODE_IMAGE}' mode; the prompt
- Reference mode '{MODE_SPEAKER}' requires selecting a preset
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/c8d857b8be3ed5f0.
Report an issue: GitHub.