박준 · PARK JOON
프로젝트 / 연구·평가
연구·평가이미지→영상 생성캐릭터 일관성ComfyUIGPU 클라우드실험 설계

캐릭터 일관성 유지 AI 영상 반복 제작 시스템

직접 만든 2D 캐릭터의 화풍을 지키며 짧은 영상을 반복 생성하는 오픈웨이트 파이프라인 PoC와 실측

기간
2026.08
형태
연구 프로젝트
상태
프로토타입
역할
요구 분석·구축안 설계·GPU PoC·실험 설계와 측정 (1인)
재구성 목업 · 실제 화면이 아니라 흐름을 보여 주는 애니메이션입니다클릭하면 멈춤·재생
94~102%확정 처방(키프레임 사전 lanczos 축소+약한 언샤프) 적용 시 입력 대비 손 외곽선 복원율, 3개 컷 모두 재현(대조군 78~84%)
123초RTX 5090 기준 720×1280·5초 컷 1편 생성 시간(초기 환경 warm, 이후 환경에서는 141~147초)
90초OpenPose 제어 동작 이식 1편 생성 시간(애니메이트 모델 방식 225초)
13편PoC 단계에서 제작한 데모 영상

문제

직접 만든 2D 캐릭터를 가진 개인 의뢰자가 캐릭터의 그림체와 외형을 유지한 채 짧은 영상을 반복 제작하는 시스템을 원했습니다. 요청서에는 단발성 외주가 아니라 이후 직접 계속 쓸 시스템이어야 한다는 점이 두 번 강조돼 있었습니다.

상용 API, 임대 GPU, 자체 장비 중 무엇이 맞는지는 월 제작량과 캐릭터 외부 업로드 가능 여부에 달려 있었고, 품질 면에서는 생성 영상에서 손가락과 손-사물 접촉부가 무너지는 문제가 가장 큰 위험이었습니다.

접근

  • 구축 방식을 API 조합·클라우드 GPU 임대·로컬 장비 3안으로 나누고, 같은 GPU 등급을 임대해 실제 파이프라인을 돌려 하드웨어 등급과 운영 비용을 실측으로 판정했습니다.
  • 환경을 Docker로 정의해 클라우드에서 검증한 구성이 그대로 로컬 장비로 옮겨지도록 하고, 32GB VRAM 안에서 이미지 모델과 영상 모델을 바꿔 가며 메모리 초과 없이 도는지를 확인했습니다.
  • 손가락 품질 문제를 샘플링 설정·프롬프트·해상도·키프레임 설계·입력 전처리로 축을 나눠 실험하고, 결과를 영상 판정 모델과 객관 에지 지표로 함께 측정했습니다.
  • 한 컷에서만 나온 결과는 규칙으로 올리지 않고, 다른 컷에서 재현될 때만 확정 규칙으로 승격했습니다. 뒤집힌 결론은 의사결정 로그에 폐기 표시와 함께 남겼습니다.

구조

요구 분해요구 5개와 구축 3안을 정리하고, 안을 결정할 질문 6개를 도출합니다.
GPU 임대·구성RTX 5090 인스턴스에 Docker 기반 ComfyUI와 필요한 모델 6개를 올립니다.
기준 측정해상도별 생성 시간·VRAM과 판정 모델 평가로 상업용 최소 해상도를 정합니다.
원인 실험축별 실험 셀을 시드 여러 개로 돌려 손가락 품질의 지렛대를 찾습니다.
재현 확인다른 컷에서 같은 효과가 나는지 확인한 뒤 규칙으로 확정합니다.
구축 키트 검증백지 인스턴스에서 셋업 전체를 처음부터 돌려 결함을 찾습니다.

주요 기능

입력 전처리 처방영상 노드가 입력을 bilinear로 줄이는 지점을 소스에서 확인하고, 키프레임을 미리 lanczos로 축소한 뒤 약한 언샤프를 걸어 해상도·길이·VRAM·생성 시간 변화 없이 외곽선을 살립니다.
끝 키프레임 지정컵이 손에 순간이동하는 문제를 모델 교체 없이 끝 키프레임 설계를 바꿔 해결합니다.
동작 이식 경로 비교Canny 제어·OpenPose 제어·애니메이트 모델을 비교해 캐릭터 화풍을 지키는 경로와 편당 시간을 정리합니다.
재현 가능한 구축 키트Dockerfile·compose·셋업·모델 다운로드·벤치마크·VRAM 측정 스크립트를 묶어 같은 구성을 다른 장비에 옮길 수 있게 합니다.
규칙 장부확정·후보·폐기 규칙을 번호로 관리해, 다음 작업이 폐기된 전제 위에 서지 않도록 합니다.

결과

  • 720×1280 해상도에서 5초 컷을 편당 약 2~2.5분에 생성하는 파이프라인을 임대 GPU에서 동작시키고 데모 13편을 만들었습니다. 480p는 판정 모델 평가에서 형태 붕괴로 상업용 불가로 판정됐습니다.
  • 손가락 품질의 주원인이 해상도가 아니라 입력 축소 방식임을 확인했습니다. 같은 컷에서 해상도 상향 이득(+0.31)은 축소 필터 처방 이득(+6.28)의 약 1/20이었습니다. 첫 언샤프 설정은 과보정(입력 대비 160%)이어서 파라미터를 다시 맞췄고, 최종 처방은 3개 컷 모두에서 입력 대비 94~102%로 재현됐습니다.
  • 동작 이식에서 Canny 제어는 캐릭터가 실사 인물로 바뀌었고, OpenPose 제어는 캐릭터를 유지하며 편당 90초로 가장 빨랐습니다.
  • 백지 인스턴스 재검증에서 구축 키트 결함 8건(치명 3건)을 찾았고, 다운로드 도구를 aria2c로 바꾸면 같은 파일 수신이 62분에서 40초로 줄어드는 것을 확인했습니다.
  • PoC와 실측까지 진행해 구조의 실현 가능성과 한계를 확인했습니다.

포인트

이 작업에서 결론이 여러 번 뒤집혔습니다. 한 컷에서 통한 프롬프트 규칙이 다른 컷에서는 통하지 않았고, 영상 판정 모델이 비트 단위로 동일한 영상에 서로 다른 등급을 준 일도 있었으며, 측정 영역을 잘못 잡아 결론 3개가 한꺼번에 뒤집힌 적도 있습니다. 그래서 규칙은 다른 컷 재현을 거쳐서만 확정하고, 판정 모델은 단독 근거로 쓰지 않으며 객관 지표와 측정 영역을 눈으로 확인하는 절차를 함께 두는 쪽으로 바꿨습니다.

프롬프트나 해상도보다 «입력을 파이프라인에 어떻게 넣는가»가 품질을 좌우했습니다. 생성 모델 앞단의 전처리 코드를 직접 읽어 본 것이 비용 증가 없는 개선으로 이어졌습니다.

기술

Wan 2.2 이미지→영상(14B fp8)ComfyUI4스텝 증류 LoRAOpenPose 제어DockerRTX 5090 임대 GPUGemini 영상 분석(QA)Pythonaria2c

상단 영상은 실제 화면이 아니라 구조를 보여 주는 재구성 목업입니다.