manual submit

This commit is contained in:
Khoa (Revenovich) Tran Gia
2026-03-07 21:49:16 +07:00
parent 1748cbf8d2
commit 6004b000a7
39 changed files with 5794 additions and 614 deletions

View File

@@ -265,7 +265,8 @@ class ComfyClient:
prompt_id, source, user_label, overrides, seed
)
for i, img_data in enumerate(images):
generation_db.record_file(gen_id, f"image_{i:04d}.png", img_data)
file_id = generation_db.record_file(gen_id, f"image_{i:04d}.png", img_data)
self._schedule_face_scan("image", file_id, img_data)
if videos and self.output_path:
for vid in videos:
vname = vid.get("video_name", "")
@@ -276,7 +277,9 @@ class ComfyClient:
else _Path(self.output_path) / vname
)
try:
generation_db.record_file(gen_id, vname, vpath.read_bytes())
vid_data = vpath.read_bytes()
file_id = generation_db.record_file(gen_id, vname, vid_data)
self._schedule_face_scan("video", file_id, vid_data)
except OSError as exc:
self.logger.warning(
"Could not read video for DB storage: %s: %s", vpath, exc
@@ -284,6 +287,21 @@ class ComfyClient:
except Exception as exc:
self.logger.warning("Failed to record generation to DB: %s", exc)
def _schedule_face_scan(self, media_type: str, file_id: int, data: bytes) -> None:
"""Fire-and-forget background face scan for a generated output file."""
try:
from face_service import get_face_service
svc = get_face_service()
if not svc.available:
return
loop = asyncio.get_running_loop()
if media_type == "image":
loop.create_task(svc.scan_output_image(file_id, data))
elif media_type == "video":
loop.create_task(svc.scan_video(file_id, data))
except Exception as exc:
self.logger.warning("Could not schedule face scan: %s", exc)
# ------------------------------------------------------------------
# Public generation API
# ------------------------------------------------------------------