Если вы хотите сделать AI-мультик, где из кадра в кадр живёт один и тот же персонаж, а не пять разных близнецов с разными лицами, то всё решает один трюк, и звучит он скучнее, чем хотелось бы. Сначала вы делаете character reference sheet, то есть лист персонажа на белом фоне, шесть ракурсов, в нужном стиле, и только потом начинаете генерить сцены, каждый раз скармливая модели этот лист с заклинанием «match reference EXACTLY, source of truth». Вот это и есть решение проблемы консистентности, из-за которой большинство первых попыток превращаются в кашу. Я последние дни как раз собирал такой пайплайн для антологии с маскотом Картары, которому я до этого искал лицо нейросетями из обычного логотипа, и сейчас расскажу по порядку, что работает, а на чём я лично психанул.
Тема вроде модная, AI-мультики западные авторы клепают пачками, выглядит магией. Но как только вы сами садитесь и пробуете, выясняется, что весь фокус не в красивой картинке, а в том, чтобы герой не плавал. Сгенерили вы крутой кадр, обрадовались, делаете следующий, а там у персонажа уже другое лицо, волосы другого цвета и вообще будто это его двоюродный брат. И вот пока вы это не победили, никакого мультика нет, есть набор красивых, но не связанных между собой открыток.
Сначала лист персонажа, потом всё остальное
Главное открытие у меня было именно тут, и оно простое до обидного. Не надо пытаться с первого промпта родить готовую сцену с правильным героем, потому что модель не телепат и она каждый раз придумывает персонажа заново. Вместо этого сначала делается turnaround, тот самый character reference sheet: лист на чистом белом фоне, шесть ракурсов одного и того же героя, в выбранной стилистике (у меня painterly-3D, в духе пиксаровского рендера). И вот этот лист дальше становится единственным источником правды.
А каждую сцену вы потом генерите, давая модели этот референс и прямо в промпте прописывая «match reference EXACTLY, source of truth». То есть вы не просите её «нарисовать девушку с медными волосами», вы говорите «вот этот конкретный человек, не выдумывай, бери отсюда». Звучит как мелочь, но именно эта связка и фиксирует одного и того же персонажа во всех кадрах. Без листа вы каждый раз играете в лотерею, а с листом у вас есть якорь, от которого модель уже не так свободно уплывает.
Кстати, сам turnaround можно делать хоть квадратным, хоть пошире, он же не публикуется, это рабочий инструмент, служебная картинка для модели и не более. А вот всё, что пойдёт в финальное видео, это уже другая история, и про неё ниже.
Промпт сцены — это не «нарисуй красиво», это технический райдер
Вторая вещь, которую я для себя проговорил: промпт сцены нельзя писать абстрактно. «Девушка идёт по улице, атмосферно» это не промпт, это пожелание, и модель из него лепит что хочет. Нормальный промпт сцены это почти раскадровка одним абзацем, где прописано, что именно делает персонаж, откуда мы на него смотрим, какой свет, какая у героя эмоция, какая динамика в кадре, какой звук подразумевается и какие VFX. Каждый слой проговорён, ничего не оставлено на «додумай сам».
И вот тут вылезает разница между человеком, который потыкал нейросеть пару раз, и тем, кто копает глубже. Можно ведь сказать «сделай мультик» и обижаться, что вышло говно. А можно понять, что нейросеть это исполнитель, которому ты ставишь задачу, и качество ответа ровно настолько хорошее, насколько ты сам разобрался, чего хочешь. Меняется только исполнитель, а думать за него всё равно приходится вам. Для меня это вообще про любую разработку с ии: хочешь нормальный результат, давай нормальное ТЗ, хоть кожаному разработчику, хоть модели.
Грабли формата: 9:16 нативно, а не кроп из 16:9
Теперь про конкретный косяк, на котором я честно подгорел. Локацию, кадры сцен и финальное видео надо генерить сразу в вертикали 9:16, нативно, а не делать красивый горизонтальный кадр 16:9 и потом обрезать его до вертикали. Потому что при кропе у вас уезжает вся композиция, а заодно и лицо героя норовит вылезти за край или оказаться вообще не там. Я на это наткнулся, и реакция была примерно такая: «это сука че она такая обрезаная будет в мультике что ли? это же не мультик а залупа будет». Грубо, но по делу, кроп из горизонталки убивает кадр, который вы так старательно собирали.
Так что правило железное: где будет вертикальное видео, там и генерим вертикаль с самого начала. Turnaround-лист пусть остаётся квадратным, он служебный, а всё публикуемое строго 9:16. Это та мелочь, которую в гайдах часто проглатывают, а она стоит вам кучи перегенераций, если узнать о ней поздно.
Модель воюет с лицом и цветом волос
Дальше начинается рукопашная. Даже с референсом и заклинанием «source of truth» модель всё равно периодически своевольничает, то лицо подменит, то цвет волос переделает. У моего маскота медное омбре, и нейросеть упорно норовила то перекрасить всё в фиолетовый, то потерять переход цвета, то вообще сменить причёску. Лечится это жёстким негатив-промптом, когда ты буквально перечисляешь, чего быть НЕ должно: no all-purple hair, missing copper ombre, hairstyle change. То есть вы не только говорите, какой герой должен быть, но и явно запрещаете типовые способы, которыми модель его портит.
И вот это, кстати, общий принцип работы с любой нейросетью для генерации: позитивный промпт говорит «что хочу», негативный говорит «что не прощу». Без второй половины модель залезает в свои привычки и выдаёт усреднённое. С двумя половинами вероятность получить именно вашего персонажа резко растёт, хотя гарантии всё равно нет, и часть кадров вы будете перегенеривать. Это нормально, просто закладывайте это в расчёт сразу, чтобы потом не удивляться.
А теперь про деньги и количество итераций
И вот тут больное. Все эти крутые генерации стоят денег, а итераций нужно много, особенно пока вы воюете за лицо и цвет. В какой-то момент меня реально пробило: «Я не понимаю блять. Я хочу 1 референс дать наш тот, и 1 промпт. чтобы и лицо там было и фулл бади. сколько мне нахуй генераций то ебашить дорогих». Вот это, по-моему, главная непролаченная боль всех, кто пробует делать AI-анимацию всерьёз, а не один кадр для красоты.
Потому что мечта-то простая: один референс, один промпт, на выходе сразу правильный кадр и с лицом, и в полный рост. А реальность это десятки дорогих попыток, потому что модель то лицо потеряет, то композицию запорет, то омбре перекрасит. Генерил я через сервис, который гоняет современную модель генерации картинок, и вопрос стоимости встал ребром почти сразу, ведь пока пайплайн не отлажен, вы платите за каждую неудачную итерацию, и счёт капает. Так что character reference sheet и детальные промпты это не про эстетство, а в первую очередь про экономию: чем точнее вы зафиксировали героя и описали сцену, тем меньше дорогих перегенераций вам нужно.
Что я в итоге вынес
Если совсем коротко, то рабочий пайплайн для AI-мультика с одним персонажем держится на нескольких вещах, и все они скучные, но именно они и работают. Лист персонажа на белом фоне с шестью ракурсами как единственный источник правды, плюс то самое заклинание «match reference EXACTLY», без которого модель просто рисует кого хочет. Промпты сцен, расписанные технически, то есть действие, камера, свет, эмоция, динамика, звук и VFX, а не абстрактные пожелания в духе «сделай атмосферно». Вертикаль 9:16 нативно с самого начала для всего публикуемого, без кропа из горизонталки. И жёсткие негатив-промпты против любимых способов модели испортить героя.
Это всё не магия и не «нажал кнопку, получил мультик», как продают в рилсах. Это нормальная инженерная работа, где нейросеть это мощный, но капризный исполнитель, а думать за продукт всё равно вам. Я этот пайплайн собирал под Картару и под её маскота, заодно дотачивая подход к автоматизации генерации контента, который у меня уже крутится на текстах, там нейросеть тоже сначала выдавала слоп, пока я не разобрался, как ей правильно ставить задачу. С картинками и видео ровно та же история, просто грабли дороже. А кому интересно, как это дальше превратится в готовую антологию, расскажу, когда домучаю стоимость итераций до вменяемой.