HiAPI
Блог

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

FLUX 3 Max короткие видео: своя модель для каждого кадра, пакетная обработка через API

Вертикальная кампания 9:16, построенная на тексте-в-видео, изображении-в-видео и ключевых кадрах, отправленная одним параллельным пакетом, с реальным выводом и подтверждёнными ценами.

Nov 3, 2026
FLUX 3 Max короткие видео: своя модель для каждого кадра, пакетная обработка через API

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.

Чек-лист для коротких видео

  1. Сначала распишите монтаж по кадрам, затем назначьте режим каждому кадру по таблице выше.
  2. Статичные кадры тоже делайте 9:16. Режимы с изображением анимируют переданный вами кадр, поэтому горизонтальный статичный кадр — это проблема композиции с самого начала.
  3. Явно задавайте aspect_ratio: "9:16" в каждом запросе, а не полагайтесь на auto.
  4. Держите изображения ключевых кадров визуально согласованными (тот же продукт, то же семейство освещения) и перед отправкой проверяйте frame_index ≤ duration × 24. Ошибочная таймлиния принимается при отправке и завершается сбоем через мгновение.
  5. Отправляйте параллельно, опрашивайте или используйте callback и скачивайте сразу же.
  6. На этапе черновика оставляйте аудио включённым. Оно не стоит дополнительно, и его можно заглушить при монтаже.

Идеи промптов за пределами этой кампании см. в руководстве по промптам для видео 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, прежде чем пакетно обрабатывать остальной монтаж.

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

Все статьи →

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

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

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