Отказ Veo на сцене с человеком выглядит несправедливо чаще, чем любой другой. Вы не просили ничего запрещённого — обычный ролик про сотрудника на производстве, спикера в кадре, покупателя у полки, — а система возвращает ошибку. Разберём, как устроена эта проверка на самом деле, где стоит personGeneration, почему сообщение про знаменитостей прилетает на выдуманного персонажа и что делать с невидимой меткой SynthID, если ролик идёт в коммерческую работу.
Где именно Veo останавливает задачу
Проверок не одна, а три, и они независимы. Первая читает текст промпта до запуска, вторая разбирает входное изображение (для image-to-video, интерполяции и референсов), третья смотрит на готовый результат — уже после того, как модель отработала. Пока вы не поняли, какой слой сработал, любая переформулировка — стрельба вслепую.
| Слой | Как выглядит | Что делать |
|---|---|---|
| Текстовый промпт | Ошибка приходит мгновенно, генерация не стартует. В документации Google этот случай описан формулировкой вида «The prompt couldn't be submitted or it might violate our policies» | Переписать описание: убрать имена, отсылки к реальным людям, слова с двойным значением |
| Входное изображение | «Veo could not generate videos because the input image violates Vertex AI's usage guidelines… Support codes: 15236754» | Менять исходник, а не промпт: текст тут ни при чём |
| Готовый результат | Задача честно крутится всё время генерации и падает в самом конце. Второй признак — вернулось меньше роликов, чем вы запросили | Переписывать сцену целиком или пробовать другую модель — точечная правка слова обычно не помогает |
personGeneration: параметр, который решает, есть ли в кадре люди
У Veo есть отдельный параметр personGeneration, и он не про качество, а про допустимость. Он задаёт, разрешено ли модели рисовать людей вообще и людей какого возраста. Значение по умолчанию и набор доступных вариантов зависят от версии модели, режима генерации и региона, из которого работает проект.
| Значение | Что означает | Где применимо |
|---|---|---|
| allow_all | Люди любого возраста, включая детей | Text-to-video у Veo 3 и 3.1 (и продление ролика у 3.1). Дети в кадре дополнительно требуют доступа по заявке |
| allow_adult | Только взрослые лица и фигуры | Image-to-video, интерполяция, референсные изображения. В ряде регионов — единственное доступное значение |
| dont_allow | Людей в кадре нет вовсе | Значение по умолчанию; у Veo 2 остаётся одним из двух доступных в ограниченных регионах |
Отсюда два неочевидных следствия. Первое: режим важнее промпта — один и тот же сценарий с людьми проходит text-to-video и падает в image-to-video, потому что во втором случае максимум разрешённого — allow_adult, и любая двусмысленность по возрасту в исходном кадре трактуется не в вашу пользу. Второе — региональное: для проектов в EU, UK, CH и MENA у Veo 3 и 3.1 набор сужается до allow_adult, а у Veo 2 в тех же локациях остаются dont_allow и allow_adult. Если чужой промпт-гайд «работает у автора, но не у вас», причина часто именно здесь, а не в словах.
Celebrity likeness: почему сообщение прилетает на вымышленного персонажа
Самый частый отказ на входном изображении выглядит так: «Veo could not generate videos because the input image violates Vertex AI's usage guidelines. If you think this was an error, send feedback. Support codes: 15236754». Этот код соответствует категории Celebrity. В интерфейсах формулировка мягче: «Sorry, we can't create videos from input images containing celebrity or their likenesses».
Дальше начинается странное. На форумах Google разработчики жалуются, что фильтр рубит их собственных сгенерированных аватаров — персонажей, которых никогда не существовало и которых нарисовала другая модель того же вендора. Объяснение стоит принять как данность: фильтр не сверяется со списком знаменитостей построчно, он оценивает вероятность узнаваемости фотореалистичного лица. Генерируя портрет, модель тянет черты из распределения реальных лиц и легко подходит слишком близко к чьей-то внешности. Классификатор видит фотореалистичный портрет, оценивает риск и перестраховывается — ровно так же, как это делают фильтры Kling и Seedance, о которых мы писали в разборе модерации целиком.
Как описывать людей, чтобы не ловить отказ
Рабочее правило одно: фильтр спокойнее относится к роли и действию, чем к внешности. Чем больше в промпте про то, кто этот человек и что он делает, и чем меньше про то, на кого он похож, тем выше шанс пройти все три слоя.
- Убирайте имена целиком — и реальных людей, и «в стиле такого-то актёра», и названия фильмов с узнаваемыми героями.
- Описывайте функцию, а не лицо: «врач-терапевт на приёме», «монтажник в каске», «преподаватель у доски». Функция задаёт образ надёжнее, чем перечисление черт.
- Не просите фотореалистичный крупный план лица без нужды. Средний и общий план проходят заметно легче, чем портрет во весь кадр.
- Задавайте план, свет и движение камеры явно — это уводит модель от построения «идеального узнаваемого лица» к съёмочной задаче.
- Проверяйте слова с двойным дном: shot, striking, explosive, kill the lights, drop dead gorgeous, «удар», «взрыв смеха», «убойный кадр». Английский промпт особенно чувствителен к shot и kill.
Человек в кадре: роль и действие вместо внешности
Средний план. Женщина-технолог около 35 лет в белом халате и защитных
очках проверяет линию розлива на пищевом производстве, делает пометку
в планшете. Ровный дневной свет из окон цеха, холодные металлические
поверхности, лёгкий пар над конвейером. Камера медленно едет вдоль
линии слева направо. Спокойный документальный стиль, без текста
на экране.| Было в промпте | Почему сработал фильтр | Как переписать |
|---|---|---|
| «мужчина, похожий на известного актёра» | Категория Celebrity, код 15236754: прямая отсылка к реальному человеку | «мужчина 40 лет, короткая борода, тёмно-серый пиджак, средний план, деловой центр на фоне» |
| «фотореалистичный портрет девушки, крупный план лица» | Модель сама дорисовывает узнаваемость, отказ приходит на выходном слое | «сотрудница кол-центра за рабочим столом, средний план, взгляд в сторону монитора» |
| Загрузка фотографии живого человека для image-to-video | Входной фильтр на реальные лица: «input images containing celebrity or their likenesses» | Сгенерировать персонажа с нуля текстом либо снять и использовать материал с оформленным релизом модели |
| «дети играют во дворе» | Категория Child, коды 17301594 и 58061214, personGeneration ниже allow_all | Перенести сюжет на взрослых героев; доступ к детям в кадре — только через официальную заявку |
| «боевая сцена, нокаут, кровь» | Насилие: фильтр разбирает намерение, а не отдельные слова | «постановочный трюк, каскадёры, широкий план, видна страховка и тренер» |
| «a dramatic shot of a man» | Двойное значение shot читается как выстрел | «a medium shot of a man» — уточнение до киношного термина снимает двусмысленность |
| «хирург делает надрез, крупный план раны» | Медицинская фактура читается как жестокость | «врач в операционной у стола, руки в перчатках над стерильным полем, средний план, учебная съёмка» |
Как переписать «боевую сцену», чтобы фильтр понял намерение
Постановочный трюк для рекламного ролика: двое каскадёров в защитной
экипировке отрабатывают падение на страховочный мат в спортивном зале.
Широкий план, в кадре виден тренер и оператор с камерой. Дневной свет
из высоких окон, мягкие тени. Документальная съёмка бэкстейджа,
без крови и повреждений.Чего мы здесь не публикуем и почему
В сети ходят рецепты, как сбить детектор лиц на входном изображении. Мы их не приводим — ни здесь, ни в общем разборе модерации, где эта оговорка расписана подробнее. Причина не в морали, а в устройстве фильтра: он стоит ровно затем, чтобы нельзя было оживить чужое лицо без спроса, и не умеет отличить ваш собственный портрет от фотографии постороннего человека. Плюс систематические обходы заканчиваются перманентным закрытием доступа к API — без восстановления. Законный маршрут при этом действительно работает.
- Снимайте своё или берите материал с оформленными правами и подписанным релизом модели.
- Стилизованные и рисованные лица проходят там, где не проходит живое фото, — это официальное поведение фильтра, а не лазейка.
- Генерируйте персонажа с нуля текстом вместо загрузки готового портрета: так вы контролируете и внешность, и права.
- Если блокировка мешает легальной съёмке с людьми — пишите в поддержку сервиса: у корпоративных тарифов бывает ручной разбор случая и заявка на allowlist.
- Меняйте модель: пороги у Veo, Kling и Seedance разные, и то, что режет одна, спокойно снимает другая.
SynthID: невидимая метка на всём, что вы сгенерировали
Всё, что выходит из Veo, помечено SynthID — водяным знаком Google DeepMind, который вшивается прямо в пиксели и звуковую дорожку. Он не виден глазом и переживает кадрирование, перекодирование и сжатие, то есть в отличие от метаданных его не убрать простым экспортом. Не путайте его с видимой плашкой в углу кадра: видимую метку часть тарифов и API-выдача не ставят, а SynthID остаётся всегда. Рядом с ним Google записывает в файл открытые Content Credentials по стандарту C2PA — связка «стойкий водяной знак плюс читаемые данные о происхождении» стала общей практикой крупных вендоров, и площадки вроде YouTube уже читают её автоматически.
И бытовая деталь, о которой забывают: в Gemini API готовые ролики хранятся на сервере около двух суток, потом удаляются. Скачивайте результат сразу — повторная генерация удачного дубля уже будет стоить денег и скорее всего даст другой кадр.
Когда переформулировка не поможет
Есть класс задач, где перебор формулировок — потеря времени. Признать это дешевле, чем сжечь вечер на попытках.
- Узнаваемый реальный человек в кадре без оформленных прав — не пройдёт ни в одной формулировке.
- Дети в кадре без доступа по заявке — блокируется на уровне параметра, а не текста.
- Сексуальный контент и интимные изображения без согласия — не пройдёт нигде и ведёт к блокировке аккаунта.
- Реалистичная жестокость: расчленение, обилие крови, сцены казни.
- Инструкции по изготовлению оружия и веществ в визуальной форме.
Если Veo упёрся: меняем модель, а не сдаёмся
Пороги у семейств разные, и это самый быстрый легальный обходной путь. В каталоге MediaLab на платформе СуперИнтеллект рядом живут Kling v3, Seedance 2.5 и Sora 2 — сцена, которую зарубила одна модель, часто спокойно проходит у соседней с тем же промптом. Проверять дёшево: запуск видео стоит 14–67 нейронов при цене нейрона около 3 ₽, а неудачная по вине модели попытка не списывается вовсе.
Начать можно без карты: при регистрации выдают 100 нейронов единоразово, дальше тарифы от 890 ₽ за «Старт» до 4 990 ₽ за PRO, а видео в чате открывается со «Стандартного» за 2 690 ₽. Оплата в рублях и работа без VPN для российских команд обычно решающий пункт — тем более что доступ к самому Veo упирается ещё и в регион проекта. Про видео прямо в чате, подбор тарифа и экономию нейронов есть отдельные материалы.
Итог короткий. Сначала определяйте слой, а не переписывайте промпт наугад. Помните, что personGeneration зависит от режима и региона сильнее, чем от ваших слов. Описывайте роль и действие вместо внешности, не грузите чужие лица и держите в голове, что SynthID останется в файле навсегда. Каталог моделей открыт для сравнения, рабочее приложение живёт на suin.ai, а прогнать одну и ту же сцену через три разные модели можно в одном интерфейсе.



