PopNowДокументация API
Руководства
Основное содержимое

Руководство: превращаем изображения в видео

Как оживить фото, задать первый и последний кадр, использовать референсы, продлить клип и держать расходы под контролем.

Видео генерируется минуты, а не секунды, поэтому интеграция с видео строится вокруг задач и вебхуков, а не вокруг одного запроса, который ждёт ответа. В этом руководстве — типичные сценарии с реальными ID моделей.

Оживить одно изображение

curl -X POST "https://api.popnow.ai/api/v1/jobs/createTask" \
  -H "Authorization: Bearer $POPNOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "model": "alibaba/wan-3.0/image-to-video",
    "input": {
      "image_url": "https://media.popnow.ai/movie/lighthouse.webp",
      "prompt": "Waves roll in slowly, clouds drift, the camera pushes gently toward the lighthouse",
      "resolution": "480p",
      "duration_seconds": 5
    },
    "callBackUrl": "https://your-app.example.com/hooks/popnow"
  }'

Сразу приходит 202 с taskId. Через несколько минут вебхук доставит готовую задачу, или вы прочитаете её через recordInfo. Видео лежит в output.assets[0] вместе с durationSeconds, width и height.

Сколько это стоит

Большинство видеомоделей берут плату за секунду результата, и ставка растёт с разрешением. У alibaba/wan-3.0/image-to-video это 6,75 кредита за секунду в 480p, 13,5 в 720p и 27 в 1080p — поэтому запрос выше резервирует 34 кредита (5 × 6,75 с округлением вверх) и столько же стоит при успехе.

  • Пока подбираете промпт, работайте в минимальном разрешении и с короткой длительностью, а для финала поднимите их.
  • Перед тем как показать цену пользователю, узнайте точную сумму через jobs/quote.
  • Упавшее или просроченное видео ничего не стоит.

Первый и последний кадр

Многие модели «изображение в видео» принимают ещё и last_image_url. Клип начинается с image_url и заканчивается ровно на last_image_url — так делают превращения или бесшовную петлю (одно и то же изображение в обоих полях).

Видео по референсу: персонаж или товар без расхождений

Модели reference-to-video строят новую сцену вокруг одного или нескольких референсных изображений (а некоторые — и вокруг референсного видео или аудио), а не оживляют заданный первый кадр:

{
  "model": "minimax/h3/reference-to-video",
  "input": {
    "prompt": "The same lighthouse at night, its beam sweeping over a calm sea while the camera circles slowly",
    "reference_image_urls": ["https://media.popnow.ai/movie/lighthouse.webp"],
    "duration_seconds": 6
  }
}

Как модель ссылается на референсы в промпте, зависит от модели; это объясняют описания полей на её справочной странице.

Сделать клип длиннее

Модели video-extend продолжают существующий клип с его последнего кадра. Передайте клип в video_url и опишите, что происходит дальше:

{
  "model": "minimax/h3/video-extend",
  "input": {
    "video_url": "https://media.popnow.ai/showcase/moon-picnic-loop.mp4",
    "prompt": "The camera keeps drifting right as the picnic blanket ripples in the breeze"
  }
}

Модели продления, которые склеивают клипы, возвращают два файла: сначала склеенное видео (role: "video"), затем отдельно новый фрагмент (role: "segment").

Звук

Модели с generate_audio добавляют к клипу звуковую дорожку; у некоторых моделей без неё дешевле. Чтобы озвучить уже готовое видео, используйте popnow/foley-v1/video-to-audio — он вернёт то же видео со сгенерированным звуком.

Промпты, которые работают для видео

Описывайте движение, а не только сцену: что движется, с какой скоростью и что делает камера. «Камера медленно приближается, пока человек поворачивается к свету» даёт модели задачу; «красивый маяк» — нет. Как всё выглядит, уже показывает изображение — тратьте слова на то, что меняется.

Схема для продакшена

  1. Загрузите или сохраните исходное изображение и запомните его URI popnow://.
  2. Запросите расчёт, покажите цену, затем вызовите createTask с Idempotency-Key, выведенным из вашего ID задания, и с callBackUrl.
  3. В вебхуке проверьте подпись, подтвердите получение и только потом скачайте видео в своё хранилище.
  4. Раз в день получайте список последних задач через GET /api/v1/jobs и дочитывайте те, чей вебхук так и не пришёл.

Остальное — в чек-листе перед запуском.

На этой странице