[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-auto-labeling":3,"mdc--tu0onc-key":34,"related-org-nvidia-auto-labeling":2736,"related-repo-nvidia-auto-labeling":2895},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"auto-labeling","build Docker-backed auto-labeling pipelines","Build Docker-backed PAIDF auto-labeling commands for SR, tracking, VLM JSON, and MCQ runs. Use for pipeline planning or execution requests. Do NOT use for unrelated Docker tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":17,"slug":18,"type":15},"Data Pipeline","data-pipeline",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Docker","docker",2,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpaidf-auto-labeling","2026-07-14T05:32:21.766434","Apache-2.0",1,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Auto-labeling pipeline that turns raw video and images into fine-tuning-ready scenes via super-resolution, detection and tracking, VLM scene understanding, and question generation","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpaidf-auto-labeling\u002Ftree\u002FHEAD\u002Fskills\u002Fauto-labeling","---\nname: auto-labeling\ndescription: Build Docker-backed PAIDF auto-labeling commands for SR, tracking, VLM JSON, and MCQ runs. Use for pipeline planning or execution requests. Do NOT use for unrelated Docker tasks.\nlicense: Apache-2.0\nowner: NVIDIA\nservice: auto-labeling\nversion: 1.0.0\nreviewed: 2026-05-20\nmetadata:\n  author: NVIDIA\n---\n\n# PAIDF Auto-Labeling Pipeline Skill\n\nYou help users go from \"I have videos or images\" to a completed Docker-backed pipeline run for the NVIDIA Metropolis Physical AI Data Factory (PAIDF) auto-labeling pipeline (`modules\u002Fcli.py`). Build complete commands, then obtain explicit user approval before executing Docker commands.\n\nThe pipeline has 4 stages: Super Resolution (SR, SeedVR2) → Detection & Tracking (RF-DETR + BoostTrack) → VLM JSON → Multiple-Choice Question (MCQ) Generation. This repo ships a single blueprint config (`configs\u002Fpipeline_example.yaml`) meant to be adapted via CLI overrides.\n\n## Routing (Read First)\n\nThe default flow is the **general 6-step pipeline run** below. Two shipped use-case examples are config-only specialisations of that same flow (they set `mcq_generation.mode=question-driven-vlm-llm`, `single_window=true`, and a question bank). When the request matches one of them, read the corresponding subdoc for the right overrides; otherwise stay on the general flow.\n\n| Request looks like | Use the |\n|--------------------|---------|\n| \"Run the pipeline\", \"process this video\", \"tracking + MCQ\", batch runs, partial stages, NGC\u002Fpublished-image runs | General 6-step flow below |\n| \"Caption these images with my own questions\", \"label this batch with yes\u002Fno questions\", \"build a reusable question bank\" | [`references\u002Fcustom-caption.md`](references\u002Fcustom-caption.md) |\n| \"Generate PAS captions\", \"person attribute caption\", \"describe what each person is wearing\", \"use the shipped person_attributes bank\" | [`references\u002Fperson-attribute-caption.md`](references\u002Fperson-attribute-caption.md) |\n\n## Instructions\n\nWork through these steps in order. Combine steps into a single conversational turn when the user has already provided enough information — don't ask for things they've already told you.\n\n---\n\n### Step 1: Understand the Goal (Interview)\n\nAsk these questions in one message (skip any already answered):\n\n1. **Stages**: Which pipeline stages do they need? (SR \u002F tracking \u002F VLM JSON \u002F MCQ — or full pipeline)\n2. **Inputs**: How many videos? Do they already have intermediate outputs (e.g., existing `sidecars\u002Fmetadata.json` for `metadata-llm`)?\n3. **MCQ mode** (if MCQ is involved): See Step 2 and `references\u002Fmcq-mode-guide.md`.\n4. **Endpoints**: Do they have VLM\u002FLLM endpoints? What environment (local Docker, NVCF, OpenAI-compatible)?\n5. **Checkpoints**: Model checkpoints are resolved from config and auto-downloaded by stage initialization; ask only if they need a custom `pipeline.model_cache_path` or `HF_TOKEN`.\n\n---\n\n### Step 2: Recommend a Preset Config\n\nUse `configs\u002Fpipeline_example.yaml` for all workflows and select behavior via overrides:\n\n- Full pipeline: defaults in the YAML (SR + tracking + VLM JSON + MCQ).\n- SR-only: set `detection_and_tracking.enabled=false vlm_json.enabled=false mcq_generation.enabled=false`.\n- Tracking-only: set `super_resolution.enabled=false vlm_json.enabled=false mcq_generation.enabled=false`.\n- VLM JSON only: set `super_resolution.enabled=false detection_and_tracking.enabled=false mcq_generation.enabled=false`.\n- MCQ modes: set `mcq_generation.enabled=true` plus `mcq_generation.mode=\u003Cmode>` (see the mode guide).\n\n**Rule**: to disable a stage, add `\u003Cstage>.enabled=false` as a CLI override rather than switching config files.\n\nFor edge cases (partial pipelines, stage chaining across separate runs), read `references\u002Fconfig-decision-tree.md`.\n\n---\n\n### Step 3: Collect Required Parameters\n\nOnly ask for what their chosen config actually requires:\n\n**Always required:**\n- `data.0.inputs.video_path` — input media path (video **or image**) or remote (`s3:\u002F\u002F`, `msc:\u002F\u002F`, `https:\u002F\u002F`)\n- `data.0.output.out_dir` — output root directory\n\n**Any stage that calls a VLM** (e.g. `vlm_json`, or MCQ modes like `window-direct-vlm` \u002F `window-vlm-llm` \u002F `question-driven-vlm-llm`):\n- `endpoints.vlm.url` — VLM base URL (e.g., `http:\u002F\u002Fvlm-server:8000\u002Fv1`)\n- `endpoints.vlm.model` — model ID string\n\n> **Docker gotcha**: If the VLM\u002FLLM servers are running on the **host machine**, use `host.docker.internal` instead of `localhost`. Example: `endpoints.vlm.url=\"http:\u002F\u002Fhost.docker.internal:18002\u002Fv1\"`. Using `localhost` from inside Docker silently fails with connection errors.\n\nFor endpoint URL, model ID, and credential handling, read `references\u002Fendpoint-configuration.md`.\nFor MCQ, use `references\u002Fmcq-mode-guide.md` as the short agent checklist. Full mode tables and examples live in `docs\u002Fmcq-modes.md`.\n\n**Output layout** for enabled stages is fixed under each sample's `out_dir` — you only need to choose `out_dir`.\n\n---\n\n### Step 4: Generate the CLI Command\n\n**Single video (inner pipeline command):**\n```bash\nuv run python modules\u002Fcli.py --config configs\u002Fpipeline_example.yaml \\\n  data.0.inputs.video_path=\"\u003CVIDEO_PATH>\" \\\n  data.0.output.out_dir=\"\u003COUT_DIR>\" \\\n  [endpoints.vlm.url=\"\u003CVLM_URL>\" endpoints.vlm.model=\"\u003CVLM_MODEL>\"] \\\n  [endpoints.llm.url=\"\u003CLLM_URL>\" endpoints.llm.model=\"\u003CLLM_MODEL>\"]\n```\n\n**Batch ≤9 videos** — expand `data.N` inline:\n```bash\nuv run python modules\u002Fcli.py --config configs\u002Fpipeline_example.yaml \\\n  data.0.inputs.video_path=\"clip1.mp4\" data.0.output.out_dir=\"output\u002Fclip1\" \\\n  data.1.inputs.video_path=\"clip2.mp4\" data.1.output.out_dir=\"output\u002Fclip2\"\n```\n\n**Batch 10+ videos** — generate a bash loop (single CLI invocation is more efficient than N separate calls):\n```bash\nVIDEOS=(\u002Fdata\u002Fclips\u002Fclip_*.mp4)\nARGS=\"\"\nfor i in \"${!VIDEOS[@]}\"; do\n  NAME=$(basename \"${VIDEOS[$i]}\" .mp4)\n  ARGS+=\" data.${i}.inputs.video_path=\\\"${VIDEOS[$i]}\\\"\"\n  ARGS+=\" data.${i}.output.out_dir=\\\"output\u002Fbatch\u002F${NAME}\\\"\"\ndone\neval \"uv run python modules\u002Fcli.py --config configs\u002Fpipeline_example.yaml $ARGS \\\n  endpoints.vlm.url=\\\"\u003CVLM_URL>\\\" endpoints.vlm.model=\\\"\u003CVLM_MODEL>\\\" \\\n  endpoints.llm.url=\\\"\u003CLLM_URL>\\\" endpoints.llm.model=\\\"\u003CLLM_MODEL>\\\"\"\n```\n\n**Mode-specific notes:**\n\n- **`metadata-llm`** — LLM only; `vlm_verify_enabled` is auto-disabled by the schema. Always set:\n  ```bash\n  endpoints.llm.url=\"\u003CLLM_URL>\" endpoints.llm.model=\"\u003CLLM_MODEL>\"\n  data.0.inputs.video_path=\"\u003Cexisting\u002Fsource_media.mp4>\"\n  data.0.inputs.metadata_json_path=\"\u003Cpath\u002Fto\u002Fmetadata.json>\"\n  ```\n\n**Useful inline overrides:**\n- `super_resolution.enabled=false` — skip SR stage\n- `data.0.inputs.vlm_video_path=\"\u002Fpath\u002Fto\u002Fvideo.mp4\"` — force VLM JSON (and MCQ) to use a specific media file, bypassing the default priority chain (`sidecars\u002F\u003Ctrack_stem>_tracking_red_id.\u003Cext>` → SR output → original)\n- `vlm_json.split_json_calls=true` — default, more reliable VLM JSON generation\n- `pipeline.empty_output_policy=warn|fail` — use `warn` for best-effort batch runs; use `fail` when stage failures should stop the run\n- `mcq_generation.mode=window-vlm-llm` — switch MCQ mode\n- `mcq_generation.window_metadata_extraction.question_bank_file=\"\u002Fpath\u002Fto\u002Fbank.json\"` — custom question bank (question-driven-vlm-llm only; window\u002Fmetadata modes use embedded bank in `mcq_prompt_file`)\n- `mcq_generation.window_metadata_extraction.skip_existing=true` — resume a partial run\n- `pipeline.gpu_ids=2,3` — pin specific GPU IDs (important when VLM\u002FLLM servers occupy other GPUs)\n- `pipeline.use_multi_gpu=true` — SR uses all GPUs in `gpu_ids`; default is single-GPU (first GPU only)\n\nFor windowing strategies, partial pipelines, and stage chaining see `references\u002Fconfig-decision-tree.md`.\nFor Docker execution patterns, including generic NGC-image `docker run` and repo-local `.\u002Fdocker\u002Fdeploy.sh`, see `references\u002Fdocker-run.md`.\n\nAlways output a complete, copy-pasteable command. Do not leave placeholders unfilled if the user gave you the values.\n\n---\n\n### Step 5: Pre-flight Checklist\n\nRun all checks via Bash in parallel and report pass\u002Ffail before asking for execution approval:\n\n```text\n[ ] Docker running            →  docker info\n[ ] Container image available →  docker image inspect \u003CAUTO_LABELING_IMAGE>\n[ ] Checkpoints present       →  ls ckpts\u002F   (only if SR is enabled)\n[ ] Input video exists        →  ls \u003Cvideo_path>\n[ ] VLM endpoint reachable    →  curl -s \u003Cvlm_url>\u002Fmodels   (if VLM needed; add auth only after credential approval)\n[ ] LLM endpoint reachable    →  curl -s \u003Cllm_url>\u002Fmodels   (if LLM needed; add auth only after credential approval)\n```\n\n**Important:** When checking VLM\u002FLLM endpoints, read the actual model ID from the `\u002Fmodels` response and use it in the CLI command — the user-provided model name may differ from the served model ID (e.g. FP8 suffix). If an endpoint needs authentication, warn the user before accessing credential environment variables, do not print secret values, and prefer a mounted credential file or Docker secret over shell interpolation. See `references\u002Fendpoint-configuration.md`.\n\nProvide the exact fix command for any hard failure (block execution until resolved):\n\n| Failure | Fix |\n|---------|-----|\n| Docker not running | `sudo systemctl start docker` (or open Docker Desktop) |\n| Image unavailable | Pull\u002Fbuild the NGC image and set `AUTO_LABELING_IMAGE`; if working inside this repo, `.\u002Fdocker\u002Fdeploy.sh build` is also supported |\n| Endpoint unreachable | Ask the user for a reachable VLM\u002FLLM base URL (must end in `\u002Fv1`) and the served model ID, or have them start their own OpenAI-compatible server, then retry |\n\n**Checkpoints missing** — do NOT block on this. Stage initialization will ensure required SeedVR2 checkpoints on first run; warn that the first run may spend time downloading. If SR is disabled (`super_resolution.enabled=false`), SR checkpoints are irrelevant.\n\n---\n\n### Step 6: Execute the Pipeline\n\nAfter a passing pre-flight (no hard failures), present an execution summary and require explicit user approval before any Docker command. Include:\n\n- Full Docker command to be run, with secrets redacted or passed through approved secret files\u002Fenv names only.\n- Expected resource use: GPU count, likely runtime, large image pulls\u002Fdownloads, and output directory writes.\n- Data access: input paths, mounted volumes, remote endpoints, and credential source names.\n\nDo not execute Docker until the user approves that exact command.\n\nRun through Docker, not host Python, for real pipeline execution. Do not set up or execute host-side pipeline runs for users; that path is not validated or endorsed. Inside the container, use `uv run python modules\u002Fcli.py ...` so the command uses the uv-managed runtime environment baked into the image. Use `references\u002Fdocker-run.md` for the generic NGC-image `docker run` template; use `.\u002Fdocker\u002Fdeploy.sh shell -lc \"cmd\"` only as a repo-local convenience when this checkout is available. Set a generous timeout because SR and VLM stages can run for many minutes.\n\n**After execution completes:**\n- Report success or the error message\n- List the output files produced: `ls -lhR \u003Cout_dir>\u002F`\n- If MCQ was generated, show a preview from the first available task file among `task\u002Fmcq.json`, `task\u002Fbcq.json`, and `task\u002Fopen_qa.json`\n\n**If execution fails:**\n- Show the last 50 lines of output to diagnose\n- Common fixes:\n  - OOM on SR → with default `pipeline.empty_output_policy=warn` the pipeline continues automatically (SR is skipped, tracking uses the original input video). Only add `super_resolution.enabled=false` if you want to skip SR entirely for speed.\n  - Endpoint auth error → ask the user to verify the intended credential source is set; do not echo secret values\n  - Permission denied on output dir → output dir may need to exist: `mkdir -p \u003Cout_dir>`\n\n---\n\n## Output Layout\n\nOutputs are fixed under each sample's `out_dir`: `raw\u002F`, `contextual\u002F`, `task\u002F`, `prompts\u002F`, `sidecars\u002F`, logs, and the saved effective config. The root `README.md` has the full tree. After a run, list `ls -lhR \u003Cout_dir>\u002F`; if MCQ was generated, preview the first available task file among `task\u002Fmcq.json`, `task\u002Fbcq.json`, and `task\u002Fopen_qa.json`.\n\nValidate with `tao-daft validate metropolis-v3.0 --path \u003Cout_dir> --raw auto [--strict]` when `nvidia-tao-daft` is installed.\n\n## Key Facts\n\n- CLI entry point inside Docker: `uv run python modules\u002Fcli.py --config \u003Cyaml> [key=value ...]`\n- Dotlist overrides use OmegaConf syntax (`key.subkey=value`). Quote paths that contain spaces.\n- `data` is a list: single video uses `data.0.*`, second video uses `data.1.*`, etc. The loader auto-extends the list when you reference indices beyond `data[0]` — no need to pre-populate the base YAML.\n- The pipeline supports **image inputs** (`.jpg`, `.jpeg`, `.png`, `.webp`, `.bmp`) as well as videos. For image inputs, SR\u002Ftracking sidecar outputs use `.png` extensions.\n- **Supported video formats**: `.mp4` `.mov` `.m4v` (the LGPL-only FFmpeg in this image ships only the mov demuxer, which handles all mp4-family containers; matroska \u002F avi \u002F webm support was removed to keep the codec set royalty-clean).\n- Video SR (SeedVR2) requires Docker. Use `references\u002Fdocker-run.md`; repo-local users may use `.\u002Fdocker\u002Fdeploy.sh shell`.\n- Remote paths (`s3:\u002F\u002F`, `msc:\u002F\u002F`) work for inputs and `out_dir`; see `docs\u002Fremote-io.md` for setup patterns.\n- If the user needs `events.json` but doesn't have one yet, enable only the VLM JSON stage (see `configs\u002Fpipeline_example.yaml` comments).\n- For MCQ-only from existing captions, use `mcq_generation.mode=metadata-llm` and provide an existing `data.0.inputs.video_path`, `data.0.inputs.metadata_json_path`, and an LLM endpoint.\n- **Endpoint credentials** — VLM and LLM credential handling is documented in `references\u002Fendpoint-configuration.md`; do not print secret values.\n- **GPU selection**: use `pipeline.gpu_ids=\u003Cids>` (comma-separated, or `\"all\"`) to pin specific GPUs (e.g. `pipeline.gpu_ids=2,3`). Important when other workloads (VLM\u002FLLM servers) already occupy some GPUs. Tracking always uses the first GPU in `gpu_ids`; VLM JSON and MCQ stages call remote endpoints and do not use local GPUs. SR defaults to single-GPU (first GPU); set `pipeline.use_multi_gpu=true` to use all GPUs in `gpu_ids` for SR (`sp_size` is set automatically). Plan a dedicated pipeline GPU for SeedVR2 SR; the 7B variant requires more free GPU memory than the 3B variant. In the current local Qwen recipe, reserve one additional dedicated GPU per VLM\u002FLLM endpoint and keep those endpoint GPUs out of `pipeline.gpu_ids` unless you have verified enough free memory.\n- **Stage extensibility**: each stage has a `model` field selecting the implementation (`super_resolution.model=\"seedvr2\"`, `detection_and_tracking.model=\"rfdetr\"`, `vlm_json.model=\"vlm\"`, `mcq_generation.mode=...`). All default to the current impl — only set explicitly when plugging in a different model. New implementations subclass `BaseSuperResolver` \u002F `BaseTracker` \u002F `BaseVlmJsonGenerator` \u002F `BaseMCQGenerator` and register in the corresponding `factory.py`.\n\n## Reference Files\n\n- `references\u002Fconfig-decision-tree.md` — edge cases: partial pipelines, stage chaining, `metadata-llm` path\n- `references\u002Fdocker-run.md` — generic NGC-image Docker run template plus repo-local `deploy.sh` alternative\n- `references\u002Fendpoint-configuration.md` — endpoint URL, model ID, and credential handling rules\n- `references\u002Fmcq-mode-guide.md` — short MCQ mode checklist for agents; full examples live in `docs\u002Fmcq-modes.md`\n- `references\u002Fcustom-caption.md` — custom-question captioning (closed-choice MCQ\u002FBCQ or free-form) and reusable question-bank creation\n- `references\u002Fperson-attribute-caption.md` — shipped PAS \u002F person-attribute caption preset\n",{"data":35,"body":39},{"name":4,"description":6,"license":26,"owner":9,"service":4,"version":36,"reviewed":37,"metadata":38},"1.0.0","2026-05-20",{"author":9},{"type":40,"children":41},"root",[42,51,66,79,86,115,197,203,208,212,219,224,318,321,327,339,405,423,435,438,444,449,457,511,552,584,636,663,687,690,696,704,905,923,1043,1053,1468,1476,1573,1581,1722,1757,1762,1765,1771,1776,1786,1810,1815,1906,1923,1926,1932,1937,1955,1960,1995,2003,2048,2056,2108,2111,2117,2198,2219,2225,2641,2647,2730],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"paidf-auto-labeling-pipeline-skill",[48],{"type":49,"value":50},"text","PAIDF Auto-Labeling Pipeline Skill",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55,57,64],{"type":49,"value":56},"You help users go from \"I have videos or images\" to a completed Docker-backed pipeline run for the NVIDIA Metropolis Physical AI Data Factory (PAIDF) auto-labeling pipeline (",{"type":43,"tag":58,"props":59,"children":61},"code",{"className":60},[],[62],{"type":49,"value":63},"modules\u002Fcli.py",{"type":49,"value":65},"). Build complete commands, then obtain explicit user approval before executing Docker commands.",{"type":43,"tag":52,"props":67,"children":68},{},[69,71,77],{"type":49,"value":70},"The pipeline has 4 stages: Super Resolution (SR, SeedVR2) → Detection & Tracking (RF-DETR + BoostTrack) → VLM JSON → Multiple-Choice Question (MCQ) Generation. This repo ships a single blueprint config (",{"type":43,"tag":58,"props":72,"children":74},{"className":73},[],[75],{"type":49,"value":76},"configs\u002Fpipeline_example.yaml",{"type":49,"value":78},") meant to be adapted via CLI overrides.",{"type":43,"tag":80,"props":81,"children":83},"h2",{"id":82},"routing-read-first",[84],{"type":49,"value":85},"Routing (Read First)",{"type":43,"tag":52,"props":87,"children":88},{},[89,91,97,99,105,107,113],{"type":49,"value":90},"The default flow is the ",{"type":43,"tag":92,"props":93,"children":94},"strong",{},[95],{"type":49,"value":96},"general 6-step pipeline run",{"type":49,"value":98}," below. Two shipped use-case examples are config-only specialisations of that same flow (they set ",{"type":43,"tag":58,"props":100,"children":102},{"className":101},[],[103],{"type":49,"value":104},"mcq_generation.mode=question-driven-vlm-llm",{"type":49,"value":106},", ",{"type":43,"tag":58,"props":108,"children":110},{"className":109},[],[111],{"type":49,"value":112},"single_window=true",{"type":49,"value":114},", and a question bank). When the request matches one of them, read the corresponding subdoc for the right overrides; otherwise stay on the general flow.",{"type":43,"tag":116,"props":117,"children":118},"table",{},[119,138],{"type":43,"tag":120,"props":121,"children":122},"thead",{},[123],{"type":43,"tag":124,"props":125,"children":126},"tr",{},[127,133],{"type":43,"tag":128,"props":129,"children":130},"th",{},[131],{"type":49,"value":132},"Request looks like",{"type":43,"tag":128,"props":134,"children":135},{},[136],{"type":49,"value":137},"Use the",{"type":43,"tag":139,"props":140,"children":141},"tbody",{},[142,156,177],{"type":43,"tag":124,"props":143,"children":144},{},[145,151],{"type":43,"tag":146,"props":147,"children":148},"td",{},[149],{"type":49,"value":150},"\"Run the pipeline\", \"process this video\", \"tracking + MCQ\", batch runs, partial stages, NGC\u002Fpublished-image runs",{"type":43,"tag":146,"props":152,"children":153},{},[154],{"type":49,"value":155},"General 6-step flow below",{"type":43,"tag":124,"props":157,"children":158},{},[159,164],{"type":43,"tag":146,"props":160,"children":161},{},[162],{"type":49,"value":163},"\"Caption these images with my own questions\", \"label this batch with yes\u002Fno questions\", \"build a reusable question bank\"",{"type":43,"tag":146,"props":165,"children":166},{},[167],{"type":43,"tag":168,"props":169,"children":171},"a",{"href":170},"references\u002Fcustom-caption.md",[172],{"type":43,"tag":58,"props":173,"children":175},{"className":174},[],[176],{"type":49,"value":170},{"type":43,"tag":124,"props":178,"children":179},{},[180,185],{"type":43,"tag":146,"props":181,"children":182},{},[183],{"type":49,"value":184},"\"Generate PAS captions\", \"person attribute caption\", \"describe what each person is wearing\", \"use the shipped person_attributes bank\"",{"type":43,"tag":146,"props":186,"children":187},{},[188],{"type":43,"tag":168,"props":189,"children":191},{"href":190},"references\u002Fperson-attribute-caption.md",[192],{"type":43,"tag":58,"props":193,"children":195},{"className":194},[],[196],{"type":49,"value":190},{"type":43,"tag":80,"props":198,"children":200},{"id":199},"instructions",[201],{"type":49,"value":202},"Instructions",{"type":43,"tag":52,"props":204,"children":205},{},[206],{"type":49,"value":207},"Work through these steps in order. Combine steps into a single conversational turn when the user has already provided enough information — don't ask for things they've already told you.",{"type":43,"tag":209,"props":210,"children":211},"hr",{},[],{"type":43,"tag":213,"props":214,"children":216},"h3",{"id":215},"step-1-understand-the-goal-interview",[217],{"type":49,"value":218},"Step 1: Understand the Goal (Interview)",{"type":43,"tag":52,"props":220,"children":221},{},[222],{"type":49,"value":223},"Ask these questions in one message (skip any already answered):",{"type":43,"tag":225,"props":226,"children":227},"ol",{},[228,239,265,283,293],{"type":43,"tag":229,"props":230,"children":231},"li",{},[232,237],{"type":43,"tag":92,"props":233,"children":234},{},[235],{"type":49,"value":236},"Stages",{"type":49,"value":238},": Which pipeline stages do they need? (SR \u002F tracking \u002F VLM JSON \u002F MCQ — or full pipeline)",{"type":43,"tag":229,"props":240,"children":241},{},[242,247,249,255,257,263],{"type":43,"tag":92,"props":243,"children":244},{},[245],{"type":49,"value":246},"Inputs",{"type":49,"value":248},": How many videos? Do they already have intermediate outputs (e.g., existing ",{"type":43,"tag":58,"props":250,"children":252},{"className":251},[],[253],{"type":49,"value":254},"sidecars\u002Fmetadata.json",{"type":49,"value":256}," for ",{"type":43,"tag":58,"props":258,"children":260},{"className":259},[],[261],{"type":49,"value":262},"metadata-llm",{"type":49,"value":264},")?",{"type":43,"tag":229,"props":266,"children":267},{},[268,273,275,281],{"type":43,"tag":92,"props":269,"children":270},{},[271],{"type":49,"value":272},"MCQ mode",{"type":49,"value":274}," (if MCQ is involved): See Step 2 and ",{"type":43,"tag":58,"props":276,"children":278},{"className":277},[],[279],{"type":49,"value":280},"references\u002Fmcq-mode-guide.md",{"type":49,"value":282},".",{"type":43,"tag":229,"props":284,"children":285},{},[286,291],{"type":43,"tag":92,"props":287,"children":288},{},[289],{"type":49,"value":290},"Endpoints",{"type":49,"value":292},": Do they have VLM\u002FLLM endpoints? What environment (local Docker, NVCF, OpenAI-compatible)?",{"type":43,"tag":229,"props":294,"children":295},{},[296,301,303,309,311,317],{"type":43,"tag":92,"props":297,"children":298},{},[299],{"type":49,"value":300},"Checkpoints",{"type":49,"value":302},": Model checkpoints are resolved from config and auto-downloaded by stage initialization; ask only if they need a custom ",{"type":43,"tag":58,"props":304,"children":306},{"className":305},[],[307],{"type":49,"value":308},"pipeline.model_cache_path",{"type":49,"value":310}," or ",{"type":43,"tag":58,"props":312,"children":314},{"className":313},[],[315],{"type":49,"value":316},"HF_TOKEN",{"type":49,"value":282},{"type":43,"tag":209,"props":319,"children":320},{},[],{"type":43,"tag":213,"props":322,"children":324},{"id":323},"step-2-recommend-a-preset-config",[325],{"type":49,"value":326},"Step 2: Recommend a Preset Config",{"type":43,"tag":52,"props":328,"children":329},{},[330,332,337],{"type":49,"value":331},"Use ",{"type":43,"tag":58,"props":333,"children":335},{"className":334},[],[336],{"type":49,"value":76},{"type":49,"value":338}," for all workflows and select behavior via overrides:",{"type":43,"tag":340,"props":341,"children":342},"ul",{},[343,348,360,372,384],{"type":43,"tag":229,"props":344,"children":345},{},[346],{"type":49,"value":347},"Full pipeline: defaults in the YAML (SR + tracking + VLM JSON + MCQ).",{"type":43,"tag":229,"props":349,"children":350},{},[351,353,359],{"type":49,"value":352},"SR-only: set ",{"type":43,"tag":58,"props":354,"children":356},{"className":355},[],[357],{"type":49,"value":358},"detection_and_tracking.enabled=false vlm_json.enabled=false mcq_generation.enabled=false",{"type":49,"value":282},{"type":43,"tag":229,"props":361,"children":362},{},[363,365,371],{"type":49,"value":364},"Tracking-only: set ",{"type":43,"tag":58,"props":366,"children":368},{"className":367},[],[369],{"type":49,"value":370},"super_resolution.enabled=false vlm_json.enabled=false mcq_generation.enabled=false",{"type":49,"value":282},{"type":43,"tag":229,"props":373,"children":374},{},[375,377,383],{"type":49,"value":376},"VLM JSON only: set ",{"type":43,"tag":58,"props":378,"children":380},{"className":379},[],[381],{"type":49,"value":382},"super_resolution.enabled=false detection_and_tracking.enabled=false mcq_generation.enabled=false",{"type":49,"value":282},{"type":43,"tag":229,"props":385,"children":386},{},[387,389,395,397,403],{"type":49,"value":388},"MCQ modes: set ",{"type":43,"tag":58,"props":390,"children":392},{"className":391},[],[393],{"type":49,"value":394},"mcq_generation.enabled=true",{"type":49,"value":396}," plus ",{"type":43,"tag":58,"props":398,"children":400},{"className":399},[],[401],{"type":49,"value":402},"mcq_generation.mode=\u003Cmode>",{"type":49,"value":404}," (see the mode guide).",{"type":43,"tag":52,"props":406,"children":407},{},[408,413,415,421],{"type":43,"tag":92,"props":409,"children":410},{},[411],{"type":49,"value":412},"Rule",{"type":49,"value":414},": to disable a stage, add ",{"type":43,"tag":58,"props":416,"children":418},{"className":417},[],[419],{"type":49,"value":420},"\u003Cstage>.enabled=false",{"type":49,"value":422}," as a CLI override rather than switching config files.",{"type":43,"tag":52,"props":424,"children":425},{},[426,428,434],{"type":49,"value":427},"For edge cases (partial pipelines, stage chaining across separate runs), read ",{"type":43,"tag":58,"props":429,"children":431},{"className":430},[],[432],{"type":49,"value":433},"references\u002Fconfig-decision-tree.md",{"type":49,"value":282},{"type":43,"tag":209,"props":436,"children":437},{},[],{"type":43,"tag":213,"props":439,"children":441},{"id":440},"step-3-collect-required-parameters",[442],{"type":49,"value":443},"Step 3: Collect Required Parameters",{"type":43,"tag":52,"props":445,"children":446},{},[447],{"type":49,"value":448},"Only ask for what their chosen config actually requires:",{"type":43,"tag":52,"props":450,"children":451},{},[452],{"type":43,"tag":92,"props":453,"children":454},{},[455],{"type":49,"value":456},"Always required:",{"type":43,"tag":340,"props":458,"children":459},{},[460,500],{"type":43,"tag":229,"props":461,"children":462},{},[463,469,471,476,478,484,485,491,492,498],{"type":43,"tag":58,"props":464,"children":466},{"className":465},[],[467],{"type":49,"value":468},"data.0.inputs.video_path",{"type":49,"value":470}," — input media path (video ",{"type":43,"tag":92,"props":472,"children":473},{},[474],{"type":49,"value":475},"or image",{"type":49,"value":477},") or remote (",{"type":43,"tag":58,"props":479,"children":481},{"className":480},[],[482],{"type":49,"value":483},"s3:\u002F\u002F",{"type":49,"value":106},{"type":43,"tag":58,"props":486,"children":488},{"className":487},[],[489],{"type":49,"value":490},"msc:\u002F\u002F",{"type":49,"value":106},{"type":43,"tag":58,"props":493,"children":495},{"className":494},[],[496],{"type":49,"value":497},"https:\u002F\u002F",{"type":49,"value":499},")",{"type":43,"tag":229,"props":501,"children":502},{},[503,509],{"type":43,"tag":58,"props":504,"children":506},{"className":505},[],[507],{"type":49,"value":508},"data.0.output.out_dir",{"type":49,"value":510}," — output root directory",{"type":43,"tag":52,"props":512,"children":513},{},[514,519,521,527,529,535,537,543,544,550],{"type":43,"tag":92,"props":515,"children":516},{},[517],{"type":49,"value":518},"Any stage that calls a VLM",{"type":49,"value":520}," (e.g. ",{"type":43,"tag":58,"props":522,"children":524},{"className":523},[],[525],{"type":49,"value":526},"vlm_json",{"type":49,"value":528},", or MCQ modes like ",{"type":43,"tag":58,"props":530,"children":532},{"className":531},[],[533],{"type":49,"value":534},"window-direct-vlm",{"type":49,"value":536}," \u002F ",{"type":43,"tag":58,"props":538,"children":540},{"className":539},[],[541],{"type":49,"value":542},"window-vlm-llm",{"type":49,"value":536},{"type":43,"tag":58,"props":545,"children":547},{"className":546},[],[548],{"type":49,"value":549},"question-driven-vlm-llm",{"type":49,"value":551},"):",{"type":43,"tag":340,"props":553,"children":554},{},[555,573],{"type":43,"tag":229,"props":556,"children":557},{},[558,564,566,572],{"type":43,"tag":58,"props":559,"children":561},{"className":560},[],[562],{"type":49,"value":563},"endpoints.vlm.url",{"type":49,"value":565}," — VLM base URL (e.g., ",{"type":43,"tag":58,"props":567,"children":569},{"className":568},[],[570],{"type":49,"value":571},"http:\u002F\u002Fvlm-server:8000\u002Fv1",{"type":49,"value":499},{"type":43,"tag":229,"props":574,"children":575},{},[576,582],{"type":43,"tag":58,"props":577,"children":579},{"className":578},[],[580],{"type":49,"value":581},"endpoints.vlm.model",{"type":49,"value":583}," — model ID string",{"type":43,"tag":585,"props":586,"children":587},"blockquote",{},[588],{"type":43,"tag":52,"props":589,"children":590},{},[591,596,598,603,605,611,613,619,621,627,629,634],{"type":43,"tag":92,"props":592,"children":593},{},[594],{"type":49,"value":595},"Docker gotcha",{"type":49,"value":597},": If the VLM\u002FLLM servers are running on the ",{"type":43,"tag":92,"props":599,"children":600},{},[601],{"type":49,"value":602},"host machine",{"type":49,"value":604},", use ",{"type":43,"tag":58,"props":606,"children":608},{"className":607},[],[609],{"type":49,"value":610},"host.docker.internal",{"type":49,"value":612}," instead of ",{"type":43,"tag":58,"props":614,"children":616},{"className":615},[],[617],{"type":49,"value":618},"localhost",{"type":49,"value":620},". Example: ",{"type":43,"tag":58,"props":622,"children":624},{"className":623},[],[625],{"type":49,"value":626},"endpoints.vlm.url=\"http:\u002F\u002Fhost.docker.internal:18002\u002Fv1\"",{"type":49,"value":628},". Using ",{"type":43,"tag":58,"props":630,"children":632},{"className":631},[],[633],{"type":49,"value":618},{"type":49,"value":635}," from inside Docker silently fails with connection errors.",{"type":43,"tag":52,"props":637,"children":638},{},[639,641,647,649,654,656,662],{"type":49,"value":640},"For endpoint URL, model ID, and credential handling, read ",{"type":43,"tag":58,"props":642,"children":644},{"className":643},[],[645],{"type":49,"value":646},"references\u002Fendpoint-configuration.md",{"type":49,"value":648},".\nFor MCQ, use ",{"type":43,"tag":58,"props":650,"children":652},{"className":651},[],[653],{"type":49,"value":280},{"type":49,"value":655}," as the short agent checklist. Full mode tables and examples live in ",{"type":43,"tag":58,"props":657,"children":659},{"className":658},[],[660],{"type":49,"value":661},"docs\u002Fmcq-modes.md",{"type":49,"value":282},{"type":43,"tag":52,"props":664,"children":665},{},[666,671,673,679,681,686],{"type":43,"tag":92,"props":667,"children":668},{},[669],{"type":49,"value":670},"Output layout",{"type":49,"value":672}," for enabled stages is fixed under each sample's ",{"type":43,"tag":58,"props":674,"children":676},{"className":675},[],[677],{"type":49,"value":678},"out_dir",{"type":49,"value":680}," — you only need to choose ",{"type":43,"tag":58,"props":682,"children":684},{"className":683},[],[685],{"type":49,"value":678},{"type":49,"value":282},{"type":43,"tag":209,"props":688,"children":689},{},[],{"type":43,"tag":213,"props":691,"children":693},{"id":692},"step-4-generate-the-cli-command",[694],{"type":49,"value":695},"Step 4: Generate the CLI Command",{"type":43,"tag":52,"props":697,"children":698},{},[699],{"type":43,"tag":92,"props":700,"children":701},{},[702],{"type":49,"value":703},"Single video (inner pipeline command):",{"type":43,"tag":705,"props":706,"children":711},"pre",{"className":707,"code":708,"language":709,"meta":710,"style":710},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","uv run python modules\u002Fcli.py --config configs\u002Fpipeline_example.yaml \\\n  data.0.inputs.video_path=\"\u003CVIDEO_PATH>\" \\\n  data.0.output.out_dir=\"\u003COUT_DIR>\" \\\n  [endpoints.vlm.url=\"\u003CVLM_URL>\" endpoints.vlm.model=\"\u003CVLM_MODEL>\"] \\\n  [endpoints.llm.url=\"\u003CLLM_URL>\" endpoints.llm.model=\"\u003CLLM_MODEL>\"]\n","bash","",[712],{"type":43,"tag":58,"props":713,"children":714},{"__ignoreMap":710},[715,758,785,811,860],{"type":43,"tag":716,"props":717,"children":719},"span",{"class":718,"line":27},"line",[720,726,732,737,742,747,752],{"type":43,"tag":716,"props":721,"children":723},{"style":722},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[724],{"type":49,"value":725},"uv",{"type":43,"tag":716,"props":727,"children":729},{"style":728},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[730],{"type":49,"value":731}," run",{"type":43,"tag":716,"props":733,"children":734},{"style":728},[735],{"type":49,"value":736}," python",{"type":43,"tag":716,"props":738,"children":739},{"style":728},[740],{"type":49,"value":741}," modules\u002Fcli.py",{"type":43,"tag":716,"props":743,"children":744},{"style":728},[745],{"type":49,"value":746}," --config",{"type":43,"tag":716,"props":748,"children":749},{"style":728},[750],{"type":49,"value":751}," configs\u002Fpipeline_example.yaml",{"type":43,"tag":716,"props":753,"children":755},{"style":754},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[756],{"type":49,"value":757}," \\\n",{"type":43,"tag":716,"props":759,"children":760},{"class":718,"line":23},[761,766,772,777,781],{"type":43,"tag":716,"props":762,"children":763},{"style":728},[764],{"type":49,"value":765},"  data.0.inputs.video_path=",{"type":43,"tag":716,"props":767,"children":769},{"style":768},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[770],{"type":49,"value":771},"\"",{"type":43,"tag":716,"props":773,"children":774},{"style":728},[775],{"type":49,"value":776},"\u003CVIDEO_PATH>",{"type":43,"tag":716,"props":778,"children":779},{"style":768},[780],{"type":49,"value":771},{"type":43,"tag":716,"props":782,"children":783},{"style":754},[784],{"type":49,"value":757},{"type":43,"tag":716,"props":786,"children":788},{"class":718,"line":787},3,[789,794,798,803,807],{"type":43,"tag":716,"props":790,"children":791},{"style":728},[792],{"type":49,"value":793},"  data.0.output.out_dir=",{"type":43,"tag":716,"props":795,"children":796},{"style":768},[797],{"type":49,"value":771},{"type":43,"tag":716,"props":799,"children":800},{"style":728},[801],{"type":49,"value":802},"\u003COUT_DIR>",{"type":43,"tag":716,"props":804,"children":805},{"style":768},[806],{"type":49,"value":771},{"type":43,"tag":716,"props":808,"children":809},{"style":754},[810],{"type":49,"value":757},{"type":43,"tag":716,"props":812,"children":814},{"class":718,"line":813},4,[815,820,824,829,833,838,842,847,851,856],{"type":43,"tag":716,"props":816,"children":817},{"style":754},[818],{"type":49,"value":819},"  [endpoints.vlm.url=",{"type":43,"tag":716,"props":821,"children":822},{"style":768},[823],{"type":49,"value":771},{"type":43,"tag":716,"props":825,"children":826},{"style":728},[827],{"type":49,"value":828},"\u003CVLM_URL>",{"type":43,"tag":716,"props":830,"children":831},{"style":768},[832],{"type":49,"value":771},{"type":43,"tag":716,"props":834,"children":835},{"style":728},[836],{"type":49,"value":837}," endpoints.vlm.model=",{"type":43,"tag":716,"props":839,"children":840},{"style":768},[841],{"type":49,"value":771},{"type":43,"tag":716,"props":843,"children":844},{"style":728},[845],{"type":49,"value":846},"\u003CVLM_MODEL>",{"type":43,"tag":716,"props":848,"children":849},{"style":768},[850],{"type":49,"value":771},{"type":43,"tag":716,"props":852,"children":853},{"style":728},[854],{"type":49,"value":855},"]",{"type":43,"tag":716,"props":857,"children":858},{"style":754},[859],{"type":49,"value":757},{"type":43,"tag":716,"props":861,"children":863},{"class":718,"line":862},5,[864,869,873,878,882,887,891,896,900],{"type":43,"tag":716,"props":865,"children":866},{"style":754},[867],{"type":49,"value":868},"  [endpoints.llm.url=",{"type":43,"tag":716,"props":870,"children":871},{"style":768},[872],{"type":49,"value":771},{"type":43,"tag":716,"props":874,"children":875},{"style":728},[876],{"type":49,"value":877},"\u003CLLM_URL>",{"type":43,"tag":716,"props":879,"children":880},{"style":768},[881],{"type":49,"value":771},{"type":43,"tag":716,"props":883,"children":884},{"style":728},[885],{"type":49,"value":886}," endpoints.llm.model=",{"type":43,"tag":716,"props":888,"children":889},{"style":768},[890],{"type":49,"value":771},{"type":43,"tag":716,"props":892,"children":893},{"style":728},[894],{"type":49,"value":895},"\u003CLLM_MODEL>",{"type":43,"tag":716,"props":897,"children":898},{"style":768},[899],{"type":49,"value":771},{"type":43,"tag":716,"props":901,"children":902},{"style":728},[903],{"type":49,"value":904},"]\n",{"type":43,"tag":52,"props":906,"children":907},{},[908,913,915,921],{"type":43,"tag":92,"props":909,"children":910},{},[911],{"type":49,"value":912},"Batch ≤9 videos",{"type":49,"value":914}," — expand ",{"type":43,"tag":58,"props":916,"children":918},{"className":917},[],[919],{"type":49,"value":920},"data.N",{"type":49,"value":922}," inline:",{"type":43,"tag":705,"props":924,"children":926},{"className":707,"code":925,"language":709,"meta":710,"style":710},"uv run python modules\u002Fcli.py --config configs\u002Fpipeline_example.yaml \\\n  data.0.inputs.video_path=\"clip1.mp4\" data.0.output.out_dir=\"output\u002Fclip1\" \\\n  data.1.inputs.video_path=\"clip2.mp4\" data.1.output.out_dir=\"output\u002Fclip2\"\n",[927],{"type":43,"tag":58,"props":928,"children":929},{"__ignoreMap":710},[930,961,1003],{"type":43,"tag":716,"props":931,"children":932},{"class":718,"line":27},[933,937,941,945,949,953,957],{"type":43,"tag":716,"props":934,"children":935},{"style":722},[936],{"type":49,"value":725},{"type":43,"tag":716,"props":938,"children":939},{"style":728},[940],{"type":49,"value":731},{"type":43,"tag":716,"props":942,"children":943},{"style":728},[944],{"type":49,"value":736},{"type":43,"tag":716,"props":946,"children":947},{"style":728},[948],{"type":49,"value":741},{"type":43,"tag":716,"props":950,"children":951},{"style":728},[952],{"type":49,"value":746},{"type":43,"tag":716,"props":954,"children":955},{"style":728},[956],{"type":49,"value":751},{"type":43,"tag":716,"props":958,"children":959},{"style":754},[960],{"type":49,"value":757},{"type":43,"tag":716,"props":962,"children":963},{"class":718,"line":23},[964,968,972,977,981,986,990,995,999],{"type":43,"tag":716,"props":965,"children":966},{"style":728},[967],{"type":49,"value":765},{"type":43,"tag":716,"props":969,"children":970},{"style":768},[971],{"type":49,"value":771},{"type":43,"tag":716,"props":973,"children":974},{"style":728},[975],{"type":49,"value":976},"clip1.mp4",{"type":43,"tag":716,"props":978,"children":979},{"style":768},[980],{"type":49,"value":771},{"type":43,"tag":716,"props":982,"children":983},{"style":728},[984],{"type":49,"value":985}," data.0.output.out_dir=",{"type":43,"tag":716,"props":987,"children":988},{"style":768},[989],{"type":49,"value":771},{"type":43,"tag":716,"props":991,"children":992},{"style":728},[993],{"type":49,"value":994},"output\u002Fclip1",{"type":43,"tag":716,"props":996,"children":997},{"style":768},[998],{"type":49,"value":771},{"type":43,"tag":716,"props":1000,"children":1001},{"style":754},[1002],{"type":49,"value":757},{"type":43,"tag":716,"props":1004,"children":1005},{"class":718,"line":787},[1006,1011,1015,1020,1024,1029,1033,1038],{"type":43,"tag":716,"props":1007,"children":1008},{"style":728},[1009],{"type":49,"value":1010},"  data.1.inputs.video_path=",{"type":43,"tag":716,"props":1012,"children":1013},{"style":768},[1014],{"type":49,"value":771},{"type":43,"tag":716,"props":1016,"children":1017},{"style":728},[1018],{"type":49,"value":1019},"clip2.mp4",{"type":43,"tag":716,"props":1021,"children":1022},{"style":768},[1023],{"type":49,"value":771},{"type":43,"tag":716,"props":1025,"children":1026},{"style":728},[1027],{"type":49,"value":1028}," data.1.output.out_dir=",{"type":43,"tag":716,"props":1030,"children":1031},{"style":768},[1032],{"type":49,"value":771},{"type":43,"tag":716,"props":1034,"children":1035},{"style":728},[1036],{"type":49,"value":1037},"output\u002Fclip2",{"type":43,"tag":716,"props":1039,"children":1040},{"style":768},[1041],{"type":49,"value":1042},"\"\n",{"type":43,"tag":52,"props":1044,"children":1045},{},[1046,1051],{"type":43,"tag":92,"props":1047,"children":1048},{},[1049],{"type":49,"value":1050},"Batch 10+ videos",{"type":49,"value":1052}," — generate a bash loop (single CLI invocation is more efficient than N separate calls):",{"type":43,"tag":705,"props":1054,"children":1056},{"className":707,"code":1055,"language":709,"meta":710,"style":710},"VIDEOS=(\u002Fdata\u002Fclips\u002Fclip_*.mp4)\nARGS=\"\"\nfor i in \"${!VIDEOS[@]}\"; do\n  NAME=$(basename \"${VIDEOS[$i]}\" .mp4)\n  ARGS+=\" data.${i}.inputs.video_path=\\\"${VIDEOS[$i]}\\\"\"\n  ARGS+=\" data.${i}.output.out_dir=\\\"output\u002Fbatch\u002F${NAME}\\\"\"\ndone\neval \"uv run python modules\u002Fcli.py --config configs\u002Fpipeline_example.yaml $ARGS \\\n  endpoints.vlm.url=\\\"\u003CVLM_URL>\\\" endpoints.vlm.model=\\\"\u003CVLM_MODEL>\\\" \\\n  endpoints.llm.url=\\\"\u003CLLM_URL>\\\" endpoints.llm.model=\\\"\u003CLLM_MODEL>\\\"\"\n",[1057],{"type":43,"tag":58,"props":1058,"children":1059},{"__ignoreMap":710},[1060,1093,1111,1154,1205,1281,1348,1357,1386,1427],{"type":43,"tag":716,"props":1061,"children":1062},{"class":718,"line":27},[1063,1068,1073,1078,1083,1088],{"type":43,"tag":716,"props":1064,"children":1065},{"style":754},[1066],{"type":49,"value":1067},"VIDEOS",{"type":43,"tag":716,"props":1069,"children":1070},{"style":768},[1071],{"type":49,"value":1072},"=(",{"type":43,"tag":716,"props":1074,"children":1075},{"style":728},[1076],{"type":49,"value":1077},"\u002Fdata\u002Fclips\u002Fclip_",{"type":43,"tag":716,"props":1079,"children":1080},{"style":768},[1081],{"type":49,"value":1082},"*",{"type":43,"tag":716,"props":1084,"children":1085},{"style":728},[1086],{"type":49,"value":1087},".mp4",{"type":43,"tag":716,"props":1089,"children":1090},{"style":768},[1091],{"type":49,"value":1092},")\n",{"type":43,"tag":716,"props":1094,"children":1095},{"class":718,"line":23},[1096,1101,1106],{"type":43,"tag":716,"props":1097,"children":1098},{"style":754},[1099],{"type":49,"value":1100},"ARGS",{"type":43,"tag":716,"props":1102,"children":1103},{"style":768},[1104],{"type":49,"value":1105},"=",{"type":43,"tag":716,"props":1107,"children":1108},{"style":768},[1109],{"type":49,"value":1110},"\"\"\n",{"type":43,"tag":716,"props":1112,"children":1113},{"class":718,"line":787},[1114,1120,1125,1130,1135,1139,1144,1149],{"type":43,"tag":716,"props":1115,"children":1117},{"style":1116},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1118],{"type":49,"value":1119},"for",{"type":43,"tag":716,"props":1121,"children":1122},{"style":754},[1123],{"type":49,"value":1124}," i ",{"type":43,"tag":716,"props":1126,"children":1127},{"style":1116},[1128],{"type":49,"value":1129},"in",{"type":43,"tag":716,"props":1131,"children":1132},{"style":768},[1133],{"type":49,"value":1134}," \"${!",{"type":43,"tag":716,"props":1136,"children":1137},{"style":754},[1138],{"type":49,"value":1067},{"type":43,"tag":716,"props":1140,"children":1141},{"style":768},[1142],{"type":49,"value":1143},"[@]}\"",{"type":43,"tag":716,"props":1145,"children":1146},{"style":768},[1147],{"type":49,"value":1148},";",{"type":43,"tag":716,"props":1150,"children":1151},{"style":1116},[1152],{"type":49,"value":1153}," do\n",{"type":43,"tag":716,"props":1155,"children":1156},{"class":718,"line":813},[1157,1162,1167,1172,1177,1181,1186,1191,1196,1201],{"type":43,"tag":716,"props":1158,"children":1159},{"style":754},[1160],{"type":49,"value":1161},"  NAME",{"type":43,"tag":716,"props":1163,"children":1164},{"style":768},[1165],{"type":49,"value":1166},"=$(",{"type":43,"tag":716,"props":1168,"children":1169},{"style":722},[1170],{"type":49,"value":1171},"basename",{"type":43,"tag":716,"props":1173,"children":1174},{"style":768},[1175],{"type":49,"value":1176}," \"${",{"type":43,"tag":716,"props":1178,"children":1179},{"style":754},[1180],{"type":49,"value":1067},{"type":43,"tag":716,"props":1182,"children":1183},{"style":768},[1184],{"type":49,"value":1185},"[",{"type":43,"tag":716,"props":1187,"children":1188},{"style":754},[1189],{"type":49,"value":1190},"$i",{"type":43,"tag":716,"props":1192,"children":1193},{"style":768},[1194],{"type":49,"value":1195},"]}\"",{"type":43,"tag":716,"props":1197,"children":1198},{"style":728},[1199],{"type":49,"value":1200}," .mp4",{"type":43,"tag":716,"props":1202,"children":1203},{"style":768},[1204],{"type":49,"value":1092},{"type":43,"tag":716,"props":1206,"children":1207},{"class":718,"line":862},[1208,1213,1218,1222,1227,1232,1237,1242,1247,1252,1256,1260,1264,1268,1273,1277],{"type":43,"tag":716,"props":1209,"children":1210},{"style":754},[1211],{"type":49,"value":1212},"  ARGS",{"type":43,"tag":716,"props":1214,"children":1215},{"style":768},[1216],{"type":49,"value":1217},"+=",{"type":43,"tag":716,"props":1219,"children":1220},{"style":768},[1221],{"type":49,"value":771},{"type":43,"tag":716,"props":1223,"children":1224},{"style":728},[1225],{"type":49,"value":1226}," data.",{"type":43,"tag":716,"props":1228,"children":1229},{"style":768},[1230],{"type":49,"value":1231},"${",{"type":43,"tag":716,"props":1233,"children":1234},{"style":754},[1235],{"type":49,"value":1236},"i",{"type":43,"tag":716,"props":1238,"children":1239},{"style":768},[1240],{"type":49,"value":1241},"}",{"type":43,"tag":716,"props":1243,"children":1244},{"style":728},[1245],{"type":49,"value":1246},".inputs.video_path=",{"type":43,"tag":716,"props":1248,"children":1249},{"style":754},[1250],{"type":49,"value":1251},"\\\"",{"type":43,"tag":716,"props":1253,"children":1254},{"style":768},[1255],{"type":49,"value":1231},{"type":43,"tag":716,"props":1257,"children":1258},{"style":754},[1259],{"type":49,"value":1067},{"type":43,"tag":716,"props":1261,"children":1262},{"style":768},[1263],{"type":49,"value":1185},{"type":43,"tag":716,"props":1265,"children":1266},{"style":754},[1267],{"type":49,"value":1190},{"type":43,"tag":716,"props":1269,"children":1270},{"style":768},[1271],{"type":49,"value":1272},"]}",{"type":43,"tag":716,"props":1274,"children":1275},{"style":754},[1276],{"type":49,"value":1251},{"type":43,"tag":716,"props":1278,"children":1279},{"style":768},[1280],{"type":49,"value":1042},{"type":43,"tag":716,"props":1282,"children":1284},{"class":718,"line":1283},6,[1285,1289,1293,1297,1301,1305,1309,1313,1318,1322,1327,1331,1336,1340,1344],{"type":43,"tag":716,"props":1286,"children":1287},{"style":754},[1288],{"type":49,"value":1212},{"type":43,"tag":716,"props":1290,"children":1291},{"style":768},[1292],{"type":49,"value":1217},{"type":43,"tag":716,"props":1294,"children":1295},{"style":768},[1296],{"type":49,"value":771},{"type":43,"tag":716,"props":1298,"children":1299},{"style":728},[1300],{"type":49,"value":1226},{"type":43,"tag":716,"props":1302,"children":1303},{"style":768},[1304],{"type":49,"value":1231},{"type":43,"tag":716,"props":1306,"children":1307},{"style":754},[1308],{"type":49,"value":1236},{"type":43,"tag":716,"props":1310,"children":1311},{"style":768},[1312],{"type":49,"value":1241},{"type":43,"tag":716,"props":1314,"children":1315},{"style":728},[1316],{"type":49,"value":1317},".output.out_dir=",{"type":43,"tag":716,"props":1319,"children":1320},{"style":754},[1321],{"type":49,"value":1251},{"type":43,"tag":716,"props":1323,"children":1324},{"style":728},[1325],{"type":49,"value":1326},"output\u002Fbatch\u002F",{"type":43,"tag":716,"props":1328,"children":1329},{"style":768},[1330],{"type":49,"value":1231},{"type":43,"tag":716,"props":1332,"children":1333},{"style":754},[1334],{"type":49,"value":1335},"NAME",{"type":43,"tag":716,"props":1337,"children":1338},{"style":768},[1339],{"type":49,"value":1241},{"type":43,"tag":716,"props":1341,"children":1342},{"style":754},[1343],{"type":49,"value":1251},{"type":43,"tag":716,"props":1345,"children":1346},{"style":768},[1347],{"type":49,"value":1042},{"type":43,"tag":716,"props":1349,"children":1351},{"class":718,"line":1350},7,[1352],{"type":43,"tag":716,"props":1353,"children":1354},{"style":1116},[1355],{"type":49,"value":1356},"done\n",{"type":43,"tag":716,"props":1358,"children":1360},{"class":718,"line":1359},8,[1361,1367,1372,1377,1382],{"type":43,"tag":716,"props":1362,"children":1364},{"style":1363},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1365],{"type":49,"value":1366},"eval",{"type":43,"tag":716,"props":1368,"children":1369},{"style":768},[1370],{"type":49,"value":1371}," \"",{"type":43,"tag":716,"props":1373,"children":1374},{"style":728},[1375],{"type":49,"value":1376},"uv run python modules\u002Fcli.py --config configs\u002Fpipeline_example.yaml ",{"type":43,"tag":716,"props":1378,"children":1379},{"style":754},[1380],{"type":49,"value":1381},"$ARGS",{"type":43,"tag":716,"props":1383,"children":1384},{"style":754},[1385],{"type":49,"value":757},{"type":43,"tag":716,"props":1387,"children":1389},{"class":718,"line":1388},9,[1390,1395,1399,1403,1407,1411,1415,1419,1423],{"type":43,"tag":716,"props":1391,"children":1392},{"style":728},[1393],{"type":49,"value":1394},"  endpoints.vlm.url=",{"type":43,"tag":716,"props":1396,"children":1397},{"style":754},[1398],{"type":49,"value":1251},{"type":43,"tag":716,"props":1400,"children":1401},{"style":728},[1402],{"type":49,"value":828},{"type":43,"tag":716,"props":1404,"children":1405},{"style":754},[1406],{"type":49,"value":1251},{"type":43,"tag":716,"props":1408,"children":1409},{"style":728},[1410],{"type":49,"value":837},{"type":43,"tag":716,"props":1412,"children":1413},{"style":754},[1414],{"type":49,"value":1251},{"type":43,"tag":716,"props":1416,"children":1417},{"style":728},[1418],{"type":49,"value":846},{"type":43,"tag":716,"props":1420,"children":1421},{"style":754},[1422],{"type":49,"value":1251},{"type":43,"tag":716,"props":1424,"children":1425},{"style":754},[1426],{"type":49,"value":757},{"type":43,"tag":716,"props":1428,"children":1430},{"class":718,"line":1429},10,[1431,1436,1440,1444,1448,1452,1456,1460,1464],{"type":43,"tag":716,"props":1432,"children":1433},{"style":728},[1434],{"type":49,"value":1435},"  endpoints.llm.url=",{"type":43,"tag":716,"props":1437,"children":1438},{"style":754},[1439],{"type":49,"value":1251},{"type":43,"tag":716,"props":1441,"children":1442},{"style":728},[1443],{"type":49,"value":877},{"type":43,"tag":716,"props":1445,"children":1446},{"style":754},[1447],{"type":49,"value":1251},{"type":43,"tag":716,"props":1449,"children":1450},{"style":728},[1451],{"type":49,"value":886},{"type":43,"tag":716,"props":1453,"children":1454},{"style":754},[1455],{"type":49,"value":1251},{"type":43,"tag":716,"props":1457,"children":1458},{"style":728},[1459],{"type":49,"value":895},{"type":43,"tag":716,"props":1461,"children":1462},{"style":754},[1463],{"type":49,"value":1251},{"type":43,"tag":716,"props":1465,"children":1466},{"style":768},[1467],{"type":49,"value":1042},{"type":43,"tag":52,"props":1469,"children":1470},{},[1471],{"type":43,"tag":92,"props":1472,"children":1473},{},[1474],{"type":49,"value":1475},"Mode-specific notes:",{"type":43,"tag":340,"props":1477,"children":1478},{},[1479],{"type":43,"tag":229,"props":1480,"children":1481},{},[1482,1490,1492,1498,1500],{"type":43,"tag":92,"props":1483,"children":1484},{},[1485],{"type":43,"tag":58,"props":1486,"children":1488},{"className":1487},[],[1489],{"type":49,"value":262},{"type":49,"value":1491}," — LLM only; ",{"type":43,"tag":58,"props":1493,"children":1495},{"className":1494},[],[1496],{"type":49,"value":1497},"vlm_verify_enabled",{"type":49,"value":1499}," is auto-disabled by the schema. Always set:\n",{"type":43,"tag":705,"props":1501,"children":1503},{"className":707,"code":1502,"language":709,"meta":710,"style":710},"endpoints.llm.url=\"\u003CLLM_URL>\" endpoints.llm.model=\"\u003CLLM_MODEL>\"\ndata.0.inputs.video_path=\"\u003Cexisting\u002Fsource_media.mp4>\"\ndata.0.inputs.metadata_json_path=\"\u003Cpath\u002Fto\u002Fmetadata.json>\"\n",[1504],{"type":43,"tag":58,"props":1505,"children":1506},{"__ignoreMap":710},[1507,1540,1556],{"type":43,"tag":716,"props":1508,"children":1509},{"class":718,"line":27},[1510,1515,1519,1524,1528,1532,1536],{"type":43,"tag":716,"props":1511,"children":1512},{"style":722},[1513],{"type":49,"value":1514},"endpoints.llm.url",{"type":43,"tag":716,"props":1516,"children":1517},{"style":728},[1518],{"type":49,"value":1105},{"type":43,"tag":716,"props":1520,"children":1521},{"style":722},[1522],{"type":49,"value":1523},"\"\u003CLLM_URL>\"",{"type":43,"tag":716,"props":1525,"children":1526},{"style":728},[1527],{"type":49,"value":886},{"type":43,"tag":716,"props":1529,"children":1530},{"style":768},[1531],{"type":49,"value":771},{"type":43,"tag":716,"props":1533,"children":1534},{"style":728},[1535],{"type":49,"value":895},{"type":43,"tag":716,"props":1537,"children":1538},{"style":768},[1539],{"type":49,"value":1042},{"type":43,"tag":716,"props":1541,"children":1542},{"class":718,"line":23},[1543,1547,1551],{"type":43,"tag":716,"props":1544,"children":1545},{"style":722},[1546],{"type":49,"value":468},{"type":43,"tag":716,"props":1548,"children":1549},{"style":728},[1550],{"type":49,"value":1105},{"type":43,"tag":716,"props":1552,"children":1553},{"style":722},[1554],{"type":49,"value":1555},"\"\u003Cexisting\u002Fsource_media.mp4>\"\n",{"type":43,"tag":716,"props":1557,"children":1558},{"class":718,"line":787},[1559,1564,1568],{"type":43,"tag":716,"props":1560,"children":1561},{"style":722},[1562],{"type":49,"value":1563},"data.0.inputs.metadata_json_path",{"type":43,"tag":716,"props":1565,"children":1566},{"style":728},[1567],{"type":49,"value":1105},{"type":43,"tag":716,"props":1569,"children":1570},{"style":722},[1571],{"type":49,"value":1572},"\"\u003Cpath\u002Fto\u002Fmetadata.json>\"\n",{"type":43,"tag":52,"props":1574,"children":1575},{},[1576],{"type":43,"tag":92,"props":1577,"children":1578},{},[1579],{"type":49,"value":1580},"Useful inline overrides:",{"type":43,"tag":340,"props":1582,"children":1583},{},[1584,1595,1614,1625,1652,1663,1681,1692,1703],{"type":43,"tag":229,"props":1585,"children":1586},{},[1587,1593],{"type":43,"tag":58,"props":1588,"children":1590},{"className":1589},[],[1591],{"type":49,"value":1592},"super_resolution.enabled=false",{"type":49,"value":1594}," — skip SR stage",{"type":43,"tag":229,"props":1596,"children":1597},{},[1598,1604,1606,1612],{"type":43,"tag":58,"props":1599,"children":1601},{"className":1600},[],[1602],{"type":49,"value":1603},"data.0.inputs.vlm_video_path=\"\u002Fpath\u002Fto\u002Fvideo.mp4\"",{"type":49,"value":1605}," — force VLM JSON (and MCQ) to use a specific media file, bypassing the default priority chain (",{"type":43,"tag":58,"props":1607,"children":1609},{"className":1608},[],[1610],{"type":49,"value":1611},"sidecars\u002F\u003Ctrack_stem>_tracking_red_id.\u003Cext>",{"type":49,"value":1613}," → SR output → original)",{"type":43,"tag":229,"props":1615,"children":1616},{},[1617,1623],{"type":43,"tag":58,"props":1618,"children":1620},{"className":1619},[],[1621],{"type":49,"value":1622},"vlm_json.split_json_calls=true",{"type":49,"value":1624}," — default, more reliable VLM JSON generation",{"type":43,"tag":229,"props":1626,"children":1627},{},[1628,1634,1636,1642,1644,1650],{"type":43,"tag":58,"props":1629,"children":1631},{"className":1630},[],[1632],{"type":49,"value":1633},"pipeline.empty_output_policy=warn|fail",{"type":49,"value":1635}," — use ",{"type":43,"tag":58,"props":1637,"children":1639},{"className":1638},[],[1640],{"type":49,"value":1641},"warn",{"type":49,"value":1643}," for best-effort batch runs; use ",{"type":43,"tag":58,"props":1645,"children":1647},{"className":1646},[],[1648],{"type":49,"value":1649},"fail",{"type":49,"value":1651}," when stage failures should stop the run",{"type":43,"tag":229,"props":1653,"children":1654},{},[1655,1661],{"type":43,"tag":58,"props":1656,"children":1658},{"className":1657},[],[1659],{"type":49,"value":1660},"mcq_generation.mode=window-vlm-llm",{"type":49,"value":1662}," — switch MCQ mode",{"type":43,"tag":229,"props":1664,"children":1665},{},[1666,1672,1674,1680],{"type":43,"tag":58,"props":1667,"children":1669},{"className":1668},[],[1670],{"type":49,"value":1671},"mcq_generation.window_metadata_extraction.question_bank_file=\"\u002Fpath\u002Fto\u002Fbank.json\"",{"type":49,"value":1673}," — custom question bank (question-driven-vlm-llm only; window\u002Fmetadata modes use embedded bank in ",{"type":43,"tag":58,"props":1675,"children":1677},{"className":1676},[],[1678],{"type":49,"value":1679},"mcq_prompt_file",{"type":49,"value":499},{"type":43,"tag":229,"props":1682,"children":1683},{},[1684,1690],{"type":43,"tag":58,"props":1685,"children":1687},{"className":1686},[],[1688],{"type":49,"value":1689},"mcq_generation.window_metadata_extraction.skip_existing=true",{"type":49,"value":1691}," — resume a partial run",{"type":43,"tag":229,"props":1693,"children":1694},{},[1695,1701],{"type":43,"tag":58,"props":1696,"children":1698},{"className":1697},[],[1699],{"type":49,"value":1700},"pipeline.gpu_ids=2,3",{"type":49,"value":1702}," — pin specific GPU IDs (important when VLM\u002FLLM servers occupy other GPUs)",{"type":43,"tag":229,"props":1704,"children":1705},{},[1706,1712,1714,1720],{"type":43,"tag":58,"props":1707,"children":1709},{"className":1708},[],[1710],{"type":49,"value":1711},"pipeline.use_multi_gpu=true",{"type":49,"value":1713}," — SR uses all GPUs in ",{"type":43,"tag":58,"props":1715,"children":1717},{"className":1716},[],[1718],{"type":49,"value":1719},"gpu_ids",{"type":49,"value":1721},"; default is single-GPU (first GPU only)",{"type":43,"tag":52,"props":1723,"children":1724},{},[1725,1727,1732,1734,1740,1742,1748,1750,1756],{"type":49,"value":1726},"For windowing strategies, partial pipelines, and stage chaining see ",{"type":43,"tag":58,"props":1728,"children":1730},{"className":1729},[],[1731],{"type":49,"value":433},{"type":49,"value":1733},".\nFor Docker execution patterns, including generic NGC-image ",{"type":43,"tag":58,"props":1735,"children":1737},{"className":1736},[],[1738],{"type":49,"value":1739},"docker run",{"type":49,"value":1741}," and repo-local ",{"type":43,"tag":58,"props":1743,"children":1745},{"className":1744},[],[1746],{"type":49,"value":1747},".\u002Fdocker\u002Fdeploy.sh",{"type":49,"value":1749},", see ",{"type":43,"tag":58,"props":1751,"children":1753},{"className":1752},[],[1754],{"type":49,"value":1755},"references\u002Fdocker-run.md",{"type":49,"value":282},{"type":43,"tag":52,"props":1758,"children":1759},{},[1760],{"type":49,"value":1761},"Always output a complete, copy-pasteable command. Do not leave placeholders unfilled if the user gave you the values.",{"type":43,"tag":209,"props":1763,"children":1764},{},[],{"type":43,"tag":213,"props":1766,"children":1768},{"id":1767},"step-5-pre-flight-checklist",[1769],{"type":49,"value":1770},"Step 5: Pre-flight Checklist",{"type":43,"tag":52,"props":1772,"children":1773},{},[1774],{"type":49,"value":1775},"Run all checks via Bash in parallel and report pass\u002Ffail before asking for execution approval:",{"type":43,"tag":705,"props":1777,"children":1781},{"className":1778,"code":1780,"language":49,"meta":710},[1779],"language-text","[ ] Docker running            →  docker info\n[ ] Container image available →  docker image inspect \u003CAUTO_LABELING_IMAGE>\n[ ] Checkpoints present       →  ls ckpts\u002F   (only if SR is enabled)\n[ ] Input video exists        →  ls \u003Cvideo_path>\n[ ] VLM endpoint reachable    →  curl -s \u003Cvlm_url>\u002Fmodels   (if VLM needed; add auth only after credential approval)\n[ ] LLM endpoint reachable    →  curl -s \u003Cllm_url>\u002Fmodels   (if LLM needed; add auth only after credential approval)\n",[1782],{"type":43,"tag":58,"props":1783,"children":1784},{"__ignoreMap":710},[1785],{"type":49,"value":1780},{"type":43,"tag":52,"props":1787,"children":1788},{},[1789,1794,1796,1802,1804,1809],{"type":43,"tag":92,"props":1790,"children":1791},{},[1792],{"type":49,"value":1793},"Important:",{"type":49,"value":1795}," When checking VLM\u002FLLM endpoints, read the actual model ID from the ",{"type":43,"tag":58,"props":1797,"children":1799},{"className":1798},[],[1800],{"type":49,"value":1801},"\u002Fmodels",{"type":49,"value":1803}," response and use it in the CLI command — the user-provided model name may differ from the served model ID (e.g. FP8 suffix). If an endpoint needs authentication, warn the user before accessing credential environment variables, do not print secret values, and prefer a mounted credential file or Docker secret over shell interpolation. See ",{"type":43,"tag":58,"props":1805,"children":1807},{"className":1806},[],[1808],{"type":49,"value":646},{"type":49,"value":282},{"type":43,"tag":52,"props":1811,"children":1812},{},[1813],{"type":49,"value":1814},"Provide the exact fix command for any hard failure (block execution until resolved):",{"type":43,"tag":116,"props":1816,"children":1817},{},[1818,1834],{"type":43,"tag":120,"props":1819,"children":1820},{},[1821],{"type":43,"tag":124,"props":1822,"children":1823},{},[1824,1829],{"type":43,"tag":128,"props":1825,"children":1826},{},[1827],{"type":49,"value":1828},"Failure",{"type":43,"tag":128,"props":1830,"children":1831},{},[1832],{"type":49,"value":1833},"Fix",{"type":43,"tag":139,"props":1835,"children":1836},{},[1837,1856,1885],{"type":43,"tag":124,"props":1838,"children":1839},{},[1840,1845],{"type":43,"tag":146,"props":1841,"children":1842},{},[1843],{"type":49,"value":1844},"Docker not running",{"type":43,"tag":146,"props":1846,"children":1847},{},[1848,1854],{"type":43,"tag":58,"props":1849,"children":1851},{"className":1850},[],[1852],{"type":49,"value":1853},"sudo systemctl start docker",{"type":49,"value":1855}," (or open Docker Desktop)",{"type":43,"tag":124,"props":1857,"children":1858},{},[1859,1864],{"type":43,"tag":146,"props":1860,"children":1861},{},[1862],{"type":49,"value":1863},"Image unavailable",{"type":43,"tag":146,"props":1865,"children":1866},{},[1867,1869,1875,1877,1883],{"type":49,"value":1868},"Pull\u002Fbuild the NGC image and set ",{"type":43,"tag":58,"props":1870,"children":1872},{"className":1871},[],[1873],{"type":49,"value":1874},"AUTO_LABELING_IMAGE",{"type":49,"value":1876},"; if working inside this repo, ",{"type":43,"tag":58,"props":1878,"children":1880},{"className":1879},[],[1881],{"type":49,"value":1882},".\u002Fdocker\u002Fdeploy.sh build",{"type":49,"value":1884}," is also supported",{"type":43,"tag":124,"props":1886,"children":1887},{},[1888,1893],{"type":43,"tag":146,"props":1889,"children":1890},{},[1891],{"type":49,"value":1892},"Endpoint unreachable",{"type":43,"tag":146,"props":1894,"children":1895},{},[1896,1898,1904],{"type":49,"value":1897},"Ask the user for a reachable VLM\u002FLLM base URL (must end in ",{"type":43,"tag":58,"props":1899,"children":1901},{"className":1900},[],[1902],{"type":49,"value":1903},"\u002Fv1",{"type":49,"value":1905},") and the served model ID, or have them start their own OpenAI-compatible server, then retry",{"type":43,"tag":52,"props":1907,"children":1908},{},[1909,1914,1916,1921],{"type":43,"tag":92,"props":1910,"children":1911},{},[1912],{"type":49,"value":1913},"Checkpoints missing",{"type":49,"value":1915}," — do NOT block on this. Stage initialization will ensure required SeedVR2 checkpoints on first run; warn that the first run may spend time downloading. If SR is disabled (",{"type":43,"tag":58,"props":1917,"children":1919},{"className":1918},[],[1920],{"type":49,"value":1592},{"type":49,"value":1922},"), SR checkpoints are irrelevant.",{"type":43,"tag":209,"props":1924,"children":1925},{},[],{"type":43,"tag":213,"props":1927,"children":1929},{"id":1928},"step-6-execute-the-pipeline",[1930],{"type":49,"value":1931},"Step 6: Execute the Pipeline",{"type":43,"tag":52,"props":1933,"children":1934},{},[1935],{"type":49,"value":1936},"After a passing pre-flight (no hard failures), present an execution summary and require explicit user approval before any Docker command. Include:",{"type":43,"tag":340,"props":1938,"children":1939},{},[1940,1945,1950],{"type":43,"tag":229,"props":1941,"children":1942},{},[1943],{"type":49,"value":1944},"Full Docker command to be run, with secrets redacted or passed through approved secret files\u002Fenv names only.",{"type":43,"tag":229,"props":1946,"children":1947},{},[1948],{"type":49,"value":1949},"Expected resource use: GPU count, likely runtime, large image pulls\u002Fdownloads, and output directory writes.",{"type":43,"tag":229,"props":1951,"children":1952},{},[1953],{"type":49,"value":1954},"Data access: input paths, mounted volumes, remote endpoints, and credential source names.",{"type":43,"tag":52,"props":1956,"children":1957},{},[1958],{"type":49,"value":1959},"Do not execute Docker until the user approves that exact command.",{"type":43,"tag":52,"props":1961,"children":1962},{},[1963,1965,1971,1973,1978,1980,1985,1987,1993],{"type":49,"value":1964},"Run through Docker, not host Python, for real pipeline execution. Do not set up or execute host-side pipeline runs for users; that path is not validated or endorsed. Inside the container, use ",{"type":43,"tag":58,"props":1966,"children":1968},{"className":1967},[],[1969],{"type":49,"value":1970},"uv run python modules\u002Fcli.py ...",{"type":49,"value":1972}," so the command uses the uv-managed runtime environment baked into the image. Use ",{"type":43,"tag":58,"props":1974,"children":1976},{"className":1975},[],[1977],{"type":49,"value":1755},{"type":49,"value":1979}," for the generic NGC-image ",{"type":43,"tag":58,"props":1981,"children":1983},{"className":1982},[],[1984],{"type":49,"value":1739},{"type":49,"value":1986}," template; use ",{"type":43,"tag":58,"props":1988,"children":1990},{"className":1989},[],[1991],{"type":49,"value":1992},".\u002Fdocker\u002Fdeploy.sh shell -lc \"cmd\"",{"type":49,"value":1994}," only as a repo-local convenience when this checkout is available. Set a generous timeout because SR and VLM stages can run for many minutes.",{"type":43,"tag":52,"props":1996,"children":1997},{},[1998],{"type":43,"tag":92,"props":1999,"children":2000},{},[2001],{"type":49,"value":2002},"After execution completes:",{"type":43,"tag":340,"props":2004,"children":2005},{},[2006,2011,2022],{"type":43,"tag":229,"props":2007,"children":2008},{},[2009],{"type":49,"value":2010},"Report success or the error message",{"type":43,"tag":229,"props":2012,"children":2013},{},[2014,2016],{"type":49,"value":2015},"List the output files produced: ",{"type":43,"tag":58,"props":2017,"children":2019},{"className":2018},[],[2020],{"type":49,"value":2021},"ls -lhR \u003Cout_dir>\u002F",{"type":43,"tag":229,"props":2023,"children":2024},{},[2025,2027,2033,2034,2040,2042],{"type":49,"value":2026},"If MCQ was generated, show a preview from the first available task file among ",{"type":43,"tag":58,"props":2028,"children":2030},{"className":2029},[],[2031],{"type":49,"value":2032},"task\u002Fmcq.json",{"type":49,"value":106},{"type":43,"tag":58,"props":2035,"children":2037},{"className":2036},[],[2038],{"type":49,"value":2039},"task\u002Fbcq.json",{"type":49,"value":2041},", and ",{"type":43,"tag":58,"props":2043,"children":2045},{"className":2044},[],[2046],{"type":49,"value":2047},"task\u002Fopen_qa.json",{"type":43,"tag":52,"props":2049,"children":2050},{},[2051],{"type":43,"tag":92,"props":2052,"children":2053},{},[2054],{"type":49,"value":2055},"If execution fails:",{"type":43,"tag":340,"props":2057,"children":2058},{},[2059,2064],{"type":43,"tag":229,"props":2060,"children":2061},{},[2062],{"type":49,"value":2063},"Show the last 50 lines of output to diagnose",{"type":43,"tag":229,"props":2065,"children":2066},{},[2067,2069],{"type":49,"value":2068},"Common fixes:\n",{"type":43,"tag":340,"props":2070,"children":2071},{},[2072,2092,2097],{"type":43,"tag":229,"props":2073,"children":2074},{},[2075,2077,2083,2085,2090],{"type":49,"value":2076},"OOM on SR → with default ",{"type":43,"tag":58,"props":2078,"children":2080},{"className":2079},[],[2081],{"type":49,"value":2082},"pipeline.empty_output_policy=warn",{"type":49,"value":2084}," the pipeline continues automatically (SR is skipped, tracking uses the original input video). Only add ",{"type":43,"tag":58,"props":2086,"children":2088},{"className":2087},[],[2089],{"type":49,"value":1592},{"type":49,"value":2091}," if you want to skip SR entirely for speed.",{"type":43,"tag":229,"props":2093,"children":2094},{},[2095],{"type":49,"value":2096},"Endpoint auth error → ask the user to verify the intended credential source is set; do not echo secret values",{"type":43,"tag":229,"props":2098,"children":2099},{},[2100,2102],{"type":49,"value":2101},"Permission denied on output dir → output dir may need to exist: ",{"type":43,"tag":58,"props":2103,"children":2105},{"className":2104},[],[2106],{"type":49,"value":2107},"mkdir -p \u003Cout_dir>",{"type":43,"tag":209,"props":2109,"children":2110},{},[],{"type":43,"tag":80,"props":2112,"children":2114},{"id":2113},"output-layout",[2115],{"type":49,"value":2116},"Output Layout",{"type":43,"tag":52,"props":2118,"children":2119},{},[2120,2122,2127,2129,2135,2136,2142,2143,2149,2150,2156,2157,2163,2165,2171,2173,2178,2180,2185,2186,2191,2192,2197],{"type":49,"value":2121},"Outputs are fixed under each sample's ",{"type":43,"tag":58,"props":2123,"children":2125},{"className":2124},[],[2126],{"type":49,"value":678},{"type":49,"value":2128},": ",{"type":43,"tag":58,"props":2130,"children":2132},{"className":2131},[],[2133],{"type":49,"value":2134},"raw\u002F",{"type":49,"value":106},{"type":43,"tag":58,"props":2137,"children":2139},{"className":2138},[],[2140],{"type":49,"value":2141},"contextual\u002F",{"type":49,"value":106},{"type":43,"tag":58,"props":2144,"children":2146},{"className":2145},[],[2147],{"type":49,"value":2148},"task\u002F",{"type":49,"value":106},{"type":43,"tag":58,"props":2151,"children":2153},{"className":2152},[],[2154],{"type":49,"value":2155},"prompts\u002F",{"type":49,"value":106},{"type":43,"tag":58,"props":2158,"children":2160},{"className":2159},[],[2161],{"type":49,"value":2162},"sidecars\u002F",{"type":49,"value":2164},", logs, and the saved effective config. The root ",{"type":43,"tag":58,"props":2166,"children":2168},{"className":2167},[],[2169],{"type":49,"value":2170},"README.md",{"type":49,"value":2172}," has the full tree. After a run, list ",{"type":43,"tag":58,"props":2174,"children":2176},{"className":2175},[],[2177],{"type":49,"value":2021},{"type":49,"value":2179},"; if MCQ was generated, preview the first available task file among ",{"type":43,"tag":58,"props":2181,"children":2183},{"className":2182},[],[2184],{"type":49,"value":2032},{"type":49,"value":106},{"type":43,"tag":58,"props":2187,"children":2189},{"className":2188},[],[2190],{"type":49,"value":2039},{"type":49,"value":2041},{"type":43,"tag":58,"props":2193,"children":2195},{"className":2194},[],[2196],{"type":49,"value":2047},{"type":49,"value":282},{"type":43,"tag":52,"props":2199,"children":2200},{},[2201,2203,2209,2211,2217],{"type":49,"value":2202},"Validate with ",{"type":43,"tag":58,"props":2204,"children":2206},{"className":2205},[],[2207],{"type":49,"value":2208},"tao-daft validate metropolis-v3.0 --path \u003Cout_dir> --raw auto [--strict]",{"type":49,"value":2210}," when ",{"type":43,"tag":58,"props":2212,"children":2214},{"className":2213},[],[2215],{"type":49,"value":2216},"nvidia-tao-daft",{"type":49,"value":2218}," is installed.",{"type":43,"tag":80,"props":2220,"children":2222},{"id":2221},"key-facts",[2223],{"type":49,"value":2224},"Key Facts",{"type":43,"tag":340,"props":2226,"children":2227},{},[2228,2239,2252,2287,2342,2373,2392,2425,2445,2471,2488,2558],{"type":43,"tag":229,"props":2229,"children":2230},{},[2231,2233],{"type":49,"value":2232},"CLI entry point inside Docker: ",{"type":43,"tag":58,"props":2234,"children":2236},{"className":2235},[],[2237],{"type":49,"value":2238},"uv run python modules\u002Fcli.py --config \u003Cyaml> [key=value ...]",{"type":43,"tag":229,"props":2240,"children":2241},{},[2242,2244,2250],{"type":49,"value":2243},"Dotlist overrides use OmegaConf syntax (",{"type":43,"tag":58,"props":2245,"children":2247},{"className":2246},[],[2248],{"type":49,"value":2249},"key.subkey=value",{"type":49,"value":2251},"). Quote paths that contain spaces.",{"type":43,"tag":229,"props":2253,"children":2254},{},[2255,2261,2263,2269,2271,2277,2279,2285],{"type":43,"tag":58,"props":2256,"children":2258},{"className":2257},[],[2259],{"type":49,"value":2260},"data",{"type":49,"value":2262}," is a list: single video uses ",{"type":43,"tag":58,"props":2264,"children":2266},{"className":2265},[],[2267],{"type":49,"value":2268},"data.0.*",{"type":49,"value":2270},", second video uses ",{"type":43,"tag":58,"props":2272,"children":2274},{"className":2273},[],[2275],{"type":49,"value":2276},"data.1.*",{"type":49,"value":2278},", etc. The loader auto-extends the list when you reference indices beyond ",{"type":43,"tag":58,"props":2280,"children":2282},{"className":2281},[],[2283],{"type":49,"value":2284},"data[0]",{"type":49,"value":2286}," — no need to pre-populate the base YAML.",{"type":43,"tag":229,"props":2288,"children":2289},{},[2290,2292,2297,2299,2305,2306,2312,2313,2319,2320,2326,2327,2333,2335,2340],{"type":49,"value":2291},"The pipeline supports ",{"type":43,"tag":92,"props":2293,"children":2294},{},[2295],{"type":49,"value":2296},"image inputs",{"type":49,"value":2298}," (",{"type":43,"tag":58,"props":2300,"children":2302},{"className":2301},[],[2303],{"type":49,"value":2304},".jpg",{"type":49,"value":106},{"type":43,"tag":58,"props":2307,"children":2309},{"className":2308},[],[2310],{"type":49,"value":2311},".jpeg",{"type":49,"value":106},{"type":43,"tag":58,"props":2314,"children":2316},{"className":2315},[],[2317],{"type":49,"value":2318},".png",{"type":49,"value":106},{"type":43,"tag":58,"props":2321,"children":2323},{"className":2322},[],[2324],{"type":49,"value":2325},".webp",{"type":49,"value":106},{"type":43,"tag":58,"props":2328,"children":2330},{"className":2329},[],[2331],{"type":49,"value":2332},".bmp",{"type":49,"value":2334},") as well as videos. For image inputs, SR\u002Ftracking sidecar outputs use ",{"type":43,"tag":58,"props":2336,"children":2338},{"className":2337},[],[2339],{"type":49,"value":2318},{"type":49,"value":2341}," extensions.",{"type":43,"tag":229,"props":2343,"children":2344},{},[2345,2350,2351,2356,2358,2364,2365,2371],{"type":43,"tag":92,"props":2346,"children":2347},{},[2348],{"type":49,"value":2349},"Supported video formats",{"type":49,"value":2128},{"type":43,"tag":58,"props":2352,"children":2354},{"className":2353},[],[2355],{"type":49,"value":1087},{"type":49,"value":2357}," ",{"type":43,"tag":58,"props":2359,"children":2361},{"className":2360},[],[2362],{"type":49,"value":2363},".mov",{"type":49,"value":2357},{"type":43,"tag":58,"props":2366,"children":2368},{"className":2367},[],[2369],{"type":49,"value":2370},".m4v",{"type":49,"value":2372}," (the LGPL-only FFmpeg in this image ships only the mov demuxer, which handles all mp4-family containers; matroska \u002F avi \u002F webm support was removed to keep the codec set royalty-clean).",{"type":43,"tag":229,"props":2374,"children":2375},{},[2376,2378,2383,2385,2391],{"type":49,"value":2377},"Video SR (SeedVR2) requires Docker. Use ",{"type":43,"tag":58,"props":2379,"children":2381},{"className":2380},[],[2382],{"type":49,"value":1755},{"type":49,"value":2384},"; repo-local users may use ",{"type":43,"tag":58,"props":2386,"children":2388},{"className":2387},[],[2389],{"type":49,"value":2390},".\u002Fdocker\u002Fdeploy.sh shell",{"type":49,"value":282},{"type":43,"tag":229,"props":2393,"children":2394},{},[2395,2397,2402,2403,2408,2410,2415,2417,2423],{"type":49,"value":2396},"Remote paths (",{"type":43,"tag":58,"props":2398,"children":2400},{"className":2399},[],[2401],{"type":49,"value":483},{"type":49,"value":106},{"type":43,"tag":58,"props":2404,"children":2406},{"className":2405},[],[2407],{"type":49,"value":490},{"type":49,"value":2409},") work for inputs and ",{"type":43,"tag":58,"props":2411,"children":2413},{"className":2412},[],[2414],{"type":49,"value":678},{"type":49,"value":2416},"; see ",{"type":43,"tag":58,"props":2418,"children":2420},{"className":2419},[],[2421],{"type":49,"value":2422},"docs\u002Fremote-io.md",{"type":49,"value":2424}," for setup patterns.",{"type":43,"tag":229,"props":2426,"children":2427},{},[2428,2430,2436,2438,2443],{"type":49,"value":2429},"If the user needs ",{"type":43,"tag":58,"props":2431,"children":2433},{"className":2432},[],[2434],{"type":49,"value":2435},"events.json",{"type":49,"value":2437}," but doesn't have one yet, enable only the VLM JSON stage (see ",{"type":43,"tag":58,"props":2439,"children":2441},{"className":2440},[],[2442],{"type":49,"value":76},{"type":49,"value":2444}," comments).",{"type":43,"tag":229,"props":2446,"children":2447},{},[2448,2450,2456,2458,2463,2464,2469],{"type":49,"value":2449},"For MCQ-only from existing captions, use ",{"type":43,"tag":58,"props":2451,"children":2453},{"className":2452},[],[2454],{"type":49,"value":2455},"mcq_generation.mode=metadata-llm",{"type":49,"value":2457}," and provide an existing ",{"type":43,"tag":58,"props":2459,"children":2461},{"className":2460},[],[2462],{"type":49,"value":468},{"type":49,"value":106},{"type":43,"tag":58,"props":2465,"children":2467},{"className":2466},[],[2468],{"type":49,"value":1563},{"type":49,"value":2470},", and an LLM endpoint.",{"type":43,"tag":229,"props":2472,"children":2473},{},[2474,2479,2481,2486],{"type":43,"tag":92,"props":2475,"children":2476},{},[2477],{"type":49,"value":2478},"Endpoint credentials",{"type":49,"value":2480}," — VLM and LLM credential handling is documented in ",{"type":43,"tag":58,"props":2482,"children":2484},{"className":2483},[],[2485],{"type":49,"value":646},{"type":49,"value":2487},"; do not print secret values.",{"type":43,"tag":229,"props":2489,"children":2490},{},[2491,2496,2498,2504,2506,2512,2514,2519,2521,2526,2528,2533,2535,2540,2542,2548,2550,2556],{"type":43,"tag":92,"props":2492,"children":2493},{},[2494],{"type":49,"value":2495},"GPU selection",{"type":49,"value":2497},": use ",{"type":43,"tag":58,"props":2499,"children":2501},{"className":2500},[],[2502],{"type":49,"value":2503},"pipeline.gpu_ids=\u003Cids>",{"type":49,"value":2505}," (comma-separated, or ",{"type":43,"tag":58,"props":2507,"children":2509},{"className":2508},[],[2510],{"type":49,"value":2511},"\"all\"",{"type":49,"value":2513},") to pin specific GPUs (e.g. ",{"type":43,"tag":58,"props":2515,"children":2517},{"className":2516},[],[2518],{"type":49,"value":1700},{"type":49,"value":2520},"). Important when other workloads (VLM\u002FLLM servers) already occupy some GPUs. Tracking always uses the first GPU in ",{"type":43,"tag":58,"props":2522,"children":2524},{"className":2523},[],[2525],{"type":49,"value":1719},{"type":49,"value":2527},"; VLM JSON and MCQ stages call remote endpoints and do not use local GPUs. SR defaults to single-GPU (first GPU); set ",{"type":43,"tag":58,"props":2529,"children":2531},{"className":2530},[],[2532],{"type":49,"value":1711},{"type":49,"value":2534}," to use all GPUs in ",{"type":43,"tag":58,"props":2536,"children":2538},{"className":2537},[],[2539],{"type":49,"value":1719},{"type":49,"value":2541}," for SR (",{"type":43,"tag":58,"props":2543,"children":2545},{"className":2544},[],[2546],{"type":49,"value":2547},"sp_size",{"type":49,"value":2549}," is set automatically). Plan a dedicated pipeline GPU for SeedVR2 SR; the 7B variant requires more free GPU memory than the 3B variant. In the current local Qwen recipe, reserve one additional dedicated GPU per VLM\u002FLLM endpoint and keep those endpoint GPUs out of ",{"type":43,"tag":58,"props":2551,"children":2553},{"className":2552},[],[2554],{"type":49,"value":2555},"pipeline.gpu_ids",{"type":49,"value":2557}," unless you have verified enough free memory.",{"type":43,"tag":229,"props":2559,"children":2560},{},[2561,2566,2568,2574,2576,2582,2583,2589,2590,2596,2597,2603,2605,2611,2612,2618,2619,2625,2626,2632,2634,2640],{"type":43,"tag":92,"props":2562,"children":2563},{},[2564],{"type":49,"value":2565},"Stage extensibility",{"type":49,"value":2567},": each stage has a ",{"type":43,"tag":58,"props":2569,"children":2571},{"className":2570},[],[2572],{"type":49,"value":2573},"model",{"type":49,"value":2575}," field selecting the implementation (",{"type":43,"tag":58,"props":2577,"children":2579},{"className":2578},[],[2580],{"type":49,"value":2581},"super_resolution.model=\"seedvr2\"",{"type":49,"value":106},{"type":43,"tag":58,"props":2584,"children":2586},{"className":2585},[],[2587],{"type":49,"value":2588},"detection_and_tracking.model=\"rfdetr\"",{"type":49,"value":106},{"type":43,"tag":58,"props":2591,"children":2593},{"className":2592},[],[2594],{"type":49,"value":2595},"vlm_json.model=\"vlm\"",{"type":49,"value":106},{"type":43,"tag":58,"props":2598,"children":2600},{"className":2599},[],[2601],{"type":49,"value":2602},"mcq_generation.mode=...",{"type":49,"value":2604},"). All default to the current impl — only set explicitly when plugging in a different model. New implementations subclass ",{"type":43,"tag":58,"props":2606,"children":2608},{"className":2607},[],[2609],{"type":49,"value":2610},"BaseSuperResolver",{"type":49,"value":536},{"type":43,"tag":58,"props":2613,"children":2615},{"className":2614},[],[2616],{"type":49,"value":2617},"BaseTracker",{"type":49,"value":536},{"type":43,"tag":58,"props":2620,"children":2622},{"className":2621},[],[2623],{"type":49,"value":2624},"BaseVlmJsonGenerator",{"type":49,"value":536},{"type":43,"tag":58,"props":2627,"children":2629},{"className":2628},[],[2630],{"type":49,"value":2631},"BaseMCQGenerator",{"type":49,"value":2633}," and register in the corresponding ",{"type":43,"tag":58,"props":2635,"children":2637},{"className":2636},[],[2638],{"type":49,"value":2639},"factory.py",{"type":49,"value":282},{"type":43,"tag":80,"props":2642,"children":2644},{"id":2643},"reference-files",[2645],{"type":49,"value":2646},"Reference Files",{"type":43,"tag":340,"props":2648,"children":2649},{},[2650,2667,2685,2695,2710,2720],{"type":43,"tag":229,"props":2651,"children":2652},{},[2653,2658,2660,2665],{"type":43,"tag":58,"props":2654,"children":2656},{"className":2655},[],[2657],{"type":49,"value":433},{"type":49,"value":2659}," — edge cases: partial pipelines, stage chaining, ",{"type":43,"tag":58,"props":2661,"children":2663},{"className":2662},[],[2664],{"type":49,"value":262},{"type":49,"value":2666}," path",{"type":43,"tag":229,"props":2668,"children":2669},{},[2670,2675,2677,2683],{"type":43,"tag":58,"props":2671,"children":2673},{"className":2672},[],[2674],{"type":49,"value":1755},{"type":49,"value":2676}," — generic NGC-image Docker run template plus repo-local ",{"type":43,"tag":58,"props":2678,"children":2680},{"className":2679},[],[2681],{"type":49,"value":2682},"deploy.sh",{"type":49,"value":2684}," alternative",{"type":43,"tag":229,"props":2686,"children":2687},{},[2688,2693],{"type":43,"tag":58,"props":2689,"children":2691},{"className":2690},[],[2692],{"type":49,"value":646},{"type":49,"value":2694}," — endpoint URL, model ID, and credential handling rules",{"type":43,"tag":229,"props":2696,"children":2697},{},[2698,2703,2705],{"type":43,"tag":58,"props":2699,"children":2701},{"className":2700},[],[2702],{"type":49,"value":280},{"type":49,"value":2704}," — short MCQ mode checklist for agents; full examples live in ",{"type":43,"tag":58,"props":2706,"children":2708},{"className":2707},[],[2709],{"type":49,"value":661},{"type":43,"tag":229,"props":2711,"children":2712},{},[2713,2718],{"type":43,"tag":58,"props":2714,"children":2716},{"className":2715},[],[2717],{"type":49,"value":170},{"type":49,"value":2719}," — custom-question captioning (closed-choice MCQ\u002FBCQ or free-form) and reusable question-bank creation",{"type":43,"tag":229,"props":2721,"children":2722},{},[2723,2728],{"type":43,"tag":58,"props":2724,"children":2726},{"className":2725},[],[2727],{"type":49,"value":190},{"type":49,"value":2729}," — shipped PAS \u002F person-attribute caption preset",{"type":43,"tag":2731,"props":2732,"children":2733},"style",{},[2734],{"type":49,"value":2735},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2737,"total":2894},[2738,2756,2774,2785,2797,2811,2824,2838,2851,2862,2876,2885],{"slug":2739,"name":2739,"fn":2740,"description":2741,"org":2742,"tags":2743,"stars":2753,"repoUrl":2754,"updatedAt":2755},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2744,2747,2750],{"name":2745,"slug":2746,"type":15},"Documentation","documentation",{"name":2748,"slug":2749,"type":15},"MCP","mcp",{"name":2751,"slug":2752,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2757,"name":2757,"fn":2758,"description":2759,"org":2760,"tags":2761,"stars":2771,"repoUrl":2772,"updatedAt":2773},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2762,2765,2768],{"name":2763,"slug":2764,"type":15},"Containers","containers",{"name":2766,"slug":2767,"type":15},"Deployment","deployment",{"name":2769,"slug":2770,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2775,"name":2775,"fn":2776,"description":2777,"org":2778,"tags":2779,"stars":2771,"repoUrl":2772,"updatedAt":2784},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2780,2783],{"name":2781,"slug":2782,"type":15},"CI\u002FCD","ci-cd",{"name":2766,"slug":2767,"type":15},"2026-07-14T05:25:59.97109",{"slug":2786,"name":2786,"fn":2787,"description":2788,"org":2789,"tags":2790,"stars":2771,"repoUrl":2772,"updatedAt":2796},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2791,2792,2793],{"name":2781,"slug":2782,"type":15},{"name":2766,"slug":2767,"type":15},{"name":2794,"slug":2795,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2798,"name":2798,"fn":2799,"description":2800,"org":2801,"tags":2802,"stars":2771,"repoUrl":2772,"updatedAt":2810},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2803,2806,2807],{"name":2804,"slug":2805,"type":15},"Debugging","debugging",{"name":2794,"slug":2795,"type":15},{"name":2808,"slug":2809,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2812,"name":2812,"fn":2813,"description":2814,"org":2815,"tags":2816,"stars":2771,"repoUrl":2772,"updatedAt":2823},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2817,2820],{"name":2818,"slug":2819,"type":15},"Best Practices","best-practices",{"name":2821,"slug":2822,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2825,"name":2825,"fn":2826,"description":2827,"org":2828,"tags":2829,"stars":2771,"repoUrl":2772,"updatedAt":2837},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2830,2833,2836],{"name":2831,"slug":2832,"type":15},"Machine Learning","machine-learning",{"name":2834,"slug":2835,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2839,"name":2839,"fn":2840,"description":2841,"org":2842,"tags":2843,"stars":2771,"repoUrl":2772,"updatedAt":2850},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2844,2847],{"name":2845,"slug":2846,"type":15},"QA","qa",{"name":2848,"slug":2849,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":2852,"name":2852,"fn":2853,"description":2854,"org":2855,"tags":2856,"stars":2771,"repoUrl":2772,"updatedAt":2861},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2857,2858],{"name":2766,"slug":2767,"type":15},{"name":2859,"slug":2860,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":2863,"name":2863,"fn":2864,"description":2865,"org":2866,"tags":2867,"stars":2771,"repoUrl":2772,"updatedAt":2875},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2868,2871,2872],{"name":2869,"slug":2870,"type":15},"Code Review","code-review",{"name":2794,"slug":2795,"type":15},{"name":2873,"slug":2874,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2877,"name":2877,"fn":2878,"description":2879,"org":2880,"tags":2881,"stars":2771,"repoUrl":2772,"updatedAt":2884},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2882,2883],{"name":2845,"slug":2846,"type":15},{"name":2848,"slug":2849,"type":15},"2026-07-14T05:25:54.928983",{"slug":2886,"name":2886,"fn":2887,"description":2888,"org":2889,"tags":2890,"stars":2771,"repoUrl":2772,"updatedAt":2893},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2891,2892],{"name":13,"slug":14,"type":15},{"name":2781,"slug":2782,"type":15},"2026-07-30T05:29:03.275638",496,{"items":2896,"total":27},[2897],{"slug":4,"name":4,"fn":5,"description":6,"org":2898,"tags":2899,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2900,2901,2902,2903],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15}]