# tao-generate-image-grounding

Двухшаговый конвейер: модель зрения вытаскивает из подписи к картинке именные группы и ставит каждой пиксельный bounding box. Нужен для сборки датасета под phrase grounding.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1600 установок · ★ 3735
- Автор: NVIDIA Corporation
- Лицензия: Apache-2.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/NVIDIA/skills/tree/HEAD/skills/tao-generate-image-grounding/SKILL.md
- Обновлён: 2026-10-26
- HTML: https://affpapa.org/nevibecode/skills/tao-generate-image-grounding

## Что делает

Скилл берёт JSONL, где на каждой строке объект с `image_path` и `caption`, и прогоняет его через VLM в два прохода. На шаге 0 модель смотрит на картинку, чистит подпись и выделяет выражения со спанами символов. На шаге 1 каждому выражению достаётся набор рамок в пикселях с оценками уверенности. Шаги включаются по отдельности через `workflow.steps`, поэтому можно остановиться на извлечении выражений или гонять только grounding поверх готового `results_dir/step_0_expression_extraction/annotations.jsonl`.

Запуск идёт в контейнере TAO Toolkit через CLI `auto_label generate` с Hydra-оверрайдами вроде `image_grounding.data.input_jsonl=...`. По умолчанию включён бэкенд `gemini`, для него нужен `GOOGLE_API_KEY`; остальные варианты — любой OpenAI-совместимый эндпоинт: NIM, vLLM, inference-микросервис TAO или свой. Каждый шаг пишет чекпоинт в `step_<N>_*/.ckpt/<sample_id>.json` и при повторе пропускает обработанные записи, пока не выставлен `workflow.force_reprocess: true`. Параллельных потоков по умолчанию 4 — на узких лимитах API это первое, что стоит убавить.

Без docker, nvidia-container-toolkit и хотя бы одного доступного эндпоинта с ключом конвейер не поедет. Скрипт `tao-setup` вызывается первым, если сессию поднял не банк скиллов TAO. Для пробы возьмите 5–10 картинок, проверьте `cleaned_caption` и рамки в `expressions[].instances[]`, и только потом масштабируйте — на слабой модели выражение легко уезжает в чужую рамку.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-generate-image-grounding -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/tao-generate-image-grounding/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/tao-generate-image-grounding/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-generate-image-grounding -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/tao-generate-image-grounding/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-generate-image-grounding -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/tao-generate-image-grounding/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install NVIDIA/skills tao-generate-image-grounding
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/tao-generate-image-grounding/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-generate-image-grounding -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/NVIDIA/skills --path skills/tao-generate-image-grounding
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/tao-generate-image-grounding/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add NVIDIA/skills --skill tao-generate-image-grounding -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/NVIDIA/skills/tree/HEAD/skills/tao-generate-image-grounding/SKILL.md

## Когда брать
- выделить из подписи именные группы, которые можно привязать к пикселям
- проставить bounding box каждой фразе и получить оценки уверенности
- собрать датасет под referring-expression и grounding-модели
- дозапустить конвейер с места, где он остановился, не переобрабатывая всё заново
- прогнать разметку на своей модели через Anthropic-совместимый эндпоинт

## Примеры запросов агенту
- Разметь картинки из `captions.jsonl` по обоим шагам: `auto_label generate -e spec.yaml image_grounding.data.input_jsonl=/data/captions.jsonl`
- Запусти только grounding поверх готового `step_0_expression_extraction/annotations.jsonl` с `workflow.steps=["1"]`
- Перегони датасет заново с `image_grounding.workflow.force_reprocess=true`, чекпоинты не используй

## Похожие
- [image-to-text](https://affpapa.org/nevibecode/skills/image-to-text.md) — скилл · 713 установок
- [image-generation](https://affpapa.org/nevibecode/skills/image-generation.md) — скилл · 5600 установок
- [venice-image-generate](https://affpapa.org/nevibecode/skills/venice-image-generate.md) — скилл · 2700 установок
- [generate-image](https://affpapa.org/nevibecode/skills/k-dense-ai-generate-image.md) — скилл · 2000 установок
- [remove-background](https://affpapa.org/nevibecode/skills/remove-background.md) — скилл · 7600 установок
- [silicon-paddle-ocr](https://affpapa.org/nevibecode/skills/silicon-paddle-ocr.md) — скилл · 1200 установок

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
