Comfy-Org/ComfyUI · error · RuntimeError
Krea 2 job {job.job_id} completed without any image URLs.
Error message
Krea 2 job {job.job_id} completed without any image URLs. What it means
Raised after a Krea 2 job finishes polling but its result contains no image URLs. The job reached a terminal status, yet job.result is null or job.result.urls is empty, so there is nothing to download and convert to an image tensor.
Source
Thrown at comfy_api_nodes/nodes_krea.py:224
data=KreaGenerateImageRequest(
prompt=prompt,
aspect_ratio=model["aspect_ratio"],
resolution=model["resolution"],
seed=seed,
creativity=model["creativity"],
moodboards=moodboards,
image_style_references=image_style_references,
),
)
job = await poll_op(
cls,
ApiEndpoint(path=f"/proxy/krea/jobs/{initial.job_id}", method="GET"),
response_model=KreaJob,
status_extractor=lambda r: r.status,
queued_statuses=_KREA_QUEUED_STATUSES,
)
if not job.result or not job.result.urls:
raise RuntimeError(f"Krea 2 job {job.job_id} completed without any image URLs.")
image = await download_url_to_image_tensor(job.result.urls[0])
return IO.NodeOutput(image)
class Krea2StyleReferenceNode(IO.ComfyNode):
@classmethod
def define_schema(cls) -> IO.Schema:
return IO.Schema(
node_id="Krea2StyleReferenceNode",
display_name="Krea 2 Style Reference",
category="partner/image/Krea",
description=(
"Add an image style reference to a Krea 2 generation. Chain multiple Krea 2 "
"Style Reference nodes (max 10) and feed the final `style_reference` output "
"into Krea 2 Image. Each image is uploaded to ComfyAPI storage and passed as URL."
),
inputs=[View on GitHub (pinned to 1c6d8d45b3)
Solutions
- Re-run the node once — transient Krea-side failures are common.
- Soften or shorten the prompt if content policy is suspected.
- Check the Krea service status / try the same generation on krea.ai to confirm the account and prompt work.
- If it persists for all prompts, update comfy_api_nodes in case the KreaJob model no longer matches the live API shape.
Defensive patterns
Strategy: retry
Type guard
def krea_job_has_output(job: KreaJob) -> bool:
return bool(job.result and job.result.urls) Try / catch
last: Exception | None = None
for attempt in range(2):
try:
return await krea_execute(...)
except RuntimeError as e:
if "without any image URLs" in str(e):
last = e
continue # transient Krea-side empty result; retry once
raise
raise last Prevention
- Retry once on empty results before investigating.
- Keep prompts within policy to avoid post-acceptance kills.
- Cross-check the job on krea.ai when failures repeat.
When it happens
Trigger: poll_op on /proxy/krea/jobs/<job_id> completing with a KreaJob whose status is terminal but result.urls missing/empty — server-side generation failure reported as done, content-policy kill, or a response-shape change dropping urls.
Common situations: Prompt rejected by Krea's safety filter after job acceptance; transient Krea infrastructure failure that ends jobs without output; API version change renaming the urls field (would need a comfy_api_nodes update).
Related errors
- LTX job {job.id} completed without a video URL.
- 4K resolution is not supported for kling-image-o1 model.
- The maximum number of reference images is 10.
- kling-image-o1 does not support series generation.
- Kling 3.0 Turbo task finished without a video output: {respo
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/3dcf3c3b3f927c04.
Report an issue: GitHub.