d5f29f7056
Better region PROPOSERS feeding the existing crop→SigLIP→max-over-bag heads (no change to the learned-tagging approach; no per-tag cost — propose once, embed each region, all heads in one matmul). - detectors.py: lazy ultralytics YOLO wrapper, each proposer independently optional + guarded (a bad weight spec / inference error self-disables that one, logged, never breaks the worker). Weights resolve from an ultralytics name | http(s) URL | "hf_repo::file", cached under HF_HOME. NMS merge so a figure two detectors both find collapses to one crop. - worker: figure boxes = imgutils detect_person ∪ general COCO person (merged) → CCIP + concept (anime + Western/realistic coverage); booru_yolo anatomy components (head/cat-head/anatomy/…) → concept crops; comic panels → kind= 'panel' concept crops. Capped per frame (MAX_COMPONENTS/MAX_PANELS). - config + compose: PERSON_WEIGHTS (default yolo11n.pt, works OOB), ANATOMY_WEIGHTS + PANEL_WEIGHTS (operator sets booru_yolo URL + mosesb panel hf::file; empty = off). ultralytics added to requirements. - backend: image_region 'kind' doc notes 'panel'; no migration (free String, and the bag scorer keys on a non-null siglip_embedding, not the kind, so any SigLIP region joins the bag automatically). Agent is outside CI — py-compiled here; operator tests on the GPU and checks Western-vs-anime crop quality via /api/ccip observability. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ttrj5P7upUTueSfoJcxEqa
19 lines
703 B
Plaintext
19 lines
703 B
Plaintext
# CCIP + figure detection (ONNX models, auto-downloaded from HuggingFace).
|
|
dghs-imgutils>=0.4
|
|
# GPU inference for the ONNX models. Swap to onnxruntime (CPU) for a slow
|
|
# server-side fallback run.
|
|
onnxruntime-gpu
|
|
# The crop EMBEDDER (concept bag). torch is installed separately in the
|
|
# Dockerfile from the CUDA-12.4 wheel index so the GPU build is deterministic;
|
|
# transformers loads whatever SigLIP-family model the server announces.
|
|
transformers>=4.45
|
|
# Crop PROPOSERS — small YOLO detectors (booru_yolo anatomy, COCO person, comic
|
|
# panel) that decide where to crop. Uses the torch already installed above.
|
|
ultralytics>=8.3
|
|
# Control surface + HTTP.
|
|
fastapi
|
|
uvicorn[standard]
|
|
requests
|
|
pillow
|
|
numpy
|