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

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

Три слоя фильтра, а не один

У Seedance модерация разнесена по независимым слоям, и сработать может любой из них. Это ключ ко всему остальному: одна и та же задача упирается в разные препятствия, и лечатся они по-разному.

  • Текстовый промпт — проверяется до запуска, отказ приходит почти мгновенно и ничего не стоит.
  • Входное изображение или видео — референсы, первый кадр, image-to-video. Для большинства пользователей это самый строгий слой.
  • Готовый результат — постпроверка сгенерированного видео и звуковой дорожки, уже после того, как компьют потрачен.

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

Как устроен конвейер ByteDance

  1. Анализ входного изображения на присутствие человеческих лиц и защищённых правами объектов.
  2. Разбор текста промпта — не по стоп-словам, а по смыслу конструкции.
  3. Классификация намерения: чего вы, судя по всему, добиваетесь этим кадром.
  4. Оценка контекста — те же слова в учебном ролике и в сцене насилия оцениваются по-разному.
  5. Решение: пропустить, отказать или пропустить и проверить результат ещё раз на выходе.

Отсюда практический вывод. Замена одного «плохого» слова синонимом обычно не помогает: система разбирает смысл целиком. Помогает смена рамки — когда вы описываете не событие, а съёмку этого события.

Коды ошибок Seedance и что они значат

Что видитеКакой слой сработалЧто делать
OutputVideoSensitiveContentDetectedПостпроверка готового видеоУбрать двусмысленность из промпта, добавить нейтральный контекст съёмки, перезапустить с другой формулировкой
OutputVideoSensitiveContentDetected.PolicyViolationПостпроверка, претензия по правамУбрать имена персонажей франшиз, логотипы и узнаваемые бренды; описывать объект родовыми словами
OutputAudioSensitiveContentDetectedПостпроверка звуковой дорожкиОтключить генерацию звука или убрать из промпта реплики, диалоги и упоминания конкретной музыки
InputTextSensitiveContentDetectedТекстовый промптПереписать формулировку — отказ пришёл до запуска, компьют не тратился
InputImageSensitiveContentDetected.PrivacyInformationВходное изображениеКлассификатор счёл картинку изображением реального человека. Документация ModelArk рекомендует подставить другое изображение, а не править это
«Input image may contain a real person»Детектор лиц на входеСловесная формулировка того же отказа. На референсе фотореалистичное человеческое лицо — см. раздел ниже
Not EligibleСлой не указанОбщий отказ модерации. Проверять по очереди: сначала референс, потом промпт
Visual RestrictionВизуальный слойПретензия к содержимому референса — лицо, символика, защищённый правами объект
Известные коды и сообщения Seedance

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

Почему не проходит фотография человека

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

И здесь важная деталь, которая многих спасает. Нарисованные, стилизованные и сгенерированные лица проходят там, где не проходит фотография. Это не лазейка, а штатное поведение фильтра: сгенерированный персонаж не является чьим-то портретом. Поэтому маршрут «сначала сгенерировать персонажа картинкой, потом отдать её в image-to-video» работает легально и заодно даёт консистентность героя между сценами.

Про обходные приёмы — честно

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

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

Законный маршрут, который реально работает

  • Снимать своё или брать материал с оформленными правами и подписанным релизом модели.
  • Генерировать персонажа с нуля картинкой — и уже её отдавать в image-to-video вместо загрузки чужого портрета.
  • Переводить кадр в явную стилизацию: иллюстрация, cel-shading, живопись. Такой результат перестаёт читаться как чей-то узнаваемый портрет.
  • Описывать роль, а не человека: «шеф-повар лет пятидесяти, седая борода, белый китель» вместо имени знаменитости.
  • При блокировке съёмок с реальными людьми — писать в поддержку сервиса: у корпоративных тарифов бывает индивидуальный разбор случая.
  • Менять модель. У Kling, Seedance и Veo пороги разные, и то, что режет одна, спокойно делает другая.

Переписываем промпт: до и после

Что написалиПочему зарубилоЧто написать вместо
«Боевая сцена, нокаут, кровь на ринге»Поражение человека крупным планом«Постановочный трюк с каскадёрами, тренировочный зал, защитная экипировка, широкий план, контакт не показан»
«Врач обрабатывает открытую рану, кровь»Медицинская травма в кадре«Учебная демонстрация на анатомическом манекене, инструктор в перчатках, средний план, ровный свет»
«Шеф разделывает рыбу большим ножом»Нож плюс глагол разделки«Шеф-повар готовит рыбное филе на разделочной доске, крупный план рук и продукта»
«Ребёнок один во дворе вечером»Детская тематика поднимает строгость всей сцены«Общий план школьного двора днём, группа детей и взрослый сопровождающий, без крупных планов лиц»
«Солдаты Второй мировой в форме с эмблемами»Военная символика и узнаваемые знаки«Историческая реконструкция, форма без опознавательных знаков, документальная манера съёмки»
«Портрет в стиле известного актёра»Модель дорисует похожесть, выходной фильтр её поймаетОписать оригинального персонажа: возраст, черты, причёска, одежда, свет
«the shot rang out», «explosive growth»Двойное значение слова«wide camera shot», «rapid growth»
Что зарубили и чем это заменить

Общий принцип виден по правой колонке. Вы не прячете задачу, а меняете рамку: добавляете тип съёмки, назначение материала, дистанцию камеры и то, чего в кадре не будет. Классификатор намерения читает именно эти маркеры.

Каркас для учебного медицинского ролика

Учебная демонстрация для медицинского колледжа: инструктор в перчатках показывает на анатомическом манекене технику наложения повязки. Спокойный ровный свет, средний план, нейтральный кабинет. Без крупных планов травмы, без следов крови. Документальная манера съёмки, камера на штативе.

Каркас для сцены единоборств

Постановочный трюк с участием каскадёров, тренировочный зал, защитная экипировка. Широкий план, движение обрывается до момента контакта. Спортивная хроника, естественный свет, статичная камера, без крупных планов лица.
  • shot — кадр или выстрел; в англоязычном промпте пишите camera shot, wide shot.
  • striking, explosive, kill the lights, drop dead gorgeous — идиомы, которые классификатор читает буквально.
  • «удар», «бой», «нокаут» — заменяйте на «постановочный трюк», «спарринг в защите».
  • «кровь», «рана», «инъекция», «шрам» — уводите в манекен, схему, анимационную вставку.
  • «нож», «резать», «разделать» — переносите фокус на продукт и результат, а не на инструмент.
  • «ребёнок» рядом с любым нейтральным словом резко поднимает строгость всей сцены.

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

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

Порядок действий, когда пришёл отказ

  1. Прочитайте код целиком, вместе с суффиксом после точки — он называет категорию.
  2. По коду определите слой: вход-текст, вход-картинка или выход.
  3. Если код общий и слой не назван — уберите референс и запустите тот же промпт как text-to-video. Прошло — виновата картинка, не прошло — дело в тексте.
  4. Сработал вход по картинке — меняйте картинку, а не пытайтесь её править.
  5. Сработал выход — добавьте в промпт тип съёмки, назначение материала и явное «чего в кадре нет».
  6. Ошибка про аудио — отключите генерацию звука и проверьте видео отдельно.
  7. Пограничные случаи отсекаются вероятностно, поэтому две-три попытки с разными формулировками — нормальная практика. Не помогло — переносите задачу на другую модель.

По деньгам это выглядит спокойнее, чем кажется. Запуск видео стоит 14–67 нейронов, озвучка 8–24, 3D — 29–131, нейрон обходится примерно в 3 рубля. Отказ модерации не тарифицируется, так что цена ошибки — только ваше время. Если запусков много, посмотрите как тратить меньше нейронов и какой тариф выбрать под свой объём; сетка целиком лежит на странице тарифов.

Итог короткий. Seedance отказывает по смыслу, а не по словарю, и делает это на трёх независимых этапах, поэтому лечение начинается с вопроса «какой слой сработал», а не с поиска синонима. Живое лицо на референсе — стена, которую обходят не хитростью, а генерацией собственного персонажа. Всё остальное чинится сменой рамки: вы описываете съёмку, а не событие. Собрать весь пайплайн — от текста и раскадровки до озвучки и 3D из фотографии — удобнее там, где модели живут рядом: СуперИнтеллект работает из России без VPN, с оплатой в рублях и счётом для юрлиц, рабочее приложение открывается по той же учётной записи, а возможности чата разобраны в материале что умеет чат. Проверить пороги на своей задаче можно бесплатно: при регистрации даётся 100 нейронов без карты.