Генератор відео, частина 7: як я перевіряю, чи модель зберігає героя
Двоє людей виходять із пекарні. Один передає іншому круасан, обоє сміються. Я дивлюся на це вже вкотре й перевіряю, чи не зникли окуляри.
Такий вигляд має один із робочих експериментів у Vini Studio. Збоку можна подумати, що я просто генерую милі мультики. Мультики мені теж подобаються. Але зараз мене цікавить цілком конкретна річ: чи залишиться персонаж собою, коли картинка почне рухатися.
У п’ятій частині я писав про референси героїв і предметів, а в шостій показував, як із цього складається студія. За такими змінами стоїть менш помітна робота: придумати перевірку, отримати результат і розібратися, що він дозволяє стверджувати. Іноді доводиться закреслити власне пояснення.
Міра, Бо й один круасан
Для досліду взяв двох дорослих вигаданих героїв. У Міри руда коса, круглі окуляри й жовтий плащ. Бо нижчий на зріст, із бородою, у червоній шапці та зеленому светрі. Їх важко переплутати навіть на невеликому прев’ю.

Міра. На одному аркуші зібрані ракурси та прикмети, за якими я впізнаю її в наступних кадрах.

Бо. Помаранчеві кеди зручні ще й для перевірки: їх добре видно на загальному плані.
Сюжет навмисне простий. Мені потрібно побачити, як герої йдуть поруч і передають предмет. Якщо одразу відправити їх рятувати галактику, буде складніше зрозуміти, у який момент усе зламалося.
Водночас навіть у такій сцені вистачає умов. У кадрі мають залишитися саме ці двоє. Круасан має перейти з однієї руки в іншу. Зовнішність потрібно зберегти в русі, а не лише на першому красивому кадрі.
Один із результатів Gemini Omni Flash. Дивіться на героїв під час руху й передачі круасана. Написи на пекарні теж варто помітити: до них ще повернемося.
Спочатку вирішую, що саме перевіряю
«Модель добре робить відео» — надто широке твердження для робочого рішення. Мені потрібне запитання, на яке можна відповісти, подивившись результат.
Тому я розділив завдання. В одному досліді герої мають з’явитися в новій сцені за своїми зображеннями. В іншому потрібно замінити персонажа в готовому відео, зберігши те, що відбувається навколо. Окремо перевірив створення першого кадру: помилка на цьому етапі може перейти далі в ролик.
Це різні перевірки. Гарний початковий кадр іще не показує, що буде з обличчям, коли герой поверне голову. А успішна заміна людини в готовому відео сама собою нічого не говорить про те, як модель придумає рух із нуля.

Вихідний ролик для перевірки заміни: вулицею йде манекен. Кадри розташовані в часовому порядку зліва направо.

Результат Kling O3: замість манекена йде Міра. Тепер можна окремо порівняти її зовнішність і те, наскільки збереглися вулиця та рух. У цьому прогоні заміна вдалася: вулиця впізнавана, Міра йде до камери так само, як у вихідному ролику.
У порівняння є ще одна тонкість: однакове завдання не завжди означає однаковий запит. Різні моделі по-різному приймають зображення. Я перевіряв і поточну збірку студії, і варіанти за документацією виробників. Якщо відрізняються відразу кілька умов, такий дослід допомагає перевірити весь спосіб роботи, але не дозволяє приписати результат одному вдалому формулюванню.
Що вийшло в різних моделей
Ось кілька спостережень із цих прогонів. На одній сцені добре видно, як упізнаваність героя та виконання завдання можуть розійтися.
Grok і Gemini: героїв упізнаєш
Grok Imagine 1.5 зберіг Міру й Бо: обох упізнаєш із першого кадру, а аркуші з ракурсами не перетворилися на частину декорацій. Для мене це вже корисний результат. Можна впізнати косу Міри, окуляри, одяг Бо й водночас дивитися на звичайну сцену біля пекарні.

Grok Imagine 1.5. Круасан переходить до Міри, герої залишаються впізнаваними протягом сцени. Вивіску модель теж намалювала — цей результат не виконав усіх умов завдання.
У Gemini Omni Flash в ролику вище теж вдалася передача круасана. Мені подобається, що тут можна перевірити дію цілком: предмет був у Бо, опинився в Міри, обоє відреагували. Але написи на пекарні з’явилися й у цьому варіанті. Щодо збереження героїв обидва приклади вдалі, а вимогу до тексту на екрані однаково довелося відзначати окремо.
Wan і HappyHorse: хто потрапив у кадр
В одному з варіантів Wan 3.0 Міра й Бо залишилися впізнаваними, зате наприкінці камера наблизилася настільки, що вони перестали повністю вміщатися в кадрі. Дивишся на обличчя — усе знайоме. Дивишся на постановку — вона вже змінилася. Якщо придивитися, Бо в цих кадрах іще й виглядає вищим за Міру, хоча у вихідних референсах він нижчий.
Wan 3.0, один із варіантів досліду. Подивіться на останні секунди: Міра й Бо впізнавані, але камера залишає за краєм кадру дедалі більшу частину їхніх фігур.
У HappyHorse 1.1 інша невелика вільність: в одному ролику Бо спочатку частково прихований дверима, в іншому Міра затримується за дверима. Для звичайної сцени вихід по черзі цілком природний. Але в моєму завданні обох мало бути видно із самого початку. Така помилка легко губиться за приємною анімацією.
Seedance: ролик іще не почався, а перевірка вже закінчилася
Seedance 2.0 Fast і 2.5 відхилили аркуш Міри: фільтр повідомив, що на зображенні може бути реальна людина. При цьому Міра вигадана, а аркуш Бо перевірку пройшов. Прикро: я збирався дивитися, як героїня рухається, і навіть до цього не дійшов.
В інших варіантах вхідних зображень обидві моделі дали ролики з упізнаваними героями. Тому відмову я записую окремо від якості генерації. Вона показує проблему з прийманням конкретного матеріалу; про рух у неіснуючому ролику судити немає з чого.
Упізнати героя недостатньо
У перших результатах було багато приємного: персонажі впізнавані, одяг схожий, сцена виглядає живою. Тут легко поставити галочку й піти далі.
Але ось окремий результат створення першого кадру на Nano Banana 2:

Nano Banana 2. Герої на місці. Написи теж, хоча в завданні їх просили не малювати. Упізнаваність персонажів і дотримання обмежень тут дали різні результати.
Мені самому подобається ця картинка. Саме тому корисно заздалегідь записати, що я збираюся перевіряти. Інакше після генерації дуже легко вирішити, що вивіски навіть прикрашають сцену, і непомітно змінити критерій під результат, який сподобався.
А ось перший кадр з іншого прогону, на GPT Image 2.5:

GPT Image 2.5. Герої розташувалися інакше: Бо ліворуч, Міра праворуч. У цьому варіанті завдання сторони не задавалися, тому таку перестановку я не вважаю помилкою.
Ця пара мені подобається ще й як перевірка власної оцінки. Напис, який заборонили, — порушення. Положення персонажа, яке я лише уявляв собі, але не вказав, модель вгадувати не зобов’язана. Якщо змішати ці речі, порівняння швидко перетворюється на конкурс збігів із моєю картинкою в голові.
У дослідників подібний поділ є у VBench: незмінність зовнішності героя, плавність та інтенсивність руху оцінюються окремо. Мої приклади не проходили цей бенчмарк; тут мені корисна сама постановка завдання.
Є і зворотна пастка. Можна так захопитися збереженням зовнішності, що перестати помічати слабкий рух. У роботі ConsistI2V автори зазначають, що їхній метод іноді дає невелику амплітуду руху. Це обмеження конкретного методу, але гарний привід дивитися на дію, коли перевіряєш, чи залишається герой собою. Для моєї сцени замало зберегти окуляри Міри. Круасан усе-таки має змінити власника.
Найкорисніша частина — коли гіпотеза не підтверджується
На акуратній сцені з Мірою та Бо багато що працювало. А в робочому проєкті раніше з’являлися зовсім інші результати: зображення-референси перетворювалися на вставки всередині ролика, виникали зайві персонажі. З’явилася спокуса списати це на випадкову невдалу генерацію.
Я спробував відтворити збій. На тестових героях окремі зміни умов його не повернули. Натомість під час повтору робочого запиту з його вихідними матеріалами характерні помилки з’явилися знову. Умови збігалися не повністю: в одній із перевірок використовувалася інша роздільна здатність. Але тепер у мене був приклад, на якому можна перевіряти пояснення.
Перше пояснення виглядало переконливо: проблема у вихідних зображеннях. Далі я змінив їхню подачу й отримав неприємну відповідь. Частина дефектів зникла, інші залишилися або змінилися новими. Зарано я вирішив, що розібрався.
Наступні досліди показали, що потрібно враховувати і опис сцени, і візуальні вхідні дані. Їхнє поєднання виявилося важливішим, ніж припускала перша версія пояснення. Для мене тут важливий момент, коли наступна перевірка змусила переглянути висновок.
Так я й розумію науковий підхід у своїй роботі. Спочатку є спостереження та ймовірна причина. Потім потрібно придумати дослід, у якому це пояснення може не спрацювати, і справді його провести. Якщо результат незручний, він однаково залишається в записах.
Намагаюся змінювати по одній умові там, де це можливо. Якщо змінюю кілька умов одразу, позначаю це окремо. І навіть акуратне порівняння одиничних генерацій вважаю підказкою для наступного досліду: випадковість нікуди не зникає.
Чого ця перевірка поки не доводить
В основній матриці був один прогін на поєднання умов. Цього вистачило, щоб побачити робочі варіанти й знайти проблеми для подальшої перевірки. Частоту помилок так не виміряти.
Якщо персонаж зберігся один раз, я знаю, що такий результат вийшов. Я ще не знаю, скільки спроб знадобиться в наступному проєкті. Навіть повторний збій не дає права оголосити модель непридатною для всіх сцен.
До того ж основна перевірка тут на стилізованих дорослих героях і коротких сценах. Частина варіантів залишилася без запуску. Висновки про довгий епізод або інший візуальний стиль потребуватимуть своїх прикладів і повторів.
Для наступного етапу мені потрібні серії прогонів на кількох сценах. Хочеться зрозуміти, як часто доводиться переробляти результат і які помилки повертаються після змін. Картинки в цій статті показують, що вийшло в окремих дослідах; оцінку надійності ще належить отримати.
Що з цього потрапляє в студію
Для розробки така перевірка вже корисна. Після неї зрозуміліше, де шукати проблему та який приклад узяти, щоб перевірити майбутнє виправлення. Іноді виявляється, що потрібно точніше описати завдання. Іноді доводиться розбиратися, як студія передала матеріали моделі. Перемикання на іншу модель саме собою цього питання не знімає.
У першій частині циклу я схожим чином розбирався зі сценаристом. Зараз замість тексту переді мною герої з круасаном, але звичка та сама: зберегти вхідні дані й результат, щоб потім можна було повернутися до власного висновку та перевірити його.
Мені подобається, що ця робота залишає по собі ще й такі картинки. Бо можна розглядати просто тому, що він симпатичний. А потім увімкнути ролик іще раз і помітити помилку, яку пропустив за першим враженням.