본문으로 건너뛰기

© 2026 Molayo

r/StableDiffusion분석2026. 05. 26. 03:21

캐릭터 포즈를 잡고 싶으신가요? Wan 2.2 Pose Control 워크플로우를 소개합니다

요약

Wan 2.2 I2V 비디오 모델을 활용하여 캐릭터의 일관성을 유지하면서 특정 포즈를 구현하는 새로운 워크플로우를 소개합니다. 80프레임의 비디오 시퀀스를 생성하여 첫 프레임의 캐릭터가 마지막 프레임의 포즈를 취하도록 유도하는 독창적인 프롬프팅 기법을 다룹니다.

핵심 포인트

  • Wan 2.2 I2V 모델을 이용한 캐릭터 포징 문제 해결
  • 비디오 모델의 특성을 활용해 캐릭터 일관성 유지
  • 80프레임 시퀀스 생성을 통한 단일 이미지 추출 기법
  • 구조화된 프롬프트를 통한 캐릭터와 포즈의 결합

Wan 2.2 Pose Control

한동안 저는 오픈 웨이트 (open-weight) 모델을 사용하여 캐릭터 포징 (character posing) 문제를 해결하려고 노력해 왔습니다. 이전에 Flux.2 Klein을 사용했던 시도는 상당히 괜찮았지만, 스타일 블리딩 (style bleeding) 현상이 발생하고 원래 캐릭터의 비율 (예: 머리 대 몸의 비율)을 지키지 못하는 문제가 있었습니다. 캐릭터 일관성 (character consistency)은 이미지 편집 모델들이 여전히 어려움을 겪고 있는 부분이지만 (특히 스타일화된 캐릭터의 경우), 한 가지 예외가 있습니다. 바로 Wan2.2 I2V Video입니다. 비디오 모델에서는 캐릭터 일관성을 기대할 수 있지 않을까요?

I2V Wan 모델을 광범위하게 실험한 끝에, "image_1의 캐릭터를 image_2의 포즈로 넣는" 특정 프롬프팅 (prompting) 기법을 발견했습니다.

성격이 급하신 분들을 위해 워크플로우 링크를 공유합니다.

우리의 작업은 다음과 같이 들립니다:
"왼쪽에 있는 이 캐릭터를 가져와서 오른쪽의 포즈를 따라 하게 만드세요"

로컬 오픈 웨이트 모델을 사용하여 이를 수행하는 두 가지 방법이 있습니다:

  1. Flux.2 Klein 캐릭터 교체 워크플로우
  2. Wan 2.2 Pose Control 워크플로우 (이 포스트의 주제입니다)

각 방법의 결과는 다음과 같습니다:

[IMG:1]
[IMG:2]

폐쇄형 소스 (closed-source) 모델들과도 결과를 비교해 보겠습니다. 캐릭터 디자인은 해결되었지만 스타일 충실도 (style fidelity)가 떨어집니다. 제 생각에 거대한 멀티모달 (multimodal) 이미지 편집 모델조차 진정한 캐릭터 일관성에 도달하지 못하는 반면, 비디오 모델에게 그것은 그저 타고난 속성인 것 같습니다.

아이디어는 간단합니다: Wan 2.2에게 First-Frame-Last-Frame 모드를 사용하여 80프레임의 시퀀스를 생성하도록 요청하는 것입니다. 이 프레임 시퀀스는 4개의 부분으로 구성됩니다:

  1. 피사체가 그냥 서 있음
  2. 피사체가 포즈 참조 (pose reference)의 포즈를 복사하며 움직임
  3. 피사체 캐릭터가 포즈 참조의 캐릭터로 변형 (morph)됨
  4. 포즈 참조의 캐릭터가 프레임 안에 있음

우리의 목표는 피사체가 포즈 참조 이미지(pose reference image)의 포즈대로 서 있거나, 앉아 있거나, 누워 있는 단일 프레임을 얻는 것이지만, 아직 포즈 참조 이미지의 캐릭터로 변형(morph)되지는 않은 상태를 만드는 것입니다. 이를 위해 우리는 첫 번째 프레임에서 마지막 프레임으로의 전환이 가능한 한 부드럽게 이루어질 수 있도록 텍스트 프롬프트(text prompt)를 구성해야 합니다. 즉, 피사체에 대한 정보(디자인 및 스타일)와 포즈에 대한 정보가 프레임 시퀀스의 중간 지점에서 만나 우리가 원하는 결과를 만들어내도록 하는 것입니다.

네, 맞습니다. 우리는 단 하나의 이미지를 얻기 위해 무려 80개의 프레임을 생성합니다.

구조화된 프롬프트(structured prompt) 작성 방법

위의 예시 영상에서 사용된 두 가지 프롬프트는 다음과 같습니다:

은발 여성 (Silver hair woman)

0s: 짧은 은발을 가진 소녀가 초록색 주름치마와 가죽 부츠를 신고 서 있음
1s: 짧은 은발을 가진 소녀가 초록색 주름치마와 가죽 부츠를 신고 왼쪽으로 몸을 돌려 무릎을 꿇고, 왼손을 머리에 얹으며, 오른손을 다리 사이에 둠
2s: 그녀는 그 포즈를 유지한 채 고정됨. 장면이 다른 장면으로 전환됨
3s: 그녀의 몸이 흰색 배경에서 흰 피부와 대머리를 가진 다른 캐릭터로 변형됨

검은 수염 남성 (Black beard man)

0s: 날카로운 치아를 가진 흑인이 초록색 수트와 어두운 색 바지를 입고 흰색 배경에 서 있음
1s: 날카로운 치아를 가진 흑인이 초록색 수트와 어두운 색 바지를 입고 안락의자에 앉아 고개를 기울인 채 손을 턱에 대고 다리를 꼬고 있음
2s: 그는 그 포즈를 유지한 채 고정됨. 장면이 다른 장면으로 전환됨
3s: 그의 몸이 짧은 오렌지색 드레스, 오렌지색 탑 햇, 갈색 머리와 망사 스타킹을 착용한 다른 캐릭터로 변형됨

피사체에 대한 설명은 comfy-mtb 확장 기능의 Apply Text Template을 사용하여 추출할 수 있도록 반복적으로 작성되었습니다.

피사체 설명을 추출하여 다음과 같은 템플릿을 얻을 수 있습니다:

은발 여성 (Silver hair woman)

0s: {var_1}이(가) 서 있음
1s: {var_1}이(가) 왼쪽으로 몸을 돌려 무릎을 꿇고, 왼손을 머리에 대며, 오른손을 다리 사이에 둠
2s: 그녀는 그 자세를 그대로 유지함. 장면이 다른 장면으로 전환됨
3s: 그녀의 몸이 흰색 피부, 대머리, 흰색 배경을 가진 다른 캐릭터로 변함

검은 수염을 가진 남성 (Black beard man)

0s: {var_1}이(가) 흰색 배경에 서 있음
1s: {var_1}이(가) 고개를 기울이고 손을 턱에 댄 채 안락의자에 앉아 다리를 꼬고 있음
2s: 그는 그 자세를 그대로 유지함. 장면이 다른 장면으로 전환됨
3s: 그의 몸이 짧은 오렌지색 드레스, 오렌지색 탑 햇(top hat), 갈색 머리, 망사 스타킹을 착용한 다른 캐릭터로 변함

이 프롬프트의 4가지 구성 요소를 살펴보겠습니다.

0s - 초기 설명 (Initial description)

이 부분은 첫 번째 프레임을 설명하는 곳입니다. 대부분의 경우 'is standing (서 있음)'만으로 충분하지만, 피사체의 초기 포즈를 구체적으로 지정할 수도 있습니다.

1s - 실제 포징 (Actual posing)

이 부분은 피사체가 초기 포즈에서 목표 포즈로 이동하기 위해 취해야 하는 움직임을 지정하는 곳입니다. 쉼표로 구분된 단순한 움직임(왼쪽으로 돌기, 앉기, 웅크리기, 손 들기)이 가장 효과적입니다. 또한 목표 포즈에 다른 카메라 각도가 필요한 경우 'Camera follows his movement (카메라가 그의 움직임을 따라감)'를 추가할 수 있습니다.

2s - 장면 전환 전 일시 정지 (Pause before scene transition)

항상 동일하게 he/she keeps his pose frozen in place. Scene transitions into another scene (그/그녀는 그 자세를 그대로 유지함. 장면이 다른 장면으로 전환됨)을 사용합니다. 여기서 "Scene transitions into another scene" 부분이 가장 중요합니다. Wan 2.2는 (놀랍게도) 이 경계를 준수합니다.

3s - 마지막 프레임 고정 (Anchoring your last frame)

다음과 같이 작성합니다: body transforms into another character <마지막 프레임의 캐릭터 설명>. 우리는 Wan 2.2가 영상 시작 부분의 캐릭터와 영상 끝 부분의 캐릭터가 서로 다르다는 것을 이해하기를 원합니다.

실전 예시

지금까지 배운 내용을 연습해 봅시다. 여기 피사체와 포즈 이미지들이 있습니다:

"*포즈 참조"

피사체(subject)에 대한 설명부터 시작하세요. 특별한 기술은 필요 없습니다:

다음 단계는 움직임을 설명하는 것입니다:

마지막으로 마지막 프레임으로의 전환(transition)을 작성하세요

불행히도 실패했습니다:

Wan 2.2가 총의 위치는 포착했지만 포즈(pose)는 포착하지 못했습니다. 여기서 주요 원인은 타겟 이미지의 검은색 옷이 모델이 포즈를 "처리"하는 것을 방해하기 때문입니다. 다행히 Flux.2에서 이를 수정할 수 있습니다:

remove hair, remove clothes and draw this person bald and in skin tone underwear. Turn into white wireframe figure (머리카락 제거, 옷 제거, 이 사람을 대머리에 살구색 속옷을 입은 모습으로 그리기. 흰색 와이어프레임(wireframe) 피규어로 변환)

업데이트된 프롬프트로 Pose Control 워크플로우를 다시 실행합니다:

이번에는 결과가 훨씬 더 좋습니다:

이 지식을 활용하면 여러분의 특정 사례에 맞게 이 워크플로우를 조정할 수 있습니다.

워크플로우 링크 (권장되는 Wan 2.2 파인튜닝(finetune)에 대한 노트가 포함되어 있습니다)

몇 가지 팁:

  • 첫 번째 프레임과 마지막 프레임 사이에 눈에 띄는 대비(contrast)가 있을 때(예: 다른 머리카락 색상, 피부색, 배경 등) 전체 프로세스가 가장 잘 작동합니다. 다른 모델을 사용하여 포즈 참조 이미지를 전처리(pre-process)하여 와이어프레임(wireframe) 피규어 마네킹으로 변환하면 Wan 2.2가 포즈를 읽을 확률이 높아집니다.
  • 캐릭터 디자인의 일부 요소가 변경되는 경우(예: 장갑이 너무 빨리 사라지는 경향이 있음), 모델이 이 디자인 요소를 기억할 수 있도록 피사체 설명 프롬프트에 추가하세요.
  • 피사체 이미지와 포즈 참조 이미지의 크기가 다른 경우, "Camera zooms in capturing new view" 또는 "Camera zooms out capturing new view"를 추가해 보세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 r/StableDiffusion의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0