Add /api/comfyui/image endpoint for fetching generated images

Allows web clients to retrieve images by filename after generation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Adam Ladachowski
2026-02-17 01:46:26 +01:00
parent e8667617dd
commit 093179cb3b
+26
View File
@@ -6,6 +6,7 @@ import logging
from typing import Any
from fastapi import APIRouter, HTTPException, Query
from fastapi.responses import Response
from pydantic import BaseModel as PydanticBaseModel
from pydantic import Field
@@ -13,6 +14,7 @@ from tensors.comfyui import (
clear_queue,
generate_image,
get_history,
get_image,
get_loaded_models,
get_queue_status,
get_system_stats,
@@ -272,6 +274,30 @@ def comfyui_workflow(request: WorkflowRequest) -> dict[str, Any]:
}
@router.get("/image/{filename}")
def comfyui_image(
filename: str,
subfolder: str = Query(default="", description="Subfolder within output directory"),
folder_type: str = Query(default="output", description="Folder type: output, input, temp"),
) -> Response:
"""Fetch a generated image from ComfyUI.
Use this to retrieve images by filename after generation.
"""
image_data = get_image(filename=filename, subfolder=subfolder, folder_type=folder_type)
if image_data is None:
raise HTTPException(status_code=404, detail="Image not found")
# Determine content type from filename
content_type = "image/png"
if filename.lower().endswith(".jpg") or filename.lower().endswith(".jpeg"):
content_type = "image/jpeg"
elif filename.lower().endswith(".webp"):
content_type = "image/webp"
return Response(content=image_data, media_type=content_type)
def create_comfyui_api_router() -> APIRouter:
"""Return the ComfyUI API router."""
return router