본문으로 건너뛰기

무검열 Seedance 2.5 이미지 영상 변환: 첫 프레임과 레퍼런스

Seedance 2.5 API로 이미지를 영상으로 만드는 방법을 설명합니다. 실제 클립으로 첫 프레임과 레퍼런스의 차이와 요청 과정을 확인하세요.

작성자
Lydia
발행
읽는 시간
약 16분
수정
비에 젖은 옥상에서 블루아워를 배경으로 검은 이브닝드레스와 빨간 코트를 입은 성인 출연자

이미지를 Seedance 2.5로 움직이게 만들려면 렌더링 전에 이미지의 역할부터 정해야 합니다. 정확한 첫 프레임으로 쓸지, 모델이 새로 구성할 장면의 레퍼런스로 쓸지에 따라 작업이 달라집니다. 역할을 잘못 선택하면 의도와 다른 시작 장면이 나올 수 있습니다.

한 줄 답변: 이미지가 첫 프레임이어야 한다면 image-to-video, 새 구도에 인물, 의상, 세트를 제공한다면 reference-to-video를 사용합니다. 기본 Seedance 2.5는 둘 다 제공하지만 Spicy는 시작 스틸의 애니메이션만 지원합니다. 2026년 9월 테스트에서는 둘 다 무검열 성인용 작업을 지원했습니다. Spicy는 업스케일된 4K 옵션을 추가하며 초당 요금은 56%~75% 더 높습니다(비교). 다만 Seedance 자체 입력 검사는 식별 가능한 얼굴이나 키스 관련 요청을 여전히 거부할 수 있습니다.

작업 경로 선택하기

“이 이미지를 영상으로 만든다”는 뜻사용할 작업보내는 입력시작 요금(5 s, 480p)
“바로 이 이미지에서 시작해 움직이게 한다.”Seedance 2.5 image-to-videoimage_url, 선택 프롬프트, 선택 last_image_url$0.62
“동일하지만 4K 파일이 필요하다.”Seedance 2.5 Spicy image-to-video같은 필드. 클립은 스틸의 화면 형태를 따릅니다$1.08(4K: $10.80)
“사진 속 인물, 의상, 세트를 활용해 새 시작 장면을 구성한다.”Seedance 2.5 reference-to-video최대 이미지 30개, 클립 10개, 오디오 파일 10개와 필수 프롬프트$0.62(레퍼런스 클립 없음)
“A로 시작해 B로 끝난다.”두 모델 중 하나의 image-to-videoimage_url과 last_image_url위와 같음

레퍼런스 모드와 프레임 모드는 함께 쓸 수 없습니다. reference-to-video에는 첫 프레임이나 마지막 프레임 필드가 없으며, image-to-video에 마지막 프레임을 추가해도 첫 이미지가 자유로운 레퍼런스로 바뀌지는 않습니다. 작업을 결정하는 것은 파일 수가 아니라 이미지의 역할입니다.

첫 프레임이 장면으로 바뀌는 모습 보기

예시 1: 구도가 완성된 스틸(Seedance 2.5)

Seedance 2.5 클립의 첫 프레임: 공중에 멈춘 비와 유리 앞에 검은 드레스를 입고 서 있는 성인 여성
공개된 Seedance 2.5 image-to-video 예시에 실제로 제공한 첫 프레임 이미지

유리, 비, 넓은 구도는 제공된 시작 스틸에 이미 들어 있습니다.

스틸이 드레스, 유리 조각, 비, 차가운 조명, 넓은 구도를 제공합니다. 5초 720p 움직임 지시는 장면을 잠시 정지시킨 뒤, 유리와 비가 움직이기 시작할 때 카메라를 빠르게 전진시킵니다.

Seedance 2.5 첫 프레임 예시 — 멈춘 유리와 비가 움직이며 액션 장면으로 전환

예시 2: 차분한 움직임 하나를 더한 Spicy 첫 프레임

관능적인 패션 클립에서는 스틸로 스타일, 포즈, 분위기를 정하고 프롬프트는 인물 동작 하나와 카메라 움직임 하나에 사용합니다.

시작 스틸: 블루아워의 비에 젖은 옥상에서 검은 새틴 드레스와 빨간 코트를 입은 성인 여성
Seedream 5.0 Pro, 1k, 16:9. Seedance 2.5 Spicy image-to-video에 실제로 제공한 스틸입니다.

Seedream 5.0 Pro, 1k, 16:9. 아래 Spicy 클립에 사용한 시작 스틸 그대로입니다.

Seedance 2.5 Spicy image-to-video, 720p, 5초, 생성 오디오

출연자, 빨간 코트, 옥상은 알아볼 수 있게 유지되고 코트와 포즈도 장면 속에서 움직입니다. 하지만 프롬프트의 두 걸음은 거의 드러나지 않습니다. 중요한 동작에는 별도 시간 구간을 주고(시간 구간 프롬프트 참조), 다른 움직임과 한 문장에 넣지 않습니다.

첫 프레임 준비하기

스틸이 품질의 상한선을 결정하므로 프롬프트보다 이 단계에서 문제를 고칩니다.

  1. 피사체가 분명하게 보입니다. 얼굴, 포즈, 동작에 필요한 물체가 화면 안에 있으며 크롭 가장자리에서 잘리지 않아야 합니다.
  2. 카메라 위치가 이미 적절합니다. 뒤에서 본 모습과 카메라를 향한 인물 사진은 다른 동작이 필요합니다. 먼저 크롭하고 모델에게 새 시점을 만들라고 요청하지 않습니다.
  3. 동작할 공간이 있습니다. 타이트한 인물 사진은 시선 변화나 느린 기울임에 적합합니다. 걷기에는 이동 방향에 바닥 공간이 필요합니다.
  4. 분위기가 프레임에 담겨 있습니다. 조명, 장소, 스타일이 프롬프트의 형용사보다 분위기에 큰 영향을 줍니다. 새 방이나 큰 의상 변화는 형용사를 더하는 대신 새 스틸이나 잘 맞는 종료 프레임을 준비하는 편이 명확합니다.

입출력 제한: 길이 4~30초(기본 5), 480p, 720p(기본), 1080p이며 Spicy에는 4K도 있습니다. 이미지 각 변은 300~6,000픽셀, 최대 10 MB이며 JPG, PNG, WEBP, GIF를 지원합니다. 업로드 전에 납품 화면 비율로 크롭합니다. 기본 image-to-video는 adaptive만 받으며 Spicy에는 화면 비율 필드가 없습니다. Seedance는 식별 가능한 얼굴 입력을 거부할 수 있으며 설명 없는 422만으로는 원인을 알 수 없습니다. 스틸 제작에는 Seedance 2.5 프롬프트 가이드를 사용합니다.

움직임 프롬프트 작성하기

image-to-video에서 프롬프트는 선택 사항이지만 장면을 연출하는 수단입니다. 스틸에 이미 보이는 내용을 다시 설명하지 말고 관객이 보는 순서대로 변화를 적습니다. 동작, 카메라, 소리 순입니다. 핵심 카메라 지시는 하나로 유지하고 단계에는 “then”을 넣으며 유지할 요소를 명시합니다(“keep her face, outfit and rooftop unchanged”).

짧은 첫 시도:

Start on the supplied rooftop portrait. The adult woman turns toward the camera as the wind lifts her coat, takes two measured steps to camera-right, then holds eye contact. One slow camera push; keep her face, outfit and rooftop recognisable. Soft city ambience.

이 프롬프트를 Seedance 2.5 Spicy에서 열기

시간 구간 프롬프트. Seedance는 정수 초 구간을 받으며 모델 페이지도 움직임이 여러 단계일 때 이를 권장합니다. 구간은 빈틈없이 이어지게 만들고 마지막은 duration_seconds에 끝내며 각 구간에는 동작 하나만 넣습니다.

text
Continue from the supplied rooftop portrait in one continuous shot.
0-2s: The adult woman turns toward the camera as the wind lifts her coat. Camera fixed.
2-4s: She takes two measured steps to camera-right. Slow push in.
4-5s: She holds eye contact and the coat settles. Hold the framing.
Keep her face, outfit and the rooftop unchanged. Sound: soft wind and distant city ambience, no music.

클립이 의도에서 벗어나면 구도, 동작, 길이 순서로 한 요소씩 수정합니다. 프롬프트 수정을 비교할 때는 seed를 고정합니다. 길이를 늘리거나 여러 짧은 테이크를 편집하기 전에 5초로 방향을 정합니다.

첫 프레임과 마지막 프레임: 루프와 변화 연출

last_image_url을 추가하면 모델이 첫 스틸에서 두 번째 스틸로 이동합니다. 둘의 화면 비율을 맞추고 카메라와 빛을 유지하며 닫힘에서 열림, 의상 A에서 의상 B처럼 명확한 상태 하나만 바꿉니다. 그렇지 않으면 클립 중간이 컷 전환이 됩니다. 도착점뿐 아니라 전환 과정을 설명하고 마지막 정지에도 별도 구간을 줍니다. 같은 스틸을 두 번 보내면 루프의 복귀 목표가 됩니다. 첫 프레임과 마지막 프레임이 맞지 않으면 연결부를 확인하고 잘라내거나 크로스페이드합니다. 마지막 프레임은 image_url과 함께 있을 때만 허용됩니다.

한 테이크보다 긴 장면에는 기본 2.5의 마지막 프레임 반환을 사용할 수 있습니다(return_last_frame: true, 가격 변화 없음). 그 프레임을 다음 image-to-video 작업의 시작 스틸로 보냅니다. Spicy에서는 마지막 프레임을 직접 내보내야 합니다. 더 긴 무검열 영상에서 전체 연결 과정을 다룹니다.

Reference-to-video: 소재로 새 장면 만들기

시작 구도보다 인물, 의상, 세트가 중요할 때 사용합니다. 레퍼런스 이미지는 보낸 순서대로 번호가 붙으며 프롬프트가 역할을 배정합니다. 따라서 각 이미지의 역할을 적습니다. ByteDance의 Seedance 2.5 발표에서 이름 붙인 이미지 레퍼런스를 활용하는 모습을 볼 수 있습니다.

Use the adult performer from @Image1 and the rooftop from @Image2. Compose a new opening shot as she steps from the entrance, pauses, turns to camera, then holds. One continuous medium shot with a slow push and soft wind ambience.

이 프롬프트를 Seedance 2.5 reference-to-video에서 열기

레퍼런스 이미지 쌍: 인물 사진과 비에 젖은 옥상 장소
Seedance 2.5 reference-to-video에 제공한 Seedream 5.0 Pro 레퍼런스 2개.

왼쪽은 인물과 의상 레퍼런스, 오른쪽은 장소와 조명 레퍼런스입니다. 둘 다 새 시작 장면을 안내하며 정확한 첫 프레임 자체를 제공하지는 않습니다.

인물과 옥상 레퍼런스를 사용한 Seedance 2.5 reference-to-video, 720p, 5초, 생성 오디오

결과는 새로 구성한 출입구 장면으로 시작해 빨간 코트, 검은 드레스, 옥상을 유지하며 카메라를 향해 걷습니다. 레퍼런스는 인물, 의상, 세트를 안내합니다. 연출이 중요할 때는 각 역할을 따로 설명합니다.

레퍼런스 입력 제한:

  • 이미지: 최대 30개이며 위와 같은 제한이 적용됩니다. 거의 같은 프레임을 많이 쓰기보다 한 인물을 서로 다르게 본 소수의 이미지로 시작하고 인물 이미지에 의상을 담습니다.
  • 클립: 최대 10개, 각각 2~30초, 합계 30초, MP4, WEBM, QuickTime이며 각각 최대 90 MB입니다. 동작, 템포, 카메라 표현을 제공하며 참조 영상의 초가 과금량에 더해집니다. 클립을 붙이면 초당 요금은 낮아집니다(480p $0.0738, 720p $0.1659, 1080p $0.4082, 없는 경우 $0.1234, $0.2773, $0.6823). 하지만 출력 길이와 과금 레퍼런스 길이의 합에 적용됩니다. 5초 출력에는 4초의 레퍼런스 최소 과금이 있어 2초 레퍼런스도 4초로 계산합니다. 즉 (5 + 4) × $0.0738 = $0.6642, 약 $0.66입니다. 10초 레퍼런스는 10초 그대로이므로 (5 + 10) × $0.0738 = $1.11이며 클립이 없는 $0.62와 다릅니다. 영상 자체를 편집하거나 스타일을 바꾸라고 요청하지 않습니다. Seedance가 영상 편집으로 처리해 작업이 실패합니다.
  • 오디오: 최대 MP3 또는 WAV 10개, 각각 2~30초, 합계 30초입니다. 템포를 안내하며 출력에 사운드트랙을 넣을지는 여전히 generate_audio가 결정합니다.
  • 화면 비율: 기본은 adaptive입니다. 엄격한 납품 조건이 있을 때만 비율(21:9~9:16)을 지정하고 필요한 피사체가 출력 크롭 안에 들어오는지 확인합니다.

클립 가격과 시작할 모델

초당 가격이며 오디오는 추가 비용 없이 포함됩니다. 각 모델 페이지에서 제출 전에 현재 가격을 안내합니다.

해상도기본 2.5 · 5 sSpicy · 5 s기본 2.5 · 30 sSpicy · 30 sSpicy 추가 요금
480p$0.62$1.08$3.70$6.48+75%
720p$1.39$2.16$8.32$12.96+56%
1080p$3.41$5.40$20.47$32.40+58%
4K제공하지 않음$10.80제공하지 않음$64.80Spicy만 가능

기본 모델에서 완성할 계획이면 기본 2.5의 480p 5초로 초안을 만듭니다. Spicy 4K로 납품하려면 먼저 Spicy 480p 테이크를 확인합니다. 모델을 바꾸면 연출도 달라질 수 있습니다. 4K는 1080p 렌더링을 확대할 뿐 흐릿한 원본을 복구하지 않습니다. 두 모델 모두 몇 분을 예상합니다. Spicy는 텍스트 기반 생성도 레퍼런스 기반 생성도 제공하지 않습니다.

Playground에서 시도한 뒤 API 사용하기

  1. Seedance 2.5 image-to-video Playground를 열고 Input image에 첫 프레임을 추가합니다. Closing frame은 선택 사항입니다.
  2. 움직임 프롬프트를 붙여 넣고 Duration을 5초, Resolution을 480p로 설정합니다. 소리가 필요할 때만 Generate audio를 켜고 Run model을 선택합니다.
  3. 같은 모델에서 움직임을 다듬습니다. 새로 구성할 장면은 reference-to-video Playground의 Reference images에 이미지를 추가합니다.

환경에 SPICY_API_KEY를 설정하고 SPICY_IMAGE_URI에는 시작 이미지의 접근 가능한 URL 또는 업로드한 spicy:// URI를 넣습니다. 이 Python 3 예제는 가격 확인 후 새 장면 하나를 제출합니다.

python
import json
import os
import urllib.request
import uuid

base = "https://api.spicyapi.ai/api/v1"
headers = {"Authorization": "Bearer " + os.environ["SPICY_API_KEY"],
           "Content-Type": "application/json", "User-Agent": "SpicyAPI-Blog/1.0"}
settings = {
    "duration_seconds": 5,
    "resolution": "480p",
    "generate_audio": False
}
settings["prompt"] = 'A slow camera push toward the subject. Keep the setting and clothing unchanged. One continuous shot.'
settings["image_url"] = os.environ["SPICY_IMAGE_URI"]
payload = {"model": "bytedance/seedance-2.5/image-to-video", "input": settings}

def post(path, body):
    request = urllib.request.Request(base + path, json.dumps(body).encode(), headers)
    with urllib.request.urlopen(request, timeout=60) as response:
        result = json.load(response)
    if result.get("code") != 200:
        raise RuntimeError(result)
    return result["data"]

quote = post("/jobs/quote", payload)
if input(f"Maximum charge ${quote['maxCharge']}. Type yes to generate: ") != "yes":
    raise SystemExit("Stopped before generation")
headers["Idempotency-Key"] = str(uuid.uuid4())
print("Request key:", headers["Idempotency-Key"], flush=True)
task = post("/jobs/createTask", {**payload, "quoteId": quote["quoteId"],
                              "expectedCost": quote["estimatedCost"]})
print("Task ID:", task["taskId"])

출력된 요청 키는 같은 요청을 복구할 때 필요하므로 보관합니다. 새 장면에는 새 키를 사용합니다. reference-to-video에서는 model을 bytedance/seedance-2.5/reference-to-video로 바꾸고 image_url을 reference_image_urls 목록으로 대체하며 필수인 프롬프트를 유지합니다. 결과 전달과 복구는 작업 API 문서에서 다룹니다.

반복되는 장면은 Agent가 승인된 입력 파일을 사용하도록 합니다. CLI spicyapi tasks create --model bytedance/seedance-2.5/image-to-video --input-file input.json --wait, MCP는 해당 모델과 입력으로 spicyapi_task_create를 호출하도록 요청합니다. Skill에는 “Use the spicyapi Skill to generate this approved shot and return the result.”라고 요청합니다. CLI와 MCP는 생성 전에 가격을 표시합니다. Agent 통합 문서를 참고합니다.

클립을 검토하고 보이는 문제 고치기

썸네일이 아닌 전체 클립을 보고 순서대로 확인합니다. 첫 프레임이 스틸과 맞는지, 첫 움직임이 요청대로인지, 피사체를 알아볼 수 있는지, 의도한 내용이 화면 안에 있는지, 마지막이 편집에 맞는지 확인합니다. 완료된 작업도 친밀한 동작을 요청보다 약하게 연출할 수 있으므로 상태가 아니라 프레임을 판단합니다. 프롬프트, 스틸, 모델, 선택한 출력을 함께 저장해 시도 사이에 무엇이 바뀌었는지 알 수 있게 합니다.

보이는 문제다음 수정
잘못된 크롭이나 어색한 포즈로 시작스틸을 고치고 업로드 전에 최종 형식으로 크롭
의상, 방, 외모가 일찍 바뀜스틸과 모순되는 프롬프트를 지우고 새 시작 이미지에 원하는 모습을 담기
스틸을 잠깐 보여 준 뒤 다른 장면으로 컷 전환다른 장면을 설명한 프롬프트 대신 스틸의 장면을 쓰고 “one continuous shot, no cuts” 추가
카메라가 동작에서 벗어남유지할 구도와 동작 하나를 지정하고 경쟁하는 카메라 움직임 제거
움직임이 거의 멈춤금지 사항보다 실제로 일어나는 일을 단계별로 설명
긴 클립이 벗어나거나 멈춤4~5초로 한 단계를 시험한 뒤 연결된 테이크 계획
성인 장면이 약해짐스틸에 강도를 담고 프레임을 지시와 비교한 뒤 변수 하나 변경
클립 생성 전 거부이미지가 성인이고 생성된 인물이거나 동의한 인물인지, 작업이 이미지 역할에 맞는지 확인합니다. 실패한 작업은 보통 확보 금액을 해제하며 오류 안내에 예외가 있습니다

자주 묻는 질문

Image-to-video에 프롬프트가 필요한가요?

아니요. 필수 입력은 스틸뿐입니다. 프롬프트가 없으면 모델이 움직임을 정하므로 동작이나 카메라가 중요할 때 작성합니다.

첫 프레임에 이미지를 여러 개 쓸 수 있나요?

아니요. Image-to-video는 시작 스틸 하나와 선택 종료 스틸 하나를 받습니다. 여러 이미지는 reference-to-video를 쓰며 최대 30개를 순서대로 이름 붙입니다(@Image1, @Image2).

루프를 만들 수 있나요?

네. 같은 스틸을 image_url과 last_image_url로 보내고 연결부를 확인합니다(첫 프레임과 마지막 프레임 절 참조).

Seedance 2.5로 NSFW 영상을 만들 수 있나요?

네. 기본 2.5와 Spicy 모두 스틸에서 무검열 성인용 애니메이션을 지원합니다. Spicy가 콘텐츠를 풀어 준다고 기대하기보다 입력의 역할과 출력 요구에 따라 선택합니다. 버전 비교와 무검열 Seedance 테스트를 참고합니다.

영상이 만들어지기 전에 요청이 실패한 이유는 무엇인가요?

제출 시 거부와 생성 후 실패한 작업을 구분하고 오류 안내에서 코드를 읽습니다. 경로가 이미지 역할과 맞는지, 이미지 크기와 형식이 제한을 지키는지, URL을 공개적으로 가져올 수 있는지 확인합니다. Playground에서는 업로드 완료 여부도 확인합니다. 요청 시간이 초과되어 수락 여부가 불분명하면 같은 멱등성 키로만 다시 보냅니다.

어떤 경로를 선택해야 하나요?

이미지가 첫 프레임으로 유지되어야 하면 Seedance 2.5 image-to-video를 사용해 480p로 초안을 만듭니다. 이미지, 클립, 오디오로 새 장면을 안내하려면 Seedance 2.5 reference-to-video를 사용합니다. 4K가 필요할 때만 Seedance 2.5 Spicy image-to-video에서 별도의 저해상도 초안을 만듭니다.

다른 언어 English · 日本語 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

직접 해 보기

실행한 만큼만 결제하세요. 요금제도, 구독도 없습니다.

사용 모델: MiniMax H3 · ByteDance Seedance 2.0 Fast