Two stdlib-only wrapper ops around the VIDGOD stack (gitea monster/vidgod): click-to-cutout (SAM2.1+MatAnyone -> ProRes 4444 alpha) and clip-library indexing (PySceneDetect + mlx-whisper). They shell out to ~/Documents/VIDGOD bin CLIs, which carry their own venvs — no MODELBEAST venv or install script. New optional manifest field requires_path: gates the LOCAL node on a path existing (expanduser), so ops whose stack lives only on some boxes are not grabbed by the primary. Remote nodes stay allowlist-gated via nodes.json (vidgod_* allowlisted on m1/ultra only for now). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
20 lines
992 B
JSON
20 lines
992 B
JSON
{
|
|
"id": "vidgod_index",
|
|
"name": "Clip Library Index (VIDGOD)",
|
|
"category": "video",
|
|
"description": "Index a video into the node's VIDGOD clip library: PySceneDetect shot split + mlx-whisper transcript + thumbnails into library/clips.sqlite. Library lives on the node that runs the job (canonical: ultra) — search it there with vg-find. Returns an index summary JSON.",
|
|
"accepts": ["video"],
|
|
"produces": ["json"],
|
|
"resources": "cpu",
|
|
"entry": "run.py",
|
|
"requires_path": "~/Documents/VIDGOD/bin/vg-index",
|
|
"params_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"no_whisper": {"type": "boolean", "default": false, "description": "Skip transcription (shots + thumbnails only)"},
|
|
"min_shot": {"type": "number", "default": 0.5, "description": "Minimum shot length, seconds"},
|
|
"keep_copy": {"type": "boolean", "default": true, "description": "Keep a copy of the video in VIDGOD/library/ingest/ so library entries outlive the job workspace"}
|
|
}
|
|
}
|
|
}
|