Вернуться к блогу
Нам в Amiga давно хотелось не просто наблюдать за нейросетями со стороны, а сделать с ними что-то живое. Так появилась идея внедрить ИИ в PR-активности и собрать к 8 марта Telegram-бота для генерации персонализированных открыток.
Идея простая: пользователь проходит мини тест, загружает селфи и превращается в одного из 10 героев популярных фильмов. Мы настроили нейронку так, чтобы она переносила черты лица с загруженного фото, сохраняя узнаваемость. Самое классное, когда человек открывал результат, узнавал себя в арте и выдавал: «Ого, реально похож!».
Так появился наш первенец — @amigaparty_bot. Да, было много правок и не всё вышло идеально, зато теперь мы знаем эту «кухню» изнутри и готовы двигаться дальше.
При выборе модели мы протестировали практически все доступные решения на рынке. Ранние версии показывали недостаточное качество: картинки получались либо слишком абстрактными, либо совсем не соответствовали логике ответов. В итоге мы остановились на последней версии GPT Image 1.5.
Она показала наиболее стабильную работу с контекстом и высокое качество финальной картинки, что критично для виральности в Telegram.
Для сравнения: ниже представлены результаты обработки фото сотрудника по шаблону в моделях версий 1 и 1.5 (настройках low quality).
Для работы использовались облачные API, так как свои серверы требовали слишком много ресурсов. На этапе тестирования рассматривалась модель Gemini, но возникли сложности с оплатой и стабильностью доступа, поэтому был выбран OpenAI API. Самым сложным моментом стало время ожидания. Нейросеть генерировала изображение примерно 30–40 секунд. Так как выпускали бота специально к 8 Марта, то решили обыграть паузу и добавили статус ожидания «💞Спасибо, наши мартовские котики уже рисуют твой портрет...💞», чтобы пользователи не скучали в ожидании.
Когда мы всё настроили и нажали «пуск», вылезла проблема, которой не ждали. Оказалось, что у OpenAI очень суровая цензура. Их встроенные фильтры безопасности (Content Filter) работают как максимально строгий вахтер: чуть что не по инструкции — генерация сразу летит в бан с ошибкой.
Самое нелепое, что система ругалась на совершенно обычные слова. Мы хотели описать атмосферу праздника и использовали что-то вроде «взрывной вайб» или «зажигательный вечер». Для нейросети это звучало как прямая угроза, и она наотрез отказывалась нам что-либо рисовать.
Пришлось на ходу становиться редакторами. Мы часами перебирали синонимы и искали слова, которые передают то же настроение, но не пугают фильтры. В итоге внедрили «санитайзеры» — небольшие скрипты, которые на лету чистили промпты от слов-триггеров и подбирали им нейтральные замены. Это был тот еще квест: как описать искры и драйв так, чтобы нейросеть не увидела в этом криминал.
Когда с фильтрами разобрались, позвали коллег потестить бота. И тут начался настоящий парад нейросетевого безумия. Оказалось, что у ИИ очень специфическое чувство юмора и странные представления об анатомии.
Наши чаты заполнили шедевры: кто-то превращался в сурового викинга, но с шестью пальцами на руке, а чьи-то лица становились просто белым пятном. Видимо, она слишком буквально поняла фразу «яркий свет» в промпте и решила выкрутить прожектор на максимум.
Мы начали «дрессировать» бота дальше. Стало лучше, но странности не закончились: нейронка внезапно начала путать пол и превращать парней в нежных дам. Одних коллег бот беспощадно старил, а других — омолаживал до состояния какого-то бородатого младенца. Мы поняли, что ИИ — это не послушный робот, а капризный художник, которого нужно очень долго направлять.
Мы понимали: праздники и поводы для радости случаются часто. Если под каждый из них команда будет разрабатывать всё с нуля, мы просто погрязнем в процессах.
Вместо этого мы поймали волну вайбкодинга и решили сразу вложиться в админку-конструктор. Создали базу, на которой теперь можно быстро собирать новые интерактивы
Честно говоря, обычные тесты в сети уже всем надоели. Но когда мы увидели в админке, как счетчик завершенных сценариев летит вверх, а в соцсетях посыпались картинки с обсуждением сходства, стало ясно — формат живой. Для нас это был первый, местами непростой, но очень вдохновляющий опыт работы с нейронками и капризной цензурой OpenAI.
Весь путь от идеи до релиза пролетел буквально за неделю. Ритм сумасшедший: первые три дня всем офисом согласовывали тексты и визуал главных героев, чтобы итоговая генерация по фото выглядела именно так, как мы задумали. Затем на «вайбкодинг» базы ушло всего два дня. Времени на тесты в итоге осталось в обрез, но мы сознательно отказались от одноразового решения. Если механика выстрелит, PR-отдел вернется с новыми идеями уже через неделю, и переделывать под каждый инфоповод будет просто некогда. Мы один раз вложились в платформу, чтобы теперь запускать любые сценарии за один вечер.
В итоге мы получили идеальную схему: теперь ребята из PR сами управляют процессом через две основные вкладки:
Вкладка «Вопросы» — это место, где настраивается вся логика опроса. Вместо того чтобы просто перекидывать с одного этапа на другой, бот анализирует каждое действие пользователя:
Настройка контента: PR-сотрудник сам прописывает вопросы или использует генерацию, чтобы быстро создать сценарий.
Система «весов»: Каждому ответу назначается определенный балл. Например, один вариант добавит +0.5 к «креативности», а другой — +1.0 к «технологичности».
Умный подсчет: Пока пользователь проходит тест, бот суммирует эти баллы в невидимую «копилку».
В итоге к концу опроса у системы есть четкий набор данных, который помогает ей выбрать правильный промпт и выдать максимально подходящий результат именно для этого человека.
2. Вкладка «Финальный экран» — это место, где настраивается всё, что пользователь увидит в самом конце:
Текст и картинка-результат: PR-сотрудник пишет итоговое сообщение и загружает изображение. Здесь тоже работают «веса»: система сама выбирает нужный финал в зависимости от того, как пользователь отвечал на вопросы.
Промпт для ИИ: тут прописывается текстовая инструкция для нейросети.
Изображение-шаблон: картинка, которую загрузил сотрудник, используется нейросетью как визуальная основа (референс), чтобы итоговый арт сохранил нужный стиль.
Проще говоря: на этой странице мы соединяем сценарий бота с мощностями нейросети, чтобы на выходе получить готовый персонализированный результат.
Бот работает, люди заходят, и для нас это прежде всего важный опыт. Главное открытие: промпт-инжиниринг оказался куда сложнее, чем мы предполагали. Нельзя просто один раз написать запрос и забыть. Настройку нейросети нужно закладывать как полноценный этап разработки, а времени на это уходит в разы больше, чем кажется в начале.
Самое приятное было видеть реакцию в чатах, когда люди начали перекидывать друг другу результаты. Кто-то удивлялся: "Ого, нейронка реально угадала мой характер!", кто-то спорил, похоже получилось или нет. Но главное — мы увидели, что наша система с баллами и весами сработала. Люди почувствовали, что картинка зависит именно от их ответов, а не вылетает рандомно. Это и дало тот самый драйв: когда твои расчеты превращаются в живые эмоции и репосты
Но ценнее всего то, что мы получили инструмент, который реально разгрузил наш PR отдел. Если завтра появится идея нового квеста или теста (спойлер – она уже на подходе), не нужно звать разработчиков и ждать неделю. Вся логика и картинки теперь настраиваются в админке буквально за вечер.
Первый запуск показал нам, где у нейронок «тонкие места», поэтому сейчас мы не просто фиксим баги, а закладываем фундамент для чего-то более масштабного. Вот над чем работаем прямо сейчас:
Второй заход с новой моделью. Мы уже вовсю готовим обновление. Хотим потестить другие модели генерации, чтобы картинки стали еще чище, а нейросеть перестала рисовать «лишние детали» там, где они совсем не нужны.
Локальные решения. Постепенно поглядываем в сторону моделей, которые можно запустить на своих мощностях. Это даст больше свободы и независимость от внешних API.
Заходите в @amigaparty_bot за своими аватарками, пока есть время! Совсем скоро у нас по плану будет новый горячий контент, и генерить Шерлоков Холмсов уже не получится. Самое интересное только начинается!