v3.14.5 — cross-service GPU eviction hardening + /v1/unload endpoints
Closes the resource_manager gap that let audiolla / flickies
OOM-kill talkies / ollama by hoarding VRAM. Ships new POST
/v1/unload/{cuda,cpu} endpoints so operators can free VRAM
without piggybacking on a fake LLM call. Bundles the flickies
v0.2.0 → v0.3.0 upgrade.
RESOURCE_MANAGER:
Added cuda-audiolla + cuda-flickies (+ CPU siblings) to
_ALL_CUDA_GROUPS / _ALL_CPU_GROUPS. Matching _unload_* funcs
hit audiolla's POST /v1/unload (bulk evict) and flickies'
DELETE /v1/engines/{slug} (per loaded engine). Downstream
calls carry AIGATE_TOKEN as bearer.
Before: LatentSync holding 7 GiB VRAM → next talkies Whisper
load → torch.OutOfMemoryError → container restart.
After: pre_call unload includes audiolla + flickies → their
engines released → next call has VRAM.
NEW ENDPOINTS:
POST /v1/unload/cuda — fan out to all 7 CUDA services
POST /v1/unload/cpu — CPU counterpart
POST /v1/unload — both classes
Response is per-service outcome map. Per-service errors do
not fail the whole call. Implemented in mcp/server.py via
@mcp.custom_route; nginx routes /v1/unload/{cuda,cpu,''} →
mcp:8000 with 120s timeout.
FLICKIES v0.2.0 → v0.3.0 (CPU + CUDA):
Image-tag bump. Adds `precise: bool` (default false) on
POST /v1/video/trim + POST /v1/video/concat for frame-accurate
boundaries (libx264 CRF 18 / AAC 192k). Default preserves
prior stream-copy behavior. Pure additive.
Minor bump — additive endpoints + new groups + image bumps.
No breaking wire changes.
HEADS-UP: psyb0t/flickies:v0.3.0 + psyb0t/flickies:v0.3.0-cuda
may not be on Docker Hub at this tag's cut moment.