Flux отказал, и вы смотрите на строку статуса, в которой ничего не сказано о причине. Хорошая новость в том, что у Flux причина всё-таки читается — точнее, чем у большинства соседей по рынку.

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

Три фильтра и статус, который говорит, какой из них сработал

Фильтров у Flux три, и они независимы: текстовый промпт, загруженные изображения и готовый результат. Ответ API прямо разделяет первые два от третьего — это и есть главная диагностическая подсказка.

СтатусКогда возникаетЧто именно сработало
Request ModeratedДо обработки, в момент приёма запросаПромпт или входное изображение
Content ModeratedПосле генерацииГотовое изображение — модель отработала, зарубил выходной фильтр
ErrorВ процессеСбой обработки, к модерации отношения не имеет
Task not foundПри опросе результатаID задачи не существует или истёк
Статусы генерации Flux и что за ними стоит

Категорию API прямо не называет — вы получаете слой, а не диагноз. Это всё равно больше, чем у Kling, который отвечает общим «Generation failed. Try a different prompt.» и не разделяет вход и выход. За чем именно следят фильтры, Black Forest Labs перечисляет в публичной политике: сексуальный контент, разжигание ненависти, насилие и жестокость, изображения самоповреждения. Отдельно держите в голове транспортные коды: 402 — кончились кредиты, 429 — слишком много активных задач, 422 — не прошли валидацию параметров. Ни один из них не про содержание.

safety_tolerance: единственная ручка, до которой вы дотягиваетесь

У Flux есть параметр safety_tolerance — уровень терпимости фильтра к входу и выходу. Ноль означает максимальную строгость, верхняя граница — минимальную. По умолчанию везде стоит 2, то есть довольно строго. Максимум зависит от того, какой эндпоинт вы дёргаете.

Группа эндпоинтовДиапазонПо умолчанию
Генерация FLUX.1 [pro]0–62
FLUX.2 (pro, max, flex)0–52
Любой запрос с входными изображениями, включая Kontextне выше 22
Диапазоны safety_tolerance по группам эндпоинтов

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

Hive: фильтр, который не отключается в принципе

Фильтры на CSAM и на интимные изображения без согласия (NCII) Black Forest Labs не пишет сама — их предоставляет сторонний провайдер Hive. Разработчик, интегрирующий Flux, не может их ни ослабить, ни отключить: это не пункт настроек, до которого не дали доступ, а внешний слой в конвейере.

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

Работа начинается ещё до модели. Обучающие данные фильтровались от небезопасного контента, известный CSAM вычищался в партнёрстве с Internet Watch Foundation — независимой некоммерческой организацией, которая ведёт реестры такого материала. То есть слоёв на деле больше трёх: чего модель не видела при обучении, что не пропустит фильтр на входе и что не пропустит фильтр на выходе.

Почему один и тот же Flux ведёт себя по-разному на разных сервисах

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

Отсюда эффект, который регулярно принимают за баг: один и тот же промпт проходит на площадке А и падает на площадке Б, хотя под капотом одинаковый Flux. Это не глюк и не разные версии весов — это разный safety_tolerance и разная конфигурация настраиваемых категорий. Вывод простой: если задача легальная, но пограничная, дешевле проверить её на нескольких моделях, чем переписывать промпт двадцатый раз на одной. Пороги у Flux, Seedream и Nano Banana расходятся, так что в каталоге MediaLab обычно быстрее найти проходящую модель, чем додавить упрямую.

Что режется ложно и чем это заменить

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

Исходная формулировкаПочему зарубилоРабочая замена
Обработка раны, кровь на бинтеНасилие и кровьМедицинский манекен для отработки перевязки, стерильный бинт, учебный класс, нейтральный свет
Боевая сцена, нокаутНасилиеПостановочный трюк, каскадёры в защитной экипировке, широкий план зала, момент до контакта
Нож разрезает мясоНасилие: нож и разрезание читаются буквальноШеф-повар нарезает филе на разделочной доске, кулинарная съёмка сверху, мягкий свет
Ребёнок крупным планом на пляжеДетская тематика поднимает строгость всех категорий сразуСемья на набережной, общий план со спины, дети в ветровках, дневной свет
A striking shot of the modelShot и striking читаются буквально — выстрел и ударAn elegant portrait, studio lighting, medium frame
Портрет мужчины сорока летContent Moderated: модель сама дорисовала сходство со знаменитостьюВымышленный персонаж, нетипичные черты лица, описание одежды и возраста без отсылок к внешности актёров
Что написали, почему зарубило, что написать вместо

Учебная медицинская иллюстрация

Medical training mannequin arm on a clean classroom table, instructor's gloved hands demonstrating a sterile bandage wrap, educational photography, soft neutral lighting, no people in frame except hands, clinical and calm

Спортивная динамика без слов о насилии

Two stunt performers in full protective gear rehearsing a choreographed sequence in a training gym, wide shot, motion blur, moment before contact, documentary sports photography, natural daylight

Вымышленный персонаж вместо портрета живого человека

Portrait of a fictional character: woman in her forties, invented facial features, short hair with grey streaks, plain navy blazer, neutral studio background, soft key light, editorial photography style, not based on any real person

Входные изображения и человеческие лица

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

Чего в этом гайде нет и почему

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

Взамен — маршрут, который действительно работает и не ставит под удар ваш аккаунт:

  • Снимать своё или брать материал с оформленными правами и подписанным релизом модели
  • Использовать стилизованные и нарисованные лица там, где живое фото не проходит
  • Генерировать персонажа с нуля вместо загрузки чужого портрета — и переиспользовать один и тот же кадр как референс
  • При блокировке на легальной съёмке с людьми писать в поддержку сервиса: у корпоративных тарифов бывает ручной разбор случая
  • Менять модель: пороги у Flux, Kling, Seedance и Veo разные, и то, что режет одна, спокойно делает другая

Про санкции стоит сказать прямо. Black Forest Labs оставляет за собой право заблокировать разработчика, который умышленно и систематически нарушает политику через API. Одиночное ложное срабатывание не блокирует никого — это нормальная рабочая ситуация, и переживать из-за неё не нужно. Речь про целенаправленный перебор обходов в промышленных масштабах: такое видно по логам, и восстановление доступа не предусмотрено.

Где переформулировка не поможет

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

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

На практике перебор моделей стоит дешевле, чем кажется. В СуперИнтеллекте семейство Flux-3 представлено семью моделями, а рядом в MediaLab лежат Seedream, Nano Banana, GPT-Image-2 и Qwen Image — всего больше 250 моделей генерации изображений, видео и звука. Ключевое для нашей темы: если запрос не прошёл по вине модели, нейроны не списываются, то есть отказ модерации ничего не стоит и пробовать можно спокойно.

Начать можно со 100 бесплатных нейронов при регистрации — карта не нужна. Дальше смотрите тарифы: Старт 890 ₽ в месяц, Стандартный 2 690 ₽, PRO 4 990 ₽, Ultra 9 990 ₽; какой брать под ваш объём задач, разобрано в гайде какой тариф выбрать. Всё работает из России без VPN, оплата в рублях, для юрлиц выставляется счёт — условия и каталог моделей, приложение живёт на suin.ai.

  1. Посмотрите статус: Request Moderated — вход, Content Moderated — выход
  2. Сверьтесь с категориями политики: сексуальный контент, ненависть, насилие и жестокость, самоповреждение
  3. Вычистите негативный промпт от слов-триггеров
  4. Уберите действие из текста, добавьте контекст: учебный, постановочный, кулинарный
  5. Если резалось на выходе — меняйте план и стиль, а не синонимы
  6. Проверьте safety_tolerance: по умолчанию 2, у эндпоинта без входных картинок бывает запас
  7. Портрет живого человека замените сгенерированным персонажем
  8. Не прошло трижды — берите другую модель, а не двадцать первую версию промпта
  9. Если задача упирается в запрещённые категории, переставьте саму задачу