Seedance 2.0: как сделать референс первым кадром
Seedance 2.0 не даёт совместить кадр-первый-кадр и референсы. Обходной путь из документации — одна строка промпта. Мы проверили, работает ли он.

Seedance 2.0 заставляет выбирать. Вы можете дать ему точный первый кадр или дать референсы для персонажа, локации и цвета. Отправите и то и другое — запрос упадёт.
Обходной путь описан в документации, и это одна строка промпта. Он работает лучше, чем следует из собственной документации ByteDance, и в большинстве случаев он вам вообще не нужен.
Почему нельзя использовать первый кадр и референсы вместе?
У Seedance 2.0 три способа принимать вход, и они не смешиваются. Есть текст в видео. Есть изображение в видео, где вы даёте первый кадр и по желанию последний. И есть omni-референс, где вы прикладываете до девяти изображений, трёх видео и трёх аудио и позволяете модели черпать из всего этого.
Выбирайте что-то одно. Документация ByteDance перечисляет их как отдельные сценарии, каждый выбирается полем role, которое вы задаёте у прикладываемых файлов: first_frame и last_frame для изображения в видео, reference_image, reference_video и reference_audio для omni-референса. Они не комбинируются. Отправьте изображение первого кадра вместе с референсами — запрос будет отклонён.
Это проблема, потому что реальному кадру обычно нужны обе половины. У вас есть персонаж, который должен выглядеть так же, как в прошлой сцене, уже установленная локация, цветовое решение, под которое вы подстраиваетесь, и при этом вы точно знаете, каким должен быть открывающий кадр. API вынуждает отказаться от одного или от другого.
Документация всё же предлагает выход. Он лежит в разделе «Продвинутое использование» туториала серии Seedance 2.0: «Для генерации видео с omni-референсом вы можете указать референсные изображения как первый/последний кадр через промпты, чтобы косвенно добиться эффекта „первый и последний кадры + omni-референс"». А дальше она подстраховывается: если кадры должны строго совпадать с переданными изображениями, используйте изображение в видео.
Именно эту оговорку мы и взялись проверить. Все сторонние гайды по Seedance, которые мы нашли, повторяют этот синтаксис; ни один не проверил, что он на самом деле выдаёт.
Как назначить референс первым кадром?
Приложите всё как референсные изображения, включая то, с которого хотите открыть. А затем назовите именно его в промпте.
Вот сборка, которую мы использовали. Четыре изображения, приложенные в таком порядке:




И промпт:
@Image 4 as the first frame. The courier arrives at a late-night noodle stall and hands the parcel to the vendor. @Image 1 is the character reference - keep the face, hair and jacket exactly as shown. @Image 2 is the noodle stall - match its awning, lanterns and signage. @Image 3 is the colour and lighting reference - match its palette. Rain falls steadily throughout. No subtitles, no captions, no watermark, no logo.
Что даёт вот это:
Ролик открывается свёртком, и при этом курьер, лапшичная и палитра уцелели вместе с ним.
Число указывает на позицию изображения в списке, который вы отправляете, а не на имя, которое вы ему присвоили. @Image 4 — это четвёртое изображение в запросе, так что если порядок изменится, строка укажет на другую картинку.
Ставьте строку в начало. Именно туда мы ставили её в каждом протестированном прогоне, поэтому не можем сказать, работает ли она, если закопать её в середину промпта.
Действительно ли возвращается ровно ваше изображение?
Один из этих двух кадров — референс, который мы передали. Другой — первый кадр, который Seedance по нему сгенерировал.

Всё неподвижное вернулось прежним: заломы бумаги, то, как шпагат перекрещивается и завязывается, положение пальцев, боке позади. Отличается только дождь, и он не может не отличаться: это первый кадр движущегося ролика, и капли в полёте.
ByteDance употребляет слово «косвенно», из чего можно решить, что вы получите верную идею и примерно верную композицию. Мы получили обратно саму картинку. Если открывающий кадр обязан быть конкретным изображением, этот путь приводит вас туда, не заставляя отказаться от остальных референсов.
Для самого строгого случая мы всё же последовали бы совету документации. Если открывающий кадр должен без шва стыковаться с последним кадром предыдущего ролика, где пара пикселей расхождения будет читаться как склейка, используйте изображение в видео и примите потерю референсов. Для всего, что мягче этого, приём работает.
Когда это действительно важно?
Строка окупается тогда, когда на роль открывающего кадра правдоподобно претендует больше одного вашего изображения.
В нашей сборке из четырёх изображений лапшичная — законный кандидат: это место, это сцена, и промпт описывает прибытие именно туда. Без строки про первый кадр ролик открывался лапшичной. Макро со свёртком, которое нам и было нужно, игнорировалось.
Добавьте строку — и всё переворачивается.
Без строки про первый кадр
Добавлена одна строка
То есть строка — не выключатель, который «включает» контроль первого кадра. Она разрешает спор и работает только тогда, когда два или больше изображений могут разумно претендовать на открывающий кадр. С одним кандидатом её можно опустить. С двумя и более опустить её значит позволить модели выбрать за вас.
Важна ли точная формулировка?
Мы проверили три способа это сказать:
| Что мы написали | Результат |
|---|---|
| "@Image 4 as the first frame." | Открылся задуманным изображением |
| "The video opens exactly on @Image 4 - an extreme macro of rain striking a brown paper parcel tied with red twine, held in two black-gloved hands, background blurred to neon bokeh. Hold that framing for a beat." | Открылся задуманным изображением |
| "The first frame must be @Image 4 - identical composition, framing and lighting. Do not reinterpret it." | Открылся задуманным изображением |
Каждая из них заменяла первую строку; остальная часть промпта каждый раз была идентична.
Разницы нет. Подробное описание изображения ничего не изменило, и приказ модели не отклоняться тоже ничего не изменил. Значение имело только то, назвали ли вы изображение вообще.
Берите короткую.
Когда строка не нужна вовсе?
Если открыть кадр может только одно изображение, модели не надо ничего объяснять. Чтобы это проверить, мы прогнали вариант, где прикладывали изображение и ни разу его не упоминали. Текст промпта в обеих ветках слово в слово одинаковый, без единого упоминания ракурса или места. Разница была только в том, лежала ли в запросе эта лишняя картинка.



Промпт, идентичный в обеих ветках:
The courier makes a late delivery in the rain-slick neon district at night. @Image 1 is the character reference - keep the face, hair and jacket exactly as shown. @Image 2 is the colour and lighting reference - match its palette. Rain falls steadily and the courier moves through the scene. No subtitles, no captions, no watermark, no logo.
Ничто в нём не описывает съёмку с воздуха и вообще не называет никакого ракурса.
Без этого изображения ролик открывался на уровне глаз, на улице, самым очевидным образом. С приложенным и ни разу не названным — открывался сверху, ровно с той воздушной позиции, что была на референсе: ракурс, которого промпт никогда не просил.
Кадр с воздуха не приложен
Кадр с воздуха приложен, но не упомянут
То есть само по себе добавление референса уже достаточно, чтобы задать открывающий кадр. Если кадр, с которого вы хотите открыть, — единственное «похожее на сцену» изображение среди приложенных, строка про первый кадр продаёт вам то, что у вас уже есть.
А если приложить изображение и ни разу его не упомянуть?
Это тот же вывод, что и выше, только повёрнутый к вашему рабочему процессу.
Изображение, приложенное по одной причине, может управлять совсем другой частью генерации. Добавьте цветовую палитру ради оттенков — и если она читается как сцена, она может забрать с собой и открывающий кадр, ни разу не будучи названной в промпте.
Помогают две вещи. Называйте открывающее изображение всякий раз, когда в запросе есть другое похожее на сцену изображение, и убирайте референсы, которые вам не нужны. Каждая лишняя картинка — ещё один кандидат на работу, которую вы не поручали.
Где это может не сработать
Всё это — Seedance 2.0, одна сцена на тест, промпты на английском. Seedance 2.5 описывает то же ограничение, но мы его не измеряли. И мы подтвердили, что прочие референсы уживаются с названным первым кадром, лишь на одной сцене: этого хватает, чтобы сказать, что по умолчанию оно не ломается, и не хватает, чтобы обещать, что не сломается никогда.
Рецепт
- Приложите каждое изображение как референсное, включая открывающий кадр.
- Запомните позицию того, с которого хотите открыть. Число — это его место в запросе.
- Если любое другое приложенное изображение может прочитаться как сцена, добавьте
@Image N as the first frame.в начало промпта. - Уберите все референсы, которые вам на самом деле не нужны. Каждая лишняя картинка — кандидат на роль, которой вы не задумывали.
В Pixo референсы прикладываются в том порядке, в котором вы их добавляете, поэтому нумерация совпадает с тем, что вы видите в рабочей области кадра. Если вы называете конкретный кадр, перед генерацией стоит на это взглянуть. Если модель для вас новая, наше полное руководство по Seedance 2.0 разбирает остальные режимы ввода, а руководство по режиссёрским промптам глубже заходит в язык кадра. Вы можете попробовать Seedance 2.0 на Pixo — всё это уже настроено.
Готовы совершить революцию в работе?
Присоединяйтесь к тысячам авторов, которые используют Pixo, чтобы превращать истории в визуальную реальность.
ЗарегистрироватьсяБанковская карта не нужна • 200 бесплатных кредитов


