physical-ai-people-attribute-search

द्वारा nvidia

Use when running people attribute search (PAS) image augmentation and auto-labeling workflows on OSMO: flow selection, preflight, submit-time interpolation,…

npx skills add https://github.com/nvidia/skills --skill physical-ai-people-attribute-search

Physical AI People Attribute Search Workflow Orchestrator

Default workflow skill for PAS execution on OSMO. It owns flow selection, preflight, submit-time interpolation, monitoring, and output retrieval.

Purpose

Run the PAS image augmentation and auto-labeling pipeline safely and reproducibly from preflight to output download.

The PAS pipeline augments existing person-crop datasets by generating controlled clothing/appearance variations (image-domain) and synonymous attribute captions (text-domain). It uses the paidf-augmentation container for image-edit augmentation with MCQ verification, and the paidf-auto-labeling container for person-attribute captioning.

Do NOT use this skill for container-internal tuning-only questions.

Prerequisites

Confirm these before running preflight or any submit. Missing required secrets surface as USER_INPUT_REQUIRED: from scripts/preflight_credentials.sh.

RequirementHow it is satisfiedUsed for
NGC API key (optional)NGC_API_KEY, NGC_CLI_API_KEY, or compatible nvapi-* tokenOptional for nvcr_io credential refresh; default PAS image refs are public
Hugging Face tokenHF_TOKEN (or HUGGING_FACE_HUB_TOKEN), or a cached token at ~/.cache/huggingface/tokenCreates the OSMO hf_token credential
OSMO CLI accessosmo on PATH, logged in, with a default profile and a registered DATA credential profile matching storage_urlSubmitting/monitoring workflows and listing/downloading objects
GPU poolAt least one ONLINE pool in osmo pool list --mode freeScheduling setup + worker tasks
Image Edit endpointIn-cluster NIM qwen-image-edit-2511 (reused if healthy, else deployed via the NIM operator); external opt-in via image_edit_urlImage-domain augmentation
VLM endpointIn-cluster NIM qwen3-vl (shared with VDA); external opt-in via vlm_urlMCQ verification and person-attribute captioning
LLM endpointIn-cluster NIM qwen25-14b (shared with VDA); external opt-in via llm_urlMCQ question generation

Instructions

  1. Select the workflow (e2e, augmentation, auto_labeling) from user intent.
  2. Provide a tentative execution-time overview before starting run actions.
  3. Run preflight and readiness checks before submit.
  4. Derive submit-time values from the active dataset backend (never guess storage_url).
  5. Submit the workflow with explicit interpolation values and monitor to completion.
  6. Retrieve outputs and summarize task outcomes.

Use run_script(...) for script execution. Canonical examples:

run_script("bash scripts/preflight_credentials.sh --workflow assets/configs/osmo/e2e.yaml")

Available Scripts

Use script-level --help for exact arguments.

ScriptRole
scripts/preflight_credentials.shSecrets/control-plane preflight and workflow image access checks
scripts/augmentation_worker.shImage-edit augmentation worker (preprocess, config gen, augment, post-process)
scripts/auto_labeling_worker.shPerson-attribute captioning worker
scripts/endpoint_common.shShared endpoint health/auth helpers

Supported Flows

FlowOSMO YAMLGroup sequenceTypical use
e2eassets/configs/osmo/e2e.yamlsetup -> augmentation -> auto_labelingFull pipeline: augment person crops then generate captions
augmentationassets/configs/osmo/augmentation.yamlsetup -> augmentationImage-edit augmentation only, no captioning
auto_labelingassets/configs/osmo/auto_labeling.yamlsetup -> auto_labelingCaptioning only on pre-augmented person crops

Pick the right workflow for the user's request

User intentWorkflow
"Augment person crops and generate captions" / "full PAS pipeline"e2e
"Generate clothing variations" / "augment only" / "image edit"augmentation
"Caption augmented images" / "generate search queries" / "label only"auto_labeling

Disambiguation: handle vague requests before committing

Default to autonomy: ask only when missing information blocks execution.

Autonomous defaults (do NOT ask)

  • If flow is not explicitly requested, default to e2e.
  • If cookbook is not specified, default to default.
  • If n_augmentations is not specified, default to 3.
  • After any stage completes successfully, continue to the next stage immediately.

Triggers that should pause for disambiguation

Missing inputWhy it mattersAsk
USER_INPUT_REQUIRED from preflightRequired secret is missingAsk one concise unblock question
Storage backend prefix cannot be derivedWrong scheme causes runtime storage auth mismatch"What is the backend-native root prefix for this run?"
No ONLINE GPU pool/platformWorkflow cannot schedule"Which GPU pool/platform should this run target?"
NIM deploy fails and no external URLs givenWorkers cannot connect to models"Provide Image Edit / VLM / LLM endpoint URLs, or grant GPU capacity for the NIM operator deploy."

Step 0: Select Flow and Gather Inputs

Input data policy

  • PAS requires person-crop images organized as <person_id>/<view>.jpg subdirectories.
  • Always preserve user-provided dataset inputs as first-class.
  • Never replace an explicit user dataset with demo assets.
  • If no dataset is provided, ask for one (PAS has no built-in demo dataset).

Collect only missing values:

  1. Dataset source (storage_url + dataset name).
  2. Flow (e2e, augmentation, auto_labeling); default to e2e.
  3. OSMO gpu_platform (auto-select when unambiguous).
  4. Endpoint URLs for Image Edit, VLM, and LLM — optional; default to in-cluster NIMs and only set for external endpoints.
  5. Number of augmentations per person ID (default: 3).

Generate run stamp before each submit:

STAMP=$(cat /proc/sys/kernel/random/uuid | cut -c1-8)
RUN_ID="run-$STAMP"

Execution Time Overview (required before run)

Before running any mutating command, provide a short ETA overview.

Baseline ranges:

PhaseTypical duration
Credentials + preflight~1-2 min
Workflow submit + queue/start~1-3 min

Workflow runtime (depends on dataset size and endpoint latency):

FlowPer-image timeTypical dataset (100 images, 3 augs)
augmentation~2.5-3 min/image~4-5 hours
auto_labeling~1-2 min/image~2-3 hours
e2e~3.5-5 min/image~6-8 hours

Common Preconditions (all flows)

  1. Credential and control-plane preflight

    bash scripts/preflight_credentials.sh --workflow assets/configs/osmo/<flow>.yaml
    

    If output contains USER_INPUT_REQUIRED:, ask one concise unblock question.

  2. Storage interpolation policy

    storage_url must be derived from the actual dataset/upload backend. Never silently default to stale values on mismatched backends.

  3. Inference policy (non-negotiable)

    • Reuse healthy in-cluster persistent NIM endpoints by default (qwen-image-edit-2511, qwen3-vl, qwen25-14b).
    • If missing/unhealthy, deploy automatically — this is a prerequisite, not a user decision. Do NOT pause to ask. See references/nim/README.md for the image-edit NIMService manifest and the VLM/LLM NIM operator install.
    • PAS does NOT launch inference servers inside the OSMO workflow; workers consume the image_edit_url / vlm_url / llm_url endpoints.
    • External endpoints are opt-in only (explicit request or explicit URLs); only then override the *_url values at submit.
    • Never scale down/delete existing NIMs to free GPUs.

Submit (all flows)

Every flow uses the same submit shape; only the workflow YAML changes.

SKILLS_DIR="$(cd "$(git rev-parse --show-toplevel)/skills/physical-ai-people-attribute-search" && pwd)"
STAMP=$(cat /proc/sys/kernel/random/uuid | cut -c1-8)
osmo workflow submit assets/configs/osmo/<flow>.yaml \
  --pool <pool> \
  --set-string \
    dataset=<dataset> \
    run_id=run-$STAMP \
    storage_url=<backend-prefix> \
    gpu_platform=<gpu-platform> \
    skills_dir="$SKILLS_DIR"

Endpoints default to the in-cluster NIMs (image_edit_url / vlm_url / llm_url); deploy/reuse them per the Inference policy above. Do not pass these unless using external endpoints.

Compatibility note:

  • Use exactly one --set-string flag and pass all key/value pairs after it.
  • Do not repeat --set/--set-string flags in the same command.

Common optional overrides (append to the same --set-string list):

cookbook=<cookbook_name> \
n_augmentations=<count> \
image_edit_url=<image-edit-endpoint> \
vlm_url=<vlm-endpoint> \
llm_url=<llm-endpoint>

OSMO Monitoring

# Workflow status + task states
osmo workflow query <workflow_id> --format-type json \
  | jq '{status, tasks: [.groups[].tasks[] | {name, status, exit_code}]}'

# Logs for a specific task
osmo workflow logs <workflow_id> --task <task_name> -n 200

# Output retrieval
osmo data list --no-pager <output_url>
osmo data download <output_url> <local_dir>/

For runs expected to exceed two minutes, send heartbeat updates at least every two minutes.

Post-Run Output

After successful completion, the output directory contains:

For augmentation / e2e:

  • <person_id>/aug_<n>/output.jpg — augmented multi-pane image
  • <person_id>/aug_<n>/output.txt — natural-language caption
  • <person_id>/aug_<n>/output_metadata.json — verification results
  • dataset/augmented_data.json — structured dataset with attributes and queries
  • dataset/augmented_imgs/ — split per-view crops

For auto_labeling:

  • caption_<id>/task/open_qa.json — person-attribute captions grouped by question bank

Supporting files

Use these canonical locations:

  • Workflows: assets/configs/osmo/*.yaml
  • Runtime scripts: scripts/*.sh
  • Flow walkthroughs: references/flows/*.md
  • Setup and triage: references/setup.md, references/troubleshooting.md
  • Images: references/container-images.md
  • Cookbook tuning: assets/cookbooks/default/README.md

nvidia की और Skills

compileiq-debug
nvidia
Use when something is wrong: Search() hangs, all evaluations return INVALID_SCORE, scores aren't improving, every config returns the same number, ptxas errors…
official
create-github-pr
nvidia
Create GitHub pull requests using the gh CLI. Use when the user wants to create a new PR, submit code for review, or open a pull request. Trigger keywords -…
official
diagnose-perf
nvidia
First-responder performance triage for Isaac Sim and Isaac Lab. Identifies bottleneck category (GPU-bound, CPU-bound, VRAM, loading) using nvidia-smi and…
official
eagle3-review-logs
nvidia
Review EAGLE3 pipeline experiment logs from the launcher's experiments/ directory. Summarizes pass/fail status for all 4 tasks, diagnoses failures with root…
official
nemoclaw-maintainer-cross-issue-sweep
nvidia
Scans other open issues to find ones a given PR may also fix or accidentally break. Outputs adjacent-fix opportunities and contradiction risks with file:line…
official
karpathy-guidelines
nvidia
सामान्य LLM कोडिंग गलतियों को कम करने के लिए व्यवहार संबंधी दिशानिर्देश। कोड लिखते, समीक्षा करते या रिफैक्टर करते समय उपयोग करें ताकि अत्यधिक जटिलता से बचा जा सके, सर्जिकल बदलाव किए जा सकें,…
official
fhir-basics
nvidia
Teaches agents how FHIR R4 APIs work, what resources are available, how to query them with search parameters, and how to correctly parse all response formats…
official
underdeclared-agent
nvidia
A helpful assistant agent
official