Перейти к основному контенту

Селфи NSFW AI-компаньона: фотографии в контексте разговора

Подбирайте персонажа, одежду, комнату и выражение лица для каждого селфи. Используйте референсы, устраняйте конфликты памяти и считайте расходы.

Автор
Lydia
Опубликовано
Время чтения
15 мин чтения
Обновлено
Портрет взрослого персонажа на телефоне рядом с отпечатанным референсом внешности и тканью синего дивана.

Пользователь просит своего NSFW AI-компаньона: «Пришли ещё одно фото в том зелёном кардигане». Приложение возвращает красивый портрет, но у персонажа другие волосы, кардиган чёрный, а квартира превратилась в отель. Генерация изображения прошла успешно. Продолжение разговора — нет.

Создавайте селфи компаньона на основе утверждённого референса персонажа и краткого снимка текущей сцены. До генерации определите, кто в кадре, какая одежда, место, выражение лица и ракурс. Отделяйте постоянную внешность от того, что персонаж просто говорит в чате. Просьба «ещё одно» должна менять фотографию, а не человека.

Для первой реализации возьмите один чёткий портрет вымышленного взрослого персонажа и используйте редактирование Qwen Image 2.1: кадр 3:4, разрешение 1k, непрозрачный фон и отключённое расширение промпта. Публичная цена при одном референсе составляет $0.036 за результат; со вторым референсом та же конфигурация стоит $0.048. Эти цены позволяют спланировать бюджет, но не обещают, что каждое готовое изображение будет точно соответствовать персонажу.

Это руководство посвящено выбору того, что должно быть на селфи. Примеры — предлагаемые промпты для вымышленных взрослых персонажей с одеждой и композициями SFW. Мы не запускали их как новый тест постоянства персонажа. Отправка задач, callback и хранение описаны отдельно в руководстве по доставке медиа для AI-компаньона.

Передавайте меньше контекста, но выбирайте его точнее

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

Предположим, ваш компаньон — Нина, вымышленная взрослая женщина 32 лет, с тёмными кудрями до плеч, карими глазами и тонким серебряным кольцом на правой руке. Утверждённый портрет задаёт её лицо. В текущей сцене она в зелёном кардигане поверх непрозрачного кремового топа, сидит рядом с синим диваном и говорит, что собирается выйти вечером. Пользователь просит селфи до её ухода.

Модели изображения нужны референс персонажа, текущая одежда, комната и описание нужного фото. Весь разговор о планах на вечер ей не нужен. Фраза «Может быть, на следующей неделе коротко подстригусь» не должна менять причёску сегодня. Старая сцена на пляже тоже не должна подменять квартиру лишь потому, что встречается раньше в истории сообщений.

В продуктах с AI-компаньонами это действительно вызывает путаницу. В исходном обсуждении DearestAI пользователь сообщил, что на селфи у компаньона появилась более короткая стрижка и седые виски после упоминания этих черт в разговоре. В ответе о поведении этого приложения говорилось, что память о внешности может иметь приоритет над базовым фото. Это рассказ о другом продукте, а не доказательство того, как Qwen или SpicyAPI трактует память. Он показывает решение, которое ваше приложение должно принимать явно: какое описание вправе менять изображение?

Для Нины разумное правило по умолчанию — сохранять утверждённую визуальную идентичность, пока пользователь намеренно её не обновит. Чат может изменить сегодняшний кардиган; он не должен незаметно менять лицо или взрослый возраст. Если стрижка — намеренное обновление дизайна персонажа, создайте новую утверждённую версию внешности и с этого момента используйте её последовательно.

Утверждённая внешность, текущая одежда, комната и последняя просьба складываются в единый снимок сцены.

Иллюстрация: текущий контекст задаёт одежду и место, а утверждённый портрет — персонажа.

Храните пять полезных составляющих визуальной памяти

Чтобы первые селфи выглядели связно, огромная база персонажей не нужна. Начните с отдельных записей в приложении:

ЗаписьПример для НиныКогда меняется
Утверждённая внешностьФайл портрета, возраст 32, тёмные кудри, карие глазаПри намеренном изменении дизайна персонажа
Текущая одеждаЗелёный кардиган, непрозрачный кремовый топПри явно обозначенной смене одежды в сцене
Текущее местоСиний диван, торшер, квартира ночьюКогда персонаж оказывается в другом месте
Текущее фотоДо пояса, лёгкая улыбка, взгляд в камеруКогда пользователь просит другое изображение
Последнее принятое фотоФактический файл, показанные одежда и местоКогда новое фото принято для отправки

Это записи вашего приложения, а не специальные поля API Qwen. Передайте сохранённый файл через image_urls, а нужные визуальные изменения опишите в prompt. Имя персонажа удобно как метка; эндпоинт изображения не ищет по имени записи в вашей базе персонажей.

Храните фактическое принятое фото рядом с задуманной сценой. Если на предыдущем изображении случайно оказался синий кардиган, нельзя незаметно оставить в записи сцены зелёный, а в следующем промпте написать «тот же кардиган, что раньше». Либо отклоните фото, либо отметьте расхождение и устраните его. Иначе модель получает два противоречащих определения слова «тот же».

Сохраняйте визуальные факты вместо эмоциональной прозы. «Зелёный вязаный кардиган, кремовый топ, синий диван» помогает создать изображение. «Она чувствует близость к пользователю и помнит личный разговор» не задаёт одежду, планировку комнаты или направление взгляда. Эмоциональный контекст может помочь выбрать выражение лица, но не должен переносить весь частный разговор в запрос изображения.

Та же структура подходит для компаньона-мужчины или аккаунта со взрослыми персонажами одного пола. Меняйте утверждённую внешность и гардероб, а не логику. Не стройте в остальном универсальную функцию на предположении, что все пользователи хотят один тип персонажа.

Определите, действительно ли сообщение запрашивает новое изображение

«Ты прекрасно выглядела на том фото» — часть разговора, а не указание оплатить новую генерацию. «Хотелось бы тебя увидеть» — неоднозначная фраза. «Пришли ещё фото в той же одежде» — запрос изображения.

Для первой версии используйте заметную кнопку фото и ясные фразы запроса. Если приложение также понимает свободный текст, до составления визуального промпта отнесите сообщение пользователя к одному из трёх действий: создать фото, повторно показать известное фото или продолжить разговор. Эту классификацию выполняет ваш продукт.

Несколько типичных сообщений требуют разных действий:

Сообщение пользователяПолезное действие
«Пришли снова то самое».Вернуть принятый файл, если у пользователя по-прежнему есть к нему доступ
«Ещё одно, чуть ближе».Сохранить персонажа, одежду и комнату; изменить кадрирование
«Покажи одежду, о которой говорила».Определить именно этот наряд и создать новое фото
«Что бы ты надела на вечеринку?»Ответить на вопрос; предложить фото без автоматической генерации
«Нет, оставь зелёный кардиган».Исправить выбор сцены до отправки либо создать явно обозначенную новую версию, если задача уже отправлена

Это улучшает и опыт пользователя, и расходы. Компаньон, который отправляет платные изображения всякий раз, когда получает комплимент, быстро начинает казаться непредсказуемым. Явный выбор также помогает понять, когда пользователь заказывает новое фото, а когда получает уже имеющееся.

Для слов «та одежда» сначала проверьте недавние решения о сцене, затем последнее принятое фото. Если подходят два предмета одежды, задайте в чате узкий уточняющий вопрос, например: «Зелёный кардиган или тёмно-синяя куртка?» Не просите повторять всю сцену. Уточнить один недостающий предмет лучше, чем создать неверное фото и затем извиняться.

Определяйте сцену в одном порядке

Сначала внешность, затем одежда, место, выражение лица и камера. Это рекомендация по устройству приложения, а не особый порядок полей, которого модель требует в API-запросе.

Внешность идёт первой, потому что референс должен принадлежать выбранному персонажу. Затем одежда: слова «та» и «та же» часто зависят от предыдущего выбора. Место задаёт окружение, которое пользователь ожидает увидеть. Выражение лица должно опираться на текущий обмен репликами, а не на постоянное правило «всегда улыбается». Камера идёт последней, поскольку для крупного селфи и фото наряда в полный рост нужно показывать разный объём сцены.

Для запроса Нины определите:

  1. Утверждённый портрет Нины, а не последний привлекательный результат.
  2. Зелёный кардиган и кремовый топ, а не предложенный наряд для вечеринки.
  3. Квартиру возле синего дивана: она ещё не ушла.
  4. Лёгкую расслабленную улыбку: это дружелюбная просьба о фото.
  5. Кадр по грудь с видом от камеры телефона: пользователь просил селфи, а не каталог одежды.

Если пользователь просит «полное фото кардигана», измените ракурс камеры и положение рук. Не оставляйте кадрирование селфи в надежде, что одежда станет видна. Если он просит «фото, когда доберёшься туда», отложите запрос или дождитесь будущей сцены в соответствии с поведением продукта; не выдавайте будущее место за текущую комнату персонажа.

Краткое описание сцены под индикатором генерации делает этот выбор видимым: «Нина · зелёный кардиган · квартира · селфи ближе». Пользователь может заметить неверное предположение до получения результата. Это полезнее общей анимации с утверждением, что персонаж сейчас фотографируется.

Пишите промпт селфи как описание фотографии

Загрузите утверждённый портрет внешности первым референсом. Начните с такого предлагаемого промпта:

Используй изображение 1 для лица и тёмных кудрей до плеч Нины, того же вымышленного взрослого персонажа 32 лет. Создай одну повседневную фотографию по грудь с видом от камеры телефона в её квартире ночью. На Нине зелёный вязаный кардиган поверх непрозрачного кремового топа. Позади видны синий диван и торшер с тёплым светом. Лицо хорошо видно, глаза направлены в объектив, рот расслаблен, лёгкая улыбка. Естественный комнатный свет, немного неформальное кадрирование, реалистичная текстура кожи. Сохрани лицо и волосы с изображения 1. Без второго человека, текста, зеркала или коллажа.

Используйте aspect_ratio: "3:4", resolution: "1k", background: "opaque", output_format: "png" и enable_prompt_expansion: false. Эти настройки есть в текущей задаче редактирования. Промпт принимает до 5000 символов, а задача — от одного до десяти референсов. Эти ограничения не означают, что для каждого селфи следует заполнять промпт до предела или загружать десять изображений.

Прямой вид от камеры телефона не требует видимого телефона в кадре. Если попросить персонажа держать телефон перед лицом, он может закрыть именно ту внешность, которую вы хотите сохранить. В первой реализации не добавляйте зеркало и руку с устройством, пока они не нужны для конкретного фото. Неформальный снимок передаёт нужный стиль камеры и без этих двух элементов.

Не объединяйте «повседневное селфи» с «люксовой кампанией, безупречной студийной красотой, журнальным освещением и модной рекламой». Такие указания уводят изображение в сторону постановочной съёмки. В исходном обсуждении отзывов о приложении-компаньоне участник жаловался, что изображения похожи на профессиональную рекламу. Разработчик ответил, что для чата важен стиль обычной камеры телефона. Это обсуждение показывает предпочтение читателя, а не измеренное преимущество какой-либо модели по качеству.

Если пользователь просит профессиональный портрет, его по-прежнему можно выбрать. Задача — соотнести фотографию с разговором, а не применять к каждому изображению одну и ту же глянцевую обработку.

Две схематичные рамки камеры сопоставляют повседневное кадрирование селфи и намеренно постановочный журнальный портрет.

Иллюстрация: указания для камеры и света меняют тип фотографии, сохраняя референс персонажа.

Сделайте «ещё одно» управляемой вариацией

Повторная просьба обычно требует небольшой разницы. Для неё не нужны новый человек, новая комната и новый костюм.

Сохраните указания о внешности и сцене выше. Замените только описание фотографии:

Следующая просьбаИзменение промпта
«Чуть ближе».Кадр с головой и плечами; тот же взгляд и выражение лица
«Посмотри в сторону».Небольшой поворот головы, взгляд чуть мимо объектива; плечи почти прямо
«Покажи больше кардигана».Кадр до пояса, видны рукава и нижний край кардигана, руки расслаблены
«Менее постановочно».Композиция немного смещена от центра, расслабленный рот, плечи на разной высоте вместо формальной позы

Если просьбу «ближе» уже выполняет обычная обрезка принятого файла, используйте её. Она сохраняет фактическое лицо и не требует платы за генерацию. Проверьте, достаточно ли пикселей в исходнике для итогового показа: крошечное лицо не станет подробным портретом только от увеличения.

Если нужно изменить выражение лица или ракурс, вернитесь к утверждённому портрету. Добавляйте принятую сцену вторым референсом только тогда, когда её комната или одежда дают полезную визуальную информацию. Явно назначьте её роль: «Изображение 2 задаёт зелёный кардиган и квартиру; изображение 1 задаёт лицо и волосы Нины». Так каждая деталь потенциально несовершенного позднего результата не станет новым определением внешности.

В NSFW-части продукта для взрослых отделяйте выбранную пользователем категорию сцены от слова «ещё». Просьба о следующем изображении должна сохранять принятый вариант контента, а не автоматически делать его более откровенным. Другая категория — новый творческий запрос со своим поведением модели, ценой и разрешениями продукта.

Добавляйте референс комнаты, только если она должна повторяться

Текстового описания может хватать для квартиры, которая служит лишь атмосферным фоном. Для постоянной виртуальной комнаты нужно больше: синий диван не должен перемещаться между разговорами, а тот же торшер — превращаться в люстру.

Добавьте чистое изображение пустой комнаты референсом 2. Портрет Нины оставьте первым и напишите:

Изображение 1 задаёт лицо и тёмные кудри Нины. Изображение 2 задаёт только планировку квартиры, синий диван и торшер. Не заимствуй человека, одежду или лицо с изображения 2. Нина остаётся в зелёном кардигане и кремовом топе, близко к камере, с диваном позади.

На крупном селфи видна только часть комнаты. Не требуется включать в изображение каждую стену, дверь и полку. Выберите два ориентира, которые действительно помещаются за персонажем. Если пользователь просит более широкий кадр, тогда включите больше планировки.

Официальный репозиторий модели Qwen описывает редактирование с несколькими референсами и сохранением внешности. Это даёт основание попробовать отдельные источники персонажа и комнаты; идеальную визуальную непрерывность в вашем приложении это не гарантирует. Проверяйте результат, особенно при значительном изменении света, ракурса или одежды.

Задавайте выражение лица небольшим визуальным указанием

«Кокетливая», «тёплая» и «загадочная» могут приводить к совсем разным лицам. Используйте один-два видимых признака вместо набора эмоциональных ярлыков. Расслабленный закрытый рот, лёгкая улыбка или взгляд немного рядом с объективом яснее говорят модели, что должно быть на фотографии.

Для дружелюбного вечернего сообщения попробуйте «лёгкая улыбка, расслабленные брови, взгляд в объектив». Для задумчивого ответа — «расслабленный рот, взгляд немного в сторону от камеры». Не превращайте разногласие в чате в драматичный сердитый портрет, если пользователь не просил такое фото. Текст разговора и визуальное выражение не обязаны механически повторять друг друга.

Отделяйте макияж, свет и выражение от внешности. Улыбка меняет форму щёк, боковой свет — кажущуюся ширину носа. Сравните лицо при похожем ракурсе, прежде чем решать, что это другой персонаж. И наоборот: не списывайте явно изменившуюся линию роста волос или расстояние между глазами на освещение лишь потому, что изображение красиво.

Правильная цель — узнаваемость и уместность, а не одно и то же застывшее выражение в каждом сообщении. Персонаж, который всегда присылает одну улыбку, может казаться менее отзывчивым даже при стабильном лице.

Внешность остаётся постоянной, а среди четырёх визуальных параметров выделено только изменённое кадрирование камеры.

Иллюстрация: ещё одно фото ближе меняет кадрирование, сохраняя принятую сцену и персонажа.

Не включайте отклонённый или смягчённый NSFW-результат в вымышленный разговор

Модель чата для взрослых и редактор изображений — два отдельных выбора. Персонаж может поддержать взрослый разговор, тогда как выбранная задача изображения отклонит или изменит нужный визуальный контент. Успешный ответ в чате не доказывает, что изображение ему последует.

Если возвращённое фото мягче запрошенного, не сообщайте незаметно, что оно полностью соответствует просьбе. Дайте честный выбор: принять доступный вариант, изменить сцену или использовать другую подходящую задачу изображения. Не переключайте модель автоматически с дополнительными расходами за пределами согласованных в продукте повторных попыток.

Также отделяйте визуальные ошибки от обработки контента. Неверный кардиган — ошибка сцены. Другое лицо — ошибка внешности. Запрос, который выбранная задача не может выполнить, — несовпадение задачи и контента. Три повторные отправки одного длинного промпта не решают все три проблемы.

Для первого набора персонажа используйте вымышленных взрослых и утверждённые материалы. Загрузка фотографии другого реального человека не означает автоматического разрешения создавать с ним изображения взрослого персонажа. В продукте с компаньонами для взрослых ясно определите, какие материалы внешности утверждены и кто вправе их использовать; генерируемый чат не должен решать эти вопросы прав.

Промпты SFW из этой статьи полезны для проверки перевода сцены в изображение без создания чувствительного контента. Они не устанавливают измеренный процент принятия NSFW-запросов. При оценке взрослой части используйте доказательства для конкретной задачи и категории сцены, которую собираетесь предлагать, а не название семейства или маркетинговое заявление другой платформы.

Считайте расходы на фотографии, которые пользователь действительно просит

При указанной конфигурации Qwen десять селфи с одним референсом стоят $0.36 за генерацию изображений. Десять с двумя референсами — $0.48. Если два результата с одним референсом потребуют намеренных новых попыток, эти две попытки добавят $0.072. Токены чата, хранение и прочие сервисы оплачиваются отдельно от этих сумм за изображения.

Так выбор референсов становится конкретным. Описать квартиру словами вместо второго изображения комнаты — экономия $0.012 на запрос в этой конфигурации. Но она может оказаться невыгодной, если постоянная комната необходима продукту. Добавляйте источник, когда он даёт видимый вклад, а не по привычке к каждому запросу.

Не называйте повторную генерацию с низким разрешением бесплатной. Используйте фактическую цену выбранной конфигурации. Изменение разрешения — новый выбор генерации; оно не превращает предыдущий файл в то же изображение с дополнительными деталями.

Для простого правила продукта включите в выбранный пользователем объём одну заказанную картинку и явно ограниченное количество исправлений. Повторный показ существующего фото должен получать файл, а не снова отправлять исходный промпт. Если пользователь меняет одежду или место, показывайте это как новое фото, а не исправление предыдущего запроса.

Исправляйте ошибку на том уровне, где она возникла

Что видит пользовательЧто проверить сначалаПолезное следующее изменение
Новые волосы после непринуждённого разговораНе превратилось ли предположение из разговора в постоянную внешность?Восстановить утверждённую запись внешности; требовать намеренного обновления
Неверная одеждаК какому наряду отнеслось слово «та»?Определить указанный предмет одежды до переписывания промпта
Правильное лицо, случайная комнатаНе была ли комната описана слишком приблизительно?Назвать видимые ориентиры или добавить один референс пустой комнаты
Модная реклама вместо селфиНет ли в промпте слов о студии или рекламной кампании?Использовать обычный комнатный свет и неформальное кадрирование от камеры телефона
Другое лицо на поздних фотоНе заменил ли последний результат исходный ориентир?Вернуться к первоначальному утверждённому портрету
Старая сцена приходит после её изменения пользователемКакой снимок сцены использовала принятая задача?Пометить устаревший результат или не показывать его; не называть его выполнением последней просьбы

Разработчик может попробовать весь процесс с тремя запросами SFW: первое селфи в квартире, «ещё одно чуть ближе» и «тот же кардиган, другая комната». Прежде чем оплачивать масштабный запуск функции, проверьте, сохраняет ли переводчик сцены нужную внешность, меняет ли только запрошенные детали и показывает ли неопределённость. Именно эти ошибки призван уменьшить данный процесс.

Следующий практический шаг — один утверждённый портрет взрослого персонажа, одна простая комната и одна конкретная просьба о фото. Сделайте эту фотографию связной, прежде чем добавлять автоматическую смену сцен, нескольких людей или более сложные варианты взрослого контента. Селфи компаньона работает, когда пользователь узнаёт человека и момент, о которых просил.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski