Руководство по использованию
FLUX 3 Max короткие видео: своя модель для каждого кадра, пакетная обработка через API
Вертикальная кампания 9:16, построенная на тексте-в-видео, изображении-в-видео и ключевых кадрах, отправленная одним параллельным пакетом, с реальным выводом и подтверждёнными ценами.
FLUX 3 Max предоставляет на hiapi три видео-эндпоинта, и для коротких видео полезен не вопрос «какой лучше», а «какой подходит для этого кадра». Это руководство разбирает небольшую вертикальную рекламную кампанию (три фрагмента 9:16 для поста кофейни с холодным матча-латте), в которой для каждого кадра используется своя модель, все три отправляются одним параллельным пакетом, а каждый показанный ниже фрагмент — реальный вывод без редактирования.
Если вам нужен полный справочник параметров и описание ошибок валидации, сначала прочитайте руководство по API FLUX 3 Max. Данная статья предполагает, что вы уже умеете отправлять задачи, и посвящена рабочему процессу для коротких видео.
Выбирайте модель по кадру, а не по проекту
Короткий монтаж обычно состоит из хука, эпизода с продуктом и финала. У этих эпизодов разные входные данные, поэтому им соответствуют разные id FLUX 3 Max:
| Кадр в монтаже | Что у вас есть | Использовать | Ключевой вход |
|---|---|---|---|
| Хук / B-roll | Есть только идея | flux-3-max/text-to-video |
prompt |
| Эпизод с продуктом | Утверждённое фото продукта, которое нельзя менять | flux-3-max/image-to-video |
image_url (одна строка), опционально end_image_url |
| Переход / финал | Две сцены, которые нужно соединить | flux-3-max/keyframes-to-video |
keyframes: [{image_url, frame_index}] |
Все три разделяют duration (5–20 секунд), resolution (720p / 1080p), aspect_ratio (для вертикального формата задайте 9:16) и generate_audio. Поскольку тела запросов почти одинаковы, один пакетный скрипт может отправить все три. Страницы моделей: текст-в-видео, изображение-в-видео, ключевые кадры-в-видео.
Кадр 1: хук, только текст
Хуку нужно движение с первой секунды и не нужны конкретные материалы, поэтому текст-в-видео — правильный выбор.
{
"model": "flux-3-max/text-to-video",
"input": {
"prompt": "Вертикальный ручной крупный план: бариста наливает холодное молоко в холодный матча-латте в высоком прозрачном стакане, зелёный и белый цвета переплетаются и закручиваются в замедленной съёмке, утренний свет сквозь окно кофейни, малая глубина резкости, отчётливый стук кубиков льда, тихий фоновый шум кофейни.",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16",
"generate_audio": true
}
}
Что вернулось: наливание начинается с первого кадра, а к концу завихрение заполняет стакан — именно это и нужно хуку. Чего текст-в-видео не умеет — соответствовать вашей сцене: я просил кофейню, модель выбрала деревянную стойку, а на моём фото продукта (следующий кадр) мрамор. Для хука это допустимо. Для кадров, которые должны соответствовать брендовым материалам, используйте один из режимов с изображением.
Кадр 2: эпизод с продуктом, привязанный к статичному кадру
Это утверждённое фото продукта. Оно заранее сгенерировано как статичный кадр 9:16 и передаётся модели как первый кадр.

{
"model": "flux-3-max/image-to-video",
"input": {
"prompt": "Медленное приближение к стакану; молочное завихрение дрейфует и оседает, кубики льда слегка двигаются, свет мягко мерцает на мраморной стойке, веточка мяты остаётся неподвижной. Тихий фоновый шум кофейни.",
"image_url": "https://static.hiapi.ai/blog/flux-3-max-short-form-video/still-a.jpg",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16",
"generate_audio": true
}
}
Композиция остаётся зафиксированной: тот же стакан, та же веточка мяты, тот же мрамор и оконный свет от начала до конца. При этом движение сдержанное. Запрошенное приближение за 5 секунд почти незаметно, большая часть движения — в жидкости и свете. Для эпизода с продуктом это хороший результат, потому что вы хотите, чтобы кадр с продуктом оставался достоверным. Если нужна более сильная работа камеры, дайте больше секунд или усильте акцент в промпте и проверьте результат перед масштабированием пакета.
Обратите внимание на имя поля: image-to-video принимает одну строку image_url. Массив image_urls (как ожидают некоторые другие видео-модели hiapi) будет отклонён при отправке.
Кадр 3: финал, с двумя ключевыми кадрами
Финал соединяет кофейню и улицу. У меня есть второй статичный кадр — тот же напиток, поднятый на улице, — и я использую оба как ключевые кадры.

{
"model": "flux-3-max/keyframes-to-video",
"input": {
"prompt": "Непрерывный кадр: рука берёт холодный матча-латте со стойки кофейни и выносит его на улицу, в конце поднимает к яркому голубому небу на солнечной улице. Плавная ручная камера, естественный свет переходит от тёплого интерьера к яркому дневному свету.",
"keyframes": [
{"image_url": "https://static.hiapi.ai/blog/flux-3-max-short-form-video/still-a.jpg", "frame_index": 0},
{"image_url": "https://static.hiapi.ai/blog/flux-3-max-short-form-video/still-b.jpg", "frame_index": 120}
],
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16",
"generate_audio": true
}
}
frame_index считает кадры при 24 fps, поэтому 5-секундный фрагмент идёт от 0 до 120. Размещение привязок на 0 и 120 заставляет фрагмент ровно начаться на кадре со стойкой и ровно закончиться на уличном кадре. Между ними модель сама придумывает переход: в середине фрагмента рука держит стакан в дверном проёме, затем появляется улица. В этом компромисс ключевых кадров. Вы управляете моментами привязки, остальное заполняет модель. Если середина должна выглядеть определённым образом, добавьте для неё третий ключевой кадр (допускается до 10).
Пакетная обработка: один скрипт, три режима, параллельно
Короткие видео означают множество вариантов, поэтому сначала отправляйте всё, а опрашивайте позже. Вот скрипт, который я использовал, сокращённый:
import json, os, time, requests
from concurrent.futures import ThreadPoolExecutor
API = "https://api.hiapi.ai/v1/tasks"
HEAD = {"Authorization": f"Bearer {os.environ['HIAPI_KEY']}"}
BASE = {"duration": 5, "resolution": "720p", "aspect_ratio": "9:16", "generate_audio": True}
jobs = {
"hook": ("flux-3-max/text-to-video", {"prompt": HOOK_PROMPT}),
"product": ("flux-3-max/image-to-video", {"prompt": PRODUCT_PROMPT, "image_url": STILL_A}),
"payoff": ("flux-3-max/keyframes-to-video", {"prompt": PAYOFF_PROMPT, "keyframes": [
{"image_url": STILL_A, "frame_index": 0},
{"image_url": STILL_B, "frame_index": 120}]}),
}
def run(name):
model, extra = jobs[name]
r = requests.post(API, headers=HEAD, json={"model": model, "input": {**BASE, **extra}}).json()
task_id = r["data"]["taskId"] # save this before polling
deadline = time.time() + 900
while time.time() < deadline:
time.sleep(10)
d = requests.get(f"{API}/{task_id}", headers=HEAD).json()["data"]
if d["status"] == "success":
url = d["output"][0]["url"]
open(f"{name}.mp4", "wb").write(requests.get(url).content) # download now
return name, "success"
if d["status"] == "fail":
return name, d.get("error")
return name, f"timeout {task_id}"
with ThreadPoolExecutor(len(jobs)) as pool:
for result in pool.map(run, jobs):
print(result)
Вот что я увидел 3 ноября 2026 года, отправив все три сразу:
- Каждый
POST /v1/tasksвозвращалtaskIdменее чем за 2 секунды. - Опрос показывал, что каждая задача проходит одну и ту же последовательность:
handling, затемarchiving, затемsuccess. - Записи задач показали, что все три фрагмента прошли от
createdдоcompletedза 20 секунд. Параллельный запуск не занял больше времени, чем один. - Каждый вывод — файл H.264 длиной 5.04 секунды, 704 × 1280, 24 fps, с дорожкой AAC. Обратите внимание на ширину: 9:16 при 720p даёт 704 px, а не 720. Если шаблон вашего редактора требует ровно 720 × 1280, масштабируйте или добавляйте поля при импорте.
- URL вывода находятся на временном домене с
expireAtчерез 7 дней после завершения. Скачивайте и храните файлы самостоятельно сразу же.
Для больших пакетов (десятки вариантов хука) используйте callback Task API вместе с when: "final", чтобы обойтись без опроса, и записывайте каждый taskId, чтобы сбой не потерял уже оплаченную работу.
Стоимость пакета
FLUX 3 Max тарифицируется по секундам вывода и по разрешению, с одинаковой ставкой для всех трёх режимов. По состоянию на ноябрь 2026 года страница цен указывает $0.0608/сек для 720p и $0.1036/сек для 1080p. Страница модели поясняет, что аудио и количество ключевых кадров не влияют на цену.
| Вариант | За фрагмент | Пакет из трёх фрагментов |
|---|---|---|
| 5 секунд, 720p (что я запускал) | $0.304 | $0.912 |
| 5 секунд, 1080p | $0.518 | $1.554 |
| 15 секунд, 1080p | $1.554 | $4.662 |
Практический цикл: тестируйте промпты при 5 секундах и 720p, оставляйте победителей и рендерите только их в 1080p или дольше. Подробности о тарифах см. в ценообразовании API FLUX 3 Max.
Чек-лист для коротких видео
- Сначала распишите монтаж по кадрам, затем назначьте режим каждому кадру по таблице выше.
- Статичные кадры тоже делайте 9:16. Режимы с изображением анимируют переданный вами кадр, поэтому горизонтальный статичный кадр — это проблема композиции с самого начала.
- Явно задавайте
aspect_ratio: "9:16"в каждом запросе, а не полагайтесь наauto. - Держите изображения ключевых кадров визуально согласованными (тот же продукт, то же семейство освещения) и перед отправкой проверяйте
frame_index ≤ duration × 24. Ошибочная таймлиния принимается при отправке и завершается сбоем через мгновение. - Отправляйте параллельно, опрашивайте или используйте callback и скачивайте сразу же.
- На этапе черновика оставляйте аудио включённым. Оно не стоит дополнительно, и его можно заглушить при монтаже.
Идеи промптов за пределами этой кампании см. в руководстве по промптам для видео FLUX 3 Max. Чтобы использовать тот же рабочий процесс на другой модели, сравните с рабочим процессом коротких видео «изображение-в-видео» в Kling 3.0.
Частые вопросы
Умеет ли FLUX 3 Max делать вертикальные видео 9:16?
Да. Все три эндпоинта принимают aspect_ratio: "9:16". При 720p я получил вывод 704 × 1280.
Какой режим FLUX 3 Max использовать для видео продукта? Используйте изображение-в-видео, когда фото продукта должно оставаться точно таким, каким его утвердили. В моём тесте стакан, декор и фон оставались неизменными на протяжении всего фрагмента. Когда продукт должен перемещаться между двумя сценами, используйте ключевые кадры.
Сколько времени занимает генерация одного фрагмента FLUX 3 Max? В моём запуске три фрагмента 5 секунд 720p, отправленные вместе, прошли от created до completed за 20 секунд каждый. Более длинные или 1080p-фрагменты могут занять больше времени; их я не замерял.
Можно ли смешивать текст-в-видео, изображение-в-видео и ключевые кадры в одном пакете?
Да. Это независимые id моделей на одном эндпоинте /v1/tasks, разделяющие одинаковые поля, поэтому один скрипт может отправлять их рядом.
Какой длины могут быть короткие видео FLUX 3 Max? От 5 до 20 секунд, целыми секундами. Стоимость растёт линейно с длиной.
Начните создавать
Выберите кадр, который вам нужнее всего, откройте соответствующую страницу модели (текст-в-видео, изображение-в-видео или ключевые кадры-в-видео) и запустите тест на 5 секунд в 720p, прежде чем пакетно обрабатывать остальной монтаж.
Похожие статьи
Все статьи →-
Руководство по использованию
Что такое 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: карточки товаров и сюжетные изображения, измеренная белизна фона, время выполнения и пакетный скрипт.