Статья написана в пользовательском блоге — редакция Партнеркина не вносит изменения в текст. Вся орфография, пунктуация и содержание сохранены
13 мая 0 170

Как я перестал тонуть в AI‑генерации и собрал свой стенд для тестов

В какой‑то момент я поймал себя на том, что занимаюсь не работой, а бесконечным перебором сервисов.

Запускаю один генератор — вроде все ок. Перехожу в другой — работает быстрее, но картинка начинает плыть. В третьем снова беда с пропорциями. Пара дней таких экспериментов — и все, полная белиберда: скриншоты раскиданы по разным папкам, заметки живут в трех местах, а на простой вопрос какой инструмент мне действительно подходит? ответить уже нечем.

В какой‑то момент терпение закончилось, и я собрал себе небольшой тестовый стенд на TypeScript. Никакой тяжелой обвязки: обычный проект, OpenRouter API и пачка скриптов, которые гоняются через npm run test:*.

Схема элементарная: один и тот же набор задач уезжает в разные модели, а результаты раскладываются по своим директориям и собираются в удобный HTML‑отчет. Открыл в браузере — и сразу видно, кто реально работает, а кто просто создаёт красивую видимость.

Что я проверяю у моделей

Вместо абстрактных бенчмарков я взял живые сценарии — те самые, на которых чаще всего обжигаюсь.

Соотношение сторон — test:aspect-ratio
Модель должна вернуть тот формат, который ей задали: 3:4, 1:1, 16:9. На словах это базовая функция, но в реальности часть движков упорно штампует квадрат, даже если в промпте черным по белому написана вертикаль.

Длинные и нагруженные промпты — test:long-prompt
Классика жанра: ТЗ от заказчика на полэкрана, с кучей уточнений, исключений и а вот тут еще поправь. На таких простынях моментально видно, какая модель держит контекст, а какая к середине начинает фантазировать.

Нишевые запросы — test:niche: ресторан, ремонт, медицина, дом
Спросить уютный интерьер — задача уровня для всех. А вот сформулируй конкретнее, вроде ванная в процессе ремонта — и начинается цирк: один генератор рисует склад, другой — почти операционную, третий выдает что‑то совсем странное.

Стоимость и скорость — test:cost-and-time
Здесь я смотрю не только на цену, но и на реальное время генерации. Забавно, как дешевая модель легко становится дороже конкурентов, если просто дольше всех считает один и тот же запрос.

Плюс есть композиционные проверки: коллажи 2×2, 3×3, вариативные промпты — это уже история про аккуратность композиций и тонкую настройку.

Как все это крутится

Каждый прогон сохраняется в outputs/<test_name>/results/, а в корне лежит outputs/<test_name>/index.html.

Я больше не прыгаю по папкам и не пытаюсь на глаз выловить отличия в скриншотах.

Открываю HTML‑отчет — и вижу сразу:

  • Какие тесты модель прошла, а какие провалила (PASS/FAIL);
  • Какие реальные размеры она вернула;
  • Пережила ли длинные инструкции или сломалась по дороге;
  • Кто действительно быстрый, а кто просто сжигает бюджет.

Отдельно я сделал себе удобное управление моделями. В models.conf хранится список, и я щелкаю ими как переключателями: нужно — включил, надоела — закомментировал. Сами тесты при этом не переписываю.

Сейчас в активном списке у меня, например, flux.2-klein-4b, riverflow-v2-fast, seedream-4.5, а остальные спокойно лежат в конфиге и ждут следующего раунда экспериментов.

Что это изменило в работе

Главный эффект в том, что я перестал ориентироваться на лайки, эмоции и красивые посадочные страницы.

Теперь все выглядит намного спокойнее и понятнее:

  • Нужно быстро накидать десяток черновых концептов — беру модель, которая по отчетам реально быстрее, даже если иногда дает мелкие артефакты;
  • Важны чистая композиция и аккуратные детали — переключаюсь на более вылизанную модель, даже если она чуть медленнее;
  • Впереди длинный и сложный промпт — смотрю на результаты test:long-prompt, а не на обещания в маркетинговых блоках.

В какой‑то момент это перестало быть игрой давай попробуем еще один модный сервис, а вдруг повезет.

Как вам статья?
#Ai Chatbot #генерация #ии #нейросети