Cdf Auto Labeling
NVIDIAOfficialCreated by NVIDIA
- Skill
- Workflow
- Automation and integrations
- Apache-2.0
- Medium risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
CDF Auto-Labeling is a central routing skill designed to guide users through the lifecycle of automated data labeling tasks within the Cosmos Data Factory ecosystem. It provides a structured approach to onboarding, scenario planning, cookbook authoring, and pipeline execution. By acting as a router, it directs users to specialized documentation for specific tasks—such as migrating pipelines, debugging workflows, or managing containerized stages—while enforcing strict input validation and operational guardrails to ensure reproducible results.
What it does
- Routes users to specific documentation based on their current task or stage in the pipeline.
- Validates critical run inputs like data paths, output directories, and model endpoints.
- Provides a standardized workflow for running, debugging, and customizing annotation cookbooks.
- Facilitates the integration of new stages and the management of prebuilt container images.
- Enforces operational guardrails to prevent common errors like hardcoding secrets or skipping validation steps.
When to use it
- When you are a new user needing to get started with CDF Auto-Labeling.
- When you need to plan a new annotation scenario or adapt an existing cookbook.
- When you are troubleshooting a failed pipeline run or debugging a specific stage.
- When you need to migrate an external annotation repository into the CDF framework.
- When you need to pull or configure prebuilt stage containers from NGC.
Advantages
- Ensures consistent and reproducible pipeline execution through standardized cookbooks.
- Prevents configuration errors by mandating input validation before execution.
- Simplifies complex workflows by breaking them down into manageable, modular tasks.
- Promotes best practices by delegating specialized tasks to dedicated reference guides.
Usage examples
- “I cloned the repo and have my own warehouse-safety video. How do I produce auto-labels for my domain?”
- The agent will guide you to verify your environment, run a shipped example to confirm the stack, plan your scenario, adapt a cookbook, and execute a dry-run.
- “How do I pull the prebuilt stage containers from NGC?”
- The agent will direct you to the ngc-containers reference and provide instructions on using make pull to retrieve the necessary images.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/nvidia/cdf-auto-labeling/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip cdf-auto-labeling.zip -d .agents/skills
Documentation by NVIDIA
CDF Auto-Labeling
Use this skill when a user wants to kick off CDF Auto-Labeling on their own data, domain, or use case, or when the request matches a shipped cookbook, stage, authoring, or migration task. This is a router: sequence the specialized references instead of duplicating their detail.
Routing (Read First)
| Request looks like | Read |
|---|---|
| New user, clean checkout, first validated run, "how do I get started" | This file, then the matching reference below |
| Choose annotation targets / stage subset for a domain | references/scenario-planning.md |
| Create, review, or adapt a cookbook | references/cookbook-authoring.md |
| Write or adapt VLM/LLM prompts or question banks | references/prompt-authoring.md |
| Migrate an existing annotation repo into this one | references/pipeline-migration.md |
| Run the video data augmentation cookbook | references/video-data-augmentation.md |
| Run or choose an EPAS / PAS cookbook | references/event-and-person-attribute-search.md |
| Run event-verification reasoning | references/event-verification-reasoning.md |
| Debug an already-integrated workflow | references/workflow-runner-debugging.md |
Pull prebuilt stage images from NGC, log in to nvcr.io, or fix a missing cdf-* image | references/ngc-containers.md |
| Implement or review a new stage or Dockerized service | references/workflow-stage-integration.md |
| Configure or debug one production stage | The matching file under references/stages/ |
Stage references: super-resolution, detection-and-tracking, captioning, visual-qa, reasoning, person-attribute-search, grounding-2d, referring-expressions, training-export.
Instructions
Confirm the critical run inputs with the user before doing anything else, and ask a concise question whenever one is missing or ambiguous - never guess or silently invent a default. At minimum confirm: input data path, output path, VLM/LLM endpoint URLs and model names, model cache path, GPU ids, and (for reasoning-capable models) the
max_tokenscap. Restate the confirmed values back to the user before the first execution.Verify the environment: repository cloned,
maketargets available, the model cache path exists, the VLM/LLM endpoints are reachable, and a GPU is available. State any missing prerequisite as a blocker instead of assuming it. If the stage images are not present locally, offer to pull the prebuilt images from NGC withmake pullinstead of building them. Use ngc-containers.Run a shipped example first to confirm the stack works end to end before customizing. Pick the closest operator pipeline - video data augmentation, event-and-person-attribute-search, or event-verification-reasoning - and run its committed cookbook. Use the matching operator reference.
Plan the target scenario: define modality, domain, intended consumer, and required annotations, and get a minimal stage subset. Use scenario-planning.
Adapt the closest shipped cookbook to the new domain rather than authoring from scratch. Use cookbook-authoring.
Author the domain prompts and question banks. Use prompt-authoring.
Configure the per-stage settings for the domain (detector classes or SAM3 prompts, endpoints, windowing,
max_tokens). Use the relevant stage reference, starting with detection-and-tracking.Dry-run the adapted cookbook, then execute and validate the outputs. Use workflow-runner-debugging.
Adopting an existing external annotation or dataset-generation repository into CDF instead of starting from a shipped cookbook is a migration task; use pipeline-migration for that path.
Examples
New user, new domain: "I cloned the repo and have my own warehouse-safety video. How do I produce auto-labels for my domain?"
Guided path:
Confirm env (model cache, VLM/LLM endpoints, GPU), then prove the stack on a shipped example before customizing:
make run SCRIPT=workflow-runner:main \
ARGS='--cookbook-file cookbooks/video_data_augmentation/configs/pipeline_video.yaml --container-dry-run'Plan the domain (scenario-planning) -> subset
detection_and_tracking -> captioning -> visual_qa -> reasoning -> training_export(addgrounding_2dfor caption→boxes orreferring_expressionsfor boxes→phrases; use grounding-2d / referring-expressions).Copy the closest cookbook to
cookbooks/warehouse_safety/configs/pipeline.yamland adapt inputs, detector classes/SAM3 prompts, prompts, and question banks.Dry-run the new cookbook, then run for real and validate outputs:
make run SCRIPT=workflow-runner:main \
ARGS='--cookbook-file cookbooks/warehouse_safety/configs/pipeline.yaml --container-dry-run'Guardrails
Do not guess or fabricate the critical inputs enumerated in step 1; if any is missing or ambiguous, ask the user and confirm before executing.
Do not customize a cookbook before a shipped example runs clean; a broken base makes domain debugging ambiguous.
Keep the first custom pipeline minimal - only the stages needed for the requested annotations - and expand later.
Verify that every selected stage's service package and image exist in the current branch before promising an end-to-end run.
Do not put secrets, tokens, or absolute home paths in committed cookbooks; use placeholders such as
<model-cache>and env vars for endpoint keys.For reasoning-capable models (for example Gemini 3 Flash), raise
max_tokenson thevisual_qaandreasoningLLM substages to avoid the thinking-token tax; keep the default cap for non-reasoning models.Do not rely on non-CDF pipelines, commands, or file locations. A first run must be reproducible through
workflow-runner:maininside this repo.
Files
- ATTRIBUTION.mdAdded by AutoGineer909 B
- BENCHMARK.md7.3 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md7.5 KiB
- evals/evals.json5.2 KiB
- references/README.md1.3 KiB
- references/cookbook-authoring.md6.3 KiB
- references/cookbook-authoring/cookbook-schema.md6.3 KiB
- references/cookbook-authoring/scenario-authoring.md2.8 KiB
- references/event-and-person-attribute-search.md5.1 KiB
- references/event-and-person-attribute-search/run-reference.md2.4 KiB
- references/event-verification-reasoning.md1.9 KiB
- references/event-verification-reasoning/run-reference.md1.3 KiB
- references/ngc-containers.md4.2 KiB
- references/pipeline-migration.md7.2 KiB
- references/pipeline-migration/migration-playbook.md3.8 KiB
- references/pipeline-migration/nonlinear-video-pipeline-example.md2.7 KiB
- references/pipeline-migration/service-reuse-matrix.md3.4 KiB
- references/pipeline-migration/sidecar-contracts.md3.0 KiB
- references/prompt-authoring.md3.3 KiB
- references/prompt-authoring/domain-evidence-checklists.md2.2 KiB
- references/prompt-authoring/prompt-patterns.md3.9 KiB
- references/prompt-authoring/question-bank-authoring.md2.0 KiB
- references/scenario-planning.md3.6 KiB
- references/scenario-planning/annotation-recommendations.md5.0 KiB
- references/scenario-planning/intake-and-decisions.md2.6 KiB
- references/scenario-planning/pipeline-composition.md6.0 KiB
- references/stages/captioning.md3.6 KiB
- references/stages/detection-and-tracking.md6.2 KiB
- references/stages/detection-tracking-patterns.md10.3 KiB
- references/stages/grounding-2d-patterns.md1.6 KiB
- references/stages/grounding-2d.md5.1 KiB
- references/stages/guardrails.md532 B
- references/stages/person-attribute-search.md4.5 KiB
- references/stages/reasoning.md5.0 KiB
- references/stages/referring-expressions-patterns.md1.2 KiB
- references/stages/referring-expressions.md5.5 KiB
- references/stages/super-resolution.md4.4 KiB
- references/stages/training-export.md3.7 KiB
- references/stages/visual-qa.md6.2 KiB
- references/video-data-augmentation.md12.2 KiB
- references/video-data-augmentation/run-reference.md3.7 KiB
- references/workflow-runner-debugging.md6.0 KiB
- references/workflow-runner-debugging/data-handoff.md3.5 KiB
- references/workflow-runner-debugging/runner-debugging-patterns.md3.7 KiB
- references/workflow-stage-integration.md7.1 KiB
- references/workflow-stage-integration/stage-service-contract.md3.0 KiB
- references/workflow-stage-integration/validation-checklist.md2.1 KiB
- skill-card.md4.9 KiB
- skill.oms.sig15.6 KiB
references/stages/detection-tracking-patterns.md
Detection And Tracking Patterns
The CDF workflow-runner service exposes a small stable surface for detection
and tracking. Backend selection and class/prompt lists live in the cookbook;
all backend tuning lives in stage_args.detection_and_tracking.
Runner Mapping
Direct fields read from detection_and_tracking::
detection_and_tracking:
enabled: true
model: rfdetr # rfdetr or sam3
tracker: boosttrack # boosttrack, bytetrack, or sam3
classes:
- person
- carMapping rules:
model: rfdetrwithtracker: boosttrackbecomes--tracker rfdetr-boosttrack.model: rfdetrwithtracker: bytetrackbecomes--tracker rfdetr-bytetrack.model: sam3ortracker: sam3becomes--tracker sam3and selects the SAM3 service image/build target by default.rfdetr-deepocsortis reserved but not registered in this branch; do not select it.Only
model,tracker, andclassesare mapped directly. Put thresholds, overlays, SAM3 knobs, and media-copy behavior instage_args.
Do not carry over unsupported detector keys such as use_reid, asso_func,
min_hits, max_age, save_video_red_id, or DeepOCSORT-specific settings.
Translate only to supported service flags.
Pass-Through Args
stage_args:
detection_and_tracking:
- --threshold
- "0.25"
- --iou-threshold
- "0.3"
- --per-class
- --min-track-frames
- "5"
- --save-video
- --save-red-id-overlayAlways dry-run and inspect the generated command:
make run SCRIPT=workflow-runner:main \
ARGS='--cookbook-file <config> --container-dry-run'Data Flow
Detection/tracking is annotation-only for active media. It consumes the prior SR
artifact when pipeline_state.enhanced_media.success points to an existing file;
otherwise it consumes the original DataEntry.media_path. It does not promote a
new active media file.
Outputs are recorded under pipeline_state.task_artifacts["detection_and_tracking"]:
contextual/objects.jsoncontextual/instances.jsonRF-DETR overlays under
sidecars/rfdetr/when requestedSAM3 annotated media under
sidecars/sam3/when requested
Captioning input_source=auto prefers SAM3 annotated_video_path, then RF-DETR
red_id_overlay_path, then enhanced media, then original media. If the caption
prompt should reference object IDs, request an overlay and make the captioning
input source explicit with --input-source tracking.
RF-DETR Backends
Use RF-DETR when the annotation needs COCO-style boxes, counts, and object IDs.
The default production choice is rfdetr-boosttrack; rfdetr-bytetrack is a
simpler fast path without the BoostTrack association layer.
Runtime requirements:
Matching RF-DETR service image:
detection-and-tracking-rfdetr-service.Checkpoint at
RFDETR_MODEL_PATHor<model_cache_path>/rfdetr/rf-detr-base.pth(default/models/rfdetr/rf-detr-base.pth).--allow-model-downloadcan download the base checkpoint when network access is allowed; keep it off in locked-down production runs.RFDETR_MODEL_SHA256validates custom checkpoint files when set.
Supported RF-DETR knobs:
--threshold: detector confidence threshold; start around0.25for traffic and0.2to0.3for cluttered indoor scenes, then tune with real clips.--iou-threshold: BoostTrack association threshold; default0.3.--per-class: keeps separate association state per class; recommended when multiple classes are tracked.--min-track-frames: filters short tracks from final DAFT artifacts; use5for noisy video,1for images or sparse clips.--save-video: writes RF-DETR detection and tracking overlays.--save-red-id-overlay: writes a re-ID overlay that captioning can consume.--save-rgb: writes diagnostic RGB frames undersidecars/rfdetr/rgb/.--copy-media: copies analyzed media intoraw/instead of symlinking.
RF-DETR class lists must be COCO-valid. Common COCO names include:
person, bicycle, car, motorcycle, airplane, bus, train, truck, boat,
traffic light, fire hydrant, stop sign, parking meter, bench, bird, cat, dog,
horse, sheep, cow, elephant, bear, zebra, giraffe, backpack, umbrella,
handbag, tie, suitcase, frisbee, skis, snowboard, sports ball, kite,
baseball bat, baseball glove, skateboard, surfboard, tennis racket, bottle,
wine glass, cup, fork, knife, spoon, bowl, banana, apple, sandwich, orange,
broccoli, carrot, hot dog, pizza, donut, cake, chair, couch, potted plant,
bed, dining table, toilet, tv, laptop, mouse, remote, keyboard, cell phone,
microwave, oven, toaster, sink, refrigerator, book, clock, vase, scissors,
teddy bear, hair drier, toothbrushRF-DETR rejects unknown names during tracker initialization. Do not add open
vocabulary labels such as forklift, pallet jack, hard hat, robot arm,
gripper, weapon, or firearm; cover those with VLM/VQA prompts or SAM3
when promptable masks/tracks are required.
SAM3 Backend
Use SAM3 when the annotation needs promptable object tracks, mask contours, object-ID overlays, or non-COCO objects. SAM3 is the right choice for event verification over short clips when the VLM should see visible IDs attached to prompted actors.
Runtime requirements:
Matching SAM3 service image:
detection-and-tracking-sam3-service.CUDA-capable GPU. The backend fails fast without CUDA.
Local SAM3 weights at
SAM3_MODEL_PATHor<model_cache_path>/sam3(default/models/sam3). This branch does not download SAM3 weights.At least one
--sam3-promptsvalue, orclassesvalues to use as prompts.
Prompt rules:
Prefer explicit
--sam3-promptsinstage_argsinstead of relying onclassesfallback.Use concrete visible object noun phrases:
a pedestrian,a car,a forklift,a robot arm,road debris.Do not use event labels as prompts:
collision,near miss,unsafe act,theft,policy violation.Keep prompt inventory small enough for the clip; too many prompts increase compute and can create ambiguous IDs.
Core SAM3 knobs:
--sam3-target-fps: sampled processing FPS. Use3.0to5.0for traffic or long-ish event verification,10.0for short clips where motion detail matters.--sam3-session-reset-s: chunk duration before resetting model state. Smaller values such as5.0reduce memory and isolate IDs by chunk;10.0is default.--sam3-max-duration-sor--sam3-max-clip-duration-s: maximum accepted clip duration. Default is30.0; raise only when GPU memory has been tested.--sam3-write-annotated-video: writes the overlay undersidecars/sam3/.--sam3-annotated-video-label-style id|name|none: choose ID labels for VLM grounding, names for human review, or none for clean visualization.--sam3-annotated-video-mask-opacity 0..100: mask fill opacity;0keeps outlines only,20is a useful review overlay.--sam3-annotated-video-trails: draw object trails when trajectory matters.
Advanced SAM3 quality knobs map directly to Sam3VideoConfig when provided:
--sam3-score-threshold-detection--sam3-det-nms-thresh--sam3-new-det-thresh--sam3-fill-hole-area--sam3-recondition-every-nth-frame--sam3-recondition-on-trk-masks true|false--sam3-high-conf-thresh--sam3-high-iou-thresh
Treat these as experiment knobs. Keep defaults unless a real clip shows missed objects, fragmented masks, or duplicate tracks. When tuning, change one knob at a time and re-check on the same representative clip. Stop as soon as detections and tracks look correct, or after at most 2-3 tuning passes. If quality is still inadequate after that bound, stop and escalate (switch backend, revisit prompts/classes, or flag the clip) rather than looping further.
Example SAM3 stage args for traffic ID overlays:
stage_args:
detection_and_tracking:
- --sam3-prompts
- a car
- a bus
- a truck
- a motorcycle
- a bicycle
- a pedestrian
- a traffic light
- --sam3-target-fps
- "3.0"
- --sam3-session-reset-s
- "5.0"
- --sam3-max-duration-s
- "45.0"
- --sam3-write-annotated-video
- --sam3-annotated-video-label-style
- id
captioning:
- --input-source
- trackingUse-Case Guidance
Traffic / roadway safety:
RF-DETR: use
person,bicycle,car,motorcycle,bus,truck,traffic light,stop signfor stable COCO boxes.SAM3: use when overlays/masks should ground incidents or when prompts such as
road debris,an emergency vehicle, ora pedestrianmatter.
Warehouse / operational liability:
RF-DETR: use
personand sometimestruckas a coarse equipment proxy; optionally add visible COCO carried items such asbackpack,handbag, orsuitcase.SAM3: use for
a forklift,a pallet jack,a pallet,a worker,a box, or zones/objects that RF-DETR cannot label.
Security surveillance:
RF-DETR: usually
person; addbackpack,handbag,suitcase, or vehicle classes only when boxes for those objects are needed.SAM3: use concrete visible objects and people; do not use prompts for intent, identity, or protected attributes.
Employee conduct:
RF-DETR:
personfor station presence and coarse movement.SAM3: use for workcell objects, tools, or PPE-like visible items only when masks/IDs are needed; VQA should still express uncertainty.
Robotics:
RF-DETR:
personplus any COCO tools/objects actually relevant.SAM3: use for
a robot arm,a gripper,a tool,a bolt,a workpiece, ora human handwhen promptable tracks support task-phase evidence.
Generic images:
Skip detection unless boxes or object inventories are required.
RF-DETR supports single images;
min_track_frames=1is appropriate.SAM3 can process image inputs as one-frame clips when local SAM3 runtime is available, but it is expensive for simple scene captions.
Validation Checks
After the stage runs, verify:
contextual/objects.jsonandcontextual/instances.jsonexist.Expected RF-DETR overlays exist when
--save-videoor--save-red-id-overlaywas requested.Expected SAM3 annotated media exists when
--sam3-write-annotated-videowas requested.pipeline_state.jsoncontainstask_artifacts["detection_and_tracking"].A downstream captioning stage that needs IDs uses
--input-source trackingor leavesinput_source=autowith an existing overlay path.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- NVIDIA
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/cdf-auto-labeling · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download cdf-auto-labeling.zip