튜토리얼
Grok Imagine 1.5 Lite 이미지-투-비디오 API 사용법? 사진을 움직이게 하기
이미지 한 장을 1–15초 사운드 포함 영상으로: 가격에 입력 이미지 비용 포함, 화면 비율은 이미지를 따름, curl/Python 예제.
TL;DR
- Grok Imagine 1.5 Lite Image to Video(
grok-imagine-1.5-lite/image-to-video)는 이미지 1장을 업로드해 움직이게 합니다: 1–15초, 자체 사운드, 화면 비율은 입력 이미지를 따름. 모델 페이지 열기에서 이미지 한 장을 업로드하면 바로 체험할 수 있고, 신규 가입 시 200 크레딧을 드립니다. - 가격 = 초당 가격 × 초 수 + 건당 $0.015 입력 이미지 비용: 720P 6초 한 건 $0.273, 480P $0.189, 1080P $1.215.
- 호출은 HiAPI
/v1/tasks인터페이스로:image_url은 문자열(배열 아님)이며 정확히 1장의 공용 주소입니다.
할 수 있는 일
- 사진 한 장을 소리가 있는 장면으로: 모션, 카메라 무빙, 사운드는 프롬프트로 설명하고 화면 주체는 원본 이미지를 유지합니다.
- 화면 비율은 입력 이미지를 따름: 가로 이미지는 16:9(1264×720), 세로 이미지는 9:16(720×1264), 정사각형은 1:1(960×960), 4:3은 1104×816 — 픽셀은 지원 크기로 반올림되고 비율은 유지됩니다.
- 1–15초 임의의 정수 초, 세 가지 해상도.
- 같은 시리즈의 텍스트-투-비디오: 처음부터 생성하려면 텍스트-투-비디오 연동 가이드를 참고하세요. 두 인터페이스는 같은 가격(이미지-투-비디오는 $0.015 입력 이미지 비용이 추가), 같은 /v1/tasks이며 코드는 model과 image_url만 다릅니다.
가격표 읽는 법:
- “초당 가격 × 초 수”는 영상 자체의 비용이며 텍스트-투-비디오와 완전히 같습니다.
- $0.015는 입력 이미지의 추가 비용으로 건당 고정이며 해상도, 길이와 무관합니다.
- 따라서 같은 파라미터에서 이미지-투-비디오가 텍스트-투-비디오보다 $0.015 비쌉니다: 720P 6초 $0.258 + $0.015 = $0.273. 1천 건을 배치로 돌리면 이 차액이 $15이므로 예산에 넣어두어야 합니다.
아래는 실제 결과물입니다(서핑 사진 → 6초 트래킹 샷, 파도 소리 포함):
The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.
(한국어 의미: 파도가 서퍼 뒤에서 말리며 부서지고, 그가 파도 면을 따라 내려가며 흰 물보라가 황금빛 역광 속에서 터져 반짝입니다. 카메라가 서퍼를 부드럽게 따라갑니다. 큰 파도 소리와 물살 소리. 사진의 사실감을 유지하세요. 텍스트 없음, 로고 없음.)
· 
grok-imagine-1.5-lite/image-to-video, 720P, 6초, 16:9, 1264×720, 자체 사운드, $0.273($0.015 입력 이미지 비용 포함).전체 영상 보기 →
가격: 초당 가격 + 입력 이미지 비용
| 등급 | 초당 | 6초 한 건($0.015 입력 이미지 비용 포함) |
|---|---|---|
| 480P | $0.029 | $0.189 |
| 720P(기본) | $0.043 | $0.273 |
| 1080P | $0.20 | $1.215 |
HiAPI 현재 가격, 2026년 10월 23일 확인. image_url이 필수이므로 건당 이 $0.015가 항상 붙습니다. 1080P는 초당 $0.2(720P의 약 4.65배)이므로 대량 탐색에는 480P를 사용하세요. 실패 시 과금되지 않습니다.
두 가지 시작 방법
브라우저 3단계: 모델 페이지 열기 → 이미지 업로드, 모션 설명 작성 → 생성 클릭.
API 3단계: POST /v1/tasks 제출 → taskId 받기 → GET /v1/tasks/<taskId>로 success 확인 후 다운로드.
curl: 첫 호출
curl -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: your-unique-key-001" \
-d '{
"model": "grok-imagine-1.5-lite/image-to-video",
"input": {
"prompt": "The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.",
"image_url": "https://static.hiapi.ai/gallery/2026/10/3f75ff28db9e0070.png",
"duration": 6,
"resolution": "720p"
}
}'
image_url은 문자열이고 한 장만 전달하세요 — 배열로 전달하면 400이 납니다.
Python: 제출, 폴링, 다운로드
import time, uuid, requests
BASE = "https://api.hiapi.ai/v1/tasks"
HEADERS = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
}
payload = {
"model": "grok-imagine-1.5-lite/image-to-video",
"input": {
"prompt": "The wave curls and breaks behind the surfer as he carves down its face, white spray bursts and sparkles in the golden backlight, water rushes past. Smooth tracking camera following the surfer. Loud ocean surf and rushing water. Keep the photo realistic. No text, no logos.",
"image_url": "https://example.com/your-image.png",
"duration": 6,
"resolution": "720p",
},
}
resp = requests.post(
BASE,
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
json=payload,
timeout=30,
)
resp.raise_for_status()
task_id = resp.json()["taskId"]
while True:
task = requests.get(f"{BASE}/{task_id}", headers=HEADERS, timeout=30).json()
print(task["status"])
if task["status"] in ("success", "fail"):
break
time.sleep(5)
if task["status"] == "success":
video = next(o for o in task["output"] if o.get("type") == "video")
mp4 = requests.get(video["url"], timeout=120) # 临时地址,尽快保存
with open("output.mp4", "wb") as f:
f.write(mp4.content)
print("saved output.mp4")
파라미터 표
| 필드 | 필수 | 값 | 설명 |
|---|---|---|---|
image_url |
예 | 문자열, 정확히 1장의 공용 주소 | 출력 비율은 이 이미지를 따름 |
prompt |
예 | 1–4096자 | 원하는 움직임이나 변화 설명, 사운드 포함 |
duration |
아니오 | 1–15 임의의 정수, 기본 6 | |
resolution |
아니오 | 480p / 720p / 1080p, 기본 720p |
요청 본문에 표에 없는 필드가 있으면 바로 400이 납니다.
마주칠 수 있는 오류
| 상태 코드 | 의미 | 처리 방법 |
|---|---|---|
| 400 INVALID_REQUEST | 요청 본문이 잘못됨(image_url 누락, image_url을 배열로 전달, 표에 없는 필드 전달) |
image_url을 문자열로 사용 |
| 402 INSUFFICIENT_QUOTA | 잔액 부족(과금 안 됨) | 충전 후 재시도 |
| 429 RATE_LIMITED | 속도 제한 발생 | 제출 빈도 낮추기 |
| 409 / 422 IDEMPOTENCY_KEY_* | 같은 멱등 키로 중복 제출 | 새 Idempotency-Key로 교체 |
작업 종료 상태 실패에는 CONTENT_POLICY_VIOLATION, TASK_FAILED, TASK_TIMEOUT 등도 있습니다. 실패 시 과금되지 않습니다.
출시 전 유의 사항
- 콜백: 영상 작업은 시간이 오래 걸리므로 최상위에
"callback": {"url": "https://..."}를 전달하면 폴링을 줄일 수 있습니다. - 즉시 저장:
output의 영상 주소는 임시이므로 받자마자 다운로드해 자체 스토리지에 저장하세요. 임시 링크를 소재 라이브러리처럼 쓰지 마세요. - 같은 이미지를 반복 사용 가능: 프롬프트만 바꾸면 새 건(새 과금)이 되므로, 같은 제품 이미지로 다양한 각도의 카메라 무빙을 담은 전시 소재 세트를 빠르게 만들기에 특히 적합합니다.
- 계산에서 $0.015를 빠뜨리지 말기: 배치 예산은 “초당 가격 × 초 수 + $0.015 × 건수”로 계산하세요.
- 소리는 끌 수 없음: 무음 소재가 필요하면 후반 편집으로 자르세요. 가격은 동일합니다.
자주 묻는 질문
- 네, 건마다 자체 사운드가 있습니다: 프롬프트에 사운드(파도, 눈 밟는 소리)를 쓰면 함께 생성되며 끄는 스위치는 없습니다.
- 네, 화면 비율은 입력 이미지를 따릅니다: 16:9 이미지는 1264×720, 정사각형은 960×960으로 픽셀은 반올림되고 비율은 유지됩니다.
- 네,
image_url은 문자열이며 1장만 가능합니다. 배열이나 여러 장을 전달하면 400이 납니다. - 네, 길이는 1–15 임의의 정수 초입니다. 한 동작은 5–6초, 연속 동작은 10초 이상이 적당합니다.
- 네, 입력 이미지 품질이 결과물의 상한을 정합니다: 흐릿하고 작은 이미지는 움직여도 선명해지지 않습니다. 가능하면 720p 이상의 선명한 원본을 주세요.
- 네, 배치 계산에 공식이 있습니다: 초당 가격 × 초 수 + $0.015 × 건수. 720P 6초 100건은 $27.30, 1천 건은 $273.00입니다.
다음 단계: 보유한 사진을 가지고 모델 페이지에서 움직이게 하기, 네 가지 시나리오는 이미지-투-비디오 프롬프트 모음을 참고하세요.
관련 글
모든 아티클 보기 →-
튜토리얼
HiAPI API로 hailuo-2.3-fast/image-to-video 호출하는 방법: curl과 Python 실전
빠르고 저렴한 이미지-투-비디오 등급의 첫 실행 요청 — 모델 ID부터 MP4 다운로드까지
-
튜토리얼
HiAPI API로 hailuo-2.3/text-to-video를 호출하는 방법: curl, Python 및 실행 가능한 요청 예시
-
튜토리얼
HiAPI에서 Kandinsky 6.0 Pro 텍스트-투-비디오 사용하기: curl 및 Python 튜토리얼
요청 우선 실전 데모: 프롬프트에서 비디오 클립까지의 호출 구성, 요청 제출, 완료 상태 폴링 및 결과 다운로드