NSFW

NSFW AI API: взрослые изображения и видео из вашего кода

Что API Genlaxy разрешает во взрослом контенте, как отказы приходят в ваш код и какие проверки ваше приложение должно делать до отправки промпта.

4 мин чтения
Старинный латунный телеграфный ключ на тёмном деревянном основании, подсвеченный сзади фиолетовым светом в мягкой дымке

Если вы делаете продукт для взрослых, приложение-компаньон, инструмент для художников или личный генератор для себя, вы можете вызывать из своего кода те же модели, что использует студия. Это чек-лист именно для NSFW-контента: что API разрешает, как он отказывает и что лежит на вас, а не на нас. Общая механика (ключи, эндпоинты, готовый запрос для каждой модели) описана на странице API.

1. Знайте, что API разрешает

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

В списке моделей, который возвращает API, нет флага "для взрослых" по той же причине, по которой его нет в каталоге: провайдеры меняют правила, а флаг, который мы не можем держать правдивым, вводил бы вас в заблуждение. Проверьте модели, которые собираетесь использовать, одним явно взрослым запросом каждую и соберите свой список из прошедших. Тест описан в нашем руководстве по NSFW-моделям изображений.

2. Обрабатывайте два вида отказов

Ваш код встретит отказы из двух мест, и приходят они по-разному:

  • Наша проверка, синхронно. Каждое текстовое поле запроса проверяется до какого-либо списания. Промпт с участием несовершеннолетних сразу возвращается как 400 с кодом PROMPT_REJECTED_MINOR; сексуальное насилие или жестокость - как PROMPT_REJECTED_VIOLENCE. Генерация не создаётся, баланс не затрагивается.
  • Провайдер, позже. Запрос принят и оплачен, генерация стартует, и провайдер её отклоняет. При опросе статуса генерация завершается с refunded: true и кодом ошибки MODERATION_REJECTED, а списанная сумма уже вернулась на баланс.

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

Промпт
{ "modelId": "<id из списка моделей>", "inputs": { "prompt": "Портрет обнажённого взрослого мужчины лет сорока у окна в потёках дождя ночью, за ним огни города, низкий ключ освещения, объектив 85 мм" } }
Тело запроса для POST /api/v1/api/catalog/generations. Поля внутри inputs у каждой модели свои; страница API собирает точное тело для каждой.

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

3. Добавьте проверки, которые на вас

Наша проверка - это нижняя планка, а не ваша модерация. Условия делают вас ответственным за всё, что сгенерировано вашим ключом, в том числе вашими пользователями, и требуют ограничить ваш сервис людьми, достигшими совершеннолетия. На практике это значит:

  1. Проверка возраста перед любой функцией, генерирующей взрослый контент, до первого запроса, а не после.
  2. Ваша собственная проверка промпта до обращения к нам, чтобы пользователь, который ввёл что-то запрещённое, был остановлен и записан в лог на вашей стороне. Наши коды отказа - вторая линия, а не первая.
  3. Никаких загрузок реальных людей во взрослые сценарии. Если ваше приложение принимает первый кадр или референсное изображение, не позволяйте ему быть фотографией узнаваемого человека, когда результат сексуальный.
  4. Запись о том, кто что запросил, привязанная к вашему собственному id пользователя, чтобы, если что-то пойдёт не так, вы могли принять меры к нужному аккаунту.

4. Деньги, ключи и файлы

  • Один баланс. Генерации через API оплачиваются с того же баланса, что и в студии, по тем же ценам, в евроцентах. Минимальное пополнение - €5.00.
  • Идемпотентность. Отправляйте заголовок Idempotency-Key с каждым запросом на создание, чтобы сетевой повтор никогда не списал деньги дважды.
  • Ключи остаются на вашем сервере. Ключ начинается с gl_live_, показывается один раз и должен храниться как серверный секрет, никогда не в браузере и не в сборке приложения. Если он утёк, отзовите его в настройках.
  • Скачивайте сразу. Готовые файлы удаляются по истечении срока хранения, поэтому копируйте результат в своё хранилище, как только генерация успешно завершилась.

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

Вопросы

Разрешает ли API Genlaxy NSFW-генерацию?

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

Как API сообщает об отклонённом NSFW-промпте?

Промпт, который отклонила наша проверка, получает 400 с PROMPT_REJECTED_MINOR или PROMPT_REJECTED_VIOLENCE и никогда не оплачивается. Генерация, которую отклонил провайдер, завершается возвратом средств с кодом ошибки MODERATION_REJECTED.

Кто отвечает за то, что генерируют мои пользователи?

Вы. Условия делают владельца ключа ответственным за всё, что сгенерировано этим ключом, в том числе его пользователями, и требуют ограничить сервис людьми, достигшими совершеннолетия.

#NSFW#API#Разработчикам

Читайте также

Все статьи →