fastapi
uvicorn[standard]
python-multipart
requests
minio
numpy
opencv-python
kumiko
onnxruntime          # set-of-mark: comic-text-detector text regions + anime-face boxes (CPU EP); bubble_detect.py, face_detect.py
# GPU / in-process models (rocm torch build already on workpc):
torch
transformers
accelerate
soundfile
# system deps (not pip): ffmpeg, comfyui (external server)
#
# dots.tts (gitignored checkout, needed by worker_tts + scripts/pick_tts_voice). venv is built
# --system-site-packages so it inherits Arch's rocm torch:
#   git clone https://github.com/rednote-hilab/dots.tts.git dots.tts
#   pip install -e ./dots.tts --no-deps --ignore-requires-python   # py3.14 > its <3.13 pin, skips gradio
#   pip install librosa loguru einops torchdiffeq 'langcodes[data]' lingua-language-detector WeTextProcessing
#   pip install --no-deps --index-url https://download.pytorch.org/whl/rocm7.2 torchvision==0.28.0+rocm7.2
# that last one is not optional: Arch's torchvision 0.25 is too old for torch 2.13, and every
# transformers model import dies with "operator torchvision::nms does not exist" until it is shadowed.
#
# models/ (gitignored, CPU onnx for set-of-mark):
#   comictextdetector.pt.onnx  <- github.com/zyddnys/manga-image-translator releases/beta-0.3
#   anime_face_v1.4_s.onnx     <- huggingface.co/deepghs/anime_face_detection face_detect_v1.4_s/model.onnx
