Comfy-Org/ComfyUI · error · ValueError
Too many reference audios: {total_audios} (audios={len(refer
Error message
Too many reference audios: {total_audios} (audios={len(reference_audios)}, audio assets={len(reference_audio_assets)}). Maximum is {limits['max_audios']}. What it means
Client-side cap on reference audios (Seedance 2.5 feature): direct reference_audios plus resolved audio assets must not exceed limits["max_audios"] (10). Audio references are used for voice/timbre transfer, and the provider rejects more than the cap, so the node enforces it locally with a breakdown of both sources.
Source
Thrown at comfy_api_nodes/nodes_bytedance.py:2766
raise ValueError("At least one reference image or video or asset is required.")
total_images = len(reference_images) + len(reference_image_assets)
if total_images > limits["max_images"]:
raise ValueError(
f"Too many reference images: {total_images} "
f"(images={len(reference_images)}, image assets={len(reference_image_assets)}). "
f"Maximum is {limits['max_images']}."
)
total_videos = len(reference_videos) + len(reference_video_assets)
if total_videos > limits["max_videos"]:
raise ValueError(
f"Too many reference videos: {total_videos} "
f"(videos={len(reference_videos)}, video assets={len(reference_video_assets)}). "
f"Maximum is {limits['max_videos']}."
)
total_audios = len(reference_audios) + len(reference_audio_assets)
if total_audios > limits["max_audios"]:
raise ValueError(
f"Too many reference audios: {total_audios} "
f"(audios={len(reference_audios)}, audio assets={len(reference_audio_assets)}). "
f"Maximum is {limits['max_audios']}."
)
for key in reference_images:
reference_images[key] = _prepare_seedance_image(reference_images[key])
has_video_input = total_videos > 0
if model.get("auto_downscale") and reference_videos:
max_px = SEEDANCE2_REF_VIDEO_PIXEL_LIMITS.get(model_id, {}).get(model["resolution"], {}).get("max")
if max_px:
for key in reference_videos:
reference_videos[key] = downscale_video_to_max_pixels(reference_videos[key], max_px)
if model.get("auto_upscale") and reference_videos:
min_px = SEEDANCE2_REF_VIDEO_PIXEL_LIMITS.get(model_id, {}).get(model["resolution"], {}).get("min")View on GitHub (pinned to 1c6d8d45b3)
Solutions
- Reduce the number of audio references (direct + assets) to the stated maximum.
- Pick the one or two cleanest voice samples; more samples rarely improve timbre.
Defensive patterns
Strategy: validation
Validate before calling
total = len(reference_audios) + len(reference_audio_assets) assert total <= seedance2_reference_limits(model_id)["max_audios"]
Prevention
- One or two clean voice samples are usually enough for timbre transfer.
- Count clips and audio asset ids together against the cap.
When it happens
Trigger: Connecting more reference_audio inputs than max_audios, or combining reference_audios with audio asset ids above the cap, on the Seedance 2.5 reference node.
Common situations: Trying to blend many voice samples; mixing preset workflows that carry asset ids with newly connected audio clips.
Related errors
- Too many reference images: {total_images} (images={len(refer
- Too many reference videos: {total_videos} (videos={len(refer
- Reference audio {i} is too short: {dur:.1f}s. Minimum durati
- Total reference audio duration is {total_audio_duration:.1f}
- Reference video {index} is too small: {w}x{h} = {pixels:,} t
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/c735e58f8027d9d7.
Report an issue: GitHub.