본문으로 건너뛰기

Wan 2.2 Animate: 캐릭터와 동작 참조 준비

Wan 2.2 Animate용 캐릭터 이미지와 구동 영상을 준비합니다. animate와 replace 선택, 쓸 만한 동작 촬영, 항목 설정, 자주 나는 실패 해결을 정리했습니다.

작성자
Lydia
발행
읽는 시간
약 10분
수정
자두색 재킷과 아이보리색 바지를 입은 가상의 성인 안무 감독이 리허설 스튜디오에서 자신을 그린 이젤 그림 옆에 서 있다

Wan 2.2 Animate에는 캐릭터 이미지 한 장과 구동 영상 한 개가 필요합니다. 이미지가 외모를 제공하고, 영상이 몸의 움직임과 표정, 길이를 제공합니다. animate를 고르면 이미지에 있는 인물이 그 이미지 자체의 공간에서 움직이고, replace를 고르면 그 인물을 구동 영상의 장면에 배치합니다. 첫 시도에는 온몸이 보이는 성인 한 명, 6초짜리 제스처, 컷 없는 구성을 쓰세요.

Wan 2.2 Animate 캐릭터 애니메이션을 여세요. 2026년 10월 3일 기준 공개 가격으로 6초는 480p에서 $0.318, 720p에서 $0.66입니다. 두 모드 모두 프롬프트로 새 장소를 만들어 내지 않습니다. 배경은 언제나 두 파일 중 하나에서 옵니다.

촬영 전에 모드를 고른다

원하는 결과모드결과의 배경과 카메라
참조 캐릭터가 기록한 동작을 수행한다animate캐릭터 이미지 자체의 공간. 움직임과 카메라는 구동 영상에서
기존 방의 연기자를 교체한다replace구동 영상의 장면과 카메라 이동. 보이는 연기자 한 명과 그럴듯한 몸 비율이 필요

예를 들어 자두색 재킷과 아이보리색 바지를 입은 일러스트 성인 여성가 환영하는 옆걸음을 수행할 수 있습니다. 리허설 방이 상관없다면 평범한 배경의 캐릭터 이미지로 animate를 쓰세요. 아치형 창과 나무 마루가 그대로 화면에 남아야 한다면 replace를 쓰고, 새 몸이 그 마루에 어떻게 닿는지 살펴보세요. 여러 사람이 나오는 구동 영상은 replace가 누구를 교체할지 고르게 해 주지 않습니다. 연기자 한 명만 쓰거나, 마지막 절을 보세요.

공식 Wan-Animate 프로젝트는 두 가지 작업을 설명합니다. 교체가 장면의 조명과 색에 어떻게 맞춰지는지도 함께 담고 있습니다. 그 전처리 가이드는 캐릭터와 연기자 사이의 몸 비율 차이가 크면 교체에서 아티팩트가 생긴다고 경고합니다.

움직이는 부위가 드러나는 캐릭터 이미지 만들기

신발까지 포함된 전신 이미지를 쓰세요. 정면을 향한 편안한 자세로, 팔을 몸통에서 조금 떼고, 애니메이션할 옷 그대로 입힌 상태여야 합니다. 평범하고 균일하게 밝은 배경은 animate 결과를 깔끔하게 유지합니다. 그 배경이 그대로 장면이 되기 때문입니다. 얼굴만 나온 사진은 바지 밑단과 신발, 체형이 정해지지 않으며, 프롬프트에 옷을 더 길게 적어도 그 모습을 채워 주지 못합니다.

파일은 10MB 미만의 JPEG, PNG, WebP 중 하나여야 하고, 알아볼 수 있는 얼굴이나 사람이 들어 있어야 합니다. 그렇지 않으면 invalid_request로 작업이 거부됩니다.

이미지 생성기에 그대로 쓸 수 있는, 비노출의 가상의 성인 이미지 브리프입니다.

가상의 성인 여성, 약 30세, 짧은 어두운 컬, 자두색 리허설 재킷, 아이보리색 바지, 플랫 차콜색 신발. 편안하고 균형 잡힌 자세, 팔은 몸통에서 조금 떼고 자연스럽게, 양손과 양쪽 신발이 모두 보이게. 조용한 심플 스튜디오 배경, 얼굴과 의상이 잘 읽히게, 글자 없음, 다른 사람 없음.

양식화된 인물을 써도 되지만, 연기자보다 팔다리 길이가 크게 다르면 바닥 접촉과 도달 범위를 판단하기 어려워집니다.

다른 성인 연기자의 실사 리허설 사진 옆에 그려진 성인 캐릭터의 전신 그림

일러스트: 캐릭터 디자인이 외모를 제공하고, 연기자의 움직임이 움직임을 제공합니다. Wan 결과물이 아닙니다.

시작과 끝이 쓸 만한 6초 동작을 촬영한다

첫 구동 영상에서는 카메라를 단단한 받침에 고정해 몸의 움직임을 읽기 쉽게 만듭니다. 두 모드 모두 구동 영상의 카메라 이동을 가져올 수 있습니다. animate는 캐릭터 이미지의 공간을 그대로 두고, replace는 영상의 장면을 그대로 둡니다. 성인 연기자 한 명을, 두 신발과 완전히 벌린 팔 폭이 모두 보이도록 프레이밍하세요. 캐릭터 이미지와 비슷한 중립적인 정면 자세로 시작한 뒤, 짧은 정지, 옆걸음 한 번, 팔을 조금 벌리는 제스처, 팔을 내리고, 마지막 정지를 촬영합니다. 손은 얼굴에서 떼어 두세요, 누군가 앞을 가로지르는 장면은 피하세요.

연기자의 얼굴이 중요합니다. 표정은 움직임과 함께 영상에서 복사되므로, 얼굴을 프레임 안에 넣고 읽을 수 있을 만큼 크게 유지하세요. 참조 영상 자체가 원하는 템포를 갖고 있어야 합니다. 프롬프트로 빠른 회전을 느린 인사로 바꿀 수 없고, 의자 뒤에 가린 발 착지를 되찾아 줄 수도 없습니다.

업로드하기 전에 불필요한 구간을 잘라내세요. FFmpeg가 설치돼 있다면 이 명령은 녹화 1초 지점에서 시작해 6초짜리 MP4를 내보내며, 원래 비율을 유지한 채 높이를 최대 720픽셀로 줄입니다.

bash
ffmpeg -ss 1 -i rehearsal.mov -t 6 \
  -vf "scale=-2:'min(720,ih)'" \
  -c:v libx264 -crf 18 -pix_fmt yuv420p driving-six-seconds.mp4

레터박스 띠나 패딩은 피하세요. replace에서는 그게 장면의 일부가 됩니다.

원본 영상은 2~30초여야 합니다. 더 짧거나 더 긴 파일은 과금 전에 거부됩니다. 90MB까지의 MP4를 올리거나 MP4나 MOV 직접 URL을 넘기세요. 영상을 단순히 재생하는 페이지는 파일 직접 URL이 아니며, 작업은 과금분 환불과 함께 실패합니다. 원본 길이가 그대로 출력 길이가 되므로, 2초짜리 연기를 6초로 늘리는 duration_seconds 항목은 없습니다.

리허설 방에서 화면 가장자리에 캐릭터 그림이 놓인 채 성인 연기자가 옆걸음 자세를 취하는 모습

일러스트: 전신 프레이밍은 옆걸음을 위한 여백을 남기고 바닥 접촉이 보이게 합니다.

먼저 Playground에서 시험해 본다

  1. 캐릭터 애니메이션 페이지를 열고 Playground 탭의 Form 뷰에 머무릅니다. 실행하려면 잔액이 있는 계정으로 로그인하세요.
  2. 캐릭터 이미지를 Input image에, 자른 MP4를 Input video에 넣습니다. 두 항목 모두 Asset URL도 받습니다.
  3. Animation mode를 Animate the image 또는 Replace in the video로 설정합니다.
  4. 정체성과 실루엣을 확인하는 동안 Resolution을 480p로 두고, 남길 테이크는 720p로 다시 렌더링합니다.
  5. 아래 보조 프롬프트를 붙여 넣고 42 같은 Seed를 지정하면, 같은 구동 영상에 대한 두 번의 실행을 비교할 수 있습니다.
  6. 가격 예상치를 확인하고 실행합니다.

제공된 이미지에 있는 가상의 성인 여성를 제공된 연기로 애니메이션하세요. 환영하는 옆걸음 한 번과 팔을 조금 벌리는 제스처가 읽히게 하고, 발은 땅에 붙어 있게, 끝은 편안하게 하세요. 자두색 재킷, 아이보리색 바지, 짧은 컬, 플랫 신발은 그대로 유지하세요. 글자는 추가하지 마세요.

프롬프트는 기록한 동작을 뒷받침합니다. 누가 나타나는지는 이미지에서 결정됩니다. 장면 교체 버전에서는 Replace in the video를 고르고, 새 장소를 요청하는 대신 제공된 방의 카메라와 조명, 바닥을 유지하라고 요청하세요.

항목현재 계약
Input image (image_url)필수 캐릭터 이미지. JPEG, PNG 또는 WebP, 10MB 미만
Input video (video_url)필수 구동 영상. 2~30초, 90MB까지의 MP4 업로드 또는 MP4/MOV 파일 직접 URL
Animation mode (animation_mode)animate 또는 replace. 기본값은 animate
Resolution (resolution)480p 또는 720p. 기본값은 720p
Prompt (prompt)선택 사항, 최대 2,000자
Seed (seed)선택적 정수 0~2,147,483,647. 0은 무작위를 요청합니다

이 작업에는 LoRA, 화면 비율, 오디오 입력 항목이 없습니다. 다른 Wan 엔드포인트에서 빌려 쓰지 마세요.

요금은 완성된 영상 1초 기준입니다. 480p에서 $0.053, 720p에서 $0.11이므로 12초짜리 원본은 $0.636 또는 $1.32로 나옵니다. 요율을 바꾸는 건 해상도뿐이며 모드와 프롬프트, 시드는 바꾸지 않습니다. 각 작업은 처음에 30초 최댓값으로 견적되고, 실제 길이로 정산되면 차액이 환불됩니다. 그러니 먼저 쓸모없는 리허설 시간을 줄이고, 완성 컷에 필요한 접촉은 남겨 두세요.

그다음 코드로 실행한다

Python SDK를 설치하고(pip install spicyapi) 서버 환경에서 SPICY_API_KEY를 설정한 뒤 실행하세요.

python
import uuid
from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

image = client.upload_file("./character.png")             # local files become spicy:// URIs
video = client.upload_file("./driving-six-seconds.mp4")

task = client.create_task(
    model="alibaba/wan-2.2-animate/character-animation",
    input_data={
        "image_url": image["uri"],
        "video_url": video["uri"],
        "animation_mode": "animate",
        "resolution": "720p",
        "prompt": "Animate this fictional adult character using the supplied sidestep and open-arm "
                  "performance. Retain the plum jacket and ivory trousers. No added lettering.",
        "seed": 42,
    },
    idempotency_key=str(uuid.uuid4()),
)

final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
print(output_assets(final)[0]["url"])  # copy the clip to your own storage now

견적, 폴링, 다운로드, 재시도, 오류 코드는 작업 가이드와 Python SDK 레퍼런스에서 다룹니다.

또는 Agent에게 맡긴다

어시스턴트가 생성을 맡도록 할 때, 공식 도구 세 가지 모두 가격을 보여 주고 유료 호출 전에 확인을 요청합니다.

  • CLI. 각 파일을 spicyapi files upload ./character.png로 올리고, 반환된 spicy:// 주소를 위 항목들을 담은 input.json의 image_url과 video_url에 넣은 뒤 spicyapi tasks create --model alibaba/wan-2.2-animate/character-animation --input-file input.json --wait를 실행합니다. CLI 문서를 보세요.
  • MCP 서버. 어시스턴트에 MCP 서버를 추가한 뒤 이렇게 물어보세요. "Wan 2.2 Animate로 애니메이션해 주세요. 대상은 /path/to/character.png, /path/to/driving.mp4 입니다. animate 모드, 480p." 두 파일을 spicyapi_upload_file로 올리고 spicyapi_task_create를 호출하며, 가격 확인을 위해 멈춥니다.
  • Skill. npx skills add spicyapi-ai/spicy-skill은 Agent Skill을 설치합니다. 항목을 추측하는 대신 코딩 어시스턴트가 실제 모델 스키마를 읽게 합니다.

실패를 설명하는 입력을 바꾼다

돌아온 문제첫 번째로 쓸모 있는 수정
상체는 되는데 발이 미끄러진다체중 이동과 양쪽 신발 접지가 보이는 원본 영상을 쓰고, 보폭을 줄인다
소매가 손과 하나가 된다구동 제스처에서 손을 몸통에서 떼고, 서로 충돌하는 옷 묘사를 뺀다
회전 중에 캐릭터가 바뀐다원본 영상의 자세에 더 가까운 캐릭터 이미지, 또는 회전 폭이 더 작은 원본 영상을 쓴다
얼굴이 평평하거나 이상해 보인다표정은 영상에서 온다. 얼굴이 프레임 안에 크게 남고 극단적인 고개 회전이 없는 테이크를 쓴다
교체된 사람이 방 안에 떠 있다몸 비율과 바닥 접촉을 비교한다. 목표 캐릭터의 체격에 더 가까운 구동 영상을 쓴다
팔이 프레임 밖으로 나간다더 넓게 다시 찍거나, 들어맞는 동작으로 잘라낸다
결과가 교체된 사람보다 원래 연기자에 가깝게 보인다replace 모드와 실제 캐릭터 이미지를 확인한다. 연기자가 한 명 확실히 보이는 원본 영상을 쓴다
잘못된 연기가 실행된다실제로 올린 영상을 확인하고, 그 안에 없는 동작을 프롬프트에서 뺀다

replace에서는 바닥, 창틀 가장자리, 전경 물체를 원본과 비교하세요.

권리와 다른 작업이 더 잘 맞는 경우

두 파일 모두에 대한 권리와, 촬영되거나 등장한 모든 사람의 동의가 필요합니다. Wan 2.2 Animate는 무검열 모델로 등재돼 있습니다. SpicyAPI는 콘텐츠 필터를 전혀 추가하지 않으므로 그 책임은 사용자에게 있습니다.

바꾸는 게 얼굴뿐이라면 Video Face Swap은 원본 클립의 나머지를 그대로 지킵니다. 여러 사람 중 한 명을 교체해야 하거나 클립의 원본 오디오를 유지해야 한다면, 클립을 분석해 편집 전에 사람을 고르게 해 주는 Character Swap을 쓰세요. 특정 연기를 그대로 옮길 필요가 없다면 이미지에서 영상으로 가는 편이 더 간단합니다.

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

직접 해 보기

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

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