[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-augmentation":3,"mdc-xbzctd-key":33,"related-repo-nvidia-augmentation":3139,"related-org-nvidia-augmentation":3148},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":23,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"augmentation","run physical AI data augmentation pipelines","Run the NVIDIA Physical AI Data Factory (PAIDF) augmentation pipeline: author and validate YAML configs and run inference with Cosmos Transfer 2.5 (video style transfer), Cosmos Predict 2.5 (text\u002Fimage\u002Fvideo-to-video), and image-edit models — covering captioning, control modalities, evaluators (hallucination, attribute, VLM verification), data_processing alignment, and PAS person-attribute edits via Docker GPU inference. Trigger keywords: augmentation, cosmos transfer, cosmos predict, image edit, PAS person attributes, AOI\u002FPCB alignment, captioning, attribute verification, config validation. Do NOT use for model training, cluster\u002FNIM deployment, or unrelated app\u002Fdatabase work.",{"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},"Data Engineering","data-engineering","tag",{"name":17,"slug":18,"type":15},"Machine Learning","machine-learning",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Simulation","simulation",1,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpaidf-augmentation","2026-07-14T05:36:30.828379","Apache-2.0",[],{"repoUrl":24,"stars":23,"forks":23,"topics":29,"description":30},[],"Containerized generative-AI pipeline that transforms video, image, and text inputs into large, diverse, physically grounded datasets for model training and evaluation","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fpaidf-augmentation\u002Ftree\u002FHEAD\u002Fskills\u002Faugmentation","---\nname: augmentation\ndescription: >-\n  Run the NVIDIA Physical AI Data Factory (PAIDF) augmentation pipeline:\n  author and validate YAML configs and run inference with Cosmos Transfer 2.5\n  (video style transfer), Cosmos Predict 2.5 (text\u002Fimage\u002Fvideo-to-video), and\n  image-edit models — covering captioning, control modalities, evaluators\n  (hallucination, attribute, VLM verification), data_processing alignment, and\n  PAS person-attribute edits via Docker GPU inference. Trigger keywords:\n  augmentation, cosmos transfer, cosmos predict, image edit, PAS person\n  attributes, AOI\u002FPCB alignment, captioning, attribute verification, config\n  validation. Do NOT use for model training, cluster\u002FNIM deployment, or\n  unrelated app\u002Fdatabase work.\nlicense: Apache-2.0\nmetadata:\n  owner: NVIDIA\n  service: augmentation\n  version: 1.0.0\n  reviewed: '2026-05-30'\n  author: NVIDIA\n  tags:\n    - physical-ai\n    - augmentation\n    - cosmos\n    - image-edit\n---\n\n# PAIDF Augmentation Pipeline Skill\n\nUnified pipeline for augmenting camera data through NVIDIA generative AI models (Cosmos Transfer 2.5, Cosmos Predict 2.5, image edit) with automated captioning, generation, and quality evaluation.\n\n## Purpose\n\nUse this skill to drive the PAIDF augmentation pipeline end to end:\n\n- **Select the right model** for the input and goal — Cosmos Transfer 2.5 (transform a video), Cosmos Predict 2.5 (generate or extend video), or image-edit (edit an image).\n- **Author and validate YAML configs** against the `PipelineConfig` Pydantic schema.\n- **Configure captioning** (VLM, LLM, text, or file) and **evaluators** (hallucination check, attribute verification, VLM verification).\n- **Launch and run** inference inside the `paidf-augmentation:latest` Docker container.\n\nDo **not** use this skill for training models, deploying clusters or NIM endpoints, or unrelated application\u002Fdatabase development.\n\n## Instructions\n\nUse this skill when working with the augmentation pipeline: running inference, authoring or editing YAML configs, debugging validation or runtime errors, adding new data samples, configuring captioning strategies, tuning generation parameters, or setting up evaluators. Prefer the documented config patterns and CLI workflows over ad-hoc approaches.\n\n### Use Case References\n\n- **PAS person-attribute image edit**: For PAS folders, person clothing\u002Faccessory edits, Qwen image edit, PAS distribution YAMLs, single-ID image grids, attribute-value tables, and augmented PAS dataset creation, read [Person Attribute Image Edit](references\u002Fperson-attribute-image-edit.md).\n- **AOI \u002F PCB image edit with output alignment**: For PCB AOI workflows where the model output is upscaled and must be warped back into the input frame (MI-registration), see the *Post-Processing: Data-Processing Alignment* section of [Config Decision Tree](references\u002Fconfig-decision-tree.md) and example `configs\u002Fconfig_image_edit_aoi.yaml`.\n- **General model\u002Fconfig selection**: For non-PAS model routing and config choice, read [Config Decision Tree](references\u002Fconfig-decision-tree.md).\n\n### Model Selection (Ask the User)\n\nWhen the user wants to run augmentation but hasn't specified a model, determine the right pipeline by asking about their **input type and goal**:\n\n- **Cosmos Transfer 2.5** — video augmentation (style transfer). Takes a video and changes scene attributes (weather, lighting, clothing, colors) while preserving the structure and motion. Think of it as \"reskinning\" an existing video.\n- **Cosmos Predict 2.5** — content generation\u002Fextension. Generates new video from text, extends video from a starting frame (image + text), or continues\u002Fpredicts from existing video (video + text). Think of it as \"creating new content\" rather than transforming existing content.\n- **image edit** — image-to-image editing. Takes a single image and edits specific attributes based on a text instruction.\n\n| Input Type | Pipeline | Model |\n|-----------|----------|-------|\n| Video — change scene attributes (weather, lighting, style) | Cosmos Transfer 2.5 | `cosmos-transfer2.5` — video-to-video augmentation with control modalities |\n| Video + text — extend or predict continuation | Cosmos Predict 2.5 | `cosmos-predict` — video-conditioned prediction\u002Fcontinuation |\n| Image — edit specific attributes | image edit | `image-edit` — image-to-image editing |\n| Image + text — generate video from a starting frame | Cosmos Predict 2.5 | `cosmos-predict` — image-conditioned video generation |\n| Text only — generate video from scratch | Cosmos Predict 2.5 | `cosmos-predict` — text-to-video generation |\n\n**Key rule**: If the input is a video and the user wants to **change scene attributes** (weather, lighting, clothing), use **Cosmos Transfer**. If the user wants to **predict\u002Fgenerate new video** from text, image, or video conditioning, use **Cosmos Predict**.\n\nSee [Config Decision Tree](references\u002Fconfig-decision-tree.md) for detailed decision logic and config recommendations.\n\n## Before You Start\n\n### Step 1: Prerequisites\n\nBefore launching the container, verify the following with the user:\n\n1. **Docker with NVIDIA runtime** — required for all inference:\n   ```bash\n   docker --version     # Must have NVIDIA container runtime installed\n   ```\n\n2. **HuggingFace token (`HF_TOKEN`)** — required for Cosmos model downloads. The `nvidia\u002FCosmos-*` repos are gated under the NVIDIA Open Model License; the user must accept the license once on each repo they plan to use (e.g. `nvidia\u002FCosmos-Transfer2.5-2B`, `nvidia\u002FCosmos-Predict2.5-2B`) on huggingface.co before their token works. Confirm the user's `HF_TOKEN` and that the licenses are accepted.\n\n3. **VLM and LLM endpoints** — required for captioning and evaluation (unless using text\u002Ffile captioner). Default models are already configured in the example configs (`Qwen\u002FQwen3-VL-30B-A3B-Instruct` for VLM, `Qwen\u002FQwen2.5-14B-Instruct` for LLM). If the user does **not** already have running VLM\u002FLLM containers, ask them to provide endpoint URLs or help them set up the endpoints.\n\n4. **Generation model endpoints** — depends on the model and executor type:\n   - **Cosmos Transfer 2.5** — runs **locally** by default (`executor_type: local`), no remote endpoint needed\n   - **Cosmos Predict 2.5** — runs **locally** by default (`executor_type: local`), no remote endpoint needed\n   - **image edit** — runs via **remote endpoint** (`executor_type: gradio`), requires `endpoints.image_edit` to be configured\n\n### Step 2: Launch the Docker Container (First Step for All Inference)\n\nAll inference runs inside the `paidf-augmentation:latest` Docker container. This is always the first step — the host environment does not have the required model dependencies (e.g., `cosmos_transfer2`).\n\nLaunch the container interactively from the project root:\n\n```bash\ndocker run -it --rm \\\n  --network host \\\n  --runtime nvidia \\\n  -e NVIDIA_VISIBLE_DEVICES=all \\\n  -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video \\\n  -e HF_TOKEN=\u003Cuser's HF token> \\\n  -e HF_HOME=\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface \\\n  -e HUGGINGFACE_HUB_CACHE=\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface\u002Fhub \\\n  -v \"$HOME\u002F.cache\u002Fhuggingface:\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface\" \\\n  -v \"$(pwd)\u002Fmodules:\u002Fapp\u002Fmodules\" \\\n  -v \"$(pwd)\u002Fconfigs:\u002Fapp\u002Fconfigs\" \\\n  -v \"$(pwd)\u002Fdata:\u002Fapp\u002Fdata\" \\\n  --entrypoint \u002Fbin\u002Fbash \\\n  paidf-augmentation:latest\n```\n\n**Optional — pre-configured endpoints and cloud storage:** add `--env-file examples\u002F.env` and `-v \"$(pwd)\u002Fexamples\u002Fsecrets.json:\u002Fvar\u002Fsecrets\u002Fsecrets.json:ro\"` to the command above. Both are only needed if you already have endpoint URLs or cloud storage credentials; runs from scratch with local executors and local file paths can omit them.\n\n> **Security:** `--network host` removes network isolation, and `HF_TOKEN`\u002FAPI keys are passed via environment variables. Review [Security Notes](#security-notes) before running on a shared or production host.\n\nKey volume mounts:\n- `modules\u002F` and `configs\u002F` are mounted from the host, so edits take effect without rebuilding\n- `data\u002F` is mounted for pipeline output (videos, captions, metadata) — it must be writable by the container user (see [Security Notes](#security-notes))\n- the host HuggingFace cache (`$HOME\u002F.cache\u002Fhuggingface`) is mounted at the container's `HF_HOME` to avoid re-downloading models between runs\n- the optional `secrets.json` mount is read-only and supplies cloud storage credentials\n\n### Step 3: Run the Pipeline (Inside the Container)\n\nOnce inside the container, run inference with:\n\n```bash\nuv run modules\u002Fcli.py --config configs\u002F\u003Cconfig_file>.yaml\n\n# With OmegaConf CLI overrides (dot-list syntax)\nuv run modules\u002Fcli.py --config configs\u002Fconfig_isaacsim.yaml \\\n  data.0.inputs.rgb=\u002Fpath\u002Fto\u002Fvideo.mp4 \\\n  augmentation.parameters.seed=42\n```\n\n### Environment Variables\n\nEndpoints and API keys can be set via env vars (take precedence over config values):\n\n| Variable | Purpose |\n|----------|---------|\n| `HF_TOKEN` | **Required.** HuggingFace token for model downloads |\n| `VLM_API_KEY` | API key for VLM endpoints |\n| `LLM_API_KEY` | API key for LLM endpoints |\n| `VLM_ENDPOINT_URL` | Override VLM endpoint URL |\n| `LLM_ENDPOINT_URL` | Override LLM endpoint URL |\n| `COSMOS_ENDPOINT_URL` | Override Cosmos Transfer endpoint |\n| `COSMOS_PREDICT_ENDPOINT_URL` | Override Cosmos Predict endpoint |\n| `IMAGE_EDIT_ENDPOINT_URL` | Override image edit endpoint |\n| `LOG_LEVEL` | Logging level (DEBUG, INFO, WARNING, ERROR) |\n\n## Configuration Schema\n\nAll YAML configs are validated against the `PipelineConfig` Pydantic model (`modules\u002Faug_utils\u002Fschema\u002F`) and have seven top-level sections: `data` (input\u002Foutput paths), `endpoints`, `pipeline` (retry\u002Flogging\u002Feval settings), `captioning`, `augmentation` (model + parameters + control modalities), `data_processing` (optional post-processors), and `evaluators`. For full per-section YAML examples, read [configuration-schema.md](references\u002Fconfiguration-schema.md).\n\n\n## Supported Models\n\n| Model | Name Enum | Input | Output | Executor Types | Endpoint Key |\n|-------|-----------|-------|--------|----------------|-------------|\n| Cosmos Transfer 2.5 | `cosmos-transfer2.5` | Video + control modalities | Video | local, gradio, passthrough | `cosmos_transfer` |\n| Cosmos Predict 2.5 | `cosmos-predict` | Text, Image+Text, or Video+Text | Video | local, gradio | `cosmos_predict` |\n| image edit | `image-edit` | Image | Image | gradio | `image_edit` |\n\nCosmos Predict's input modes are text-only, image+text (start frame), or video+text (extend\u002Fpredict). The **local** executor runs via a `torchrun` subprocess (multi-GPU, no remote endpoint); the **gradio** executor calls a remote Gradio API endpoint. See *Model Selection* above for how to choose a model from the input type and goal.\n\n## Pipeline Flow\n\n```\n1. Load & validate config (Pydantic PipelineConfig)\n2. Initialize captioner (factory dispatch from config)\n3. Initialize evaluators (hallucination, attribute verification)\n4. Initialize generator (factory dispatch from augmentation.model.name)\n5. For each data sample:\n   a. Run captioning -> produce prompt\n   b. Run generation (with seed) -> produce output media\n   c. Run hallucination check (if configured)\n   d. Run attribute verification (if configured)\n      - LLM generates MCQ questions from variables\n      - VLM answers questions against output media\n   e. On failure: retry with incremented seed (up to `pipeline.retry`)\n      - If `pipeline.regenerate_caption_on_retry: true` and a captioner is configured, rerun captioning and overwrite the prompt saved to `output.caption` before retrying generation\n   f. Write metadata JSON\n```\n\n## Examples\n\n### Example configs\n\n| Config | Model | Use Case |\n|--------|-------|----------|\n| `config_starter.yaml` | cosmos-transfer2.5 | Minimal first-run on bundled `data\u002Fsample_input.mp4` (hallucination check) |\n| `config_carla_vlm_llm.yaml` | cosmos-transfer2.5 | Traffic scene augmentation (no evaluators) |\n| `config_isaacsim.yaml` | cosmos-transfer2.5 | Warehouse scene + hallucination\u002Fattribute\u002FVLM verification |\n| `config_verification.yaml` | cosmos-transfer2.5 | Attribute + VLM verification only |\n| `config_image_edit_verification.yaml` | image-edit | Person clothing editing + verification |\n| `config_image_edit_aoi.yaml` | image-edit | AOI PCB inference with post-output MI alignment (`data_processing.alignment`) |\n| `config_real_outdoor.yaml` | cosmos-transfer2.5 | Multi-modal outdoor scenes |\n| `workflow_example.yaml` | N\u002FA | Batch config generation with dependent attribute sampling |\n\nCaptioning and evaluator details for each config are in [config-decision-tree.md](references\u002Fconfig-decision-tree.md).\n\n### Worked example: re-render a video as a rainy night\n\n1. **Model:** input is a video and the goal is a scene-attribute change → Cosmos Transfer 2.5. Start from `config_isaacsim.yaml` (`augmentation.model.name: cosmos-transfer2.5`, default `executor_type: local`).\n2. **Inputs\u002Foutputs:** point `data.0.inputs.rgb` at the source video and set `data.0.output.{video,caption,metadata}`.\n3. **Target attributes:** set `captioning.llm.variables.weather: [\"rainy\"]` and `time_of_day: [\"night\"]`.\n4. **Run** (inside the container, see Step 2): `uv run modules\u002Fcli.py --config configs\u002Fconfig_isaacsim.yaml`.\n\n## Common Tasks\n\n### Add a New Data Sample\n\nAdd an entry to the `data` list in any config:\n\n```yaml\ndata:\n  - inputs:\n      rgb: \"\u002Fpath\u002Fto\u002Fnew_video.mp4\"\n    output:\n      video: \"\u002Fpath\u002Fto\u002Foutput.mp4\"\n      caption: \"\u002Fpath\u002Fto\u002Fprompt.txt\"\n      metadata: \"\u002Fpath\u002Fto\u002Fmetadata.json\"\n```\n\n### Change Target Attributes\n\nEdit `captioning.llm.variables` — each key maps to a list of values (first value is used for text captioner, all values available for LLM generation):\n\n```yaml\ncaptioning:\n  llm:\n    variables:\n      weather: [\"snowy\"]\n      time_of_day: [\"dusk\"]\n```\n\nFor attribute verification, also set `verification_options` with all possible MCQ answer choices:\n\n```yaml\n    verification_options:\n      weather: [\"clear\", \"cloudy\", \"rainy\", \"snowy\"]\n```\n\n### Generate Batch Configs With Dependencies\n\nFor many configs from a workflow YAML, use `conditional_variables` for attributes that depend on another — e.g. `road_condition` depends on `weather`, so snowy weather never pairs with dry roads. This avoids invalid combinations you'd get from independent distributions. See [Config Decision Tree](references\u002Fconfig-decision-tree.md) for the full `workflow_example.yaml` structure and the generator command.\n\n### Switch Between Models\n\nChange `augmentation.model.name` and add the matching endpoint (e.g. `image-edit` needs `executor_type: gradio` plus `endpoints.image_edit` with a `url` and `model`). You can also override these on the CLI without editing the file; see [Config Decision Tree](references\u002Fconfig-decision-tree.md).\n\n### Tune Generation Quality\n\nKey parameters for Cosmos Transfer:\n- `augmentation.parameters.sigma` — noise level (higher = more change, default 90)\n- `augmentation.parameters.guidance` — prompt adherence (default 3.0)\n- `augmentation.parameters.num_steps` — denoising steps (default 35, more = slower but better)\n- `augmentation.modalities.edge` — edge control weight (1.0 = strict structure preservation)\n\n### Run Tests (Inside the Container)\n\n```bash\nuv run pytest tests\u002F                          # all tests\nuv run pytest tests\u002Fschema\u002Ftest_schema.py -v  # schema tests only\n```\n\nTests and all `uv run` commands must run inside the container (Step 2); the host lacks the required dependencies.\n\n## Troubleshooting\n\nAll inference and schema validation must run **inside the Docker container** (Step 2). Import errors such as `ModuleNotFoundError: No module named 'cosmos_transfer2'` or `COSMOS local execution is not supported in this environment` mean you are running on the host. For config-validation errors, runtime errors, and typical per-stage timings, see [troubleshooting.md](references\u002Ftroubleshooting.md).\n\n## Storage\n\nAll file I\u002FO uses `multistorageclient` (aliased as `msc`) which transparently handles local paths, S3 (`s3:\u002F\u002F`), GCS (`gs:\u002F\u002F`), Azure (`az:\u002F\u002F`), and HTTP URLs. Configure cloud storage via `examples\u002Fsecrets.json` mounted at `\u002Fvar\u002Fsecrets\u002Fsecrets.json`.\n\n## Security Notes\n\nThis skill runs GPU inference in Docker with credentials and host networking. Apply these practices, especially on shared or production hosts:\n\n- **Credentials via environment variables.** `HF_TOKEN`, `VLM_API_KEY`, `LLM_API_KEY`, and cloud storage secrets are passed as env vars or env-files. Never hardcode them in config YAML, logs, or scripts, and never commit them. Treat `HF_TOKEN` as sensitive — it grants access to gated model repos. Give any local `.env` file restrictive permissions (`chmod 600 examples\u002F.env`), keep it out of version control, and avoid echoing or logging secret values. For production, prefer a secrets manager or Docker secrets over an on-disk env-file.\n- **Data-directory permissions.** `data\u002F` must be writable by the container user (e.g. `nvidia`, uid 1000). Prefer matching the host directory's ownership to that uid (`sudo chown -R 1000:1000 data\u002F`) or running the container as your own user (`--user \"$(id -u):$(id -g)\"`). If you must loosen permissions, use group write with proper group membership (`chmod 775 data\u002F`). `chmod 777` is a last resort and must never be used on shared or production systems — a world-writable directory lets any local user or process tamper with pipeline outputs.\n- **Host networking.** The launch recipe uses `--network host` so the container can reach model endpoints on the host's `localhost` (on macOS\u002FWindows use `--add-host host.docker.internal:host-gateway` and address `http:\u002F\u002Fhost.docker.internal:\u003Cport>` instead). It removes network isolation, so when your endpoints are remote URLs prefer the default bridge network, and avoid host networking on shared or production hosts. Port mapping (`-p`) only publishes container ports to the host and does not grant access to host services.\n\n## Limitations\n\n- **GPU + Docker required.** All inference, schema validation, and `uv run`\u002F`pytest` commands run inside the `paidf-augmentation:latest` container; the host lacks the model dependencies. The `data_processing.alignment` post-processor additionally requires a CUDA GPU (cupy).\n- **Inference only.** This pipeline augments and generates media — it does not train or fine-tune models.\n- **Gated models.** Cosmos weights require an `HF_TOKEN` with the NVIDIA Open Model License accepted on each `nvidia\u002FCosmos-*` repo.\n- **image-edit is remote-only.** The `image-edit` model runs via a Gradio endpoint (`endpoints.image_edit`); there is no local executor for it.\n\n## Reference files\n\nSee [references\u002FREADME.md](references\u002FREADME.md) for the full index of reference docs (configuration schema, config decision tree, captioning strategies, evaluator setup, troubleshooting, and PAS person-attribute image edit).\n",{"data":34,"body":42},{"name":4,"description":6,"license":26,"metadata":35},{"owner":9,"service":4,"version":36,"reviewed":37,"author":9,"tags":38},"1.0.0","2026-05-30",[39,4,40,41],"physical-ai","cosmos","image-edit",{"type":43,"children":44},"root",[45,54,60,67,72,142,154,160,165,172,242,248,260,293,438,475,486,492,498,503,720,726,746,751,963,989,1026,1031,1102,1108,1113,1242,1248,1253,1431,1437,1516,1522,1678,1711,1717,1727,1733,1739,1949,1960,1966,2065,2071,2077,2089,2242,2248,2261,2372,2385,2487,2493,2535,2541,2595,2601,2606,2653,2659,2722,2735,2741,2776,2782,2842,2847,2852,3010,3016,3116,3122,3133],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"paidf-augmentation-pipeline-skill",[51],{"type":52,"value":53},"text","PAIDF Augmentation Pipeline Skill",{"type":46,"tag":55,"props":56,"children":57},"p",{},[58],{"type":52,"value":59},"Unified pipeline for augmenting camera data through NVIDIA generative AI models (Cosmos Transfer 2.5, Cosmos Predict 2.5, image edit) with automated captioning, generation, and quality evaluation.",{"type":46,"tag":61,"props":62,"children":64},"h2",{"id":63},"purpose",[65],{"type":52,"value":66},"Purpose",{"type":46,"tag":55,"props":68,"children":69},{},[70],{"type":52,"value":71},"Use this skill to drive the PAIDF augmentation pipeline end to end:",{"type":46,"tag":73,"props":74,"children":75},"ul",{},[76,88,107,124],{"type":46,"tag":77,"props":78,"children":79},"li",{},[80,86],{"type":46,"tag":81,"props":82,"children":83},"strong",{},[84],{"type":52,"value":85},"Select the right model",{"type":52,"value":87}," for the input and goal — Cosmos Transfer 2.5 (transform a video), Cosmos Predict 2.5 (generate or extend video), or image-edit (edit an image).",{"type":46,"tag":77,"props":89,"children":90},{},[91,96,98,105],{"type":46,"tag":81,"props":92,"children":93},{},[94],{"type":52,"value":95},"Author and validate YAML configs",{"type":52,"value":97}," against the ",{"type":46,"tag":99,"props":100,"children":102},"code",{"className":101},[],[103],{"type":52,"value":104},"PipelineConfig",{"type":52,"value":106}," Pydantic schema.",{"type":46,"tag":77,"props":108,"children":109},{},[110,115,117,122],{"type":46,"tag":81,"props":111,"children":112},{},[113],{"type":52,"value":114},"Configure captioning",{"type":52,"value":116}," (VLM, LLM, text, or file) and ",{"type":46,"tag":81,"props":118,"children":119},{},[120],{"type":52,"value":121},"evaluators",{"type":52,"value":123}," (hallucination check, attribute verification, VLM verification).",{"type":46,"tag":77,"props":125,"children":126},{},[127,132,134,140],{"type":46,"tag":81,"props":128,"children":129},{},[130],{"type":52,"value":131},"Launch and run",{"type":52,"value":133}," inference inside the ",{"type":46,"tag":99,"props":135,"children":137},{"className":136},[],[138],{"type":52,"value":139},"paidf-augmentation:latest",{"type":52,"value":141}," Docker container.",{"type":46,"tag":55,"props":143,"children":144},{},[145,147,152],{"type":52,"value":146},"Do ",{"type":46,"tag":81,"props":148,"children":149},{},[150],{"type":52,"value":151},"not",{"type":52,"value":153}," use this skill for training models, deploying clusters or NIM endpoints, or unrelated application\u002Fdatabase development.",{"type":46,"tag":61,"props":155,"children":157},{"id":156},"instructions",[158],{"type":52,"value":159},"Instructions",{"type":46,"tag":55,"props":161,"children":162},{},[163],{"type":52,"value":164},"Use this skill when working with the augmentation pipeline: running inference, authoring or editing YAML configs, debugging validation or runtime errors, adding new data samples, configuring captioning strategies, tuning generation parameters, or setting up evaluators. Prefer the documented config patterns and CLI workflows over ad-hoc approaches.",{"type":46,"tag":166,"props":167,"children":169},"h3",{"id":168},"use-case-references",[170],{"type":52,"value":171},"Use Case References",{"type":46,"tag":73,"props":173,"children":174},{},[175,194,227],{"type":46,"tag":77,"props":176,"children":177},{},[178,183,185,192],{"type":46,"tag":81,"props":179,"children":180},{},[181],{"type":52,"value":182},"PAS person-attribute image edit",{"type":52,"value":184},": For PAS folders, person clothing\u002Faccessory edits, Qwen image edit, PAS distribution YAMLs, single-ID image grids, attribute-value tables, and augmented PAS dataset creation, read ",{"type":46,"tag":186,"props":187,"children":189},"a",{"href":188},"references\u002Fperson-attribute-image-edit.md",[190],{"type":52,"value":191},"Person Attribute Image Edit",{"type":52,"value":193},".",{"type":46,"tag":77,"props":195,"children":196},{},[197,202,204,210,212,218,220,226],{"type":46,"tag":81,"props":198,"children":199},{},[200],{"type":52,"value":201},"AOI \u002F PCB image edit with output alignment",{"type":52,"value":203},": For PCB AOI workflows where the model output is upscaled and must be warped back into the input frame (MI-registration), see the ",{"type":46,"tag":205,"props":206,"children":207},"em",{},[208],{"type":52,"value":209},"Post-Processing: Data-Processing Alignment",{"type":52,"value":211}," section of ",{"type":46,"tag":186,"props":213,"children":215},{"href":214},"references\u002Fconfig-decision-tree.md",[216],{"type":52,"value":217},"Config Decision Tree",{"type":52,"value":219}," and example ",{"type":46,"tag":99,"props":221,"children":223},{"className":222},[],[224],{"type":52,"value":225},"configs\u002Fconfig_image_edit_aoi.yaml",{"type":52,"value":193},{"type":46,"tag":77,"props":228,"children":229},{},[230,235,237,241],{"type":46,"tag":81,"props":231,"children":232},{},[233],{"type":52,"value":234},"General model\u002Fconfig selection",{"type":52,"value":236},": For non-PAS model routing and config choice, read ",{"type":46,"tag":186,"props":238,"children":239},{"href":214},[240],{"type":52,"value":217},{"type":52,"value":193},{"type":46,"tag":166,"props":243,"children":245},{"id":244},"model-selection-ask-the-user",[246],{"type":52,"value":247},"Model Selection (Ask the User)",{"type":46,"tag":55,"props":249,"children":250},{},[251,253,258],{"type":52,"value":252},"When the user wants to run augmentation but hasn't specified a model, determine the right pipeline by asking about their ",{"type":46,"tag":81,"props":254,"children":255},{},[256],{"type":52,"value":257},"input type and goal",{"type":52,"value":259},":",{"type":46,"tag":73,"props":261,"children":262},{},[263,273,283],{"type":46,"tag":77,"props":264,"children":265},{},[266,271],{"type":46,"tag":81,"props":267,"children":268},{},[269],{"type":52,"value":270},"Cosmos Transfer 2.5",{"type":52,"value":272}," — video augmentation (style transfer). Takes a video and changes scene attributes (weather, lighting, clothing, colors) while preserving the structure and motion. Think of it as \"reskinning\" an existing video.",{"type":46,"tag":77,"props":274,"children":275},{},[276,281],{"type":46,"tag":81,"props":277,"children":278},{},[279],{"type":52,"value":280},"Cosmos Predict 2.5",{"type":52,"value":282}," — content generation\u002Fextension. Generates new video from text, extends video from a starting frame (image + text), or continues\u002Fpredicts from existing video (video + text). Think of it as \"creating new content\" rather than transforming existing content.",{"type":46,"tag":77,"props":284,"children":285},{},[286,291],{"type":46,"tag":81,"props":287,"children":288},{},[289],{"type":52,"value":290},"image edit",{"type":52,"value":292}," — image-to-image editing. Takes a single image and edits specific attributes based on a text instruction.",{"type":46,"tag":294,"props":295,"children":296},"table",{},[297,321],{"type":46,"tag":298,"props":299,"children":300},"thead",{},[301],{"type":46,"tag":302,"props":303,"children":304},"tr",{},[305,311,316],{"type":46,"tag":306,"props":307,"children":308},"th",{},[309],{"type":52,"value":310},"Input Type",{"type":46,"tag":306,"props":312,"children":313},{},[314],{"type":52,"value":315},"Pipeline",{"type":46,"tag":306,"props":317,"children":318},{},[319],{"type":52,"value":320},"Model",{"type":46,"tag":322,"props":323,"children":324},"tbody",{},[325,349,372,394,416],{"type":46,"tag":302,"props":326,"children":327},{},[328,334,338],{"type":46,"tag":329,"props":330,"children":331},"td",{},[332],{"type":52,"value":333},"Video — change scene attributes (weather, lighting, style)",{"type":46,"tag":329,"props":335,"children":336},{},[337],{"type":52,"value":270},{"type":46,"tag":329,"props":339,"children":340},{},[341,347],{"type":46,"tag":99,"props":342,"children":344},{"className":343},[],[345],{"type":52,"value":346},"cosmos-transfer2.5",{"type":52,"value":348}," — video-to-video augmentation with control modalities",{"type":46,"tag":302,"props":350,"children":351},{},[352,357,361],{"type":46,"tag":329,"props":353,"children":354},{},[355],{"type":52,"value":356},"Video + text — extend or predict continuation",{"type":46,"tag":329,"props":358,"children":359},{},[360],{"type":52,"value":280},{"type":46,"tag":329,"props":362,"children":363},{},[364,370],{"type":46,"tag":99,"props":365,"children":367},{"className":366},[],[368],{"type":52,"value":369},"cosmos-predict",{"type":52,"value":371}," — video-conditioned prediction\u002Fcontinuation",{"type":46,"tag":302,"props":373,"children":374},{},[375,380,384],{"type":46,"tag":329,"props":376,"children":377},{},[378],{"type":52,"value":379},"Image — edit specific attributes",{"type":46,"tag":329,"props":381,"children":382},{},[383],{"type":52,"value":290},{"type":46,"tag":329,"props":385,"children":386},{},[387,392],{"type":46,"tag":99,"props":388,"children":390},{"className":389},[],[391],{"type":52,"value":41},{"type":52,"value":393}," — image-to-image editing",{"type":46,"tag":302,"props":395,"children":396},{},[397,402,406],{"type":46,"tag":329,"props":398,"children":399},{},[400],{"type":52,"value":401},"Image + text — generate video from a starting frame",{"type":46,"tag":329,"props":403,"children":404},{},[405],{"type":52,"value":280},{"type":46,"tag":329,"props":407,"children":408},{},[409,414],{"type":46,"tag":99,"props":410,"children":412},{"className":411},[],[413],{"type":52,"value":369},{"type":52,"value":415}," — image-conditioned video generation",{"type":46,"tag":302,"props":417,"children":418},{},[419,424,428],{"type":46,"tag":329,"props":420,"children":421},{},[422],{"type":52,"value":423},"Text only — generate video from scratch",{"type":46,"tag":329,"props":425,"children":426},{},[427],{"type":52,"value":280},{"type":46,"tag":329,"props":429,"children":430},{},[431,436],{"type":46,"tag":99,"props":432,"children":434},{"className":433},[],[435],{"type":52,"value":369},{"type":52,"value":437}," — text-to-video generation",{"type":46,"tag":55,"props":439,"children":440},{},[441,446,448,453,455,460,462,467,469,474],{"type":46,"tag":81,"props":442,"children":443},{},[444],{"type":52,"value":445},"Key rule",{"type":52,"value":447},": If the input is a video and the user wants to ",{"type":46,"tag":81,"props":449,"children":450},{},[451],{"type":52,"value":452},"change scene attributes",{"type":52,"value":454}," (weather, lighting, clothing), use ",{"type":46,"tag":81,"props":456,"children":457},{},[458],{"type":52,"value":459},"Cosmos Transfer",{"type":52,"value":461},". If the user wants to ",{"type":46,"tag":81,"props":463,"children":464},{},[465],{"type":52,"value":466},"predict\u002Fgenerate new video",{"type":52,"value":468}," from text, image, or video conditioning, use ",{"type":46,"tag":81,"props":470,"children":471},{},[472],{"type":52,"value":473},"Cosmos Predict",{"type":52,"value":193},{"type":46,"tag":55,"props":476,"children":477},{},[478,480,484],{"type":52,"value":479},"See ",{"type":46,"tag":186,"props":481,"children":482},{"href":214},[483],{"type":52,"value":217},{"type":52,"value":485}," for detailed decision logic and config recommendations.",{"type":46,"tag":61,"props":487,"children":489},{"id":488},"before-you-start",[490],{"type":52,"value":491},"Before You Start",{"type":46,"tag":166,"props":493,"children":495},{"id":494},"step-1-prerequisites",[496],{"type":52,"value":497},"Step 1: Prerequisites",{"type":46,"tag":55,"props":499,"children":500},{},[501],{"type":52,"value":502},"Before launching the container, verify the following with the user:",{"type":46,"tag":504,"props":505,"children":506},"ol",{},[507,551,600,632],{"type":46,"tag":77,"props":508,"children":509},{},[510,515,517],{"type":46,"tag":81,"props":511,"children":512},{},[513],{"type":52,"value":514},"Docker with NVIDIA runtime",{"type":52,"value":516}," — required for all inference:",{"type":46,"tag":518,"props":519,"children":524},"pre",{"className":520,"code":521,"language":522,"meta":523,"style":523},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docker --version     # Must have NVIDIA container runtime installed\n","bash","",[525],{"type":46,"tag":99,"props":526,"children":527},{"__ignoreMap":523},[528],{"type":46,"tag":529,"props":530,"children":532},"span",{"class":531,"line":23},"line",[533,539,545],{"type":46,"tag":529,"props":534,"children":536},{"style":535},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[537],{"type":52,"value":538},"docker",{"type":46,"tag":529,"props":540,"children":542},{"style":541},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[543],{"type":52,"value":544}," --version",{"type":46,"tag":529,"props":546,"children":548},{"style":547},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[549],{"type":52,"value":550},"     # Must have NVIDIA container runtime installed\n",{"type":46,"tag":77,"props":552,"children":553},{},[554,567,569,575,577,583,585,591,593,598],{"type":46,"tag":81,"props":555,"children":556},{},[557,559,565],{"type":52,"value":558},"HuggingFace token (",{"type":46,"tag":99,"props":560,"children":562},{"className":561},[],[563],{"type":52,"value":564},"HF_TOKEN",{"type":52,"value":566},")",{"type":52,"value":568}," — required for Cosmos model downloads. The ",{"type":46,"tag":99,"props":570,"children":572},{"className":571},[],[573],{"type":52,"value":574},"nvidia\u002FCosmos-*",{"type":52,"value":576}," repos are gated under the NVIDIA Open Model License; the user must accept the license once on each repo they plan to use (e.g. ",{"type":46,"tag":99,"props":578,"children":580},{"className":579},[],[581],{"type":52,"value":582},"nvidia\u002FCosmos-Transfer2.5-2B",{"type":52,"value":584},", ",{"type":46,"tag":99,"props":586,"children":588},{"className":587},[],[589],{"type":52,"value":590},"nvidia\u002FCosmos-Predict2.5-2B",{"type":52,"value":592},") on huggingface.co before their token works. Confirm the user's ",{"type":46,"tag":99,"props":594,"children":596},{"className":595},[],[597],{"type":52,"value":564},{"type":52,"value":599}," and that the licenses are accepted.",{"type":46,"tag":77,"props":601,"children":602},{},[603,608,610,616,618,624,626,630],{"type":46,"tag":81,"props":604,"children":605},{},[606],{"type":52,"value":607},"VLM and LLM endpoints",{"type":52,"value":609}," — required for captioning and evaluation (unless using text\u002Ffile captioner). Default models are already configured in the example configs (",{"type":46,"tag":99,"props":611,"children":613},{"className":612},[],[614],{"type":52,"value":615},"Qwen\u002FQwen3-VL-30B-A3B-Instruct",{"type":52,"value":617}," for VLM, ",{"type":46,"tag":99,"props":619,"children":621},{"className":620},[],[622],{"type":52,"value":623},"Qwen\u002FQwen2.5-14B-Instruct",{"type":52,"value":625}," for LLM). If the user does ",{"type":46,"tag":81,"props":627,"children":628},{},[629],{"type":52,"value":151},{"type":52,"value":631}," already have running VLM\u002FLLM containers, ask them to provide endpoint URLs or help them set up the endpoints.",{"type":46,"tag":77,"props":633,"children":634},{},[635,640,642],{"type":46,"tag":81,"props":636,"children":637},{},[638],{"type":52,"value":639},"Generation model endpoints",{"type":52,"value":641}," — depends on the model and executor type:",{"type":46,"tag":73,"props":643,"children":644},{},[645,669,688],{"type":46,"tag":77,"props":646,"children":647},{},[648,652,654,659,661,667],{"type":46,"tag":81,"props":649,"children":650},{},[651],{"type":52,"value":270},{"type":52,"value":653}," — runs ",{"type":46,"tag":81,"props":655,"children":656},{},[657],{"type":52,"value":658},"locally",{"type":52,"value":660}," by default (",{"type":46,"tag":99,"props":662,"children":664},{"className":663},[],[665],{"type":52,"value":666},"executor_type: local",{"type":52,"value":668},"), no remote endpoint needed",{"type":46,"tag":77,"props":670,"children":671},{},[672,676,677,681,682,687],{"type":46,"tag":81,"props":673,"children":674},{},[675],{"type":52,"value":280},{"type":52,"value":653},{"type":46,"tag":81,"props":678,"children":679},{},[680],{"type":52,"value":658},{"type":52,"value":660},{"type":46,"tag":99,"props":683,"children":685},{"className":684},[],[686],{"type":52,"value":666},{"type":52,"value":668},{"type":46,"tag":77,"props":689,"children":690},{},[691,695,697,702,704,710,712,718],{"type":46,"tag":81,"props":692,"children":693},{},[694],{"type":52,"value":290},{"type":52,"value":696}," — runs via ",{"type":46,"tag":81,"props":698,"children":699},{},[700],{"type":52,"value":701},"remote endpoint",{"type":52,"value":703}," (",{"type":46,"tag":99,"props":705,"children":707},{"className":706},[],[708],{"type":52,"value":709},"executor_type: gradio",{"type":52,"value":711},"), requires ",{"type":46,"tag":99,"props":713,"children":715},{"className":714},[],[716],{"type":52,"value":717},"endpoints.image_edit",{"type":52,"value":719}," to be configured",{"type":46,"tag":166,"props":721,"children":723},{"id":722},"step-2-launch-the-docker-container-first-step-for-all-inference",[724],{"type":52,"value":725},"Step 2: Launch the Docker Container (First Step for All Inference)",{"type":46,"tag":55,"props":727,"children":728},{},[729,731,736,738,744],{"type":52,"value":730},"All inference runs inside the ",{"type":46,"tag":99,"props":732,"children":734},{"className":733},[],[735],{"type":52,"value":139},{"type":52,"value":737}," Docker container. This is always the first step — the host environment does not have the required model dependencies (e.g., ",{"type":46,"tag":99,"props":739,"children":741},{"className":740},[],[742],{"type":52,"value":743},"cosmos_transfer2",{"type":52,"value":745},").",{"type":46,"tag":55,"props":747,"children":748},{},[749],{"type":52,"value":750},"Launch the container interactively from the project root:",{"type":46,"tag":518,"props":752,"children":754},{"className":520,"code":753,"language":522,"meta":523,"style":523},"docker run -it --rm \\\n  --network host \\\n  --runtime nvidia \\\n  -e NVIDIA_VISIBLE_DEVICES=all \\\n  -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,video \\\n  -e HF_TOKEN=\u003Cuser's HF token> \\\n  -e HF_HOME=\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface \\\n  -e HUGGINGFACE_HUB_CACHE=\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface\u002Fhub \\\n  -v \"$HOME\u002F.cache\u002Fhuggingface:\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface\" \\\n  -v \"$(pwd)\u002Fmodules:\u002Fapp\u002Fmodules\" \\\n  -v \"$(pwd)\u002Fconfigs:\u002Fapp\u002Fconfigs\" \\\n  -v \"$(pwd)\u002Fdata:\u002Fapp\u002Fdata\" \\\n  --entrypoint \u002Fbin\u002Fbash \\\n  paidf-augmentation:latest\n",[755],{"type":46,"tag":99,"props":756,"children":757},{"__ignoreMap":523},[758,786,804,822,840,857,891,900,909,918,927,936,945,954],{"type":46,"tag":529,"props":759,"children":760},{"class":531,"line":23},[761,765,770,775,780],{"type":46,"tag":529,"props":762,"children":763},{"style":535},[764],{"type":52,"value":538},{"type":46,"tag":529,"props":766,"children":767},{"style":541},[768],{"type":52,"value":769}," run",{"type":46,"tag":529,"props":771,"children":772},{"style":541},[773],{"type":52,"value":774}," -it",{"type":46,"tag":529,"props":776,"children":777},{"style":541},[778],{"type":52,"value":779}," --rm",{"type":46,"tag":529,"props":781,"children":783},{"style":782},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[784],{"type":52,"value":785}," \\\n",{"type":46,"tag":529,"props":787,"children":789},{"class":531,"line":788},2,[790,795,800],{"type":46,"tag":529,"props":791,"children":792},{"style":541},[793],{"type":52,"value":794},"  --network",{"type":46,"tag":529,"props":796,"children":797},{"style":541},[798],{"type":52,"value":799}," host",{"type":46,"tag":529,"props":801,"children":802},{"style":782},[803],{"type":52,"value":785},{"type":46,"tag":529,"props":805,"children":807},{"class":531,"line":806},3,[808,813,818],{"type":46,"tag":529,"props":809,"children":810},{"style":541},[811],{"type":52,"value":812},"  --runtime",{"type":46,"tag":529,"props":814,"children":815},{"style":541},[816],{"type":52,"value":817}," nvidia",{"type":46,"tag":529,"props":819,"children":820},{"style":782},[821],{"type":52,"value":785},{"type":46,"tag":529,"props":823,"children":825},{"class":531,"line":824},4,[826,831,836],{"type":46,"tag":529,"props":827,"children":828},{"style":541},[829],{"type":52,"value":830},"  -e",{"type":46,"tag":529,"props":832,"children":833},{"style":541},[834],{"type":52,"value":835}," NVIDIA_VISIBLE_DEVICES=all",{"type":46,"tag":529,"props":837,"children":838},{"style":782},[839],{"type":52,"value":785},{"type":46,"tag":529,"props":841,"children":843},{"class":531,"line":842},5,[844,848,853],{"type":46,"tag":529,"props":845,"children":846},{"style":541},[847],{"type":52,"value":830},{"type":46,"tag":529,"props":849,"children":850},{"style":541},[851],{"type":52,"value":852}," NVIDIA_DRIVER_CAPABILITIES=compute,utility,video",{"type":46,"tag":529,"props":854,"children":855},{"style":782},[856],{"type":52,"value":785},{"type":46,"tag":529,"props":858,"children":860},{"class":531,"line":859},6,[861,865,870,876,881,886],{"type":46,"tag":529,"props":862,"children":863},{"style":541},[864],{"type":52,"value":830},{"type":46,"tag":529,"props":866,"children":867},{"style":541},[868],{"type":52,"value":869}," HF_TOKEN=",{"type":46,"tag":529,"props":871,"children":873},{"style":872},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[874],{"type":52,"value":875},"\u003C",{"type":46,"tag":529,"props":877,"children":878},{"style":541},[879],{"type":52,"value":880},"user",{"type":46,"tag":529,"props":882,"children":883},{"style":872},[884],{"type":52,"value":885},"'",{"type":46,"tag":529,"props":887,"children":888},{"style":541},[889],{"type":52,"value":890},"s HF token> \\\n",{"type":46,"tag":529,"props":892,"children":894},{"class":531,"line":893},7,[895],{"type":46,"tag":529,"props":896,"children":897},{"style":541},[898],{"type":52,"value":899},"  -e HF_HOME=\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface \\\n",{"type":46,"tag":529,"props":901,"children":903},{"class":531,"line":902},8,[904],{"type":46,"tag":529,"props":905,"children":906},{"style":541},[907],{"type":52,"value":908},"  -e HUGGINGFACE_HUB_CACHE=\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface\u002Fhub \\\n",{"type":46,"tag":529,"props":910,"children":912},{"class":531,"line":911},9,[913],{"type":46,"tag":529,"props":914,"children":915},{"style":541},[916],{"type":52,"value":917},"  -v \"$HOME\u002F.cache\u002Fhuggingface:\u002Fhome\u002Fnvidia\u002F.cache\u002Fhuggingface\" \\\n",{"type":46,"tag":529,"props":919,"children":921},{"class":531,"line":920},10,[922],{"type":46,"tag":529,"props":923,"children":924},{"style":541},[925],{"type":52,"value":926},"  -v \"$(pwd)\u002Fmodules:\u002Fapp\u002Fmodules\" \\\n",{"type":46,"tag":529,"props":928,"children":930},{"class":531,"line":929},11,[931],{"type":46,"tag":529,"props":932,"children":933},{"style":541},[934],{"type":52,"value":935},"  -v \"$(pwd)\u002Fconfigs:\u002Fapp\u002Fconfigs\" \\\n",{"type":46,"tag":529,"props":937,"children":939},{"class":531,"line":938},12,[940],{"type":46,"tag":529,"props":941,"children":942},{"style":541},[943],{"type":52,"value":944},"  -v \"$(pwd)\u002Fdata:\u002Fapp\u002Fdata\" \\\n",{"type":46,"tag":529,"props":946,"children":948},{"class":531,"line":947},13,[949],{"type":46,"tag":529,"props":950,"children":951},{"style":541},[952],{"type":52,"value":953},"  --entrypoint \u002Fbin\u002Fbash \\\n",{"type":46,"tag":529,"props":955,"children":957},{"class":531,"line":956},14,[958],{"type":46,"tag":529,"props":959,"children":960},{"style":541},[961],{"type":52,"value":962},"  paidf-augmentation:latest\n",{"type":46,"tag":55,"props":964,"children":965},{},[966,971,973,979,981,987],{"type":46,"tag":81,"props":967,"children":968},{},[969],{"type":52,"value":970},"Optional — pre-configured endpoints and cloud storage:",{"type":52,"value":972}," add ",{"type":46,"tag":99,"props":974,"children":976},{"className":975},[],[977],{"type":52,"value":978},"--env-file examples\u002F.env",{"type":52,"value":980}," and ",{"type":46,"tag":99,"props":982,"children":984},{"className":983},[],[985],{"type":52,"value":986},"-v \"$(pwd)\u002Fexamples\u002Fsecrets.json:\u002Fvar\u002Fsecrets\u002Fsecrets.json:ro\"",{"type":52,"value":988}," to the command above. Both are only needed if you already have endpoint URLs or cloud storage credentials; runs from scratch with local executors and local file paths can omit them.",{"type":46,"tag":990,"props":991,"children":992},"blockquote",{},[993],{"type":46,"tag":55,"props":994,"children":995},{},[996,1001,1003,1009,1011,1016,1018,1024],{"type":46,"tag":81,"props":997,"children":998},{},[999],{"type":52,"value":1000},"Security:",{"type":52,"value":1002}," ",{"type":46,"tag":99,"props":1004,"children":1006},{"className":1005},[],[1007],{"type":52,"value":1008},"--network host",{"type":52,"value":1010}," removes network isolation, and ",{"type":46,"tag":99,"props":1012,"children":1014},{"className":1013},[],[1015],{"type":52,"value":564},{"type":52,"value":1017},"\u002FAPI keys are passed via environment variables. Review ",{"type":46,"tag":186,"props":1019,"children":1021},{"href":1020},"#security-notes",[1022],{"type":52,"value":1023},"Security Notes",{"type":52,"value":1025}," before running on a shared or production host.",{"type":46,"tag":55,"props":1027,"children":1028},{},[1029],{"type":52,"value":1030},"Key volume mounts:",{"type":46,"tag":73,"props":1032,"children":1033},{},[1034,1052,1068,1089],{"type":46,"tag":77,"props":1035,"children":1036},{},[1037,1043,1044,1050],{"type":46,"tag":99,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":52,"value":1042},"modules\u002F",{"type":52,"value":980},{"type":46,"tag":99,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":52,"value":1049},"configs\u002F",{"type":52,"value":1051}," are mounted from the host, so edits take effect without rebuilding",{"type":46,"tag":77,"props":1053,"children":1054},{},[1055,1061,1063,1067],{"type":46,"tag":99,"props":1056,"children":1058},{"className":1057},[],[1059],{"type":52,"value":1060},"data\u002F",{"type":52,"value":1062}," is mounted for pipeline output (videos, captions, metadata) — it must be writable by the container user (see ",{"type":46,"tag":186,"props":1064,"children":1065},{"href":1020},[1066],{"type":52,"value":1023},{"type":52,"value":566},{"type":46,"tag":77,"props":1069,"children":1070},{},[1071,1073,1079,1081,1087],{"type":52,"value":1072},"the host HuggingFace cache (",{"type":46,"tag":99,"props":1074,"children":1076},{"className":1075},[],[1077],{"type":52,"value":1078},"$HOME\u002F.cache\u002Fhuggingface",{"type":52,"value":1080},") is mounted at the container's ",{"type":46,"tag":99,"props":1082,"children":1084},{"className":1083},[],[1085],{"type":52,"value":1086},"HF_HOME",{"type":52,"value":1088}," to avoid re-downloading models between runs",{"type":46,"tag":77,"props":1090,"children":1091},{},[1092,1094,1100],{"type":52,"value":1093},"the optional ",{"type":46,"tag":99,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":52,"value":1099},"secrets.json",{"type":52,"value":1101}," mount is read-only and supplies cloud storage credentials",{"type":46,"tag":166,"props":1103,"children":1105},{"id":1104},"step-3-run-the-pipeline-inside-the-container",[1106],{"type":52,"value":1107},"Step 3: Run the Pipeline (Inside the Container)",{"type":46,"tag":55,"props":1109,"children":1110},{},[1111],{"type":52,"value":1112},"Once inside the container, run inference with:",{"type":46,"tag":518,"props":1114,"children":1116},{"className":520,"code":1115,"language":522,"meta":523,"style":523},"uv run modules\u002Fcli.py --config configs\u002F\u003Cconfig_file>.yaml\n\n# With OmegaConf CLI overrides (dot-list syntax)\nuv run modules\u002Fcli.py --config configs\u002Fconfig_isaacsim.yaml \\\n  data.0.inputs.rgb=\u002Fpath\u002Fto\u002Fvideo.mp4 \\\n  augmentation.parameters.seed=42\n",[1117],{"type":46,"tag":99,"props":1118,"children":1119},{"__ignoreMap":523},[1120,1171,1180,1188,1216,1228],{"type":46,"tag":529,"props":1121,"children":1122},{"class":531,"line":23},[1123,1128,1132,1137,1142,1147,1151,1156,1161,1166],{"type":46,"tag":529,"props":1124,"children":1125},{"style":535},[1126],{"type":52,"value":1127},"uv",{"type":46,"tag":529,"props":1129,"children":1130},{"style":541},[1131],{"type":52,"value":769},{"type":46,"tag":529,"props":1133,"children":1134},{"style":541},[1135],{"type":52,"value":1136}," modules\u002Fcli.py",{"type":46,"tag":529,"props":1138,"children":1139},{"style":541},[1140],{"type":52,"value":1141}," --config",{"type":46,"tag":529,"props":1143,"children":1144},{"style":541},[1145],{"type":52,"value":1146}," configs\u002F",{"type":46,"tag":529,"props":1148,"children":1149},{"style":872},[1150],{"type":52,"value":875},{"type":46,"tag":529,"props":1152,"children":1153},{"style":541},[1154],{"type":52,"value":1155},"config_fil",{"type":46,"tag":529,"props":1157,"children":1158},{"style":782},[1159],{"type":52,"value":1160},"e",{"type":46,"tag":529,"props":1162,"children":1163},{"style":872},[1164],{"type":52,"value":1165},">",{"type":46,"tag":529,"props":1167,"children":1168},{"style":541},[1169],{"type":52,"value":1170},".yaml\n",{"type":46,"tag":529,"props":1172,"children":1173},{"class":531,"line":788},[1174],{"type":46,"tag":529,"props":1175,"children":1177},{"emptyLinePlaceholder":1176},true,[1178],{"type":52,"value":1179},"\n",{"type":46,"tag":529,"props":1181,"children":1182},{"class":531,"line":806},[1183],{"type":46,"tag":529,"props":1184,"children":1185},{"style":547},[1186],{"type":52,"value":1187},"# With OmegaConf CLI overrides (dot-list syntax)\n",{"type":46,"tag":529,"props":1189,"children":1190},{"class":531,"line":824},[1191,1195,1199,1203,1207,1212],{"type":46,"tag":529,"props":1192,"children":1193},{"style":535},[1194],{"type":52,"value":1127},{"type":46,"tag":529,"props":1196,"children":1197},{"style":541},[1198],{"type":52,"value":769},{"type":46,"tag":529,"props":1200,"children":1201},{"style":541},[1202],{"type":52,"value":1136},{"type":46,"tag":529,"props":1204,"children":1205},{"style":541},[1206],{"type":52,"value":1141},{"type":46,"tag":529,"props":1208,"children":1209},{"style":541},[1210],{"type":52,"value":1211}," configs\u002Fconfig_isaacsim.yaml",{"type":46,"tag":529,"props":1213,"children":1214},{"style":782},[1215],{"type":52,"value":785},{"type":46,"tag":529,"props":1217,"children":1218},{"class":531,"line":842},[1219,1224],{"type":46,"tag":529,"props":1220,"children":1221},{"style":541},[1222],{"type":52,"value":1223},"  data.0.inputs.rgb=\u002Fpath\u002Fto\u002Fvideo.mp4",{"type":46,"tag":529,"props":1225,"children":1226},{"style":782},[1227],{"type":52,"value":785},{"type":46,"tag":529,"props":1229,"children":1230},{"class":531,"line":859},[1231,1236],{"type":46,"tag":529,"props":1232,"children":1233},{"style":541},[1234],{"type":52,"value":1235},"  augmentation.parameters.seed=",{"type":46,"tag":529,"props":1237,"children":1239},{"style":1238},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1240],{"type":52,"value":1241},"42\n",{"type":46,"tag":166,"props":1243,"children":1245},{"id":1244},"environment-variables",[1246],{"type":52,"value":1247},"Environment Variables",{"type":46,"tag":55,"props":1249,"children":1250},{},[1251],{"type":52,"value":1252},"Endpoints and API keys can be set via env vars (take precedence over config values):",{"type":46,"tag":294,"props":1254,"children":1255},{},[1256,1271],{"type":46,"tag":298,"props":1257,"children":1258},{},[1259],{"type":46,"tag":302,"props":1260,"children":1261},{},[1262,1267],{"type":46,"tag":306,"props":1263,"children":1264},{},[1265],{"type":52,"value":1266},"Variable",{"type":46,"tag":306,"props":1268,"children":1269},{},[1270],{"type":52,"value":66},{"type":46,"tag":322,"props":1272,"children":1273},{},[1274,1295,1312,1329,1346,1363,1380,1397,1414],{"type":46,"tag":302,"props":1275,"children":1276},{},[1277,1285],{"type":46,"tag":329,"props":1278,"children":1279},{},[1280],{"type":46,"tag":99,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":52,"value":564},{"type":46,"tag":329,"props":1286,"children":1287},{},[1288,1293],{"type":46,"tag":81,"props":1289,"children":1290},{},[1291],{"type":52,"value":1292},"Required.",{"type":52,"value":1294}," HuggingFace token for model downloads",{"type":46,"tag":302,"props":1296,"children":1297},{},[1298,1307],{"type":46,"tag":329,"props":1299,"children":1300},{},[1301],{"type":46,"tag":99,"props":1302,"children":1304},{"className":1303},[],[1305],{"type":52,"value":1306},"VLM_API_KEY",{"type":46,"tag":329,"props":1308,"children":1309},{},[1310],{"type":52,"value":1311},"API key for VLM endpoints",{"type":46,"tag":302,"props":1313,"children":1314},{},[1315,1324],{"type":46,"tag":329,"props":1316,"children":1317},{},[1318],{"type":46,"tag":99,"props":1319,"children":1321},{"className":1320},[],[1322],{"type":52,"value":1323},"LLM_API_KEY",{"type":46,"tag":329,"props":1325,"children":1326},{},[1327],{"type":52,"value":1328},"API key for LLM endpoints",{"type":46,"tag":302,"props":1330,"children":1331},{},[1332,1341],{"type":46,"tag":329,"props":1333,"children":1334},{},[1335],{"type":46,"tag":99,"props":1336,"children":1338},{"className":1337},[],[1339],{"type":52,"value":1340},"VLM_ENDPOINT_URL",{"type":46,"tag":329,"props":1342,"children":1343},{},[1344],{"type":52,"value":1345},"Override VLM endpoint URL",{"type":46,"tag":302,"props":1347,"children":1348},{},[1349,1358],{"type":46,"tag":329,"props":1350,"children":1351},{},[1352],{"type":46,"tag":99,"props":1353,"children":1355},{"className":1354},[],[1356],{"type":52,"value":1357},"LLM_ENDPOINT_URL",{"type":46,"tag":329,"props":1359,"children":1360},{},[1361],{"type":52,"value":1362},"Override LLM endpoint URL",{"type":46,"tag":302,"props":1364,"children":1365},{},[1366,1375],{"type":46,"tag":329,"props":1367,"children":1368},{},[1369],{"type":46,"tag":99,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":52,"value":1374},"COSMOS_ENDPOINT_URL",{"type":46,"tag":329,"props":1376,"children":1377},{},[1378],{"type":52,"value":1379},"Override Cosmos Transfer endpoint",{"type":46,"tag":302,"props":1381,"children":1382},{},[1383,1392],{"type":46,"tag":329,"props":1384,"children":1385},{},[1386],{"type":46,"tag":99,"props":1387,"children":1389},{"className":1388},[],[1390],{"type":52,"value":1391},"COSMOS_PREDICT_ENDPOINT_URL",{"type":46,"tag":329,"props":1393,"children":1394},{},[1395],{"type":52,"value":1396},"Override Cosmos Predict endpoint",{"type":46,"tag":302,"props":1398,"children":1399},{},[1400,1409],{"type":46,"tag":329,"props":1401,"children":1402},{},[1403],{"type":46,"tag":99,"props":1404,"children":1406},{"className":1405},[],[1407],{"type":52,"value":1408},"IMAGE_EDIT_ENDPOINT_URL",{"type":46,"tag":329,"props":1410,"children":1411},{},[1412],{"type":52,"value":1413},"Override image edit endpoint",{"type":46,"tag":302,"props":1415,"children":1416},{},[1417,1426],{"type":46,"tag":329,"props":1418,"children":1419},{},[1420],{"type":46,"tag":99,"props":1421,"children":1423},{"className":1422},[],[1424],{"type":52,"value":1425},"LOG_LEVEL",{"type":46,"tag":329,"props":1427,"children":1428},{},[1429],{"type":52,"value":1430},"Logging level (DEBUG, INFO, WARNING, ERROR)",{"type":46,"tag":61,"props":1432,"children":1434},{"id":1433},"configuration-schema",[1435],{"type":52,"value":1436},"Configuration Schema",{"type":46,"tag":55,"props":1438,"children":1439},{},[1440,1442,1447,1449,1455,1457,1463,1465,1471,1472,1478,1480,1486,1487,1492,1494,1500,1502,1507,1509,1515],{"type":52,"value":1441},"All YAML configs are validated against the ",{"type":46,"tag":99,"props":1443,"children":1445},{"className":1444},[],[1446],{"type":52,"value":104},{"type":52,"value":1448}," Pydantic model (",{"type":46,"tag":99,"props":1450,"children":1452},{"className":1451},[],[1453],{"type":52,"value":1454},"modules\u002Faug_utils\u002Fschema\u002F",{"type":52,"value":1456},") and have seven top-level sections: ",{"type":46,"tag":99,"props":1458,"children":1460},{"className":1459},[],[1461],{"type":52,"value":1462},"data",{"type":52,"value":1464}," (input\u002Foutput paths), ",{"type":46,"tag":99,"props":1466,"children":1468},{"className":1467},[],[1469],{"type":52,"value":1470},"endpoints",{"type":52,"value":584},{"type":46,"tag":99,"props":1473,"children":1475},{"className":1474},[],[1476],{"type":52,"value":1477},"pipeline",{"type":52,"value":1479}," (retry\u002Flogging\u002Feval settings), ",{"type":46,"tag":99,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":52,"value":1485},"captioning",{"type":52,"value":584},{"type":46,"tag":99,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":52,"value":4},{"type":52,"value":1493}," (model + parameters + control modalities), ",{"type":46,"tag":99,"props":1495,"children":1497},{"className":1496},[],[1498],{"type":52,"value":1499},"data_processing",{"type":52,"value":1501}," (optional post-processors), and ",{"type":46,"tag":99,"props":1503,"children":1505},{"className":1504},[],[1506],{"type":52,"value":121},{"type":52,"value":1508},". For full per-section YAML examples, read ",{"type":46,"tag":186,"props":1510,"children":1512},{"href":1511},"references\u002Fconfiguration-schema.md",[1513],{"type":52,"value":1514},"configuration-schema.md",{"type":52,"value":193},{"type":46,"tag":61,"props":1517,"children":1519},{"id":1518},"supported-models",[1520],{"type":52,"value":1521},"Supported Models",{"type":46,"tag":294,"props":1523,"children":1524},{},[1525,1560],{"type":46,"tag":298,"props":1526,"children":1527},{},[1528],{"type":46,"tag":302,"props":1529,"children":1530},{},[1531,1535,1540,1545,1550,1555],{"type":46,"tag":306,"props":1532,"children":1533},{},[1534],{"type":52,"value":320},{"type":46,"tag":306,"props":1536,"children":1537},{},[1538],{"type":52,"value":1539},"Name Enum",{"type":46,"tag":306,"props":1541,"children":1542},{},[1543],{"type":52,"value":1544},"Input",{"type":46,"tag":306,"props":1546,"children":1547},{},[1548],{"type":52,"value":1549},"Output",{"type":46,"tag":306,"props":1551,"children":1552},{},[1553],{"type":52,"value":1554},"Executor Types",{"type":46,"tag":306,"props":1556,"children":1557},{},[1558],{"type":52,"value":1559},"Endpoint Key",{"type":46,"tag":322,"props":1561,"children":1562},{},[1563,1602,1640],{"type":46,"tag":302,"props":1564,"children":1565},{},[1566,1570,1578,1583,1588,1593],{"type":46,"tag":329,"props":1567,"children":1568},{},[1569],{"type":52,"value":270},{"type":46,"tag":329,"props":1571,"children":1572},{},[1573],{"type":46,"tag":99,"props":1574,"children":1576},{"className":1575},[],[1577],{"type":52,"value":346},{"type":46,"tag":329,"props":1579,"children":1580},{},[1581],{"type":52,"value":1582},"Video + control modalities",{"type":46,"tag":329,"props":1584,"children":1585},{},[1586],{"type":52,"value":1587},"Video",{"type":46,"tag":329,"props":1589,"children":1590},{},[1591],{"type":52,"value":1592},"local, gradio, passthrough",{"type":46,"tag":329,"props":1594,"children":1595},{},[1596],{"type":46,"tag":99,"props":1597,"children":1599},{"className":1598},[],[1600],{"type":52,"value":1601},"cosmos_transfer",{"type":46,"tag":302,"props":1603,"children":1604},{},[1605,1609,1617,1622,1626,1631],{"type":46,"tag":329,"props":1606,"children":1607},{},[1608],{"type":52,"value":280},{"type":46,"tag":329,"props":1610,"children":1611},{},[1612],{"type":46,"tag":99,"props":1613,"children":1615},{"className":1614},[],[1616],{"type":52,"value":369},{"type":46,"tag":329,"props":1618,"children":1619},{},[1620],{"type":52,"value":1621},"Text, Image+Text, or Video+Text",{"type":46,"tag":329,"props":1623,"children":1624},{},[1625],{"type":52,"value":1587},{"type":46,"tag":329,"props":1627,"children":1628},{},[1629],{"type":52,"value":1630},"local, gradio",{"type":46,"tag":329,"props":1632,"children":1633},{},[1634],{"type":46,"tag":99,"props":1635,"children":1637},{"className":1636},[],[1638],{"type":52,"value":1639},"cosmos_predict",{"type":46,"tag":302,"props":1641,"children":1642},{},[1643,1647,1655,1660,1664,1669],{"type":46,"tag":329,"props":1644,"children":1645},{},[1646],{"type":52,"value":290},{"type":46,"tag":329,"props":1648,"children":1649},{},[1650],{"type":46,"tag":99,"props":1651,"children":1653},{"className":1652},[],[1654],{"type":52,"value":41},{"type":46,"tag":329,"props":1656,"children":1657},{},[1658],{"type":52,"value":1659},"Image",{"type":46,"tag":329,"props":1661,"children":1662},{},[1663],{"type":52,"value":1659},{"type":46,"tag":329,"props":1665,"children":1666},{},[1667],{"type":52,"value":1668},"gradio",{"type":46,"tag":329,"props":1670,"children":1671},{},[1672],{"type":46,"tag":99,"props":1673,"children":1675},{"className":1674},[],[1676],{"type":52,"value":1677},"image_edit",{"type":46,"tag":55,"props":1679,"children":1680},{},[1681,1683,1688,1690,1696,1698,1702,1704,1709],{"type":52,"value":1682},"Cosmos Predict's input modes are text-only, image+text (start frame), or video+text (extend\u002Fpredict). The ",{"type":46,"tag":81,"props":1684,"children":1685},{},[1686],{"type":52,"value":1687},"local",{"type":52,"value":1689}," executor runs via a ",{"type":46,"tag":99,"props":1691,"children":1693},{"className":1692},[],[1694],{"type":52,"value":1695},"torchrun",{"type":52,"value":1697}," subprocess (multi-GPU, no remote endpoint); the ",{"type":46,"tag":81,"props":1699,"children":1700},{},[1701],{"type":52,"value":1668},{"type":52,"value":1703}," executor calls a remote Gradio API endpoint. See ",{"type":46,"tag":205,"props":1705,"children":1706},{},[1707],{"type":52,"value":1708},"Model Selection",{"type":52,"value":1710}," above for how to choose a model from the input type and goal.",{"type":46,"tag":61,"props":1712,"children":1714},{"id":1713},"pipeline-flow",[1715],{"type":52,"value":1716},"Pipeline Flow",{"type":46,"tag":518,"props":1718,"children":1722},{"className":1719,"code":1721,"language":52},[1720],"language-text","1. Load & validate config (Pydantic PipelineConfig)\n2. Initialize captioner (factory dispatch from config)\n3. Initialize evaluators (hallucination, attribute verification)\n4. Initialize generator (factory dispatch from augmentation.model.name)\n5. For each data sample:\n   a. Run captioning -> produce prompt\n   b. Run generation (with seed) -> produce output media\n   c. Run hallucination check (if configured)\n   d. Run attribute verification (if configured)\n      - LLM generates MCQ questions from variables\n      - VLM answers questions against output media\n   e. On failure: retry with incremented seed (up to `pipeline.retry`)\n      - If `pipeline.regenerate_caption_on_retry: true` and a captioner is configured, rerun captioning and overwrite the prompt saved to `output.caption` before retrying generation\n   f. Write metadata JSON\n",[1723],{"type":46,"tag":99,"props":1724,"children":1725},{"__ignoreMap":523},[1726],{"type":52,"value":1721},{"type":46,"tag":61,"props":1728,"children":1730},{"id":1729},"examples",[1731],{"type":52,"value":1732},"Examples",{"type":46,"tag":166,"props":1734,"children":1736},{"id":1735},"example-configs",[1737],{"type":52,"value":1738},"Example configs",{"type":46,"tag":294,"props":1740,"children":1741},{},[1742,1762],{"type":46,"tag":298,"props":1743,"children":1744},{},[1745],{"type":46,"tag":302,"props":1746,"children":1747},{},[1748,1753,1757],{"type":46,"tag":306,"props":1749,"children":1750},{},[1751],{"type":52,"value":1752},"Config",{"type":46,"tag":306,"props":1754,"children":1755},{},[1756],{"type":52,"value":320},{"type":46,"tag":306,"props":1758,"children":1759},{},[1760],{"type":52,"value":1761},"Use Case",{"type":46,"tag":322,"props":1763,"children":1764},{},[1765,1794,1815,1836,1857,1878,1906,1927],{"type":46,"tag":302,"props":1766,"children":1767},{},[1768,1777,1781],{"type":46,"tag":329,"props":1769,"children":1770},{},[1771],{"type":46,"tag":99,"props":1772,"children":1774},{"className":1773},[],[1775],{"type":52,"value":1776},"config_starter.yaml",{"type":46,"tag":329,"props":1778,"children":1779},{},[1780],{"type":52,"value":346},{"type":46,"tag":329,"props":1782,"children":1783},{},[1784,1786,1792],{"type":52,"value":1785},"Minimal first-run on bundled ",{"type":46,"tag":99,"props":1787,"children":1789},{"className":1788},[],[1790],{"type":52,"value":1791},"data\u002Fsample_input.mp4",{"type":52,"value":1793}," (hallucination check)",{"type":46,"tag":302,"props":1795,"children":1796},{},[1797,1806,1810],{"type":46,"tag":329,"props":1798,"children":1799},{},[1800],{"type":46,"tag":99,"props":1801,"children":1803},{"className":1802},[],[1804],{"type":52,"value":1805},"config_carla_vlm_llm.yaml",{"type":46,"tag":329,"props":1807,"children":1808},{},[1809],{"type":52,"value":346},{"type":46,"tag":329,"props":1811,"children":1812},{},[1813],{"type":52,"value":1814},"Traffic scene augmentation (no evaluators)",{"type":46,"tag":302,"props":1816,"children":1817},{},[1818,1827,1831],{"type":46,"tag":329,"props":1819,"children":1820},{},[1821],{"type":46,"tag":99,"props":1822,"children":1824},{"className":1823},[],[1825],{"type":52,"value":1826},"config_isaacsim.yaml",{"type":46,"tag":329,"props":1828,"children":1829},{},[1830],{"type":52,"value":346},{"type":46,"tag":329,"props":1832,"children":1833},{},[1834],{"type":52,"value":1835},"Warehouse scene + hallucination\u002Fattribute\u002FVLM verification",{"type":46,"tag":302,"props":1837,"children":1838},{},[1839,1848,1852],{"type":46,"tag":329,"props":1840,"children":1841},{},[1842],{"type":46,"tag":99,"props":1843,"children":1845},{"className":1844},[],[1846],{"type":52,"value":1847},"config_verification.yaml",{"type":46,"tag":329,"props":1849,"children":1850},{},[1851],{"type":52,"value":346},{"type":46,"tag":329,"props":1853,"children":1854},{},[1855],{"type":52,"value":1856},"Attribute + VLM verification only",{"type":46,"tag":302,"props":1858,"children":1859},{},[1860,1869,1873],{"type":46,"tag":329,"props":1861,"children":1862},{},[1863],{"type":46,"tag":99,"props":1864,"children":1866},{"className":1865},[],[1867],{"type":52,"value":1868},"config_image_edit_verification.yaml",{"type":46,"tag":329,"props":1870,"children":1871},{},[1872],{"type":52,"value":41},{"type":46,"tag":329,"props":1874,"children":1875},{},[1876],{"type":52,"value":1877},"Person clothing editing + verification",{"type":46,"tag":302,"props":1879,"children":1880},{},[1881,1890,1894],{"type":46,"tag":329,"props":1882,"children":1883},{},[1884],{"type":46,"tag":99,"props":1885,"children":1887},{"className":1886},[],[1888],{"type":52,"value":1889},"config_image_edit_aoi.yaml",{"type":46,"tag":329,"props":1891,"children":1892},{},[1893],{"type":52,"value":41},{"type":46,"tag":329,"props":1895,"children":1896},{},[1897,1899,1905],{"type":52,"value":1898},"AOI PCB inference with post-output MI alignment (",{"type":46,"tag":99,"props":1900,"children":1902},{"className":1901},[],[1903],{"type":52,"value":1904},"data_processing.alignment",{"type":52,"value":566},{"type":46,"tag":302,"props":1907,"children":1908},{},[1909,1918,1922],{"type":46,"tag":329,"props":1910,"children":1911},{},[1912],{"type":46,"tag":99,"props":1913,"children":1915},{"className":1914},[],[1916],{"type":52,"value":1917},"config_real_outdoor.yaml",{"type":46,"tag":329,"props":1919,"children":1920},{},[1921],{"type":52,"value":346},{"type":46,"tag":329,"props":1923,"children":1924},{},[1925],{"type":52,"value":1926},"Multi-modal outdoor scenes",{"type":46,"tag":302,"props":1928,"children":1929},{},[1930,1939,1944],{"type":46,"tag":329,"props":1931,"children":1932},{},[1933],{"type":46,"tag":99,"props":1934,"children":1936},{"className":1935},[],[1937],{"type":52,"value":1938},"workflow_example.yaml",{"type":46,"tag":329,"props":1940,"children":1941},{},[1942],{"type":52,"value":1943},"N\u002FA",{"type":46,"tag":329,"props":1945,"children":1946},{},[1947],{"type":52,"value":1948},"Batch config generation with dependent attribute sampling",{"type":46,"tag":55,"props":1950,"children":1951},{},[1952,1954,1959],{"type":52,"value":1953},"Captioning and evaluator details for each config are in ",{"type":46,"tag":186,"props":1955,"children":1956},{"href":214},[1957],{"type":52,"value":1958},"config-decision-tree.md",{"type":52,"value":193},{"type":46,"tag":166,"props":1961,"children":1963},{"id":1962},"worked-example-re-render-a-video-as-a-rainy-night",[1964],{"type":52,"value":1965},"Worked example: re-render a video as a rainy night",{"type":46,"tag":504,"props":1967,"children":1968},{},[1969,1999,2024,2048],{"type":46,"tag":77,"props":1970,"children":1971},{},[1972,1977,1979,1984,1985,1991,1993,1998],{"type":46,"tag":81,"props":1973,"children":1974},{},[1975],{"type":52,"value":1976},"Model:",{"type":52,"value":1978}," input is a video and the goal is a scene-attribute change → Cosmos Transfer 2.5. Start from ",{"type":46,"tag":99,"props":1980,"children":1982},{"className":1981},[],[1983],{"type":52,"value":1826},{"type":52,"value":703},{"type":46,"tag":99,"props":1986,"children":1988},{"className":1987},[],[1989],{"type":52,"value":1990},"augmentation.model.name: cosmos-transfer2.5",{"type":52,"value":1992},", default ",{"type":46,"tag":99,"props":1994,"children":1996},{"className":1995},[],[1997],{"type":52,"value":666},{"type":52,"value":745},{"type":46,"tag":77,"props":2000,"children":2001},{},[2002,2007,2009,2015,2017,2023],{"type":46,"tag":81,"props":2003,"children":2004},{},[2005],{"type":52,"value":2006},"Inputs\u002Foutputs:",{"type":52,"value":2008}," point ",{"type":46,"tag":99,"props":2010,"children":2012},{"className":2011},[],[2013],{"type":52,"value":2014},"data.0.inputs.rgb",{"type":52,"value":2016}," at the source video and set ",{"type":46,"tag":99,"props":2018,"children":2020},{"className":2019},[],[2021],{"type":52,"value":2022},"data.0.output.{video,caption,metadata}",{"type":52,"value":193},{"type":46,"tag":77,"props":2025,"children":2026},{},[2027,2032,2034,2040,2041,2047],{"type":46,"tag":81,"props":2028,"children":2029},{},[2030],{"type":52,"value":2031},"Target attributes:",{"type":52,"value":2033}," set ",{"type":46,"tag":99,"props":2035,"children":2037},{"className":2036},[],[2038],{"type":52,"value":2039},"captioning.llm.variables.weather: [\"rainy\"]",{"type":52,"value":980},{"type":46,"tag":99,"props":2042,"children":2044},{"className":2043},[],[2045],{"type":52,"value":2046},"time_of_day: [\"night\"]",{"type":52,"value":193},{"type":46,"tag":77,"props":2049,"children":2050},{},[2051,2056,2058,2064],{"type":46,"tag":81,"props":2052,"children":2053},{},[2054],{"type":52,"value":2055},"Run",{"type":52,"value":2057}," (inside the container, see Step 2): ",{"type":46,"tag":99,"props":2059,"children":2061},{"className":2060},[],[2062],{"type":52,"value":2063},"uv run modules\u002Fcli.py --config configs\u002Fconfig_isaacsim.yaml",{"type":52,"value":193},{"type":46,"tag":61,"props":2066,"children":2068},{"id":2067},"common-tasks",[2069],{"type":52,"value":2070},"Common Tasks",{"type":46,"tag":166,"props":2072,"children":2074},{"id":2073},"add-a-new-data-sample",[2075],{"type":52,"value":2076},"Add a New Data Sample",{"type":46,"tag":55,"props":2078,"children":2079},{},[2080,2082,2087],{"type":52,"value":2081},"Add an entry to the ",{"type":46,"tag":99,"props":2083,"children":2085},{"className":2084},[],[2086],{"type":52,"value":1462},{"type":52,"value":2088}," list in any config:",{"type":46,"tag":518,"props":2090,"children":2094},{"className":2091,"code":2092,"language":2093,"meta":523,"style":523},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","data:\n  - inputs:\n      rgb: \"\u002Fpath\u002Fto\u002Fnew_video.mp4\"\n    output:\n      video: \"\u002Fpath\u002Fto\u002Foutput.mp4\"\n      caption: \"\u002Fpath\u002Fto\u002Fprompt.txt\"\n      metadata: \"\u002Fpath\u002Fto\u002Fmetadata.json\"\n","yaml",[2095],{"type":46,"tag":99,"props":2096,"children":2097},{"__ignoreMap":523},[2098,2111,2128,2155,2167,2192,2217],{"type":46,"tag":529,"props":2099,"children":2100},{"class":531,"line":23},[2101,2106],{"type":46,"tag":529,"props":2102,"children":2104},{"style":2103},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[2105],{"type":52,"value":1462},{"type":46,"tag":529,"props":2107,"children":2108},{"style":872},[2109],{"type":52,"value":2110},":\n",{"type":46,"tag":529,"props":2112,"children":2113},{"class":531,"line":788},[2114,2119,2124],{"type":46,"tag":529,"props":2115,"children":2116},{"style":872},[2117],{"type":52,"value":2118},"  -",{"type":46,"tag":529,"props":2120,"children":2121},{"style":2103},[2122],{"type":52,"value":2123}," inputs",{"type":46,"tag":529,"props":2125,"children":2126},{"style":872},[2127],{"type":52,"value":2110},{"type":46,"tag":529,"props":2129,"children":2130},{"class":531,"line":806},[2131,2136,2140,2145,2150],{"type":46,"tag":529,"props":2132,"children":2133},{"style":2103},[2134],{"type":52,"value":2135},"      rgb",{"type":46,"tag":529,"props":2137,"children":2138},{"style":872},[2139],{"type":52,"value":259},{"type":46,"tag":529,"props":2141,"children":2142},{"style":872},[2143],{"type":52,"value":2144}," \"",{"type":46,"tag":529,"props":2146,"children":2147},{"style":541},[2148],{"type":52,"value":2149},"\u002Fpath\u002Fto\u002Fnew_video.mp4",{"type":46,"tag":529,"props":2151,"children":2152},{"style":872},[2153],{"type":52,"value":2154},"\"\n",{"type":46,"tag":529,"props":2156,"children":2157},{"class":531,"line":824},[2158,2163],{"type":46,"tag":529,"props":2159,"children":2160},{"style":2103},[2161],{"type":52,"value":2162},"    output",{"type":46,"tag":529,"props":2164,"children":2165},{"style":872},[2166],{"type":52,"value":2110},{"type":46,"tag":529,"props":2168,"children":2169},{"class":531,"line":842},[2170,2175,2179,2183,2188],{"type":46,"tag":529,"props":2171,"children":2172},{"style":2103},[2173],{"type":52,"value":2174},"      video",{"type":46,"tag":529,"props":2176,"children":2177},{"style":872},[2178],{"type":52,"value":259},{"type":46,"tag":529,"props":2180,"children":2181},{"style":872},[2182],{"type":52,"value":2144},{"type":46,"tag":529,"props":2184,"children":2185},{"style":541},[2186],{"type":52,"value":2187},"\u002Fpath\u002Fto\u002Foutput.mp4",{"type":46,"tag":529,"props":2189,"children":2190},{"style":872},[2191],{"type":52,"value":2154},{"type":46,"tag":529,"props":2193,"children":2194},{"class":531,"line":859},[2195,2200,2204,2208,2213],{"type":46,"tag":529,"props":2196,"children":2197},{"style":2103},[2198],{"type":52,"value":2199},"      caption",{"type":46,"tag":529,"props":2201,"children":2202},{"style":872},[2203],{"type":52,"value":259},{"type":46,"tag":529,"props":2205,"children":2206},{"style":872},[2207],{"type":52,"value":2144},{"type":46,"tag":529,"props":2209,"children":2210},{"style":541},[2211],{"type":52,"value":2212},"\u002Fpath\u002Fto\u002Fprompt.txt",{"type":46,"tag":529,"props":2214,"children":2215},{"style":872},[2216],{"type":52,"value":2154},{"type":46,"tag":529,"props":2218,"children":2219},{"class":531,"line":893},[2220,2225,2229,2233,2238],{"type":46,"tag":529,"props":2221,"children":2222},{"style":2103},[2223],{"type":52,"value":2224},"      metadata",{"type":46,"tag":529,"props":2226,"children":2227},{"style":872},[2228],{"type":52,"value":259},{"type":46,"tag":529,"props":2230,"children":2231},{"style":872},[2232],{"type":52,"value":2144},{"type":46,"tag":529,"props":2234,"children":2235},{"style":541},[2236],{"type":52,"value":2237},"\u002Fpath\u002Fto\u002Fmetadata.json",{"type":46,"tag":529,"props":2239,"children":2240},{"style":872},[2241],{"type":52,"value":2154},{"type":46,"tag":166,"props":2243,"children":2245},{"id":2244},"change-target-attributes",[2246],{"type":52,"value":2247},"Change Target Attributes",{"type":46,"tag":55,"props":2249,"children":2250},{},[2251,2253,2259],{"type":52,"value":2252},"Edit ",{"type":46,"tag":99,"props":2254,"children":2256},{"className":2255},[],[2257],{"type":52,"value":2258},"captioning.llm.variables",{"type":52,"value":2260}," — each key maps to a list of values (first value is used for text captioner, all values available for LLM generation):",{"type":46,"tag":518,"props":2262,"children":2264},{"className":2091,"code":2263,"language":2093,"meta":523,"style":523},"captioning:\n  llm:\n    variables:\n      weather: [\"snowy\"]\n      time_of_day: [\"dusk\"]\n",[2265],{"type":46,"tag":99,"props":2266,"children":2267},{"__ignoreMap":523},[2268,2279,2291,2303,2339],{"type":46,"tag":529,"props":2269,"children":2270},{"class":531,"line":23},[2271,2275],{"type":46,"tag":529,"props":2272,"children":2273},{"style":2103},[2274],{"type":52,"value":1485},{"type":46,"tag":529,"props":2276,"children":2277},{"style":872},[2278],{"type":52,"value":2110},{"type":46,"tag":529,"props":2280,"children":2281},{"class":531,"line":788},[2282,2287],{"type":46,"tag":529,"props":2283,"children":2284},{"style":2103},[2285],{"type":52,"value":2286},"  llm",{"type":46,"tag":529,"props":2288,"children":2289},{"style":872},[2290],{"type":52,"value":2110},{"type":46,"tag":529,"props":2292,"children":2293},{"class":531,"line":806},[2294,2299],{"type":46,"tag":529,"props":2295,"children":2296},{"style":2103},[2297],{"type":52,"value":2298},"    variables",{"type":46,"tag":529,"props":2300,"children":2301},{"style":872},[2302],{"type":52,"value":2110},{"type":46,"tag":529,"props":2304,"children":2305},{"class":531,"line":824},[2306,2311,2315,2320,2325,2330,2334],{"type":46,"tag":529,"props":2307,"children":2308},{"style":2103},[2309],{"type":52,"value":2310},"      weather",{"type":46,"tag":529,"props":2312,"children":2313},{"style":872},[2314],{"type":52,"value":259},{"type":46,"tag":529,"props":2316,"children":2317},{"style":872},[2318],{"type":52,"value":2319}," [",{"type":46,"tag":529,"props":2321,"children":2322},{"style":872},[2323],{"type":52,"value":2324},"\"",{"type":46,"tag":529,"props":2326,"children":2327},{"style":541},[2328],{"type":52,"value":2329},"snowy",{"type":46,"tag":529,"props":2331,"children":2332},{"style":872},[2333],{"type":52,"value":2324},{"type":46,"tag":529,"props":2335,"children":2336},{"style":872},[2337],{"type":52,"value":2338},"]\n",{"type":46,"tag":529,"props":2340,"children":2341},{"class":531,"line":842},[2342,2347,2351,2355,2359,2364,2368],{"type":46,"tag":529,"props":2343,"children":2344},{"style":2103},[2345],{"type":52,"value":2346},"      time_of_day",{"type":46,"tag":529,"props":2348,"children":2349},{"style":872},[2350],{"type":52,"value":259},{"type":46,"tag":529,"props":2352,"children":2353},{"style":872},[2354],{"type":52,"value":2319},{"type":46,"tag":529,"props":2356,"children":2357},{"style":872},[2358],{"type":52,"value":2324},{"type":46,"tag":529,"props":2360,"children":2361},{"style":541},[2362],{"type":52,"value":2363},"dusk",{"type":46,"tag":529,"props":2365,"children":2366},{"style":872},[2367],{"type":52,"value":2324},{"type":46,"tag":529,"props":2369,"children":2370},{"style":872},[2371],{"type":52,"value":2338},{"type":46,"tag":55,"props":2373,"children":2374},{},[2375,2377,2383],{"type":52,"value":2376},"For attribute verification, also set ",{"type":46,"tag":99,"props":2378,"children":2380},{"className":2379},[],[2381],{"type":52,"value":2382},"verification_options",{"type":52,"value":2384}," with all possible MCQ answer choices:",{"type":46,"tag":518,"props":2386,"children":2388},{"className":2091,"code":2387,"language":2093,"meta":523,"style":523},"    verification_options:\n      weather: [\"clear\", \"cloudy\", \"rainy\", \"snowy\"]\n",[2389],{"type":46,"tag":99,"props":2390,"children":2391},{"__ignoreMap":523},[2392,2404],{"type":46,"tag":529,"props":2393,"children":2394},{"class":531,"line":23},[2395,2400],{"type":46,"tag":529,"props":2396,"children":2397},{"style":2103},[2398],{"type":52,"value":2399},"    verification_options",{"type":46,"tag":529,"props":2401,"children":2402},{"style":872},[2403],{"type":52,"value":2110},{"type":46,"tag":529,"props":2405,"children":2406},{"class":531,"line":788},[2407,2411,2415,2419,2423,2428,2432,2437,2441,2446,2450,2454,2458,2463,2467,2471,2475,2479,2483],{"type":46,"tag":529,"props":2408,"children":2409},{"style":2103},[2410],{"type":52,"value":2310},{"type":46,"tag":529,"props":2412,"children":2413},{"style":872},[2414],{"type":52,"value":259},{"type":46,"tag":529,"props":2416,"children":2417},{"style":872},[2418],{"type":52,"value":2319},{"type":46,"tag":529,"props":2420,"children":2421},{"style":872},[2422],{"type":52,"value":2324},{"type":46,"tag":529,"props":2424,"children":2425},{"style":541},[2426],{"type":52,"value":2427},"clear",{"type":46,"tag":529,"props":2429,"children":2430},{"style":872},[2431],{"type":52,"value":2324},{"type":46,"tag":529,"props":2433,"children":2434},{"style":872},[2435],{"type":52,"value":2436},",",{"type":46,"tag":529,"props":2438,"children":2439},{"style":872},[2440],{"type":52,"value":2144},{"type":46,"tag":529,"props":2442,"children":2443},{"style":541},[2444],{"type":52,"value":2445},"cloudy",{"type":46,"tag":529,"props":2447,"children":2448},{"style":872},[2449],{"type":52,"value":2324},{"type":46,"tag":529,"props":2451,"children":2452},{"style":872},[2453],{"type":52,"value":2436},{"type":46,"tag":529,"props":2455,"children":2456},{"style":872},[2457],{"type":52,"value":2144},{"type":46,"tag":529,"props":2459,"children":2460},{"style":541},[2461],{"type":52,"value":2462},"rainy",{"type":46,"tag":529,"props":2464,"children":2465},{"style":872},[2466],{"type":52,"value":2324},{"type":46,"tag":529,"props":2468,"children":2469},{"style":872},[2470],{"type":52,"value":2436},{"type":46,"tag":529,"props":2472,"children":2473},{"style":872},[2474],{"type":52,"value":2144},{"type":46,"tag":529,"props":2476,"children":2477},{"style":541},[2478],{"type":52,"value":2329},{"type":46,"tag":529,"props":2480,"children":2481},{"style":872},[2482],{"type":52,"value":2324},{"type":46,"tag":529,"props":2484,"children":2485},{"style":872},[2486],{"type":52,"value":2338},{"type":46,"tag":166,"props":2488,"children":2490},{"id":2489},"generate-batch-configs-with-dependencies",[2491],{"type":52,"value":2492},"Generate Batch Configs With Dependencies",{"type":46,"tag":55,"props":2494,"children":2495},{},[2496,2498,2504,2506,2512,2514,2520,2522,2526,2528,2533],{"type":52,"value":2497},"For many configs from a workflow YAML, use ",{"type":46,"tag":99,"props":2499,"children":2501},{"className":2500},[],[2502],{"type":52,"value":2503},"conditional_variables",{"type":52,"value":2505}," for attributes that depend on another — e.g. ",{"type":46,"tag":99,"props":2507,"children":2509},{"className":2508},[],[2510],{"type":52,"value":2511},"road_condition",{"type":52,"value":2513}," depends on ",{"type":46,"tag":99,"props":2515,"children":2517},{"className":2516},[],[2518],{"type":52,"value":2519},"weather",{"type":52,"value":2521},", so snowy weather never pairs with dry roads. This avoids invalid combinations you'd get from independent distributions. See ",{"type":46,"tag":186,"props":2523,"children":2524},{"href":214},[2525],{"type":52,"value":217},{"type":52,"value":2527}," for the full ",{"type":46,"tag":99,"props":2529,"children":2531},{"className":2530},[],[2532],{"type":52,"value":1938},{"type":52,"value":2534}," structure and the generator command.",{"type":46,"tag":166,"props":2536,"children":2538},{"id":2537},"switch-between-models",[2539],{"type":52,"value":2540},"Switch Between Models",{"type":46,"tag":55,"props":2542,"children":2543},{},[2544,2546,2552,2554,2559,2561,2566,2568,2573,2575,2581,2582,2588,2590,2594],{"type":52,"value":2545},"Change ",{"type":46,"tag":99,"props":2547,"children":2549},{"className":2548},[],[2550],{"type":52,"value":2551},"augmentation.model.name",{"type":52,"value":2553}," and add the matching endpoint (e.g. ",{"type":46,"tag":99,"props":2555,"children":2557},{"className":2556},[],[2558],{"type":52,"value":41},{"type":52,"value":2560}," needs ",{"type":46,"tag":99,"props":2562,"children":2564},{"className":2563},[],[2565],{"type":52,"value":709},{"type":52,"value":2567}," plus ",{"type":46,"tag":99,"props":2569,"children":2571},{"className":2570},[],[2572],{"type":52,"value":717},{"type":52,"value":2574}," with a ",{"type":46,"tag":99,"props":2576,"children":2578},{"className":2577},[],[2579],{"type":52,"value":2580},"url",{"type":52,"value":980},{"type":46,"tag":99,"props":2583,"children":2585},{"className":2584},[],[2586],{"type":52,"value":2587},"model",{"type":52,"value":2589},"). You can also override these on the CLI without editing the file; see ",{"type":46,"tag":186,"props":2591,"children":2592},{"href":214},[2593],{"type":52,"value":217},{"type":52,"value":193},{"type":46,"tag":166,"props":2596,"children":2598},{"id":2597},"tune-generation-quality",[2599],{"type":52,"value":2600},"Tune Generation Quality",{"type":46,"tag":55,"props":2602,"children":2603},{},[2604],{"type":52,"value":2605},"Key parameters for Cosmos Transfer:",{"type":46,"tag":73,"props":2607,"children":2608},{},[2609,2620,2631,2642],{"type":46,"tag":77,"props":2610,"children":2611},{},[2612,2618],{"type":46,"tag":99,"props":2613,"children":2615},{"className":2614},[],[2616],{"type":52,"value":2617},"augmentation.parameters.sigma",{"type":52,"value":2619}," — noise level (higher = more change, default 90)",{"type":46,"tag":77,"props":2621,"children":2622},{},[2623,2629],{"type":46,"tag":99,"props":2624,"children":2626},{"className":2625},[],[2627],{"type":52,"value":2628},"augmentation.parameters.guidance",{"type":52,"value":2630}," — prompt adherence (default 3.0)",{"type":46,"tag":77,"props":2632,"children":2633},{},[2634,2640],{"type":46,"tag":99,"props":2635,"children":2637},{"className":2636},[],[2638],{"type":52,"value":2639},"augmentation.parameters.num_steps",{"type":52,"value":2641}," — denoising steps (default 35, more = slower but better)",{"type":46,"tag":77,"props":2643,"children":2644},{},[2645,2651],{"type":46,"tag":99,"props":2646,"children":2648},{"className":2647},[],[2649],{"type":52,"value":2650},"augmentation.modalities.edge",{"type":52,"value":2652}," — edge control weight (1.0 = strict structure preservation)",{"type":46,"tag":166,"props":2654,"children":2656},{"id":2655},"run-tests-inside-the-container",[2657],{"type":52,"value":2658},"Run Tests (Inside the Container)",{"type":46,"tag":518,"props":2660,"children":2662},{"className":520,"code":2661,"language":522,"meta":523,"style":523},"uv run pytest tests\u002F                          # all tests\nuv run pytest tests\u002Fschema\u002Ftest_schema.py -v  # schema tests only\n",[2663],{"type":46,"tag":99,"props":2664,"children":2665},{"__ignoreMap":523},[2666,2692],{"type":46,"tag":529,"props":2667,"children":2668},{"class":531,"line":23},[2669,2673,2677,2682,2687],{"type":46,"tag":529,"props":2670,"children":2671},{"style":535},[2672],{"type":52,"value":1127},{"type":46,"tag":529,"props":2674,"children":2675},{"style":541},[2676],{"type":52,"value":769},{"type":46,"tag":529,"props":2678,"children":2679},{"style":541},[2680],{"type":52,"value":2681}," pytest",{"type":46,"tag":529,"props":2683,"children":2684},{"style":541},[2685],{"type":52,"value":2686}," tests\u002F",{"type":46,"tag":529,"props":2688,"children":2689},{"style":547},[2690],{"type":52,"value":2691},"                          # all tests\n",{"type":46,"tag":529,"props":2693,"children":2694},{"class":531,"line":788},[2695,2699,2703,2707,2712,2717],{"type":46,"tag":529,"props":2696,"children":2697},{"style":535},[2698],{"type":52,"value":1127},{"type":46,"tag":529,"props":2700,"children":2701},{"style":541},[2702],{"type":52,"value":769},{"type":46,"tag":529,"props":2704,"children":2705},{"style":541},[2706],{"type":52,"value":2681},{"type":46,"tag":529,"props":2708,"children":2709},{"style":541},[2710],{"type":52,"value":2711}," tests\u002Fschema\u002Ftest_schema.py",{"type":46,"tag":529,"props":2713,"children":2714},{"style":541},[2715],{"type":52,"value":2716}," -v",{"type":46,"tag":529,"props":2718,"children":2719},{"style":547},[2720],{"type":52,"value":2721},"  # schema tests only\n",{"type":46,"tag":55,"props":2723,"children":2724},{},[2725,2727,2733],{"type":52,"value":2726},"Tests and all ",{"type":46,"tag":99,"props":2728,"children":2730},{"className":2729},[],[2731],{"type":52,"value":2732},"uv run",{"type":52,"value":2734}," commands must run inside the container (Step 2); the host lacks the required dependencies.",{"type":46,"tag":61,"props":2736,"children":2738},{"id":2737},"troubleshooting",[2739],{"type":52,"value":2740},"Troubleshooting",{"type":46,"tag":55,"props":2742,"children":2743},{},[2744,2746,2751,2753,2759,2761,2767,2769,2775],{"type":52,"value":2745},"All inference and schema validation must run ",{"type":46,"tag":81,"props":2747,"children":2748},{},[2749],{"type":52,"value":2750},"inside the Docker container",{"type":52,"value":2752}," (Step 2). Import errors such as ",{"type":46,"tag":99,"props":2754,"children":2756},{"className":2755},[],[2757],{"type":52,"value":2758},"ModuleNotFoundError: No module named 'cosmos_transfer2'",{"type":52,"value":2760}," or ",{"type":46,"tag":99,"props":2762,"children":2764},{"className":2763},[],[2765],{"type":52,"value":2766},"COSMOS local execution is not supported in this environment",{"type":52,"value":2768}," mean you are running on the host. For config-validation errors, runtime errors, and typical per-stage timings, see ",{"type":46,"tag":186,"props":2770,"children":2772},{"href":2771},"references\u002Ftroubleshooting.md",[2773],{"type":52,"value":2774},"troubleshooting.md",{"type":52,"value":193},{"type":46,"tag":61,"props":2777,"children":2779},{"id":2778},"storage",[2780],{"type":52,"value":2781},"Storage",{"type":46,"tag":55,"props":2783,"children":2784},{},[2785,2787,2793,2795,2801,2803,2809,2811,2817,2819,2825,2827,2833,2835,2841],{"type":52,"value":2786},"All file I\u002FO uses ",{"type":46,"tag":99,"props":2788,"children":2790},{"className":2789},[],[2791],{"type":52,"value":2792},"multistorageclient",{"type":52,"value":2794}," (aliased as ",{"type":46,"tag":99,"props":2796,"children":2798},{"className":2797},[],[2799],{"type":52,"value":2800},"msc",{"type":52,"value":2802},") which transparently handles local paths, S3 (",{"type":46,"tag":99,"props":2804,"children":2806},{"className":2805},[],[2807],{"type":52,"value":2808},"s3:\u002F\u002F",{"type":52,"value":2810},"), GCS (",{"type":46,"tag":99,"props":2812,"children":2814},{"className":2813},[],[2815],{"type":52,"value":2816},"gs:\u002F\u002F",{"type":52,"value":2818},"), Azure (",{"type":46,"tag":99,"props":2820,"children":2822},{"className":2821},[],[2823],{"type":52,"value":2824},"az:\u002F\u002F",{"type":52,"value":2826},"), and HTTP URLs. Configure cloud storage via ",{"type":46,"tag":99,"props":2828,"children":2830},{"className":2829},[],[2831],{"type":52,"value":2832},"examples\u002Fsecrets.json",{"type":52,"value":2834}," mounted at ",{"type":46,"tag":99,"props":2836,"children":2838},{"className":2837},[],[2839],{"type":52,"value":2840},"\u002Fvar\u002Fsecrets\u002Fsecrets.json",{"type":52,"value":193},{"type":46,"tag":61,"props":2843,"children":2845},{"id":2844},"security-notes",[2846],{"type":52,"value":1023},{"type":46,"tag":55,"props":2848,"children":2849},{},[2850],{"type":52,"value":2851},"This skill runs GPU inference in Docker with credentials and host networking. Apply these practices, especially on shared or production hosts:",{"type":46,"tag":73,"props":2853,"children":2854},{},[2855,2906,2961],{"type":46,"tag":77,"props":2856,"children":2857},{},[2858,2863,2864,2869,2870,2875,2876,2881,2883,2888,2890,2896,2898,2904],{"type":46,"tag":81,"props":2859,"children":2860},{},[2861],{"type":52,"value":2862},"Credentials via environment variables.",{"type":52,"value":1002},{"type":46,"tag":99,"props":2865,"children":2867},{"className":2866},[],[2868],{"type":52,"value":564},{"type":52,"value":584},{"type":46,"tag":99,"props":2871,"children":2873},{"className":2872},[],[2874],{"type":52,"value":1306},{"type":52,"value":584},{"type":46,"tag":99,"props":2877,"children":2879},{"className":2878},[],[2880],{"type":52,"value":1323},{"type":52,"value":2882},", and cloud storage secrets are passed as env vars or env-files. Never hardcode them in config YAML, logs, or scripts, and never commit them. Treat ",{"type":46,"tag":99,"props":2884,"children":2886},{"className":2885},[],[2887],{"type":52,"value":564},{"type":52,"value":2889}," as sensitive — it grants access to gated model repos. Give any local ",{"type":46,"tag":99,"props":2891,"children":2893},{"className":2892},[],[2894],{"type":52,"value":2895},".env",{"type":52,"value":2897}," file restrictive permissions (",{"type":46,"tag":99,"props":2899,"children":2901},{"className":2900},[],[2902],{"type":52,"value":2903},"chmod 600 examples\u002F.env",{"type":52,"value":2905},"), keep it out of version control, and avoid echoing or logging secret values. For production, prefer a secrets manager or Docker secrets over an on-disk env-file.",{"type":46,"tag":77,"props":2907,"children":2908},{},[2909,2914,2915,2920,2922,2927,2929,2935,2937,2943,2945,2951,2953,2959],{"type":46,"tag":81,"props":2910,"children":2911},{},[2912],{"type":52,"value":2913},"Data-directory permissions.",{"type":52,"value":1002},{"type":46,"tag":99,"props":2916,"children":2918},{"className":2917},[],[2919],{"type":52,"value":1060},{"type":52,"value":2921}," must be writable by the container user (e.g. ",{"type":46,"tag":99,"props":2923,"children":2925},{"className":2924},[],[2926],{"type":52,"value":8},{"type":52,"value":2928},", uid 1000). Prefer matching the host directory's ownership to that uid (",{"type":46,"tag":99,"props":2930,"children":2932},{"className":2931},[],[2933],{"type":52,"value":2934},"sudo chown -R 1000:1000 data\u002F",{"type":52,"value":2936},") or running the container as your own user (",{"type":46,"tag":99,"props":2938,"children":2940},{"className":2939},[],[2941],{"type":52,"value":2942},"--user \"$(id -u):$(id -g)\"",{"type":52,"value":2944},"). If you must loosen permissions, use group write with proper group membership (",{"type":46,"tag":99,"props":2946,"children":2948},{"className":2947},[],[2949],{"type":52,"value":2950},"chmod 775 data\u002F",{"type":52,"value":2952},"). ",{"type":46,"tag":99,"props":2954,"children":2956},{"className":2955},[],[2957],{"type":52,"value":2958},"chmod 777",{"type":52,"value":2960}," is a last resort and must never be used on shared or production systems — a world-writable directory lets any local user or process tamper with pipeline outputs.",{"type":46,"tag":77,"props":2962,"children":2963},{},[2964,2969,2971,2976,2978,2984,2986,2992,2994,3000,3002,3008],{"type":46,"tag":81,"props":2965,"children":2966},{},[2967],{"type":52,"value":2968},"Host networking.",{"type":52,"value":2970}," The launch recipe uses ",{"type":46,"tag":99,"props":2972,"children":2974},{"className":2973},[],[2975],{"type":52,"value":1008},{"type":52,"value":2977}," so the container can reach model endpoints on the host's ",{"type":46,"tag":99,"props":2979,"children":2981},{"className":2980},[],[2982],{"type":52,"value":2983},"localhost",{"type":52,"value":2985}," (on macOS\u002FWindows use ",{"type":46,"tag":99,"props":2987,"children":2989},{"className":2988},[],[2990],{"type":52,"value":2991},"--add-host host.docker.internal:host-gateway",{"type":52,"value":2993}," and address ",{"type":46,"tag":99,"props":2995,"children":2997},{"className":2996},[],[2998],{"type":52,"value":2999},"http:\u002F\u002Fhost.docker.internal:\u003Cport>",{"type":52,"value":3001}," instead). It removes network isolation, so when your endpoints are remote URLs prefer the default bridge network, and avoid host networking on shared or production hosts. Port mapping (",{"type":46,"tag":99,"props":3003,"children":3005},{"className":3004},[],[3006],{"type":52,"value":3007},"-p",{"type":52,"value":3009},") only publishes container ports to the host and does not grant access to host services.",{"type":46,"tag":61,"props":3011,"children":3013},{"id":3012},"limitations",[3014],{"type":52,"value":3015},"Limitations",{"type":46,"tag":73,"props":3017,"children":3018},{},[3019,3058,3068,3092],{"type":46,"tag":77,"props":3020,"children":3021},{},[3022,3027,3029,3034,3036,3042,3044,3049,3051,3056],{"type":46,"tag":81,"props":3023,"children":3024},{},[3025],{"type":52,"value":3026},"GPU + Docker required.",{"type":52,"value":3028}," All inference, schema validation, and ",{"type":46,"tag":99,"props":3030,"children":3032},{"className":3031},[],[3033],{"type":52,"value":2732},{"type":52,"value":3035},"\u002F",{"type":46,"tag":99,"props":3037,"children":3039},{"className":3038},[],[3040],{"type":52,"value":3041},"pytest",{"type":52,"value":3043}," commands run inside the ",{"type":46,"tag":99,"props":3045,"children":3047},{"className":3046},[],[3048],{"type":52,"value":139},{"type":52,"value":3050}," container; the host lacks the model dependencies. The ",{"type":46,"tag":99,"props":3052,"children":3054},{"className":3053},[],[3055],{"type":52,"value":1904},{"type":52,"value":3057}," post-processor additionally requires a CUDA GPU (cupy).",{"type":46,"tag":77,"props":3059,"children":3060},{},[3061,3066],{"type":46,"tag":81,"props":3062,"children":3063},{},[3064],{"type":52,"value":3065},"Inference only.",{"type":52,"value":3067}," This pipeline augments and generates media — it does not train or fine-tune models.",{"type":46,"tag":77,"props":3069,"children":3070},{},[3071,3076,3078,3083,3085,3090],{"type":46,"tag":81,"props":3072,"children":3073},{},[3074],{"type":52,"value":3075},"Gated models.",{"type":52,"value":3077}," Cosmos weights require an ",{"type":46,"tag":99,"props":3079,"children":3081},{"className":3080},[],[3082],{"type":52,"value":564},{"type":52,"value":3084}," with the NVIDIA Open Model License accepted on each ",{"type":46,"tag":99,"props":3086,"children":3088},{"className":3087},[],[3089],{"type":52,"value":574},{"type":52,"value":3091}," repo.",{"type":46,"tag":77,"props":3093,"children":3094},{},[3095,3100,3102,3107,3109,3114],{"type":46,"tag":81,"props":3096,"children":3097},{},[3098],{"type":52,"value":3099},"image-edit is remote-only.",{"type":52,"value":3101}," The ",{"type":46,"tag":99,"props":3103,"children":3105},{"className":3104},[],[3106],{"type":52,"value":41},{"type":52,"value":3108}," model runs via a Gradio endpoint (",{"type":46,"tag":99,"props":3110,"children":3112},{"className":3111},[],[3113],{"type":52,"value":717},{"type":52,"value":3115},"); there is no local executor for it.",{"type":46,"tag":61,"props":3117,"children":3119},{"id":3118},"reference-files",[3120],{"type":52,"value":3121},"Reference files",{"type":46,"tag":55,"props":3123,"children":3124},{},[3125,3126,3131],{"type":52,"value":479},{"type":46,"tag":186,"props":3127,"children":3129},{"href":3128},"references\u002FREADME.md",[3130],{"type":52,"value":3128},{"type":52,"value":3132}," for the full index of reference docs (configuration schema, config decision tree, captioning strategies, evaluator setup, troubleshooting, and PAS person-attribute image edit).",{"type":46,"tag":3134,"props":3135,"children":3136},"style",{},[3137],{"type":52,"value":3138},"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":3140,"total":23},[3141],{"slug":4,"name":4,"fn":5,"description":6,"org":3142,"tags":3143,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[3144,3145,3146,3147],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},{"items":3149,"total":3306},[3150,3168,3186,3197,3209,3223,3236,3248,3261,3272,3286,3295],{"slug":3151,"name":3151,"fn":3152,"description":3153,"org":3154,"tags":3155,"stars":3165,"repoUrl":3166,"updatedAt":3167},"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},[3156,3159,3162],{"name":3157,"slug":3158,"type":15},"Documentation","documentation",{"name":3160,"slug":3161,"type":15},"MCP","mcp",{"name":3163,"slug":3164,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":3169,"name":3169,"fn":3170,"description":3171,"org":3172,"tags":3173,"stars":3183,"repoUrl":3184,"updatedAt":3185},"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},[3174,3177,3180],{"name":3175,"slug":3176,"type":15},"Containers","containers",{"name":3178,"slug":3179,"type":15},"Deployment","deployment",{"name":3181,"slug":3182,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":3187,"name":3187,"fn":3188,"description":3189,"org":3190,"tags":3191,"stars":3183,"repoUrl":3184,"updatedAt":3196},"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},[3192,3195],{"name":3193,"slug":3194,"type":15},"CI\u002FCD","ci-cd",{"name":3178,"slug":3179,"type":15},"2026-07-14T05:25:59.97109",{"slug":3198,"name":3198,"fn":3199,"description":3200,"org":3201,"tags":3202,"stars":3183,"repoUrl":3184,"updatedAt":3208},"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},[3203,3204,3205],{"name":3193,"slug":3194,"type":15},{"name":3178,"slug":3179,"type":15},{"name":3206,"slug":3207,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":3210,"name":3210,"fn":3211,"description":3212,"org":3213,"tags":3214,"stars":3183,"repoUrl":3184,"updatedAt":3222},"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},[3215,3218,3219],{"name":3216,"slug":3217,"type":15},"Debugging","debugging",{"name":3206,"slug":3207,"type":15},{"name":3220,"slug":3221,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":3224,"name":3224,"fn":3225,"description":3226,"org":3227,"tags":3228,"stars":3183,"repoUrl":3184,"updatedAt":3235},"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},[3229,3232],{"name":3230,"slug":3231,"type":15},"Best Practices","best-practices",{"name":3233,"slug":3234,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":3237,"name":3237,"fn":3238,"description":3239,"org":3240,"tags":3241,"stars":3183,"repoUrl":3184,"updatedAt":3247},"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},[3242,3243,3246],{"name":17,"slug":18,"type":15},{"name":3244,"slug":3245,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":3249,"name":3249,"fn":3250,"description":3251,"org":3252,"tags":3253,"stars":3183,"repoUrl":3184,"updatedAt":3260},"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},[3254,3257],{"name":3255,"slug":3256,"type":15},"QA","qa",{"name":3258,"slug":3259,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":3262,"name":3262,"fn":3263,"description":3264,"org":3265,"tags":3266,"stars":3183,"repoUrl":3184,"updatedAt":3271},"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},[3267,3268],{"name":3178,"slug":3179,"type":15},{"name":3269,"slug":3270,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":3273,"name":3273,"fn":3274,"description":3275,"org":3276,"tags":3277,"stars":3183,"repoUrl":3184,"updatedAt":3285},"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},[3278,3281,3282],{"name":3279,"slug":3280,"type":15},"Code Review","code-review",{"name":3206,"slug":3207,"type":15},{"name":3283,"slug":3284,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":3287,"name":3287,"fn":3288,"description":3289,"org":3290,"tags":3291,"stars":3183,"repoUrl":3184,"updatedAt":3294},"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},[3292,3293],{"name":3255,"slug":3256,"type":15},{"name":3258,"slug":3259,"type":15},"2026-07-14T05:25:54.928983",{"slug":3296,"name":3296,"fn":3297,"description":3298,"org":3299,"tags":3300,"stars":3183,"repoUrl":3184,"updatedAt":3305},"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},[3301,3304],{"name":3302,"slug":3303,"type":15},"Automation","automation",{"name":3193,"slug":3194,"type":15},"2026-07-30T05:29:03.275638",496]