← 網誌 · 정지 사진 한 장이 6초 반복 영상이 되기까지: 구현 세부와 밟은 함정

정지 사진 한 장이 6초 반복 영상이 되기까지: 구현 세부와 밟은 함정

원리 해설이 아니라 구현 이야기입니다. 사진이 들어가서 영상이 나오기까지 각 단계가 무엇을 하는지, 그리고 그럴듯해 보이던 선택 중 실제로 재보니 틀렸던 것은 무엇인지.

2026-08-20 作者 William Hsu

這篇講什麼
  1. 전체 흐름
  2. 핑퐁 루프
  3. 재보고 나서야 틀렸다고 알게 된 세 가지
  4. 실패 처리가 더 손이 많이 간다

전체 흐름

  1. 수신과 검사: 형식과 크기를 확인하고 콘텐츠 안전 검사를 한 번 돌립니다. 사람 동작이면 얼굴 검출도 돌립니다. 사진이 새인데 사람 동작을 고르면 모델이 없던 사람을 만들어 냅니다.
  2. 인코딩: 사진과 동작 지시문을 함께 부호화합니다. 가장 오래 걸리는 단계로 20초 가까이 걸립니다.
  3. 샘플링: turbo LoRA 덕분에 단 4스텝.
  4. 디코딩: 결과를 이미지 프레임으로 디코딩해 73프레임을 얻습니다.
  5. 후처리: 24fps에서 73프레임은 3.04초. 정방향과 역방향을 이어 6.08초 동안 끊김 없이 반복되는 영상이 됩니다.

왜 73프레임일까요? 이 모델의 프레임 수는 17n+5여야 하고, 3초 근처에서 쓸 수 있는 값은 73뿐입니다. 논문에는 없고, 구현하다 부딪혀서 알게 된 사실입니다.

잘못된 예: 사진은 새인데 사람 동작을 골라서 모델이 사람을 만들어 냈습니다(같은 사진에 동물 동작을 고르면 정상)

핑퐁 루프

생성된 3초짜리 영상은 앞뒤가 잘 맞지 않아서 그대로 반복하면 눈에 띄게 끊깁니다. 정방향으로 한 번, 역방향으로 한 번 이어 붙이면 양 끝이 같아지고 이음매가 보이지 않습니다.

완성 예: 6.08초 핑퐁 루프, 이어지는 부분이 보이지 않습니다

대신 왔다 갔다 하는 느낌이 생기므로 방향이 뚜렷한 동작은 피해야 합니다. "손 흔들기"는 괜찮습니다. 손은 원래 돌아오니까요. "돌아보기"는 돌아본 뒤 멈추도록 설계해야 합니다. 안 그러면 역재생에서 고개를 다시 돌려버립니다.

재보고 나서야 틀렸다고 알게 된 세 가지

1. "카메라를 움직이지 마"라고 할수록 배경 변위가 더 커진다

지시문에 "camera does not move"를 넣고 싶어집니다. 실측 결과는 반대였습니다. 그 문장을 넣으니 배경 변위량이 6.6에서 39.2로 나빠졌습니다. 아마 그 표현 자체가 모델의 주의를 "카메라"라는 개념으로 끌고 가기 때문일 겁니다. 최종 지시문은 카메라를 아예 언급하지 않고 인물의 동작만 씁니다.

2. 모델에게 액자를 그리게 하면 삐뚤어진다

원래는 결과물에 복고풍 액자를 넣으려 했습니다. 모델은 그릴 수 있지만 매번 모양이 다르고 좌우도 안 맞습니다. 웹 쪽 CSS로 덧씌우는 방식으로 바꾸니 액자는 항상 정확하고, 사용자가 언제든 바꾸거나 없앨 수 있으며, 내려받는 파일도 깨끗하게 남습니다.

3. 저해상도 사진이 반드시 망가지지는 않는다

너무 작은 사진은 안 될 거라 짐작하고 안내 페이지에도 그렇게 적었습니다. 실제로 96픽셀짜리로 시험해 보니 잘 움직였습니다. 세부가 뭉개질 뿐이었습니다. 제 주장을 제가 뒤집고 안내 페이지도 고쳤습니다.

실패 처리가 더 손이 많이 간다

모델을 돌리는 데 쓴 시간은 일부일 뿐이고, 나머지는 현실 세계의 사고를 처리하는 일이었습니다.

어느 것도 모델의 문제가 아니지만, 하나하나가 사용자에게는 "이 사이트 고장 났네"로 보입니다.

這篇文章寫的是本站實際的實作與量測。工具本身在老照片動起來與變老變年輕,都可以直接試。

← 上一篇為什麼你上傳的照片不該留在雲端:一天被掃描 417 次的實際紀錄

看其他文章