Go to file
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
deploy feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export) 2026-07-26 22:02:20 +10:00
rotogod feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export) 2026-07-26 22:02:20 +10:00
web feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export) 2026-07-26 22:02:20 +10:00
.gitignore feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export) 2026-07-26 22:02:20 +10:00
DESIGN.md feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export) 2026-07-26 22:02:20 +10:00
README.md feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export) 2026-07-26 22:02:20 +10:00
requirements.txt feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export) 2026-07-26 22:02:20 +10:00
run.py feat: ROTOGOD v0 — SAM-2 rotoscoping web app (load/scrub/trim → click actor → track → alpha export) 2026-07-26 22:02:20 +10:00

ROTOGOD

Click an actor, get an alpha channel. Local SAM 2 rotoscoping on Apple Silicon.

# 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.