가이드 · 이미지 투 비디오

Seedance 2.5 이미지 투 비디오: API 가이드

Seedance 2.5는 정지 이미지를 오디오가 있는 4~30초 클립으로 바꿉니다. 첫 프레임을 주면 동영상이 정확히 그 이미지에서 시작하고, 첫 프레임과 마지막 프레임을 주면 한쪽에서 다른 쪽으로 움직입니다. 각각의 요청과 실행할 수 있는 코드를 소개합니다.

이미지에서 시작하는 두 가지 방법

Seedance 2.5 이미지 투 비디오 모드
모드필드제공 내용
첫 프레임image_url클립이 내 이미지로 시작해 프롬프트대로 이어서 움직입니다.
첫 프레임과 마지막 프레임image_url + end_image_url클립이 한 이미지에서 시작해 다른 이미지에서 끝납니다. 같은 이미지를 두 번 쓰면 루프가 됩니다.
참조 이미지image_urls (최대 30)이미지가 모습(얼굴, 제품, 장소)을 이끌지만 첫 프레임을 고정하지는 않습니다. 참조 투 비디오를 참고하세요.

이미지 하나 움직이기(첫 프레임)

aspect_ratio를 adaptive로 설정하면 동영상이 이미지의 모양을 유지하므로 9:16 사진에서 9:16 클립이 나옵니다. 이미지에 이미 있는 것이 아니라 무엇이 움직이는지 묘사하세요. 모델은 이미지를 볼 수 있습니다.

cURL
# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $KEY" \
  -d '{
  "model": "seedance-2.5",
  "input": {
    "prompt": "The model turns her head toward the camera and smiles as the wind lifts her hair, slow push-in, city traffic in the background",
    "image_url": "https://example.com/portrait.jpg",
    "duration": 6,
    "resolution": "720p",
    "aspect_ratio": "adaptive",
    "audio": true
  },
  "max_cost_usd": 3
}'

한 이미지에서 다른 이미지로(첫·마지막 프레임)

end_image_url를 추가합니다. 변화(비포 앤 애프터, 낮에서 밤으로, 빈 방에서 가구가 놓인 방으로)와 매끄러운 루프에 좋습니다.

cURL
# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $KEY" \
  -d '{
  "model": "seedance-2.5",
  "input": {
    "prompt": "Time-lapse: the empty plot becomes a finished house, workers moving fast, clouds racing",
    "image_url": "https://example.com/plot.jpg",
    "end_image_url": "https://example.com/house.jpg",
    "duration": 8,
    "resolution": "720p",
    "aspect_ratio": "adaptive"
  },
  "max_cost_usd": 3
}'

컴퓨터의 파일로, Python에서

참조는 https 링크여야 합니다. 로컬 파일이라면 POST /v1/uploads가 바이트를 PUT할 링크와 image_url로 전달할 url(14일 유효)를 줍니다. 이미지는 최대 30 MB입니다.

Python
import os, time, uuid, requests

API = "https://api.revana.si/v1"
H = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

# 1. Upload the picture from your computer (skip this if it already has a public https link).
up = requests.post(f"{API}/uploads", headers=H, json={"content_type": "image/jpeg", "bytes": os.path.getsize("product.jpg"), "filename": "product.jpg"}).json()
with open("product.jpg", "rb") as fh:
    requests.put(up["upload_url"], data=fh, headers=up["upload_headers"]).raise_for_status()

# 2. Quote, then animate it. The clip starts on exactly this picture.
body = {"model": "seedance-2.5", "input": {
    "prompt": "The bottle slowly turns on the marble counter as morning light sweeps across the label, water droplets glisten",
    "image_url": up["url"], "duration": 5, "resolution": "720p", "aspect_ratio": "adaptive", "audio": True}}
quote = requests.post(f"{API}/generations/quote", headers=H, json=body).json()
print("price", quote["quoted_usd"])
key = str(uuid.uuid4())  # made once: resend with the same key after a timeout, a 429 or a 5xx
job = requests.post(f"{API}/generations", headers={**H, "Idempotency-Key": key},
                    json={**body, "max_cost_usd": quote["reserved_usd"]}).json()

# 3. Wait, then download.
while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=H).json()
if job["status"] == "succeeded":
    open("product.mp4", "wb").write(requests.get(f"{API}/generations/{job['id']}/content", headers=H).content)

이미지 투 비디오 비용

텍스트 투 비디오와 같은 초당 요금입니다: 480p $0.09 · 720p $0.21 · 1080p $0.52, 오디오 포함. 첫 프레임을 쓰면 표시 요금보다 조금 더 들 수 있으므로, 견적 엔드포인트(무료)로 각 요청의 정확한 가격을 확인하고 그 reserved_usd를 max_cost_usd로 전달하세요. 실패한 생성은 과금되지 않습니다. 가격 계산기.

이미지 투 비디오에 잘 맞는 프롬프트

  • 무엇이 바뀌는지 쓰세요. '그녀가 돌아서서 화면 밖으로 걸어 나간다'가 사진에 이미 있는 여성을 묘사하는 것보다 낫습니다.
  • 카메라 움직임은 하나. 느린 푸시인, 오빗, 왼쪽 팬, 또는 고정. 짧은 클립에서 두 움직임을 동시에 쓰면 서로 충돌하기 쉽습니다.
  • 빛을 유지하세요. 이미지에 있는 빛('따뜻한 창가 빛')을 언급하면 클립이 다른 분위기로 흘러가지 않습니다.
  • 사운드를 추가하세요. Seedance 2.5는 영상과 함께 사운드를 만듭니다: '자갈 위 발소리, 멀리서 들리는 기차'.
  • 깨끗하고 선명한 이미지를 쓰세요. 모양은 출력과 비슷하게. 이미지 속 글자와 로고는 움직이면서 일그러질 수 있으니 편집기에서 넣으세요.

더 많은 예시는 Seedance 2.5 프롬프트 가이드에 있습니다.

같은 키로 쓰는 다른 이미지 투 비디오 모델

이미지 투 비디오 모델 비교
모델길이해상도첫 프레임과 마지막 프레임720p 초당 가격(오디오 포함)
Seedance 2.54–30 s480p, 720p, 1080p예$0.21
Seedance 2.04–15 s480p, 720p, 1080p, 4K예$0.15
Kling 4.03–30 s720p, 1080p예$0.18
Kling 3.03–15 s720p, 1080p, 4K예$0.13
Veo 3.14, 6, 8 s720p, 1080p, 4K예$0.40
Wan 3.02–30 s480p, 720p, 1080p예$0.07
MiniMax H34–15 s768p, 2K예$0.03 (768p)

FAQ

Seedance 2.5는 이미지 투 비디오를 지원하나요?

네. 첫 프레임은 image_url을, 첫·마지막 프레임은 image_url과 end_image_url을 텍스트 투 비디오와 같은 POST /v1/generations 요청에 보냅니다. 클립은 오디오 포함 4~30초입니다.

Seedance 2.5 이미지 투 비디오는 얼마인가요?

Revana에서 오디오 포함 초당 480p $0.09 · 720p $0.21 · 1080p $0.52입니다. 첫 프레임을 쓰면 조금 더 들 수 있으며, 무료 견적 엔드포인트가 정확한 가격을 알려 줍니다.

어떤 이미지 형식과 크기를 지원하나요?

JPEG, PNG, WebP 이미지의 공개 https 링크 또는 POST /v1/uploads로 업로드한 파일(이미지 최대 30 MB)입니다.

동영상이 내 이미지의 화면비를 유지하나요?

네. aspect_ratio를 adaptive로 설정하면 클립이 첫 프레임의 모양을 따릅니다.

매끄러운 루프를 만들 수 있나요?

네. 같은 이미지를 image_url과 end_image_url로 보내고, 처음으로 돌아오는 움직임을 묘사하세요.

첫 Seedance 2.5 영상 만들기

API 키 하나로 Seedance 2.5와 다른 모든 영상·이미지 모델을 쓸 수 있습니다. 선불 크레딧은 $10부터, 무료 가입 크레딧 제공, 구독 없음, 전달된 클립에만 과금됩니다.