PixVerse V4.5: Быстрый старт для генерации видео из текста и изображений

PixVerse V4.5: Быстрый старт для генерации видео из текста и изображений

PixVerse V4.5 доступен на Novita AI через два асинхронных эндпоинта: POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v для генерации видео из текста (T2V) и POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v для генерации видео из изображения (I2V). Оба следуют одному и тому же двухшаговому асинхронному паттерну — отправьте запрос на генерацию, получите task_id, затем опрашивайте GET /v3/async/task-result, пока статус не станет TASK_STATUS_SUCCEED и URL видео не станет доступен. Это руководство проведет вас от нуля до работающего URL видео для каждого режима.

Когда использовать этот быстрый старт

Используйте это руководство, когда вам нужен проверенный рабочий запрос перед написанием продакшн-логики вокруг PixVerse V4.5.

T2V — правильный путь, когда ваш вход — полностью текст: описание сцены, подпись к раскадровке или промпт продукта. I2V предназначен для случаев, когда у вас есть референсное изображение, и вы хотите, чтобы PixVerse анимировал его, начиная с этого кадра.

Что стоит знать перед началом:

  • Максимальная длина клипов — 5 секунд при 1080p или 8 секунд при 720p и ниже.
  • fast_mode: true ускоряет генерацию и снижает стоимость, но ограничивает разрешение до 720p.
  • Параметр предустановки style (anime, 3d_animation, clay, comic, cyberpunk) документирован как только для v3.5 — протестируйте его на V4.5, прежде чем полагаться на него в продакшне.
  • Входные изображения для I2V должны быть в формате jpg, jpeg или png; максимум 10 МБ; минимум 300×300 пикселей; соотношение сторон от 1:2.5 до 2.5:1.

Это руководство не охватывает веб-интерфейс PixVerse, самостоятельный хостинг или тонкую настройку. Оно рассматривает только API-путь, размещенный на Novita AI.

Шаг 1: Получите ваш Novita API ключ

Создайте аккаунт Novita AI и перейдите в раздел управления API ключами. Сгенерируйте ключ и экспортируйте его в ваше окружение:

export NOVITA_API_KEY="your_api_key_here"

Не храните ключ в системе контроля версий, клиентских сборках или слоях Docker-образов.

Шаг 2: Подтвердите эндпоинты

T2V I2V
Эндпоинт отправки POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v
Эндпоинт результата GET https://api.novita.ai/v3/async/task-result?task_id=<id> GET https://api.novita.ai/v3/async/task-result?task_id=<id>
Справочник API Документация T2V Документация I2V

Эндпоинт результата общий для всех асинхронных API Novita AI. Как только вы поймете цикл опроса, он будет работать одинаково для каждой модели.

Шаг 3: Отправьте ваш первый T2V запрос

Отправьте генерацию с промптом и желаемым соотношением сторон. Значения по умолчанию (aspect_ratio: "16:9", resolution: "540p", fast_mode: false) — разумная отправная точка:

curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A time-lapse of cherry blossoms falling in slow motion, soft morning light, cinematic 4K",
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }'

Успешный ответ 200 возвращает только:

{
  "task_id": "abc123..."
}

Сохраните task_id. На этом этапе больше ничего не возвращается — генерация видео выполняется асинхронно.

Шаг 4: Отправьте ваш первый I2V запрос

I2V принимает начальное изображение и анимирует его в соответствии с вашим промптом. Поле image_file ожидает строку в base64-кодировке исходного изображения:

# Сначала закодируйте изображение
IMAGE_B64=$(base64 -w 0 /path/to/your/image.jpg)

curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-i2v \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"prompt\": \"Camera slowly pushes forward, light wind moves through the scene\",
    \"image_file\": \"$IMAGE_B64\",
    \"resolution\": \"720p\"
  }"

Ответ имеет ту же структуру, что и для T2V:

{
  "task_id": "xyz789..."
}

Ключевые ограничения для изображений, которые нужно проверить перед отправкой:

  • Формат: только jpg, jpeg или png
  • Размер файла: максимум 10 МБ (проверьте перед кодированием — base64 увеличивает размер примерно на 33%)
  • Минимальные размеры: 300×300 пикселей
  • Соотношение сторон: от 1:2.5 до 2.5:1 (от портретного до пейзажного extremes)

Шаг 5: Опрашивайте результаты

Опрашивайте эндпоинт результата задачи с task_id, полученным на шаге отправки:

curl -s "https://api.novita.ai/v3/async/task-result?task_id=abc123..." \
  -H "Authorization: Bearer $NOVITA_API_KEY"

Поле task.status проходит через следующие состояния:

Статус Значение
TASK_STATUS_QUEUED Задача ожидает в очереди
TASK_STATUS_PROCESSING Генерация выполняется
TASK_STATUS_SUCCEED Видео готово; URL находится в ответе
TASK_STATUS_FAILED Генерация не удалась; проверьте task.reason

Опрашивайте каждые 5–10 секунд. Когда появится TASK_STATUS_SUCCEED, URL видео будет в теле ответа. Поле task.eta предоставляет оценочное время завершения в секундах, которое можно использовать для планирования первого опроса.

Шаг 6: Проверьте цены и лимиты

Опубликованная цена Novita AI для PixVerse V4.5 составляет $0.7 за 5-секундный клип (подтверждено на страницах продуктов PixVerse от Novita AI по состоянию на июль 2026 года). Проверьте текущую ставку на странице цен Novita AI перед составлением любой сметы.

fast_mode: true генерирует видео быстрее и с меньшей стоимостью, но разрешение ограничено 720p. Это полезно для прототипирования или пакетной генерации превью, где качество вторично.

Ограничения скорости зависят от уровня аккаунта. Проверьте документацию по лимитам скорости Novita AI для текущих пороговых значений тарифного плана.

Ключевые параметры

Параметры T2V

Параметр Тип По умолчанию Примечания
prompt string Обязательный. Максимум 2048 символов.
aspect_ratio string 16:9 16:9, 4:3, 1:1, 3:4, 9:16
resolution string 540p 360p, 540p, 720p, 1080p. 1080p требует fast_mode: false.
negative_prompt string Максимум 2048 символов. Опишите, чего следует избегать.
fast_mode boolean false Быстрее и дешевле; ограничение до 720p.
style string anime, 3d_animation, clay, comic, cyberpunk. Помечен как только для v3.5 — тестируйте перед использованием в продакшне.
seed integer Установите для воспроизводимости; результаты могут отличаться после обновлений модели.

Параметры I2V

Параметр Тип По умолчанию Примечания
prompt string Обязательный. Максимум 2048 символов.
image_file string Обязательный. Изображение в base64-кодировке (jpg/jpeg/png). Максимум 10 МБ, минимум 300×300 пикселей, соотношение сторон от 1:2.5 до 2.5:1.
resolution string 540p Те же опции, что и для T2V.
negative_prompt string Максимум 2048 символов.
fast_mode boolean false То же, что и для T2V.
style string То же, что и для T2V.
seed integer То же, что и для T2V.

Примечание: I2V не принимает параметр aspect_ratio — соотношение сторон выходного видео определяется из входного изображения.

Пример на Python — полный асинхронный рабочий процесс

Этот пример охватывает отправку T2V и I2V, а также цикл опроса в одном скрипте:

import os
import time
import base64
import requests

API_KEY = os.environ["NOVITA_API_KEY"]
BASE_URL = "https://api.novita.ai/v3/async"

HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}


def submit_t2v(prompt: str, aspect_ratio: str = "16:9", resolution: str = "720p") -> str:
    resp = requests.post(
        f"{BASE_URL}/pixverse-v4.5-t2v",
        headers=HEADERS,
        json={
            "prompt": prompt,
            "aspect_ratio": aspect_ratio,
            "resolution": resolution,
        },
    )
    resp.raise_for_status()
    return resp.json()["task_id"]


def submit_i2v(prompt: str, image_path: str, resolution: str = "720p") -> str:
    with open(image_path, "rb") as f:
        image_b64 = base64.b64encode(f.read()).decode("utf-8")
    resp = requests.post(
        f"{BASE_URL}/pixverse-v4.5-i2v",
        headers=HEADERS,
        json={
            "prompt": prompt,
            "image_file": image_b64,
            "resolution": resolution,
        },
    )
    resp.raise_for_status()
    return resp.json()["task_id"]


def poll_result(task_id: str, interval: int = 8, timeout: int = 300) -> dict:
    deadline = time.time() + timeout
    while time.time() < deadline:
        resp = requests.get(
            f"{BASE_URL}/task-result",
            headers=HEADERS,
            params={"task_id": task_id},
        )
        resp.raise_for_status()
        data = resp.json()
        status = data.get("task", {}).get("status")
        if status == "TASK_STATUS_SUCCEED":
            return data
        if status == "TASK_STATUS_FAILED":
            reason = data.get("task", {}).get("reason", "unknown")
            raise RuntimeError(f"Task {task_id} failed: {reason}")
        time.sleep(interval)
    raise TimeoutError(f"Task {task_id} did not complete within {timeout}s")


if __name__ == "__main__":
    # Text-to-video
    t2v_task = submit_t2v(
        prompt="A lone lighthouse on a rocky coast at dusk, waves crashing, golden sky",
        aspect_ratio="16:9",
        resolution="720p",
    )
    print(f"T2V task submitted: {t2v_task}")
    t2v_result = poll_result(t2v_task)
    print("T2V result:", t2v_result)

    # Image-to-video — replace with a real image path
    # i2v_task = submit_i2v(
    #     prompt="Gentle wind moves through the scene, slow camera pull-back",
    #     image_path="./reference.jpg",
    #     resolution="720p",
    # )
    # print(f"I2V task submitted: {i2v_task}")
    # i2v_result = poll_result(i2v_task)
    # print("I2V result:", i2v_result)

Примеры cURL

T2V с быстрым режимом:

curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A hyperrealistic ocean wave cresting and breaking on shore, slow motion, golden hour",
    "aspect_ratio": "9:16",
    "resolution": "720p",
    "fast_mode": true,
    "negative_prompt": "blurry, low quality, watermark"
  }'

T2V с seed для воспроизводимости:

curl -s -X POST https://api.novita.ai/v3/async/pixverse-v4.5-t2v \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Neon-lit cyberpunk street at night, rain reflections, hovering vehicles",
    "aspect_ratio": "16:9",
    "resolution": "1080p",
    "seed": 42
  }'

Опрос результата:

curl -s "https://api.novita.ai/v3/async/task-result?task_id=YOUR_TASK_ID" \
  -H "Authorization: Bearer $NOVITA_API_KEY"

Устранение неполадок

400 Bad Request при отправке I2V

Сначала проверьте ограничения изображения: формат должен быть jpg/jpeg/png, размер должен быть менее 10 МБ перед кодированием base64 (закодированная полезная нагрузка будет примерно на 33% больше), минимум 300×300 пикселей, соотношение сторон от 1:2.5 до 2.5:1. Крайние пейзажные форматы (очень широкие или очень высокие изображения) будут отклонены.

Задача долго находится в состоянии TASK_STATUS_QUEUED

Это нормально при высокой нагрузке на платформу. Поле task.eta дает оценку; опрашивайте соответственно, не забивая эндпоинт. Если задача не продвинулась за 10 минут, проверьте страницу статуса Novita AI или повторите отправку.

TASK_STATUS_FAILED без полезной причины

Повторите с более коротким и простым промптом. Промпты с неоднозначными инструкциями по движению, противоречивыми описаниями сцены или персонажами, выполняющими невозможную физику, часто приводят к сбоям. Негативные промпты также могут конфликтовать с основным промптом, если они слишком широки.

1080p недоступно в быстром режиме

fast_mode: true ограничивает разрешение до 720p. Если вам нужно 1080p, удалите fast_mode или установите его в false.

Параметр style не имеет видимого эффекта

Параметр style документирован как только для v3.5. В запросах V4.5 он может быть молча проигнорирован или давать непоследовательные результаты. Не полагайтесь на него без тестирования вашего конкретного случая использования.

Часто задаваемые вопросы

В чем разница между T2V и I2V для PixVerse V4.5?

T2V генерирует видеоклип полностью из текстового промпта — ввод изображения не требуется. I2V принимает начальное изображение и анимирует его в соответствии с текстовым промптом, используя изображение в качестве первого кадра. Используйте T2V для полностью сгенерированных сцен; используйте I2V, когда у вас есть определенная визуальная отправная точка, которую вы хотите анимировать.

Какая длина видео у PixVerse V4.5?

Клипы имеют длину 5 секунд при 1080p и до 8 секунд при разрешении 720p и ниже. В API нет параметра duration — длина клипа определяется выбранным вами разрешением.

Определяет ли эндпоинт I2V соотношение сторон из изображения?

Да. У I2V нет параметра aspect_ratio. Соотношение сторон выходного видео соответствует входному изображению. Убедитесь, что ваше изображение обрезано до предполагаемого выходного соотношения перед отправкой.

Можно ли отправлять T2V и I2V запросы параллельно?

Да. Каждый запрос возвращает свой собственный независимый task_id. Вы можете отправлять несколько запросов одновременно и опрашивать их параллельно — нет необходимости ждать завершения одного перед отправкой следующего.

Как получить согласованные результаты при разных запусках?

Установите параметр seed на одно и то же целое число. Имейте в виду, что воспроизводимость на основе seed не гарантируется при обновлениях версии модели — сохраняйте URL видео и параметры генерации вместе, если вам нужно впоследствии аудировать результаты.

Подходит ли fast_mode для использования в продакшне?

Это зависит от вашей планки качества. fast_mode: true генерирует видео быстрее и стоит дешевле, но разрешение ограничено 720p, а качество ниже, чем в стандартном режиме. Он хорошо подходит для генерации превью, пакетной оценки и прототипирования; используйте стандартный режим, когда качество вывода является решающим фактором.

Рекомендуемые статьи