8.9 KiB
Тест-кейсы: Скилл image-gen
created: 2026-05-24
TC-01: Базовая генерация — один объект, дефолтная модель
Запрос пользователя: «сгенерируй фото блондинки»
Ожидаемое поведение:
- Агент матчит шаблон
blonde_woman - Промпт =
base(blonde_woman)+ качественные усилители из шаблона - Модель:
recraft/recraft-v4.1-pro(дефолт) - Aspect ratio: 9:16 (дефолт)
- Negative prompt из
params/models.md - Картинка отправлена в TG с подписью:
🎨 Model: recraft/recraft-v4.1-pro | 📝 Блондинка - Агент спрашивает: «Сохранить в избранное?»
Проверка: картинка в Telegram, вертикальная ✅
TC-02: Объект + локация
Запрос: «сгенерируй фото блондинки в парке»
Ожидаемое поведение:
- Матчит:
blonde_woman+park - Промпт =
base(blonde_woman)+base(park)+ merged контекст - Дефолтная модель, 9:16
Проверка: на фото — блондинка на фоне парка ✅
TC-03: Объект + локация + стиль
Запрос: «сгенерируй портрет блондинки в парке»
Ожидаемое поведение:
- Матчит:
blonde_woman+park+ стильportrait - Промпт =
base(blonde_woman)+base(park)+style(portrait) - Aspect ratio: остаётся 9:16 (портрет вертикальный — ок)
Проверка: мягкий боке, 85mm-look, блондинка в парке ✅
TC-04: Явное указание модели
Запрос: «сгенерируй фото блондинки через recraft-v4»
Ожидаемое поведение:
- Модель:
recraft/recraft-v4(явно указана) - Остальное — дефолты
Проверка: подпись содержит recraft-v4, не recraft-v4.1-pro ✅
TC-05: Мульти-модель — группа v4.1
Запрос: «сгенерируй блондинку через все модели v4.1»
Ожидаемое поведение:
--model group:all_v4.1→ разворачивается в 4 модели- Один и тот же промпт отправляется в каждую модель
- В TG приходят 4 картинки, каждая с подписью своей модели
Проверка: 4 фото в TG с разными моделями в подписи ✅
TC-06: Мульти-модель — все recraft
Запрос: «сгенерируй через все модели recraft»
Ожидаемое поведение:
--model group:all→ 7 моделей- 7 картинок в TG
Проверка: 7 фото, все с разными моделями ✅
TC-07: Несколько вариантов от одной модели
Запрос: «сгенерируй 3 варианта фото блондинки»
Ожидаемое поведение:
--count 3, дефолтная модель- 3 картинки с одного промпта (разный seed)
- Каждая отправлена отдельно в TG
Проверка: 3 фото в TG, одна и та же модель в подписи ✅
TC-08: Нестандартные детали без шаблона
Запрос: «сгенерируй фото гор на закате»
Ожидаемое поведение:
- Нет шаблона для "горы" — агент использует детали из запроса напрямую
- Промпт = перевод запроса на английский + quality enhancers
- Не падает с ошибкой
Проверка: горы на закате, нет артефактов ✅
TC-09: Горизонтальный формат
Запрос: «сгенерируй горизонтальное фото пляжа»
Ожидаемое поведение:
- Слово "горизонтальное" → aspect ratio
16:9 - Промпт матчит шаблон
beach
Проверка: фото горизонтальное (landscape) ✅
TC-10: Квадратный формат
Запрос: «сгенерируй квадратное фото кафе»
Ожидаемое поведение:
- "квадратное" → aspect ratio
1:1 - Шаблон
cafe
Проверка: квадратное фото ✅
TC-11: Сохранение в избранное
Запрос: «сгенерируй блондинку в лесу»
→ Картинка отправлена
→ Агент: «Сохранить в избранное?»
Ответ: «да»
Ожидаемое поведение:
- В
params/favorites.mdдобавлена запись:- дата, краткое описание, модель, полный промпт, negative prompt
Проверка: запись появилась в params/favorites.md ✅
TC-12: Negative prompt работает
Запрос: «сгенерируй фото девушки в полный рост»
Ожидаемое поведение:
- Negative prompt включён:
deformed limbs, distorted hands, extra fingers... - Руки и ноги выглядят нормально
Проверка: нет деформаций рук/ног ✅ (субъективная оценка)
TC-13: A2E.ai провайдер
Запрос: «сгенерируй фото блондинки через a2e»
Ожидаемое поведение:
--provider a2e- Вызывается A2E API (не OpenRouter)
- Картинка сохранена и отправлена в TG
Проверка: картинка пришла, в подписи видно что это A2E ✅
TC-14: Кинематографический стиль
Запрос: «сгенерируй кинематографическое фото города ночью»
Ожидаемое поведение:
- Стиль
cinematic+ шаблонcity+ детали "ночью" (night) - Промпт:
cinematic shot, dramatic lighting, city at night...
Проверка: ночной город, кинематографический вид ✅
TC-15: Несуществующий шаблон + несуществующий стиль
Запрос: «сгенерируй фото дракона в стиле акварели»
Ожидаемое поведение:
- Нет шаблона "дракон", нет стиля "акварель"
- Агент переводит запрос на английский напрямую:
dragon, watercolor style... - Не падает, генерирует
Проверка: фото дракона в акварельном стиле ✅
TC-16: Граничный случай — очень короткий запрос
Запрос: «сгенерируй»
Ожидаемое поведение:
- Агент уточняет: «Что именно сгенерировать?»
- Не вызывает скрипт с пустым промптом
Проверка: агент задал уточняющий вопрос ✅
TC-17: Граничный случай — запрос на английском
Запрос: «generate photo of blonde in a park»
Ожидаемое поведение:
- Скилл триггерится на английский запрос тоже
- Матчит
blonde_woman+park
Проверка: сгенерировано нормально ✅
Чеклист для финальной приёмки
| TC | Описание | Статус |
|---|---|---|
| TC-01 | Базовая генерация | ⬜ |
| TC-02 | Объект + локация | ⬜ |
| TC-03 | Объект + локация + стиль | ⬜ |
| TC-04 | Явная модель | ⬜ |
| TC-05 | Группа all_v4.1 | ⬜ |
| TC-06 | Все модели | ⬜ |
| TC-07 | 3 варианта | ⬜ |
| TC-08 | Без шаблона | ⬜ |
| TC-09 | Горизонтальный | ⬜ |
| TC-10 | Квадратный | ⬜ |
| TC-11 | Избранное | ⬜ |
| TC-12 | Negative prompt | ⬜ |
| TC-13 | A2E провайдер | ⬜ |
| TC-14 | Кино стиль | ⬜ |
| TC-15 | Нет шаблона/стиля | ⬜ |
| TC-16 | Пустой запрос | ⬜ |
| TC-17 | Запрос на английском | ⬜ |