승인된 인물 사진 한 장으로 쓸 만한 샷 두 개를 만듭니다. 하나는 조용한 느린 푸시인, 다음은 주변을 보여 주는 느린 횡이동 카메라입니다. 둘 다 MiniMax H3 이미지에서 영상으로, 768p, 5초, 클립당 $0.185로 시작하세요. 사운드트랙을 꺼야 하거나 더 오래 돌려야 한다면 Seedance 2.5로, 납품이 4K여야 한다면 LTX 2.5로 바꾸세요. 각 샷에는 절제된 동작 하나, 절제된 카메라 이동 하나, 그리고 바뀌면 안 되는 항목 목록 하나만 부여합니다.
경로 고르기
| 필요한 것 | 경로 | 시작 설정 | 5초 |
|---|---|---|---|
| 가장 싼 쓸 만한 초안 | MiniMax H3 | resolution: "768p"; 4~15초 | $0.185 |
| 끌 수 있는 사운드트랙 또는 30초까지의 클립 | Seedance 2.5 | resolution: "720p", generate_audio: false; 4~30초 | $1.3865 |
| 20초까지의 4K 납품 | LTX 2.5 | resolution: "4k"; 5~20초 | $1.50 |
모든 가격은 5초 클립 기준입니다. LTX는 720p에서 $0.45이므로, 납품에 필요할 때만 4K 비용을 지불하세요. Seedance는 사운드를 켜든 끄든 같은 가격입니다.
표에 나오지 않는 세 가지가 있습니다.
- 사운드. H3와 LTX는 항상 생성된 사운드트랙을 돌려주며 그것을 끄는 필드가 없습니다.
generate_audio스위치가 있는 경로는 Seedance뿐입니다. - 프레임 모양. 세 모델 모두 이미지에서 영상으로 바뀔 때 화면 비율을 고를 수 없습니다. 결과물은 원본 이미지의 모양을 따르므로, 업로드하기 전에 인물 사진을 납품 형식에 맞게 잘라내거나 넓히세요.
- 성인 대상 프로젝트. 세 경로 모두 가상의 성인이 담긴 원본 이미지를 받습니다. Seedance의 입력 검사는 실제로 식별되는 사람의 사진을 거절할 수 있습니다(요금은 청구되지 않습니다). 그래서 그 자리에는 가상 이미지나 사용 허가를 받은 이미지를 쓰세요. 더 무거운 성인 대상 작업에는 전용 MiniMax H3 Spicy와 Seedance 2.5 Spicy 경로가 있습니다.
움직일 여유가 남는 원본 고르기
두 샷은 같은 승인 스틸에서 시작하므로 얼굴, 의상, 조명이 처음에는 동일합니다. 뒤쪽 프레임은 그 스틸과 대조해 확인하세요. 양쪽 눈이 보이고 머리카락이 프레임 안에 있으며 어깨가 배경에서 떨어져 있는 것을 고르세요. 피사체가 바라보는 쪽에 빈 공간을 남겨 두세요. 첫 번째 샷에서 시선이 그곳에 닿고, 두 번째 샷에서 카메라가 그 주변을 드러냅니다.
우리의 예는 검은 블레이저에 새틴 상의 위에 걸치고 주머니에 손을 넣은 가상의 성인 여성으로, 해질녘 불빛이 켜진 강변 도시를 내려다보는 테라스에 서 있습니다. 따뜻한 빛이 왼쪽에서 그녀의 얼굴에 비치고, 그녀는 오른쪽의 열린 공간을 봅니다. 이미지에는 이미 영상에 필요한 것이 다 들어 있습니다. 한 클립에서 비를 추가하고, 코트를 바꾸고, 고개를 돌리고, 새로운 장소를 지어내게 하면 애니메이션이 재설계로 바뀝니다.
스틸에서 생긴 블러, 겹쳐진 장신구, 난간과 겹친 손은 움직이면 더 심해집니다. 먼저 스틸을 고치세요. 손은 동작에서 제외하세요. 이 원본에서 손은 주머니 안에 있으므로 움직일 필요가 전혀 없습니다.

샷 하나: 조용한 푸시인
진짜 클로즈업을 원한다면, 업로드 전에 같은 승인 스틸을 가슴 위까지 자른 버전을 납품 비율에 맞춰 준비하세요. 푸시인만으로는 허리 위 프레임이 조금 좁아질 뿐입니다. 동작만 묘사하세요. 누가 어디 있는지는 스틸이 이미 정해 줍니다. 각 프롬프트는 피사체의 동작 하나, 카메라 이동 하나, 고정할 것, 제외할 것을 각각 밝힙니다. 승인 스틸과 함께 MiniMax H3에서 이 프롬프트를 쓰세요.
A restrained cinematic portrait of the adult woman in the supplied image. She remains in place, breathes naturally and blinks slowly, then makes one small eye movement toward the open space on screen right, followed by a subtle closed-mouth smile. Very slow camera push-in. Preserve her face, black blazer, hairstyle and the warm terrace light. No head turn, no walking, no new objects or text. No speech.
Playground에서 시도해 보세요
- 프롬프트를 넣어둔 MiniMax H3 이미지에서 영상으로를 여세요(또는 페이지를 열어 Prompt에 붙여 넣어도 됩니다). Playground 탭의 Form 뷰에 머무르고, 잔액이 있는 계정으로 로그인해 실행하세요.
- 승인한 스틸을 Input image 아래에 추가합니다.
- Resolution을 768p, Duration을 5로 설정하세요.
- 실행한 다음 같은 스틸에 두 번째 샷 프롬프트로 반복합니다.
푸시인은 얼굴의 새 면을 보여 주지 않고 움직임을 더합니다. 그래도 눈이나 턱이 바뀐다면 푸시인을 빼세요. 고정된 카메라, 호흡, 한 번의 깜빡임만 요청하면 됩니다.
샷 둘: 주변을 드러내는 느린 슬라이드
두 번째 샷의 역할은 다릅니다. 얼굴은 조용하게 두고 카메라가 스카이라인을 드러냅니다. 앞쪽 난간, 가운데의 여성, 뒤쪽의 밝은 도시가 세 개의 층을 이루고 횡이동 중에 서로 어긋납니다. 바로 그 덕분에 줌이 아니라 카메라 이동으로 읽힙니다.

같은 원본과 같은 설정을 사용하세요.
A medium portrait of the adult woman from the supplied image on the same dusk terrace. The camera slides slowly and steadily a short distance to the right along the railing, revealing more of the lit city on screen right. She stays in frame, holds her pose and shifts her gaze slightly toward the city lights. Keep her face, black blazer and hairstyle unchanged, and the warm light constant. No orbit, no walking, no speech, no text.
이동의 이름만이 아니라 그 이동이 드러내는 것을 구체적으로 적으세요. 카메라 방향이 모델을 혼란스럽게 하면 "오른쪽 어깨 옆으로 도시가 조금 더 보인다" 정도로 단순화하세요.
이 원본으로 카메라 오빗이나 완전한 옆얼굴을 요구하지 마세요. 4분의 3 측면 각도이며, 반대쪽 볼 쪽으로 움직이려면 두 번째 승인 스틸이 필요합니다.
코드로 호출하기
Python SDK를 설치하고(pip install spicyapi) SPICY_API_KEY를 설정한 뒤, 승인 스틸에서 첫 번째 샷을 실행하세요. 비용은 $0.185입니다.
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient()
still = client.upload_file("./approved-still.png") # local file -> spicy:// address
task = client.create_task(
model="minimax/h3/image-to-video",
input_data={
"image_url": still["uri"],
"prompt": (
"A restrained cinematic portrait of the adult woman in the supplied image. "
"She remains in place, breathes naturally and blinks slowly, then makes one small "
"eye movement toward the open space on screen right, followed by a subtle "
"closed-mouth smile. Very slow camera push-in. Preserve her face, black blazer, "
"hairstyle and the warm terrace light. No head turn, no walking, no new objects "
"or text. No speech."
),
"resolution": "768p",
"duration_seconds": 5,
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
print(output_assets(final)[0]["url"])두 번째 샷에는 슬라이드 프롬프트로 바꾸세요. 업로드, 대기, 오류는 Python SDK 레퍼런스를 참고하세요.
에이전트에게 맡기기
클립을 어시스턴트가 만들게 할 때 공식 도구는 가격을 보여 주고 유료 호출 전에 물어봅니다.
- CLI.
spicyapi files upload ./approved-still.png를 실행한 뒤, 반환된spicy://주소를input.json의image_url로 넣어spicyapi tasks create --model minimax/h3/image-to-video --input-file input.json --wait를 실행합니다.npx @spicyapi/cli는 설치 없이 동작합니다. CLI 문서도 확인하세요. - MCP 서버. MCP 서버를 추가하고 내 스틸에 푸시인을 요청하세요. 어시스턴트는
spicyapi_upload_file로 파일을 올리고spicyapi_task_create를 호출합니다(가격 확인을 위해 멈춥니다). 이어서spicyapi_task_wait를 호출합니다. - Skill.
npx skills add spicyapi-ai/spicy-skill로 Agent Skill을 설치하면, 코딩 어시스턴트가 필드 이름을 추측하지 않고 실제 모델 스키마를 읽습니다.
두 클립 이어 붙이기
푸시인을 먼저, 슬라이드를 나중에 놓습니다. 첫 번째 샷은 화면 오른쪽으로 향하는 시선에서 끝내고, 두 번째 샷은 그녀가 이미 그쪽을 보고 있는 상태에서 시작해, 자른 지점이 같은 시선축에 놓이게 하세요. 5초 전체가 아니라 각각에서 가장 깨끗한 2~3초를 쓰세요.
사운드트랙은 하나만 유지하세요. H3나 LTX를 썼다면 클립 자체 음성을 끄고 그 아래에 배경 음악이나 환경음을 하나만 깔아 주세요. Seedance라면 생성된 오디오를 끄고 똑같이 하면 됩니다. 샷마다 다른 환경음이 필요하다면 Seedance에서 생성 오디오를 켠 채 "quiet distant street ambience, no speech" 같은 문장을 넣으세요.
세 경로 모두 선택 사항인 클로징 프레임을 받습니다. 클립이 특정 승인 이미지에 정확히 닿아야 할 때 도움이 되지만, 클립이 길수록 그 이미지에서 더 멀어지므로 초안에는 넣지 마세요.
실패한 것만 고치기
| 보이는 문제 | 다음 조치 |
|---|---|
| 푸시인 도중 눈이나 턱이 바뀐다 | 원본 스틸로 돌아가서 푸시인을 고정 카메라와 한 번의 깜빡임으로 대체합니다. |
| 웃을 때 이가 불안정하게 보인다 | 입을 다문 절제된 미소를 요청하고 발화를 빼세요. |
| 머리카락이 볼을 기어간다 | 바람과 고개 움직임을 빼고 호흡만 남기세요. |
| 얼굴이 프레임을 벗어난다 | 생성하기 전에 원본에 여유를 추가하세요. 모델에는 화면 비율을 고칠 항목이 없습니다. |
| 슬라이드 도중 난간이나 간판이 휘어진다 | 이동을 느리게 하고 짧게 줄이거나, 간판을 원본에서 잘라내세요. 글자는 안정적으로 보존되지 않습니다. |
| 두 클립의 빛이나 색이 다르다 | 더 약한 쪽을 같은 스틸에서 다시 생성하세요. 새 원본으로 바꾸지 마세요. |
| 1초는 훌륭한데 나머지가 어긋난다 | 안정적인 구간을 중심으로 잘라 짧은 삽입으로 쓰세요. |
H3 5초 초안 4개는 $0.74이므로, 샷마다 4개씩이면 두 샷에 $1.48입니다. 초안 하나로도 안정적인 2초는 벌써 자르기에 쓸 만합니다. Seedance 2.5와 LTX 2.5에서는 시드를 고정하고 프롬프트만 바꿔서 수정이 무엇을 바꾸었는지 확인하세요. 같은 클립이 보장되지는 않습니다. H3에는 시드 설정이 없으니, 이긴 프롬프트를 그대로 두고 다시 돌리세요.








