Seedance 2 — обход цензуры и распознавания лиц
Ваш промпт под исторический ролик пишет: «a small figure in grey coat runs down a cobblestone road past a uniformed silhouette». Запрос на генерацию уходит, Seedance 2 возвращает ошибку модерации. Вы убираете «small», пробуете снова — флаг. Переписываете, чтобы избежать «soldier» — флаг. Подставляете полностью невинный промпт с той же картинкой — всё равно флаг. В итоге выясняется, что фильтр вообще не читал прозу: он триггерился на face detection в самом референсе. Исправлять нужно было картинку, а не слова.
Как только ясно, что у модерации две стороны — image и prompt — фикс симметричный: правка референса до загрузки и дисциплина формулировок в каждом промпте. Любая половина в одиночку оставляет другую тихо падать.
Это и есть двухслойная защита от модерации Seedance 2: image-слой (белая сетка-оверлей поверх референса) плюс prompt-слой (гигиена формулировок в каждом поле p). Применять на любых задачах с реальными лицами, портретами, групповыми съёмками, политически чувствительными изображениями или референсами, в которых уже есть сетки/паттерны.
Когда применять
Обязательно, когда референсы содержат:
- Реальные лица (close-up или средний план)
- Портретные таблички, мемориальные доски, фотостены, ID-фото
- Плотные толпы с видимыми лицами
- Аниме / иллюстрированные лица (часто ложно-положительные срабатывания)
- AI-портреты в высоком разрешении
Рекомендуется для политически или эмоционально нагруженных сценариев (война, мемориал, протест, исторические). Можно пропустить для полностью средовых кадров без видимых лиц.
Слой 1 — Image-слой: сетка-оверлей
Разрушаем пиксельные паттерны, на которые опирается детектор, не повреждая то, что генератор читает из референса.
Спецификация
| Параметр | Значение | |---|---| | Цвет | Белый | | Непрозрачность | 100% solid — полупрозрачная НЕ работает | | Толщина линии | 8–15 px (привязана к плотности) | | Покрытие | Полный кадр — не только лицо |
Пресеты плотности
| Пресет | Сетка | Толщина | Когда использовать | |---|---|---|---| | Light | 4×4 | 15 px | Низкий риск, в основном среда, лица мелкие/размытые | | Standard | 6×6 | 12 px | По умолчанию — баланс, работает для большинства | | Dense | 10×10 | 8 px | Чёткие портреты в анфас, высокое разрешение, повторные срабатывания |
Эскалация
Если Standard всё ещё ловит фильтр:
- Поднимите до Dense (10×10, 8 px).
- Уменьшите референс до 1024 px по ширине до наложения сетки.
- Скомбинируйте оба шага.
Заметка о существующих сетках
Если на референсе уже есть нечто похожее на сетку (продакшн-планшеты с +-маркерами по углам, трекинг-сетки, шашечные оверлеи) — часто это уже помогает. Но проверьте, что сетка непрозрачно-белая (не магента/зелёный chroma-вариант) и достаточно плотная. Если нет — накройте сверху правильной белой сеткой.
Слой 2 — Prompt-слой: гигиена формулировок
Что делать
- Только визуальные факты — что видит камера, а не психология персонажа, бэкграунд, отношения, эмоции.
- Полный контекст сцены — тип кадра + локация + эпоха + свет + атмосфера в каждом промпте.
- Production-язык — 2–3 термина: тип кадра (wide / close-up), движение камеры (tracking / dolly / locked-off), оптика / зерно (35mm grain, anamorphic), свет (rim light, volumetric rays, overcast flat).
- Роль вместо возраста — «figure in grey coat», а не «young man»; «marcher», а не «elderly woman».
- Явные теги референсов —
@Image 1/@img1, когда нужно прибить генерацию к конкретному референсу («environment based on @img1», «first frame = @img2»). - Конкретный negative prompt — целить в реальные артефакты:
no jitter, no warping, no flickering, no text morphing, no garbled logos. - Подавление артефактов сетки, когда применён image-оверлей: добавьте
no grid lines, no overlay, no mesh, clean skin, smooth imageв промпт.
Что не делать
- Возрастные слова —
child,kid,young,boy,girl,teen,minor,baby,infant,toddler,elderly. Они поднимают подозрение ко всему промпту, даже если картинка безопасная. - Эмоциональная / нарративная рамка — мотивации, отношения, бэкграунд, «feels sad», «remembering».
- Скудные промпты на одно действие без сеттинга — «a soldier shoots someone» падает; полная версия с контекстом проходит.
- Имена публичных персон / IP — описывайте ролью.
- Стопки общих negatives — держите negatives короткими и направленными на конкретные артефакты.
Помечено → починено
| ❌ Помечено | ✅ Работает | |---|---| | «a young boy running away from a soldier» | «wide shot, 1940s Eastern European street, a small figure in grey coat runs down cobblestone road past a uniformed silhouette, overcast flat light, 35mm grain, documentary handheld» | | «a girl remembering her grandfather» | «medium shot, marcher in blue jacket holds a portrait placard among a dense crowd, soft overcast daylight, shallow DOF, documentary framing» | | «soldiers fighting» | «wide establishing shot, trench line at dawn, figures in field-grey silhouettes move between sandbags, volumetric smoke, cold blue hour light, anamorphic lens» |
Как два слоя складываются
Слой 1 — на этапе загрузки, поверх референса. Слой 2 — на этапе генерации, в каждом промпте, который этот референс потребляет. Пропуск любого из них даёт ту же тихую стохастическую ошибку, что и работа без второго. Большинство срабатываний фильтра, которые я наблюдал, лечатся ещё до того, как написан первый токен — на этапе подготовки картинки.
Эти правила операционализированы системным промптом seedance-2-cinematic-video-prompt-engineer (в нём есть раздел Safety / Censorship, выведенный из этой страницы) и воркфлоу seedance-2-prompt-generation (шаг 0 — image pre-flight).