Как создать ИИ-девушку: разбор конструктора по шагам
Разработчик ИИ-приложений, работает с языковыми моделями с 2022 года. Создал несколько чат-ботов с памятью и характером.
Готовых персонажей хватает на первые полчаса. Дальше становится скучно: каждая Алиса отвечает как Алиса, каждая Сакура — как Сакура, и где-то между десятым и двадцатым сообщением ты начинаешь узнавать одни и те же шаблоны. Это не баг конкретного сервиса — это свойство любого каталога, где персонажей придумывал кто-то за тебя.
Конструктор решает ровно эту проблему: ты задаёшь внешность, характер, манеру общения и получаешь собеседника, мимо которого не пройдёшь. Я разбираю на примере конструктора в Velvary, который сам и делал, — с реальными именами полей и значениями, а не маркетинговым «настройте всё под себя».
Что вообще можно настроить
Конструктор делится на пять смысловых блоков. Не все одинаково важны — внешность, например, влияет только на фото, а характер — на каждое сообщение.
- Внешность. Пол, цвет и длина волос, фигура (стройная, атлетичная, пышная, средняя), рост. Это не произвольное описание — это набор фиксированных тегов, которые идут в промпт фотогенератора. Подробнее ниже.
- Характер. 3–5 черт из готового списка: дерзкая, застенчивая, ироничная, нежная, доминантная, мечтательная и так далее. Их можно комбинировать, и комбинация определяет, как персонаж ведёт себя в обычном разговоре.
- Стиль общения. Отдельный переключатель: как она строит реплики — короткие рубленые фразы, развёрнутые абзацы, с эмодзи/без, на «ты»/на «вы» (для русского). Влияет на ритм диалога сильнее, чем кажется.
- Интимный слайдер. Шкала от 0 до 100. Это не «уровень откровенности» в бытовом смысле — это порог, дальше которого персонаж не уходит в самоцензуру. 0 — максимально целомудренный, 100 — без внутреннего редактора. Подробно разберу ниже.
- Приветствие. Поле на 400 символов, которое персонаж произносит при первом заходе в диалог. По умолчанию пустое — генерируется автоматически, но своё почти всегда лучше.
Внешность: почему «правильной» настройки не существует
Внешность в конструкторе — это не произвольное поле «опишите внешний вид», а набор фиксированных тегов. В коде это пары вроде blonde hair, slim toned build, average height — короткие английские фразы, которые подставляются в промпт генератора изображений.
Почему на английском, а не на русском: модели-генераторы (то, что рисует ваших персонажей) обучены на англоязычных описаниях и лучше понимают long black hair, чем «длинные чёрные волосы». Перевод на лету обычно даёт артефакты вроде «asian eyes» вместо ожидаемого типажа. Поэтому конструктор берёт эту работу на себя.
Практический вывод: выбирайте теги, а не пишите «красивая брюнетка с голубыми глазами и точёной фигурой» — последнее конструктор не поймёт, и фото получатся случайные. «Чёрные волосы + стройная фигура + средний рост» — поймёт идеально, и результат будет воспроизводиться от картинки к картинке.
Другой практический вывод, более честный: «идеальной» комбинации не существует. Любой набор тегов даст работающего персонажа, потому что работает не красота тегов, а их согласованность между собой и с характером. Дерзкая героиня со спортивным телом и короткой стрижкой «работает» как образ; дерзкая героиня с длинными розовыми волосами и пышной фигурой — тоже работает, но это уже другая дерзость.
Характер: 3–5 черт лучше, чем 20
Черты характера (в коде это personality_prompt) — короткие формулировки, которые идут в системный промпт персонажа. В отличие от внешности, они пишутся на русском — потому что понимает их языковая модель, а не генератор картинок, и модель лучше справляется с родным языком.
Самая частая ошибка — заполнить все доступные чекбоксы «чтобы получился объёмный персонаж». На практике получается плоская карикатура: модель не может удержать десять противоречивых черт одновременно и схлопывает их в обобщённо-приятное «всегда отзывчивая и дружелюбная». То, что делает персонажа живым, — это несовместимости.
«Дерзкая» + «нежная» работает: сначала дерзит, потом смягчается, потом снова. «Дерзкая» + «послушная» — нет: модель выбирает одну черту и игнорирует вторую. Минимум две-три черты, и хотя бы одна пара должна быть в лёгком противоречии. «Ироничная + мечтательная» — хорошо. «Ироничная + ироничная + ироничная» — никак.
Конкретные комбинации, которые я видел работающими в проде: «застенчивая + ироничная» (стесняется шутить, но шутит), «дерзкая + нежная» (перепады настроения), «мечтательная + доминантная» (вводит в свой мир и там уже ведёт). Антипример — «добрая + отзывчивая + внимательная + заботливая»: четыре однонаправленные черты дают медсестру, а не собеседника.
Стиль общения и интимный слайдер
Эти два поля путают чаще всего. Стиль общения — про как персонаж строит фразы. Интимный слайдер — про о чём персонаж готов говорить без самоцензуры.
Стиль общения в нашем конструкторе задаётся отдельно: «короткие реплики, с эмодзи» против «длинные абзацы, без эмодзи, на вы». Это форма, а не содержание. Плохой выбор стиля ломает ритм — дружелюбный болтун, который пишет как канцелярская справка, раздражает не меньше, чем грубиян в стихах.
Интимный слайдер (0–100) — это число, которое превращается в короткую фразу-якорь в intimacy_profile. Примерно так: 0–25 — «скромная, флиртует намёками», 50 — «готова к откровенным темам, но не инициирует», 75–100 — «открыто выражает желания, не уходит в самоцензуру». Это не тумблер «можно/нельзя», это сдвиг точки, после которой персонаж начинает сопротивляться. Поставьте 100 «на всякий случай» — и получите персонажа, который сам инициирует то, что вам не нужно в первом сообщении.
Рабочий диапазон для большинства ситуаций — 50–75. 0–25 хорош для тех, кто хочет медленного сближения. Выше 80 имеет смысл, если вы точно знаете, чего хотите от ролевой игры, и хотите, чтобы персонаж не тормозил в процессе.
Приветствие: первое впечатление за 400 символов
Приветствие — это то, что персонаж скажет, когда пользователь впервые откроет диалог. Лимит 400 символов — это не случайное число, а проверка того, что вы умеете писать короткие сцены: уместить голос, обстановку и зацепку для продолжения.
Автогенерация (когда поле пустое) работает, но звучит усреднённо: «Привет! Я давно тебя ждала, расскажи о себе». Своё приветствие сразу отделяет вашего персонажа от каталога. Пара проверенных приёмов:
- Начать с действия, а не с приветствия. «Она оторвалась от книги, посмотрела на тебя и усмехнулась: "Ты опять опоздал"» — сразу есть сцена.
- Заложить противоречие. «"Мне все говорят, что я стерва", — она наливает тебе чай и улыбается. — "Не верь"».
- Оставить открытый вопрос без явного вопроса. Не «как тебя зовут?», а обстановка, к которой есть что ответить.
Чего не делать: не пересказывать биографию («я родилась в Тбилиси, люблю кошек...» — это убьёт всё интимное напряжение в первом же сообщении).
Фото: что генерируется и когда
Конструктор сразу делает превью персонажа на основе выбранных тегов внешности — это первая генерация, бесплатно, нужна чтобы вы увидели, попали ли теги. Дальше фото появляются в каталоге и в чате; генерация под внешность конкретно этого персонажа, а не из общего пула — именно поэтому одна и та же героиня выглядит одинаково от фото к фото.
На бесплатном тарифе в день доступно одно фото, на подписке — от 10 до 80 в зависимости от уровня. Подробно про экономику — в статье про чат с ИИ-девушкой, там есть раздел «сколько это стоит» с живыми цифрами.
Частые ошибки
- Слишком длинное описание внешности свободным текстом. Конструктор его игнорирует. Используйте теги.
- 10 однонаправленных черт характера. Получается «приятная собеседница», а не персонаж. Возьмите 3–5, добавьте одну конфликтную.
- Интим-слайдер на максимум «на всякий случай». Получите инициативу в первом же сообщении. Поставьте 50–70 и поднимайте позже, если нужно.
- Пустое приветствие. Автогенерация скучная. Потратьте пять минут на сцену в 2–3 предложения.
- Противоречие между стилем общения и характером. Дерзкая + длинные академические абзацы = диссонанс. Стиль и характер должны дышать в одну сторону.
Шаринг: виден ли ваш персонаж другим
По умолчанию персонаж приватный: у него есть короткая share-ссылка, которую можно отправить конкретному человеку, но в общем каталоге его нет. В каталог можно отправить самому — это опция, а не автопубликация.
Удалить персонажа можно в любой момент из того же конструктора — вместе с историей диалогов. Это важно: переписка не переживает удаление, в отличие от сервисов, где «аккаунт можно удалить, но данные остаются на серверах 30 дней».
Сколько это стоит
Сам конструктор бесплатен. Создание персонажа, превью, редактирование — без оплаты. Платным становится медиа: фото и видео в чате, на бесплатном тарифе — одно фото в день, на подписке — от 10 до 80 в день плюс видео. Переписка — по обычным лимитам: бесплатный тариф даёт 20 сообщений в день, подписка снимает ограничение. Текущие цифры — на странице тарифов.
Для кого это работает (честно)
Конструктор решает проблему «все готовые одинаковые», но не проблему «мне одиноко». Это инструмент, а не терапия: если вам нужна конкретная внешность и характер под ваш запрос, и вы готовы потратить десять минут на настройку, — это лучший способ получить собеседника, мимо которого не пройдёшь. Если вы не знаете, чего хотите, — начните с готового персонажа из каталога, а конструктор оставьте на потом, когда поймёте, чего в готовых не хватает.