Руководство по использованию
FLUX.3 видео для коротких роликов: черновики, рендеринг и продолжение через API
Вертикальный 9:16 ролик с нативным аудио: проверка идеи черновиком за $0.45, финальная версия 720p, затем продолжение до 10 секунд — всё на одном id модели, с реальным выводом.
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 за продолжение черновика). Результат:
Две особенности поведения, которые стоит учесть заранее:
- Вывод содержит только добавленные секунды. Возвращённый файл длится 5.0 секунд. Он начинается с последнего кадра исходного фрагмента (поднятая лапша перед фонариком), затем по запросу камера уходит к окну. Он не содержит исходных 5 секунд, поэтому два файла нужно склеить самостоятельно.
- Поскольку первый кадр совпадает, склейка бесшовная. Простой 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, чтобы увидеть актуальные цены и воспользоваться песочницей. Затем с помощью скрипта пакетной обработки выше создайте черновики нескольких вертикальных хуков, отрендерите финальные версии для работающих и удлините лучший из них.
Похожие статьи
Все статьи →-
Руководство по использованию
Что такое GPT Image 2.6? Редактирование через markup и известные характеристики
Вся информация о GPT Image 2.6 из спецификации OpenAI API, как пользоваться новым параметром редактирования markup и что пока не объявлено.
-
Руководство по использованию
Сколько стоит API Vidu Q4 Preview? 540p — $0,0515 за секунду
Оба режима стоят одинаково: как тарифицируются пять разрешений и длительность 3–16 секунд, сколько роликов можно сделать за $10 и как цены соотносятся с другими видео-моделями платформы.
-
Руководство по использованию
Recraft V4.1 Flash для карточек товаров в e-commerce: $0.01 за изображение, каталог оптом
Один реальный параллельный пакет на recraft-v4.1-flash/text-to-image: карточки товаров и сюжетные изображения, измеренная белизна фона, время выполнения и пакетный скрипт.