Руководство
Seedance 2.0 Ext: промпт для合成 2D-стикера — полный разбор
Рука вынимает светло-серую солнцезащитную куртку из холщовой сумки на скамейке станции метро — само по себе ничего примечательного. Что делает этот 10-секундный ролик удачным, так это плоское 2D-солнце в мультяшном стиле, приклеенное как стикер в верхней части кадра: в начале оно подпрыгивает, изнывая от жары; когда демонстрируется ткань куртки с UPF-защитой, оно впадает в панику; а к последнему такту оно полностью остывает до бледно-голубого цвета и, закрыв глаза, довольно обнимает 2D-кубик льда рядом с капюшоном куртки. Вся шутка держится на структуре промпта с двумя референсными изображениями для Seedance 2.0 Ext, и её стоит разобрать, потому что этот приём можно почти без изменений перенести на любую рекламу «реальный продукт + реакция мультяшного маскота».
Полный промпт
Вот промпт, с которым мы сгенерировали этот ролик, полностью переведённый ниже (исходная генерация велась на китайском; ниже ничего не упрощено и не сокращено):
Сцена: реальная жизнь, стиль съёмки с рук. Перед входом на городскую станцию метро
рука держит светло-серую солнцезащитную куртку с UPF-защитой над
чёрной холщовой сумкой, стоящей на скамейке. Естественный дневной свет, реальная уличная
атмосфера, сама видеосъёмка не подвергается никакой стилизации.
Скомпонуйте плоского 2D-мультяшного персонажа-солнце (дизайн персонажа см. @image1 —
не меняйте его пропорции, цветовую палитру или толщину
линий). Персонаж наклеен на видеокадр как стикер:
он должен всегда оставаться идеально плоским 2D, игнорировать
освещение и тени окружающего реального мира и никогда не впитывать никакие 3D-светотени, отражения или
перспективные искажения из видеокадра.
@image1 — фиксирует только дизайн персонажа (форму иконки солнца,
лицо, цветовые фазы, пропорции). Не берите из этого референса сцену, фон, руку или
детали солнцезащитной куртки.
@image2 — фиксирует только реальную сцену и то, как
носят/держат куртку (положение руки, скамейка, вход в метро, композиция кадра). Не
берите из этого референса дизайн персонажа.
Тайминговые точки (4 комедийных такта, синхронизированные с реальными движениями руки в кадре):
1. 0-2с: персонаж-солнце ярко-жёлто-оранжевого цвета подпрыгивает с
преувеличенной «жаркой» энергией над сложенной курткой.
2. 3-5с: рука поднимает куртку, чтобы показать ткань; персонаж выдаёт
преувеличенную паническую реакцию, из него вылетают комиксовые капли пота, цвет меняется на
оранжево-красный.
3. 6-8с: рука полностью разворачивает куртку к камере; персонаж
заметно остывает, цвет уходит от красного к бледно-голубому, движения замедляются.
4. 8-10с: кульминация/развязка — персонаж теперь полностью бледно-голубой, обнимает плоский 2D
кубик льда (к кубику льда применяются те же правила плоского стикера), с удовольствием
прижимается рядом с капюшоном куртки, с закрытыми глазами, окончательно охладившись.
Звуковой дизайн: на первом подпрыгивании персонажа — лёгкий комедийный «boing»,
на такте с потом — мультяшное шипение/пар, на финальном охлаждающем объятии — мягкий
«а-а-ах» выдох с нежным звоном. На протяжении всего ролика сохраняйте реальные окружающие
звуки метро/улицы — не заглушайте звук с видеосъёмки.
Избегать: ни в какой части кадра не должно быть читаемого текста, ценников, элементов UI, субтитров,
подписей или водяных знаков. Китайский или любой другой текст из @image1/@image2 не должен
просачиваться в финальный скомпонованный кадр. Ни в какой момент не добавляйте персонажу-стикеру 3D-светотень или
повторное освещение.
Почему это работает
Два референсных изображения, две совершенно разные роли. @image1 — чистая многовидовая схема арта персонажа-солнца, и только это. @image2 — кадр реальной сцены (или референс, похожий на такой кадр): рука, куртка, скамейка, вход в метро. Такое разделение не даёт модели «загрязнить» мультяшного персонажа освещением сцены или затянуть объекты сцены в референс персонажа. На уровне API это напрямую соответствует двум элементам массива reference_image_urls в Seedance 2.0 Ext — плейсхолдеры @image1/@image2 в промпте указывают на позиции этого массива, считая с 1 (reference_image_urls[0], reference_image_urls[1]).
Правило стикера — это и есть вся шутка. Требование держать персонажа «идеально плоским 2D» и никогда не позволять ему впитывать светотень реального мира — именно это делает гэг работающим: персонаж выглядит так, будто кто-то наклеил стикер на видеокадр, а не вставил CG-объект в сцену. Уберите это ограничение — и персонаж начнёт впитывать окружающий свет и тени от входа в метро, и шутка перестанет быть смешной.
Комедийный ритм привязан к реальным физическим движениям в кадре, а не к произвольным отметкам времени: подпрыгивание → демонстрация ткани → охлаждение → объятие с кубиком льда. Поскольку каждый такт привязан к тому, что рука на самом деле делает в кадре, мультяшные реакции выглядят как прямой отклик на продукт, а не как параллельно идущая декорация.
Негативный список действительно работает. Оба пункта — «не должно быть читаемого текста/цен/UI/субтитров/водяных знаков» и «текст из референсов не должен просачиваться в финальный скомпонованный кадр» — обязательны, потому что такие конкретные референсы (студийные фото продукта, уличная фотография) часто содержат случайные вывески, ценники или текст на упаковке, которые модель иначе с радостью скомпонует в финальный кадр.
Воспроизведите сами: вызов /v1/tasks
Схема Seedance 2.0 Ext строгая (неизвестные поля отклоняются сразу), поэтому ниже — точные требования запроса: prompt, aspect_ratio и duration обязательны; resolution, reference_image_urls и generate_audio опциональны:
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0@ext",
"input": {
"prompt": "<the full prompt above>",
"aspect_ratio": "9:16",
"duration": 10,
"resolution": "1080p",
"reference_image_urls": [
"https://your-cdn.example.com/sun-character-turnaround.jpg",
"https://your-cdn.example.com/jacket-scene-reference.jpg"
],
"generate_audio": true
}
}'
Опрашивайте возвращённый taskId, пока он не достигнет терминального состояния:
curl -s https://api.hiapi.ai/v1/tasks/{taskId} \
-H "Authorization: Bearer $HIAPI_API_KEY"
reference_image_urls поддерживает до 9 элементов — этому ролику нужно всего 2. В тарифе 1080p Seedance 2.0 Ext стоит $0.373 в секунду, поэтому такой 10-секундный ролик обойдётся в $3.73 (актуальные тарифы всегда смотрите на странице цен).
Частые вопросы
В чём разница между маршрутом по умолчанию Seedance 2.0 и маршрутом @ext?
@ext — отдельный маршрут на той же модели (seedance-2.0@ext против обычного seedance-2.0), со своей схемой и своим тарифным уровнем. Именно маршрут ext принимает reference_image_urls, и именно он делает возможным приём с двумя референсами из этого промпта. Полный разбор по полям см. в документации Seedance 2.0.
Обязательно ли предоставлять ровно два референсных изображения?
Нет — поле принимает до 9 изображений. Этому промпту двух ровно достаточно, потому что здесь ровно две вещи, которые нужно зафиксировать независимо (дизайн персонажа, сцена/способ ношения). Если вашему маскоту нужен третий референс (например, конкретный лист поз), добавьте третий элемент и ссылайтесь на него в промпте как @image3.
Почему персонаж-стикер никогда не выглядит «подсвеченным» сценой? Потому что промпт это прямо запрещает. Без этой инструкции модель часто пытается «помочь» и вписывает персонажа в освещение сцены, разрушая эффект стикера. Указывайте ограничение прямо, а не надейтесь, что модель сама сохранит плоский стиль.
Могу ли я применить это к своим существующим фотографиям продукта?
Да — в этом и смысл разделения референсов. Используйте чистые фото или многовидовые схемы вашего маскота/персонажа как @image1, а реальное фото или кадр видео с продуктом в естественной сцене — как @image2. Модель скомпонует первое на второе.
Берётся ли отдельная плата за generate_audio?
В текущих тарифах отдельной строки нет — указанная выше ставка за секунду для уровня 1080p уже учитывает, генерируется аудио или нет. Перед пакетным запуском обязательно перепроверьте актуальные цены, потому что тарифные уровни действительно меняются.
Если хотите попробовать такой стиль композитинга на своих фотографиях продукта, на странице модели Seedance 2.0 Ext есть текущая схема и цены, а документация быстрого старта позволит вам за несколько минут пройти путь от API-ключа до первой задачи.
Похожие статьи
Все статьи →-
Руководство
Как вызвать hailuo-2.3-fast/image-to-video через HiAPI API: практика с curl и Python
Первый рабочий запрос к быстрому и недорогому уровню генерации видео по изображению — от ID модели до загрузки MP4
-
Руководство
Как вызывать hailuo-2.3/text-to-video через API HiAPI: curl, Python и рабочие примеры запросов
-
Руководство
Использование Kandinsky 6.0 Pro для преобразования текста в видео на HiAPI: руководство по curl и Python
Практическая демонстрация с упором на запросы: построение вызова от промпта до видеоклипа, отправка запроса, опрос статуса завершения и скачивание результата