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>
23 lines
902 B
Markdown
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).
|