HiAPI
블로그

사용 가이드

Veo 3.1 Lite 이미지-투-비디오 프롬프트 레시피: 복사해서 붙여넣을 수 있는 프롬프트와 실제 출력

실전에서 검증된 veo-3.1-lite/image-to-video 모션 프롬프트 세 가지로, 각각 원본 이미지와 실제 렌더링된 클립, 정확한 비용을 함께 제공합니다.

Sep 5, 2026
Veo 3.1 Lite 이미지-투-비디오 프롬프트 레시피: 복사해서 붙여넣을 수 있는 프롬프트와 실제 출력

한 줄 요약

  • veo-3.1-lite/image-to-video는 정지 이미지 한 장을 짧은 클립으로 변환하며, hiapi에서 네이티브 동기화 오디오(generate_audio: true)를 지원하는 몇 안 되는 이미지-투-비디오 모델 중 하나입니다. 별도로 효과음을 입힐 필요가 없습니다.
  • 클립 길이는 고정: 4초, 6초 또는 8초이며, 해상도는 720p 또는 1080p입니다. 화면 비율 파라미터는 없습니다. 출력 화면비는 원본 이미지를 그대로 따릅니다.
  • 아래는 실전에서 검증된 모션 프롬프트 세 가지입니다. 인물의 고개 돌리기, 제품 공개, 환경 전진 각각에 대해 원본 이미지와 온라인 API에서 실제로 생성된 클립을 보여줍니다.
  • 오디오는 실제로 비용을 늘립니다. generate_audio를 켜면 720p가 초당 $0.06에서 $0.10으로, 1080p가 초당 $0.10에서 $0.14로 오릅니다. 무음 제품 루프 영상은 오디오를 꺼 두세요.
  • 이 글의 원본 이미지 세 장은 모두 이 글에서 새로 생성되었고, 세 클립도 전부 여러분이 직접 호출하게 될 동일한 /v1/tasks 엔드포인트로 렌더링되었습니다. 플랫폼 데모 소재는 하나도 없습니다.

이 레시피를 만든 방법

각 레시피는 동일한 2단계 루프를 따릅니다:

  1. 텍스트-투-이미지 모델로 깨끗한 원본 이미지를 생성합니다(저희는 gpt-image-2/text-to-image를 사용했습니다). 이 정지 이미지가 첫 프레임입니다. 여기서 고정한 구도, 조명, 피사체 자세가 바로 영상 애니메이션의 출발점입니다.
  2. 해당 정지 이미지의 공개 URL과 모션 프롬프트를 함께 veo-3.1-lite/image-to-video에 전달합니다. 프롬프트는 다음 몇 초 동안 일어나야 할 변화를 설명합니다. 고개 돌리기, 뚜껑 열기, 카메라 전진 등입니다. 모델은 새로운 장면을 만들어내지 않고, 여러분이 준 이미지를 움직이게 할 뿐입니다.

실제 클립을 유료로 렌더링하기 전에 스키마를 살펴보며 발견한 점 몇 가지:

  • image_url은 단일 문자열만 받습니다. 배열이 아닙니다. 클립당 참조 이미지 한 장이며, 다중 이미지 합성은 지원하지 않습니다.
  • aspect_ratio 필드는 없습니다. 렌더링된 영상은 원본 이미지의 프레이밍을 유지합니다.
  • duration은 4, 6, 8만 허용합니다. 5나 10을 보내면 바로 거부됩니다.
  • generate_audio는 일반 불리언이지만 가격 티어를 바꾸므로(아래 비용 표 참조), 실행 전에 클립에 소리가 필요한지 먼저 결정하세요.

레시피 1: 인물의 고개 돌리기와 미소

원본 이미지: 스튜디오 인물 사진, 4분의 3 측면 각도, 차분한 표정:

여성은 천천히 고개와 어깨를 돌려 정면을 향하고, 표정이 차분함에서 따뜻하고 진실한 미소로 바뀌며 카메라와 눈을 맞춘다. 그녀의 적갈색 곱슬머리가 동작에 따라 살랑인다. 부드러운 스튜디오 환경 배경음과 그녀가 미소 지을 때 들리는 가벼운 한숨 소리.

veo-3.1-lite/image-to-video · 6초 · 720p · generate_audio: true · $0.60

효과가 좋은 이유: 프롬프트는 모델에 하나의 동작(고개 돌리기)과 하나의 표정 변화(차분함에서 미소로)만 제시했습니다. 원래 자세가 감당할 수 없는 것을 요구하지 않았습니다. 오디오를 명시한 점("부드러운 스튜디오 환경 배경음" "가벼운 한숨 소리")이 여기서 핵심입니다. 안내가 없으면 generate_audio: true는 종종 화면 박자에 맞는 소리가 아니라 일반적인 환경음을 기본으로 생성하기 때문입니다.

레시피 2: 제품 공개 회전

원본 이미지: 대리석 전시대 위의 닫힌 이어버드 케이스:

충전 케이스 뚜껑이 경첩을 따라 천천히 열리면서, 동시에 케이스가 대리석 전시대 위에서 시계 방향으로 살짝 회전하여 안에 자리한 이어버드를 드러낸다. 회전하면서 스튜디오 윤곽 조명이 무광 블랙 표면 위로 스쳐 지나간다. 카메라는 고정되고 피사체만 움직인다.

veo-3.1-lite/image-to-video · 4초 · 1080p · generate_audio: false · $0.40

효과가 좋은 이유: 이커머스 루프 영상에는 소리가 거의 필요 없습니다. 대부분의 구매자는 제품 영상을 무음으로 보기 때문입니다. 그래서 이 레시피는 오디오를 완전히 끄고, 클립을 짧게(4초) 유지하며, 복합 동작 하나(뚜껑 열기 + 회전)만 사용합니다. "카메라는 고정되고"라고 명시하면 모델이 요청하지 않은 드리프트 돌리 샷을 스스로 추가하는 것을 막아줍니다. 제품 샷에서 흔히 발생하는 실패 지점입니다.

레시피 3: 환경의 안개 걷히기

원본 이미지: 새벽 안개가 낀 호수 위의 나무 선착장:

카메라가 나무 선착장을 따라 빈 벤치를 향해 천천히 앞으로 나아가고, 아침 안개가 호수 위에서 흘러다니며 점차 옅어지고, 햇빛이 분홍빛 하늘을 뚫고 나오기 시작해 수면의 잔물결 위에 비친다. 은은한 환경 사운드스케이프: 새소리와 물결이 선착장 말뚝을 가볍게 치는 소리.

veo-3.1-lite/image-to-video · 6초 · 720p · generate_audio: true · $0.60

효과가 좋은 이유: 환경 샷은 카메라 움직임(전진)과 환경 움직임(안개가 옅어짐, 빛 변화)을 결합하기에 적합합니다. 하나만 하면 정적으로 보이지만, 둘을 겹치면 살아 있는 장면처럼 느껴집니다. 환경 오디오 힌트("새소리" "물결이 치는 소리")는 사운드트랙을 일반적인 배경 노이즈가 아니라 화면 내용에 묶어줍니다.

초당 과금 청구서 줄이기

veo-3.1-lite/image-to-video는 해상도와 오디오 활성화 여부로 요금이 책정되며, 온라인 /api/pricing 엔드포인트로 확인했습니다:

해상도 오디오 초당 가격 6초 클립 비용
720p 끄기 $0.06/초 $0.36
720p 켜기 $0.10/초 $0.60
1080p 끄기 $0.10/초 $0.60
1080p 켜기 $0.14/초 $0.84

두 가지 결론: 더 길거나 더 높은 해상도의 렌더링에 본격적으로 투자하기 전에, 720p에 오디오를 끈 상태가 프롬프트를 반복 실험하기에 가장 저렴한 방법입니다. 그리고 720p 무음에서 1080p 오디오로 업그레이드하면 초당 요율이 거의 두 배가 됩니다($0.14 대 무음 720p의 $0.10). 1080p + 오디오 조합은 실제로 납품할 클립에 아껴 두세요.

직접 실행하기: 제출, 폴링, 다운로드

import time
import requests

API_BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = "YOUR_HIAPI_API_KEY"

def submit(prompt, image_url, duration=6, resolution="720p", generate_audio=True):
    resp = requests.post(
        API_BASE,
        headers={"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"},
        json={
            "model": "veo-3.1-lite/image-to-video",
            "input": {
                "prompt": prompt,
                "image_url": image_url,
                "duration": duration,
                "resolution": resolution,
                "generate_audio": generate_audio,
            },
        },
        timeout=30,
    )
    resp.raise_for_status()
    return resp.json()["data"]["taskId"]

def poll(task_id, interval=8, timeout=300):
    deadline = time.time() + timeout
    while time.time() < deadline:
        r = requests.get(f"{API_BASE}/{task_id}",
                          headers={"Authorization": f"Bearer {TOKEN}"}, timeout=30)
        data = r.json()["data"]
        if data["status"] == "success":
            return data["output"][0]["url"]
        if data["status"] in ("failed", "error"):
            raise RuntimeError(f"task failed: {data}")
        time.sleep(interval)
    raise TimeoutError("task did not finish in time")

task_id = submit(
    prompt="피사체가 천천히 카메라 쪽으로 돌아 미소 짓는다.",
    image_url="https://your-public-image-url.jpg",
    duration=6,
    resolution="720p",
    generate_audio=True,
)
video_url = poll(task_id)

# 출력 URL은 만료된다. 바이트를 즉시 다운로드할 것
video_bytes = requests.get(video_url, timeout=60).content
with open("clip.mp4", "wb") as f:
    f.write(video_bytes)

출력 URL은 만료됩니다. 작업이 success를 보고하면 즉시 다운로드해 바이트를 저장하고, 해당 참조를 오래 보관하지 마세요.

hiapi의 작업 기반 생성 흐름이 익숙하지 않다면, veo-3.1-lite/image-to-video 모델 상세 페이지에 최신 스키마 참고 자료가 있으며, 가격 페이지는 스냅샷이 아니라 항상 실시간 모델별 요율을 반영합니다. 더 완전한 이미지-투-비디오 프롬프트 라이브러리를 구축한다면, 저희 Grok Imagine 1.5 이미지-투-비디오 레시피 글이 다른 모델과 그 고유의 모션 프롬프트 패턴 및 비용 절충을 다룹니다.

스키마 빠른 참조

필드 타입 값 설명
prompt string 자유 텍스트 전체 장면이 아니라 움직임/변화를 설명
image_url string 공개 URL 이미지 한 장만, 배열 미지원
duration integer 4, 6, 8 다른 값은 거부됨
resolution string "720p", "1080p" 480p 티어 없음
generate_audio boolean true / false 가격 티어를 변경함

시작하기

깨끗한 원본 이미지를 생성하고, 원하는 변화 한두 가지를 명확히 지시하는 모션 프롬프트를 작성하며, 클립에 소리가 필요한지 미리 결정하세요. 이것이 전체 워크플로입니다. veo-3.1-lite/image-to-video 모델 페이지로 이동해 API 키를 발급받고 렌더링을 시작하세요.

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

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

API 문서 보기