HiAPI
블로그

사용 가이드

FLUX 3 Max 숏폼 비디오: 숏마다 하나의 모드, API로 일괄 처리

텍스트→비디오, 이미지→비디오, 키프레임으로 구성된 세로형 9:16 광고 캠페인을 하나의 병렬 배치로 제출한 실제 출력과 검증된 가격.

Nov 3, 2026
FLUX 3 Max 숏폼 비디오: 숏마다 하나의 모드, API로 일괄 처리

FLUX 3 Max는 hiapi에서 세 가지 비디오 엔드포인트를 제공합니다. 숏폼 작업에서 유용한 질문은 "어느 것이 가장 좋은가"가 아니라 "어느 것이 이 숏에 맞는가"입니다. 이 가이드는 소규모 세로형 광고 캠페인(아이스 말차 카페 게시물용 9:16 클립 3개 제작)을 살펴보며, 숏마다 다른 모드를 사용하고 세 개를 하나의 병렬 배치로 제출합니다. 아래에 표시된 각 클립은 실제 편집되지 않은 출력입니다.

전체 파라미터 참조와 검증 오류 설명이 필요하다면 먼저 FLUX 3 Max API 가이드를 읽어 보세요. 이 글은 이미 작업을 제출할 수 있다고 가정하고 숏폼 워크플로에 집중합니다.

프로젝트가 아니라 숏 단위로 모드 선택

숏폼 편집은 보통 훅, 제품 비트, 마무리로 구성됩니다. 이 비트들은 입력이 다르므로 각각 다른 FLUX 3 Max id에 대응합니다:

편집의 숏 보유한 것 사용 핵심 입력
훅 / 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: 훅, 텍스트만으로

훅은 첫 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)

2026년 11월 3일, 세 개를 한 번에 보냈을 때 제가 본 것은 다음과 같습니다:

  • 각 POST /v1/tasks가 2초 이내에 taskId를 반환했습니다.
  • 폴링 결과 각 작업이 동일한 순서를 거쳤습니다: handling, 그 다음 archiving, 그 다음 success.
  • 작업 기록에 세 클립 모두 created에서 completed까지 20초로 표시되었습니다. 병렬로 실행해도 하나만 실행할 때보다 오래 걸리지 않았습니다.
  • 각 출력은 5.04초짜리 H.264 파일로, 704 × 1280, 24 fps, AAC 오디오 트랙이 포함되어 있습니다. 너비에 주목하세요: 9:16의 720p는 704 px를 주며, 720이 아닙니다. 편집기 템플릿이 정확히 720 × 1280을 요구한다면 가져올 때 크기를 조정하거나 채우세요.
  • 출력 URL은 임시 도메인에 있으며, expireAt은 완료 후 7일입니다. 즉시 다운로드하고 파일을 직접 저장하세요.

더 큰 배치(수십 개의 훅 변형)의 경우 작업 API의 callback을 when: "final"과 함께 사용하면 폴링 없이 처리할 수 있으며, 각 taskId를 기록해 크래시로 유료 작업을 잃지 않도록 하세요.

배치 비용

FLUX 3 Max는 출력 초 단위, 해상도 기준으로 과금되며 세 모드 모두 요금이 같습니다. 2026년 11월 기준, 가격 페이지에는 720p가 초당 $0.0608, 1080p가 초당 $0.1036으로 나와 있습니다. 모델 페이지에 따르면 오디오와 키프레임 수는 가격에 영향을 주지 않습니다.

옵션 클립당 3개 클립 배치
5초, 720p (제가 실행한 것) $0.304 $0.912
5초, 1080p $0.518 $1.554
15초, 1080p $1.554 $4.662

실용적인 루프: 5초와 720p에서 프롬프트를 테스트하고, 승자를 남겨 1080p 또는 더 긴 길이로만 렌더링하세요. 요금 세부 정보는 FLUX 3 Max API 가격을 참고하세요.

숏폼 체크리스트

  1. 먼저 편집을 숏 단위로 작성한 다음, 위 표를 사용해 각 숏에 모드를 할당하세요.
  2. 정지 이미지도 9:16으로 만드세요. 이미지 모드는 제공한 프레임을 애니메이션화하므로 가로형 정지 이미지는 처음부터 구도 문제입니다.
  3. 각 요청에서 auto에 의존하지 말고 aspect_ratio: "9:16"을 명시적으로 설정하세요.
  4. 키프레임 이미지의 시각적 일관성(같은 제품, 같은 조명 계열)을 유지하고 제출 전에 frame_index ≤ duration × 24를 검증하세요. 잘못된 타임라인은 제출 시 수락되었다가 잠시 후 실패합니다.
  5. 병렬로 제출하고, 폴링하거나 콜백을 사용하며, 즉시 다운로드하세요.
  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 클립은 더 걸릴 수 있습니다. 그것들은 시간을 재지 않았습니다.

같은 배치에서 텍스트→비디오, 이미지→비디오, 키프레임을 섞을 수 있나요? 네. 같은 /v1/tasks 엔드포인트의 독립적인 모델 id이며 동일한 필드를 공유하므로 하나의 스크립트로 나란히 제출할 수 있습니다.

FLUX 3 Max 숏폼 클립은 얼마나 길 수 있나요? 5초에서 20초 사이이며, 정수 초 단위입니다. 비용은 길이에 따라 선형으로 증가합니다.

시작하기

가장 필요한 숏을 선택하고 해당 모델 페이지(텍스트→비디오, 이미지→비디오 또는 키프레임→비디오)를 열고, 나머지 편집을 일괄 처리하기 전에 먼저 5초 720p 테스트를 실행하세요.

영구 AI 아티팩트로 빌드 시작하기

API 키를 받아 태스크 기반의 하나의 API로 이미지, 비디오, 오디오 모델을 호출하세요.

API 문서 보기