sgl-project/sglang · error · RuntimeError
No image data in response
Error message
No image data in response
What it means
Raised in the ComfyUI node when the server response contains no image payload (empty images array or missing b64 data). Typically a failed/blocked generation upstream; inspect the job status before reading image data.
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
- Failed to generate image
- Prompt cannot be empty
- (empty data payload)
- (missing ;base64 marker)
- data URI must use ;base64 encoding
AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28).
Data as JSON: /api/errors/1b957d46d65141f2.
Report an issue: GitHub.
Appendix: 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)