Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV/Parquet I/O, nullable semantics, and multi-GPU DataFrame workloads.
日本語の概要は準備中です。原文の説明を表示しています。
Use when authoring or validating PAIDF augmentation YAML configs, or running remote Cosmos Transfer (including Cosmos3 WSM controls), Cosmos Predict, image-edit, or image-to-video inference.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Remote-API pipeline for captioning, generating, and evaluating augmented camera data. Models are configured as HTTP endpoints; no local model weights are included.
Use it to select a supported generation mode, author and validate
PipelineConfig YAML, configure captioning/evaluators, and run the
paidf-augmentation:1.2.0 container. It covers Cosmos Transfer/Predict,
Cosmos3 WSM controls, image editing, image-to-video, BYOM endpoints, and
quality gates.
Do not use this skill for training or fine-tuning models, deploying clusters or NIM endpoints, or unrelated application/database development.
| Requirement | Detail |
|---|---|
| Docker | docker --version. The image is remote-API only — it bundles no Cosmos/torch weights, so plain remote inference needs no GPU and no HF_TOKEN. |
| NVIDIA GPU (conditional) | Only when a configured local stage requires CUDA or decodes H.264 in the augmentation container. See Limitations. |
| Endpoint URLs | One reachable URL per role used by the selected config. The examples name local Qwen services (Qwen/Qwen3.6-27B-FP8 on vlm, Qwen/Qwen2.5-14B-Instruct on llm), but those are not guaranteed to be running. Resolve every required role independently: keep each reachable configured endpoint and ask only for the missing role URLs. |
| API keys (conditional) | Only for endpoints requiring authentication. Pass the environment variable named by each endpoint's api_key_env; never hardcode values in YAML. Local unauthenticated endpoints need none. |
| Input media | A video/image reachable by multistorageclient (s3://, msc://, gs://, az://, or HTTPS). Local paths are allowed only when no external Cosmos evaluator is enabled; external evaluation requires checker-readable remote URIs. |
| Approved release commit (execution only) | A 40-character commit hash confirmed by the user as release-owner-approved or retrieved from the verified release manifest. Never invent it or rely on an unverified environment value. |
Resolve each value in this precedence order: state file → explicit prompt arguments → agent context → user prompt. Ask the user only for what remains unresolved.
| Input | Required | Description |
|---|---|---|
config_path | Yes | Path to the pipeline YAML, e.g. configs/cookbook/video-data-augmentation/config_video_transfer_CT3_omni.yaml. If absent, pick a starting config from Supported Models and confirm with the user. |
input_media | Conditional | Source video/image → data[].inputs.rgb. Required for every mode except Cosmos Predict inference_type: text2world, where inputs may be null or rgb omitted. Overridable at run time via data.0.inputs.rgb=.... |
control_media | For precomputed control | Control video → data[].inputs.controls.<type>. For Cosmos3 WSM transfer, set controls.wsm; the client uploads it rather than exposing its local path to the server. |
output_paths | Yes | data[].output.{video,caption,metadata}; evaluation optional. |
model_name | Yes | augmentation.model.name — an endpoint id, a role, or a known model name. Free-form string, not an enum. |
endpoint_urls | Yes | One endpoints[] entry per role in use. |
api_key_env | If auth | Env-var name per endpoint; the value comes from the environment. |
target_attributes | No | captioning.llm.variables (e.g. weather_condition, lighting_condition). |
generation_params | No | augmentation.parameters — pass-through; only set knobs are sent. |
seed | No | Under augmentation.parameters. Before the first candidate, null resolves once to the generator/executor seed when available, otherwise the current Unix time. Retry n uses that resolved base seed plus n. pipeline.retry defaults to 1, so evaluation permits at most 2 candidates by default. |
Each endpoints: list entry declares role, url, wire model, and optional
id, adapter, api_key_env, and timeout. Roles are vlm, llm,
image_edit, video_transfer, video_predict, image2video, and evaluator.
augmentation.model.name resolves by endpoint id, then role, then the known
model-name mapping. Adapter contracts and full fields are in
configuration-schema.md.
When the user hasn't specified a model, choose from their input type and goal:
| Input Type → Goal | model.name | Role / default adapter | Input → Output |
|---|---|---|---|
| Video — change scene attributes (weather, lighting, style) | cosmos-transfer2.5 | video_transfer / nim | Video (+ controls) → Video |
| Video + precomputed WSM — follow world-state geometry/motion | A video_transfer endpoint id, e.g. cosmos3-transfer-wsm | video_transfer / openai.video.async | RGB video + WSM control + prompt → Video |
| Video + text — extend or predict continuation | cosmos-predict | video_predict / nim | Video+Text → Video |
| Text only — generate video from scratch | cosmos-predict (inference_type: text2world) | video_predict / nim | Text → Video |
| Image — edit specific attributes | image-edit | image_edit / nim (or openai.chat.completions, openai.images.edits) | Image → Image |
| Image — animate a first frame | cosmos3-image2video (or your Veo endpoint id) | image2video / openai.video.sync (Veo: openai.video.async) | Image + prompt → Video |
Key rule: use Cosmos Transfer for video scene changes, Cosmos Predict for
new/continued video, image edit for still edits, and image-to-video to animate a
frame. For Cosmos3 WSM, set data[].inputs.controls.wsm. Config selection
details are in config-decision-tree.md.
All models run via remote HTTP through one BaseExecutor; there is no local torchrun and no executor_type field.
Follow this ordered decision tree; open the linked references only for the selected mode's details.
config_attempts counts YAML versions, not validation or preflight calls. Keep
it across the whole workflow and never reset it.
1 after initial authoring.3, STOP and report the error.
Otherwise increment it once and make one correction pass containing all
currently reported YAML fixes.Execute this gate before every other step:
data, endpoints, captioning,
augmentation, evaluators, pipeline, then data_processing. Omit
optional sections rather than creating placeholders. Set
config_attempts = 1 (config attempt 1 of 3).EXPECTED_RELEASE_REF from the user as a release-owner-approved
full commit or retrieve it from the verified release manifest.
b. Verify the Git working tree is clean.
c. Verify HEAD matches EXPECTED_RELEASE_REF. If a release tag selected
the revision, verify the tag first, then compare its resolved full commit.
d. Build the image and capture its immutable sha256: image ID, or obtain a
verified registry digest.
e. Create the paidf Docker bridge if needed and attach local services.
f. Launch the container using the recorded image ID, the paidf network,
required volume mounts, --entrypoint /bin/bash, and only the endpoint
key variables named by api_key_env plus the scoped storage credential
variables required for the configured remote media.
If any sub-step fails, STOP and report the exact failure and relevant
remediation: clean a dirty tree, supply the approved revision, resolve a
revision mismatch, check the Docker daemon/build, fix network setup, or fix
the container launch. Do not continue with a partial runtime.config_attempts (current config
attempt N of 3):
config_attempts
(current config attempt N of 3) and run its hard preflight gate before
captioning/generation by querying /health, /checkers, and
/dependency-graph:
/health.status == "healthy"; require every configured
checks[].name to exactly equal one string in the top-level checkers
array returned by /checkers and one key in the top-level checkers
object returned by /dependency-graph. Do not use substring, alias, or
nested-field matching. Then proceed to step 7./checkers or
/dependency-graph whose body explicitly identifies a configured checker
name or invalid config field qualifies. Apply the Config Correction
Budget rule, then return to step 5; revalidation does not increment the
counter./health failure, unhealthy service, or missing deployed checker stops the
workflow before generation. Create no candidate and report the root cause.pipeline.retry + 1 candidates (retry defaults to 1, so the default
maximum is 2). Resolve the base seed once before the first candidate as
defined in Inputs; retry n uses base_seed + n:
base_seed + next_retry_number. If regenerate_caption_on_retry: true,
regenerate the caption next; then generate the replacement. If false,
generate the replacement immediately.passed. With pipeline.evaluation.strict: true (the
default), apply retain_failures: its default true retains video, caption,
metadata, and evaluation outputs for inspection; explicit false deletes
them. With strict: false, retain the files and report the evaluator
failure without failing the sample.
error_code: ambiguous_post, preserve the
retained candidate, do not resubmit automatically, STOP, and defer
to operator recovery. Follow the
ambiguous-POST recovery flow.Set EXPECTED_RELEASE_REF to a release-owner-reviewed full 40-character commit,
never a tag or branch. If a signed release tag selects the revision, verify the
tag first and record its resolved full commit as EXPECTED_RELEASE_REF. Build
only from a clean matching checkout, then record the resulting immutable image
ID. For a prebuilt release, use its verified digest.
set -e
EXPECTED_RELEASE_REF="${EXPECTED_RELEASE_REF:?set a reviewed full commit ID}"
test "${#EXPECTED_RELEASE_REF}" -eq 40
case "$EXPECTED_RELEASE_REF" in *[!0-9a-fA-F]*) exit 1 ;; esac
test -z "$(git status --porcelain)"
test "$(git rev-parse HEAD)" = "$(git rev-parse "${EXPECTED_RELEASE_REF}^{commit}")"
DOCKER_BUILDKIT=0 docker build \
-t paidf-augmentation:1.2.0 \
-f docker/Dockerfile .
PAIDF_IMAGE_ID="$(docker image inspect --format '{{.Id}}' paidf-augmentation:1.2.0)"
case "$PAIDF_IMAGE_ID" in sha256:*) ;; *) exit 1 ;; esac
test "$(docker image inspect --format '{{.Id}}' paidf-augmentation:1.2.0)" = "$PAIDF_IMAGE_ID"
docker network inspect paidf >/dev/null 2>&1 || \
docker network create paidf
# Attach each local model container once, for example:
# docker network connect paidf vlm
# Example only: replace these with exactly the api_key_env names declared by
# the selected config; use an empty array when every endpoint is unauthenticated.
PAIDF_ENDPOINT_KEY_ARGS=()
# Authenticated example:
# PAIDF_ENDPOINT_KEY_ARGS=(-e VLM_API_KEY -e LLM_API_KEY -e VEO_API_KEY)
# Forward only credential names required by the configured remote media. Give
# checker containers their own scoped credentials in their deployment.
PAIDF_STORAGE_CREDENTIAL_ARGS=()
# S3-compatible example (include only the names your storage config requires):
# PAIDF_STORAGE_CREDENTIAL_ARGS=(-e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY \
# -e AWS_DEFAULT_REGION -e AWS_ENDPOINT_URL)
docker run -it --rm \
--network paidf \
"${PAIDF_ENDPOINT_KEY_ARGS[@]}" \
"${PAIDF_STORAGE_CREDENTIAL_ARGS[@]}" \
-v "$(pwd)/modules:/workspace/modules" \
-v "$(pwd)/configs:/workspace/configs" \
-v "$(pwd)/data:/workspace/data" \
--entrypoint /bin/bash \
"$PAIDF_IMAGE_ID"
Persist the captured sha256: ID and use it directly for every later launch;
never re-resolve the mutable tag as the launch target. For registry releases,
verify the signed manifest and use name:tag@sha256:<manifest-digest>.
paidf bridge for the augmentation container and
every local model, Arbitrator, and checker container. cosmos-evaluator may
be a container/DNS hostname on that bridge; it is not a second bridge name.
Change endpoint URLs from host localhost addresses to container DNS names,
for example http://vlm:8000/v1. The default bridge is sufficient when every
endpoint is remote.-e VAR_NAME; never mount or load a broad credential file.--gpus for data_processing.alignment and any H.264 decode; pick a GPU not shared with a busy model server. Container runs as uid 10000; ensure data/ is writable (or --user "$(id -u):$(id -g)").Warning: Never enable Docker host-network mode on shared, multi-tenant, or production hosts. It is permitted only when all three conditions hold: (1) a required host-local service cannot be moved onto the
paidfbridge, (2) the host is single-tenant and isolated with no other workloads, and (3) the user sends an explicit message in the current conversation choosing host networking after receiving a warning that it removes network namespace isolation. Silence, prior documentation, or an earlier unrelated approval is not acceptance. Do not select it automatically. Review pipeline-operations.md.
# Schema and cross-section preflight only: no endpoint calls or inference.
uv run --no-sync modules/cli.py --config configs/<config_file>.yaml --validate-only
# Run only after validation succeeds.
uv run --no-sync modules/cli.py --config configs/<config_file>.yaml
# With OmegaConf CLI overrides (dot-list syntax)
uv run --no-sync modules/cli.py --config configs/<config_file>.yaml \
data.0.inputs.rgb=/workspace/data/input.mp4 \
augmentation.parameters.seed=42
Environment variables: generation/captioning keys resolve as the api_key_env
var → the role's default env var. External Cosmos evaluation reads only the
variable explicitly named by its endpoint and fails initialization when that
variable is unset. Leave api_key_env off for unauthenticated endpoints.
LOG_LEVEL sets logging.
Configs are validated against PipelineConfig (modules/aug_utils/schema/) and have seven top-level sections. Author them in the canonical order above; YAML key order does not change runtime semantics. Full per-section YAML is in configuration-schema.md; runtime flow and common editing tasks are in pipeline-operations.md.
Run all inference and schema validation inside the Docker container for a consistent environment. For config-validation errors, runtime/endpoint errors, and typical per-stage timings, see troubleshooting.md.
torchrun, no executor_type, no Gradio executor.data_processing.alignment (cupy) and by any local stage decoding H.264 because the image ships only the hardware h264_cuvid decoder (software AVC decode is off for licensing). VP9 decodes in software. Video output is VP9-only.data[].inputs.rgb, control media, generated data[].output.video, and configured companion media. Use checker-readable s3://, msc://, gs://, az://, or HTTP(S) URIs; the pipeline does not upload local files solely for evaluation.api_key_env; local endpoints (e.g. vLLM) need none.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby, CSV/Parquet I/O, nullable semantics, and multi-GPU DataFrame workloads.
日本語の概要は準備中です。原文の説明を表示しています。
Customize NVIDIA Nemotron Voice Agent's Generic Pipecat example for healthcare appointment, five-field patient intake, or custom tool-calling workflows without a separate backend.
日本語の概要は準備中です。原文の説明を表示しています。
Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or asks to calibrate live cameras; VIOS records clips, AMC ingests them, then runs calibration.
日本語の概要は準備中です。原文の説明を表示しています。
Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice. Use when user says 'test sample dataset', 'run sample calibration', 'verify AMC install', or 'launch and test'.
日本語の概要は準備中です。原文の説明を表示しています。
Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live RTSP streams to `amc-run-rtsp-calibration`.
日本語の概要は準備中です。原文の説明を表示しています。
Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up auto-magic-calib'. Requires NGC API key.
日本語の概要は準備中です。原文の説明を表示しています。