{"record":{"id":"b480c8a61a8e2dda","repo":"sgl-project/sglang","slug":"failed-to-generate-image-str-e","errorCode":null,"errorMessage":"Failed to generate image: {str(e)}","messagePattern":"Failed to generate image: (.+?)","errorType":"error_code","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/core/server_api.py","lineNumber":203,"sourceCode":"        else:\n            # Use generation endpoint - add generation-specific parameters\n            payload = common_params.copy()\n            if quality:\n                payload[\"quality\"] = quality\n            if style:\n                payload[\"style\"] = style\n\n            try:\n                response = requests.post(\n                    f\"{self.base_url}/images/generations\",\n                    json=payload,\n                    headers=self.headers,\n                    timeout=300,  # 5 minutes timeout for generation\n                )\n                response.raise_for_status()\n                return response.json()\n            except requests.exceptions.RequestException as e:\n                raise RuntimeError(f\"Failed to generate image: {str(e)}\")\n\n    def generate_video(\n        self,\n        prompt: str,\n        size: Optional[str] = None,\n        width: Optional[int] = None,\n        height: Optional[int] = None,\n        seconds: Optional[int] = 4,\n        fps: Optional[int] = None,\n        num_frames: Optional[int] = None,\n        negative_prompt: Optional[str] = None,\n        guidance_scale: Optional[float] = None,\n        num_inference_steps: Optional[int] = None,\n        seed: Optional[int] = None,\n        enable_teacache: bool = False,\n        generator_device: Optional[str] = \"cuda\",\n        input_reference: Optional[str] = None,\n        output_path: Optional[str] = None,","sourceCodeStart":185,"sourceCodeEnd":221,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/apps/ComfyUI_SGLDiffusion/core/server_api.py#L185-L221","documentation":"Raised by SGLDiffusionServerAPI.generate_image when the text-to-image POST to the SGLang Diffusion server raises a requests exception (connection failure, 300s timeout, or non-2xx status). It is the generic HTTP-level failure wrapper for image generation.","triggerScenarios":"Calling generate_image() with no image inputs while the server is down, the endpoint path is wrong, auth fails, or generation exceeds the hardcoded 300-second timeout.","commonSituations":"Server not launched before running the ComfyUI node; wrong base_url/api_key; long prompts or many images (large n) exceeding timeout; model still loading when the request arrives.","solutions":["Confirm the server is running and responding (e.g. GET /health or /v1/models on base_url).","Check the embedded error for HTTP status: fix api_key on 401/403, path on 404.","Retry once the model finishes loading; reduce n or image size for long generations.","Increase the 300s timeout in server_api.py for slow hardware."],"exampleFix":"// before\nresponse = sgld_client.generate_image(**request_params)\n// after\nimport requests, time\nfor attempt in range(3):\n    try:\n        response = sgld_client.generate_image(**request_params)\n        break\n    except RuntimeError as e:\n        if attempt == 2:\n            raise\n        time.sleep(5)","handlingStrategy":"retry","validationCode":"import requests\nassert requests.get(f\"{base_url}/models\", headers=headers, timeout=5).ok","typeGuard":null,"tryCatchPattern":"try:\n    response = sgld_client.generate_image(**params)\nexcept RuntimeError as e:\n    if 'timed out' in str(e): raise  # not retried blindly\n    time.sleep(3); response = sgld_client.generate_image(**params)","preventionTips":["Wait for model load to complete before batch calls.","Use small n and moderate sizes for first requests.","Wrap generation calls in bounded retry with backoff."],"tags":["network","http","image-generation","timeout","retry","sgldiffusion"],"backgroundTag":"http-request-failed","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}