sgl-project/sglang · error · RuntimeError
No image data in response
Error message
No image data in response
What it means
RuntimeError from the ComfyUI image node: the API call succeeded but the response's data list is empty or the first image has no b64_json payload, so there is nothing to convert to a tensor.
Source
Thrown at python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/nodes.py:390
request_params["enable_teacache"] = True
if image is not None:
# If the image is empty, use the size of the image to generate the image
if is_empty_image(image):
width, height = image.shape[2], image.shape[1]
size = f"{width}x{height}"
request_params["size"] = size
else:
request_params["image_path"] = get_image_path(image)
# Call API
try:
response = sgld_client.generate_image(**request_params)
except Exception as e:
raise RuntimeError(f"Failed to generate image: {str(e)}")
# Decode base64 image
if not response["data"] or not response["data"][0]["b64_json"]:
raise RuntimeError("No image data in response")
image_data = response["data"][0]["b64_json"]
image = convert_b64_to_tensor_image(image_data)
return (image,)
class SGLDiffusionGenerateVideo:
"""Node to generate videos using SGLang Diffusion."""
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"sgld_client": ("SGLD_CLIENT",),
"positive_prompt": (
"STRING",
{
"default": "",View on GitHub (pinned to 0132848349)
Solutions
- Log the raw response inside the node to inspect its shape.
- If URLs are returned, fetch them instead of expecting b64_json.
- Check server logs for why generation yielded no image data.
- Retry — occasional transient empty payloads indicate server overload.
Example fix
// before
if not response["data"] or not response["data"][0]["b64_json"]:
raise RuntimeError("No image data in response")
// after
entry = (response.get("data") or [{}])[0]
if not entry.get("b64_json"):
raise RuntimeError(f"No image data in response: {response}") Defensive patterns
Strategy: type-guard
Validate before calling
entry = (response.get('data') or [{}])[0]
assert entry.get('b64_json'), f'unexpected payload: {response}' Type guard
def usable_image_response(r: dict) -> bool:
data = r.get('data') or []
return bool(data) and bool(data[0].get('b64_json')) Try / catch
if not usable_image_response(response):
raise RuntimeError(f'No image data in response: {response}') Prevention
- Shape-check responses before tensor conversion.
- Log raw payloads on schema surprises.
- Handle url-style responses as a fallback path.
When it happens
Trigger: Server returns 200 with empty data, or data[0] lacking b64_json (e.g. URL-mode response or silent per-image failure).
Common situations: Server bug or partial failure; response_format mismatch; requesting more images than the server produced.
Related errors
- Prompt cannot be empty
- Failed to generate image: {str(e)}
- Unsupported model type: {model_type}
- Prompt cannot be empty
- Failed to generate image: {str(e)}
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/1b957d46d65141f2.
Report an issue: GitHub.