HiAPI
Блог

Руководство по использованию

FLUX.3 видео для коротких роликов: черновики, рендеринг и продолжение через API

Вертикальный 9:16 ролик с нативным аудио: проверка идеи черновиком за $0.45, финальная версия 720p, затем продолжение до 10 секунд — всё на одном id модели, с реальным выводом.

Nov 4, 2026
FLUX.3 видео для коротких роликов: черновики, рендеринг и продолжение через API

FLUX.3 Video (на hiapi — flux-3-video) под одним id модели объединяет три вещи, необходимые для workflow коротких роликов: вертикальный вывод 9:16, звуковую дорожку, генерируемую синхронно с изображением, и продолжение видео с последнего кадра существующего фрагмента. В этом руководстве все три функции используются на небольшой задаче: создание 10-секундного вертикального ролика для ночной лапшичной. Сначала дешёвый черновик проверяет концепцию, затем рендерится финальная версия в 720p, а после этого кадр удлиняется за пределы 5 секунд с помощью продолжения. Каждый фрагмент ниже — реальный, неотредактированный вывод API, а каждая цена взята из актуального прайс-листа hiapi.

Полный справочник параметров и первое знакомство с запросами см. в руководстве по API FLUX.3 Video. Если вам нужны отдельные эндпоинты для генерации видео из изображения и ключевых кадров с более низкой ценой за секунду, workflow коротких роликов FLUX 3 Max охватывает эту модель. Эта статья посвящена тому, что дополнительно предлагает flux-3-video: аудио, предварительный просмотр черновика и продолжение.

Workflow из трёх вызовов

Шаг Назначение Ключевое поле Цена (за секунду) Стоимость 5 секунд
1. Черновик Проверить, соответствует ли промпт ожидаемому результату draft: true $0.09 $0.45
2. Финальная версия Отрендерить фрагмент, который вы опубликуете resolution: "720p" $0.25 $1.25
3. Продолжение Удлинить финальный фрагмент ещё на 5 секунд start_video + draft: true $0.18 $0.90

Все три используют один id модели и одинаковую структуру запроса на эндпоинте асинхронных задач. Общая стоимость этого запуска составила $2.60, в результате получился 10-секундный вертикальный ролик со звуком. При 1080p тариф обычного рендеринга возрастает до $0.42/сек, продолжения — до $0.76/сек, а продолжения 720p без черновика — до $0.59/сек. Актуальные тарифы см. на странице модели flux-3-video и на странице цен.

Шаги 1 и 2: черновик и финальная версия, отправленные одной пачкой

Промпт описывает кадр в одном блоке предложений и звук в отдельной строке Audio:. При включённом generate_audio: true модель возвращает .mp4 со встроенной звуковой дорожкой AAC, а не отдельный аудиофайл.

{
  "model": "flux-3-video",
  "input": {
    "prompt": "Ночной вертикальный кадр с рук: поднимающийся пар от чаши с рамэном на тонкоцу, палочки поднимают блестящую лапшу по направлению к камере, позади стойка рамен-бара всего на шесть мест, тёплые бумажные фонарики, следы дождя на стекле, малая глубина резкости. Аудио: бульканье бульона, тихое прихлёбывание лапши, стук дождя по стеклу, негромкий разговор.",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "draft": true,
    "generate_audio": true
  }
}

Запрос финальной версии — это то же тело запроса, только без "draft": true. Оба запроса отправляются один за другим. Они не ждут друг друга, поскольку каждый вызов сразу возвращает taskId:

Черновик Финальная версия 720p
Создание → завершение (серверные метки времени) 29 секунд 64 секунды
Размер вывода 704×1280 704×1280
Длительность 5.04 секунды 5.04 секунды
Пиковый уровень аудио −23 dB −5 dB
Стоимость $0.45 $1.25

Вот черновик:

А вот финальная версия 720p того же промпта:

Эти два фрагмента показывают, что черновик может сообщить, а что нет:

  • Черновик — это другая версия, а не уменьшенное превью финальной. В черновике снята простая белая чаша, лапша уже поднята. В финальной версии выбрана чаша с узором, с яйцом аджитама, зелёным луком, посетителями у стойки и паром. В схеме запроса нет поля seed, поэтому зафиксировать композицию черновика и отрендерить её в полном качестве нельзя.
  • Размер в пикселях абсолютно одинаковый. Оба вывода — 704×1280. Разница в деталях: черновик заметно мягче, фон размыт, а финальная версия сохраняет текстуру лапши и надписи на фонарике.
  • Звуковая дорожка черновика намного тише. Её пик около −23 dB, а у финальной версии — −5 dB. Не судите о миксе аудио по черновику.

Поэтому с помощью черновика за $0.45 за штуку проверяйте концепцию на нескольких вариантах промпта (получается ли по промпту ночной вертикальный крупный план рамена с поднятой лапшой?). Затем рендерите финальную версию только для прошедших промптов и выбирайте из готовых роликов.

Шаг 3: удлинение кадра с помощью продолжения

5-секундного хука для поста часто слишком мало. Вместо генерации ещё одного несвязанного фрагмента передайте публичный URL финальной версии в start_video и опишите, что происходит дальше:

{
  "model": "flux-3-video",
  "input": {
    "prompt": "Продолжить тот же кадр: лапшу вытягивают из кадра, ручная камера смещается вправо и вверх, минуя чашу с паром, в сторону окна со следами дождя, светящиеся бумажные фонарики отражаются в стекле, за окном размытая неоновая вывеска. Аудио: прихлёбывание лапши, затем стук дождя по стеклу и разговоры у стойки мягко нарастают.",
    "start_video": "https://static.hiapi.ai/blog/flux-3-video-short-form-video/hook-final.mp4",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "draft": true,
    "generate_audio": true
  }
}

Задача от создания до завершения заняла 119 секунд и стоила $0.90 (5 секунд × $0.18 за продолжение черновика). Результат:

Две особенности поведения, которые стоит учесть заранее:

  1. Вывод содержит только добавленные секунды. Возвращённый файл длится 5.0 секунд. Он начинается с последнего кадра исходного фрагмента (поднятая лапша перед фонариком), затем по запросу камера уходит к окну. Он не содержит исходных 5 секунд, поэтому два файла нужно склеить самостоятельно.
  2. Поскольку первый кадр совпадает, склейка бесшовная. Простой concat даёт непрерывный 10-секундный кадр:
ffmpeg -i hook-final.mp4 -i extend-draft.mp4 \
  -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" \
  -map "[v]" -map "[a]" -c:v libx264 -crf 20 -c:a aac -movflags +faststart cut-10s.mp4

Здесь продолжение отрендерено в режиме черновика для экономии, и вторая половина мягче первой — так же, как и в случае отдельного черновика. Для публикуемого фрагмента продолжение 720p без черновика стоит $0.59/сек ($2.95 за 5 секунд). Удлинение шагами по 5 секунд позволяет подтверждать каждый отрезок до оплаты следующего; а рендеринг 20-секундной финальной версии 720p за один раз потребует предоплаты $5.00.

Скрипт асинхронной пакетной обработки

Приведённый ниже скрипт параллельно отправляет любое количество задач, опрашивает каждый taskId до завершения и сразу скачивает результат. URL результатов на temp.hiapi.ai содержат метку времени expireAt, поэтому копируйте файлы в своё хранилище, а не ссылайтесь на них напрямую. Документация по эндпоинтам: Create Task и Get Task Detail.

import os, time, requests

API = "https://api.hiapi.ai/v1/tasks"
HEADERS = {"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"}

BASE = {"duration": 5, "resolution": "720p", "aspect_ratio": "9:16",
        "generate_audio": True}

jobs = {
    "ramen_draft":  {**BASE, "draft": True,  "prompt": "Ночной вертикальный кадр с рук: ……"},
    "coffee_draft": {**BASE, "draft": True,  "prompt": "Вертикальный крупный план: капли эспрессо……"},
    "ramen_final":  {**BASE,                 "prompt": "Ночной вертикальный кадр с рук: ……"},
}

# 1. Отправить всё; каждый вызов сразу возвращает taskId
task_ids = {}
for name, inp in jobs.items():
    r = requests.post(API, headers=HEADERS,
                      json={"model": "flux-3-video", "input": inp}, timeout=60)
    r.raise_for_status()
    task_ids[name] = r.json()["data"]["taskId"]

# 2. Опрашивать, пока каждая задача не достигнет финального состояния
pending = dict(task_ids)
while pending:
    time.sleep(10)
    for name, tid in list(pending.items()):
        data = requests.get(f"{API}/{tid}", headers=HEADERS, timeout=30).json()["data"]
        if data["status"] == "success":
            url = data["output"][0]["url"]
            with open(f"{name}.mp4", "wb") as f:
                f.write(requests.get(url, timeout=120).content)
            print(name, "сохранено")
            pending.pop(name)
        elif data["status"] in ("fail", "failed"):
            print(name, "ошибка:", data.get("error"))
            pending.pop(name)

Для шага продолжения добавьте в input "start_video": "<публичный URL утверждённой финальной версии>". Этот URL должен быть общедоступным, поэтому сначала загрузите утверждённую финальную версию в собственное хранилище.

Правила запросов, о которых стоит знать до пакетной отправки

Эти ответы получены от API во время текущего запуска. Недействительные запросы отклоняются при отправке с кодом 400 INVALID_REQUEST, и никакая задача не создаётся:

  • aspect_ratio принимает auto, 21:9, 2:1, 16:9, 4:3, 1:1, 3:4, 9:16. Любое другое значение отклоняется.
  • Максимум duration — 20 (maximum: got 99, want 20).
  • start_video должен быть строкой URL.
  • Неизвестные поля отклоняются (additional properties ... not allowed), поэтому опечатки громко сообщают об ошибке, а не игнорируются.

И наоборот: запрос, прошедший валидацию, — это реальная задача, которая тарифицируется. Не отправляйте «тестовые» промпты без draft: true. Голый {"prompt": "test"} валиден и отрендерит фрагмент по полной цене.

Частые вопросы

Какой самый дешёвый способ попробовать промпты flux-3-video? Режим черновика 720p: $0.09/сек, поэтому 5-секундный фрагмент стоит $0.45. Он показывает, работает ли концепция, но финальный рендеринг будет другой версией.

Генерирует ли flux-3-video звук? Да. При включённом generate_audio: true звуковая дорожка встраивается в возвращаемый .mp4. В этом тесте описание звука отдельной строкой Audio: в промпте дало подходящие окружающие звуки (бульканье, прихлёбывание лапши, дождь, разговоры).

Какой длины может быть фрагмент flux-3-video? До 20 секунд на запрос. Используя продолжение через start_video, вы можете удлинять по шагам и утверждать каждый шаг до оплаты следующего.

Возвращает ли продолжение полное склеенное видео? Нет. В этом тесте оно возвращает только новые 5 секунд, начиная с последнего кадра исходного фрагмента. Склеивайте файлы самостоятельно.

Начните создавать

Откройте страницу модели flux-3-video, чтобы увидеть актуальные цены и воспользоваться песочницей. Затем с помощью скрипта пакетной обработки выше создайте черновики нескольких вертикальных хуков, отрендерите финальные версии для работающих и удлините лучший из них.

Похожие статьи

Все статьи →

Начните работать с постоянными артефактами ИИ

Получите API-ключ и вызывайте модели изображений, видео и аудио через один API на основе tasks.

Читать документацию API