Comfy-Org/ComfyUI · error · ValueError

Empty response from Seed model.

Error message

Empty response from Seed model.

What it means

Raised by the ByteDanceSeedNode when the API call completed without an error object but the response contained no extractable text — either response.output was empty or no message block had a non-empty output_text part. It distinguishes a structurally successful but content-free reply from the explicit error (390) and refusal (387) paths.

Source

Thrown at comfy_api_nodes/nodes_bytedance_llm.py:234

        response = await sync_op(
            cls,
            ApiEndpoint(path=BYTEPLUS_RESPONSES_ENDPOINT, method="POST"),
            response_model=BytePlusResponseObject,
            data=BytePlusResponseCreateRequest(
                model=model_id,
                input=[BytePlusInputMessage(role="user", content=content)],
                instructions=system_prompt or None,
                temperature=temperature,
                store=False,
                stream=False,
            ),
        )
        if response.error:
            raise ValueError(f"Seed API error ({response.error.code}): {response.error.message}")
        result = _get_text_from_response(response)
        if not result:
            raise ValueError("Empty response from Seed model.")
        return IO.NodeOutput(result)


class ByteDanceLLMExtension(ComfyExtension):
    @override
    async def get_node_list(self) -> list[type[IO.ComfyNode]]:
        return [ByteDanceSeedNode]


async def comfy_entrypoint() -> ByteDanceLLMExtension:
    return ByteDanceLLMExtension()

View on GitHub (pinned to 1c6d8d45b3)

Solutions

  1. Retry the request once — empty-but-successful responses are frequently transient.
  2. Lower the temperature in the model widget if set very high.
  3. Shorten/clarify the prompt and ensure it survives validate_string (non-empty after strip).
  4. If persistent, check BytePlus service status or try another model from the dropdown.
Defensive patterns

Strategy: retry

Try / catch

for attempt in range(2):
    try:
        return await seed_node.execute(...)
    except ValueError as e:
        if "Empty response" in str(e) and attempt == 0:
            continue  # transient empty-but-successful response
        raise

Prevention

When it happens

Trigger: BytePlus responses endpoint returns a response with error=None and zero output_text blocks — e.g. the model emitted only empty strings, the output array was truncated, or a service glitch returned a bare skeleton response.

Common situations: Edge-case prompts (empty after normalization, whitespace-only system prompts) that produce vacuous output; upstream incidents; unusual temperature settings causing degenerate output; very long prompts that get silently truncated server-side.

Related errors


AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14). Data as JSON: /api/errors/c5f88b8a53814b33. Report an issue: GitHub.