rotogod/README.md
m3ultra 874aaaefa3 feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export)
FastAPI + PyAV + transformers SAM2.1 on MPS. Relative-URL frontend (works
bare or behind digalot.fyi/rotogod/), ROTOGOD_ROOTS clip-path allowlist,
fwd+rev propagation, ProRes 4444 / WebM / matte / greenscreen exports.
deploy/rotogod.launchd.plist = always-on tailnet-bound instance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-26 22:02:20 +10:00

23 lines
902 B
Markdown

# ROTOGOD
Click an actor, get an alpha channel. Local SAM 2 rotoscoping on Apple Silicon.
```bash
# setup (once)
uv venv -p 3.12 .venv
uv pip install --python .venv/bin/python -r requirements.txt
# run
.venv/bin/python run.py --port 8484 # → http://localhost:8484
```
- Load a clip by absolute path, scrub with the slider / arrow keys / mouse wheel.
- `i` / `o` set in/out points. Trim exports a scene cut (`output/`).
- **Start roto** locks the in/out range into a SAM 2 session. Left-click = include,
right-click = exclude. Multiple objects supported. **Track** propagates through the range.
- Fix drift by clicking on the bad frame, then Track again from there.
- Export ProRes 4444 (alpha), WebM (alpha), matte, or greenscreen.
Model defaults to `facebook/sam2.1-hiera-small`; for final-quality masks run with
`ROTOGOD_SAM2=facebook/sam2.1-hiera-large`. See [DESIGN.md](DESIGN.md).