Files
wiki/tasks/image-gen/TEST_CASES.md
2026-05-24 21:10:02 +03:00

8.9 KiB
Raw Permalink Blame History

Тест-кейсы: Скилл image-gen


created: 2026-05-24

TC-01: Базовая генерация — один объект, дефолтная модель

Запрос пользователя: «сгенерируй фото блондинки»

Ожидаемое поведение:

  1. Агент матчит шаблон blonde_woman
  2. Промпт = base(blonde_woman) + качественные усилители из шаблона
  3. Модель: recraft/recraft-v4.1-pro (дефолт)
  4. Aspect ratio: 9:16 (дефолт)
  5. Negative prompt из params/models.md
  6. Картинка отправлена в TG с подписью: 🎨 Model: recraft/recraft-v4.1-pro | 📝 Блондинка
  7. Агент спрашивает: «Сохранить в избранное?»

Проверка: картинка в Telegram, вертикальная


TC-02: Объект + локация

Запрос: «сгенерируй фото блондинки в парке»

Ожидаемое поведение:

  1. Матчит: blonde_woman + park
  2. Промпт = base(blonde_woman) + base(park) + merged контекст
  3. Дефолтная модель, 9:16

Проверка: на фото — блондинка на фоне парка


TC-03: Объект + локация + стиль

Запрос: «сгенерируй портрет блондинки в парке»

Ожидаемое поведение:

  1. Матчит: blonde_woman + park + стиль portrait
  2. Промпт = base(blonde_woman) + base(park) + style(portrait)
  3. Aspect ratio: остаётся 9:16 (портрет вертикальный — ок)

Проверка: мягкий боке, 85mm-look, блондинка в парке


TC-04: Явное указание модели

Запрос: «сгенерируй фото блондинки через recraft-v4»

Ожидаемое поведение:

  1. Модель: recraft/recraft-v4 (явно указана)
  2. Остальное — дефолты

Проверка: подпись содержит recraft-v4, не recraft-v4.1-pro


TC-05: Мульти-модель — группа v4.1

Запрос: «сгенерируй блондинку через все модели v4.1»

Ожидаемое поведение:

  1. --model group:all_v4.1 → разворачивается в 4 модели
  2. Один и тот же промпт отправляется в каждую модель
  3. В TG приходят 4 картинки, каждая с подписью своей модели

Проверка: 4 фото в TG с разными моделями в подписи


TC-06: Мульти-модель — все recraft

Запрос: «сгенерируй через все модели recraft»

Ожидаемое поведение:

  1. --model group:all → 7 моделей
  2. 7 картинок в TG

Проверка: 7 фото, все с разными моделями


TC-07: Несколько вариантов от одной модели

Запрос: «сгенерируй 3 варианта фото блондинки»

Ожидаемое поведение:

  1. --count 3, дефолтная модель
  2. 3 картинки с одного промпта (разный seed)
  3. Каждая отправлена отдельно в TG

Проверка: 3 фото в TG, одна и та же модель в подписи


TC-08: Нестандартные детали без шаблона

Запрос: «сгенерируй фото гор на закате»

Ожидаемое поведение:

  1. Нет шаблона для "горы" — агент использует детали из запроса напрямую
  2. Промпт = перевод запроса на английский + quality enhancers
  3. Не падает с ошибкой

Проверка: горы на закате, нет артефактов


TC-09: Горизонтальный формат

Запрос: «сгенерируй горизонтальное фото пляжа»

Ожидаемое поведение:

  1. Слово "горизонтальное" → aspect ratio 16:9
  2. Промпт матчит шаблон beach

Проверка: фото горизонтальное (landscape)


TC-10: Квадратный формат

Запрос: «сгенерируй квадратное фото кафе»

Ожидаемое поведение:

  1. "квадратное" → aspect ratio 1:1
  2. Шаблон cafe

Проверка: квадратное фото


TC-11: Сохранение в избранное

Запрос: «сгенерируй блондинку в лесу»
→ Картинка отправлена
→ Агент: «Сохранить в избранное?»
Ответ: «да»

Ожидаемое поведение:

  1. В params/favorites.md добавлена запись:
    • дата, краткое описание, модель, полный промпт, negative prompt

Проверка: запись появилась в params/favorites.md


TC-12: Negative prompt работает

Запрос: «сгенерируй фото девушки в полный рост»

Ожидаемое поведение:

  1. Negative prompt включён: deformed limbs, distorted hands, extra fingers...
  2. Руки и ноги выглядят нормально

Проверка: нет деформаций рук/ног (субъективная оценка)


TC-13: A2E.ai провайдер

Запрос: «сгенерируй фото блондинки через a2e»

Ожидаемое поведение:

  1. --provider a2e
  2. Вызывается A2E API (не OpenRouter)
  3. Картинка сохранена и отправлена в TG

Проверка: картинка пришла, в подписи видно что это A2E


TC-14: Кинематографический стиль

Запрос: «сгенерируй кинематографическое фото города ночью»

Ожидаемое поведение:

  1. Стиль cinematic + шаблон city + детали "ночью" (night)
  2. Промпт: cinematic shot, dramatic lighting, city at night...

Проверка: ночной город, кинематографический вид


TC-15: Несуществующий шаблон + несуществующий стиль

Запрос: «сгенерируй фото дракона в стиле акварели»

Ожидаемое поведение:

  1. Нет шаблона "дракон", нет стиля "акварель"
  2. Агент переводит запрос на английский напрямую: dragon, watercolor style...
  3. Не падает, генерирует

Проверка: фото дракона в акварельном стиле


TC-16: Граничный случай — очень короткий запрос

Запрос: «сгенерируй»

Ожидаемое поведение:

  1. Агент уточняет: «Что именно сгенерировать?»
  2. Не вызывает скрипт с пустым промптом

Проверка: агент задал уточняющий вопрос


TC-17: Граничный случай — запрос на английском

Запрос: «generate photo of blonde in a park»

Ожидаемое поведение:

  1. Скилл триггерится на английский запрос тоже
  2. Матчит 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 Запрос на английском