AI 탐구노트

FramePack : 긴 비디오 생성을 위한 입력 프레임 압축 기법 본문

AI 기술

FramePack : 긴 비디오 생성을 위한 입력 프레임 압축 기법

42morrow 2025. 5. 15. 16:40
728x90

 

비디오 생성 기술은 최근 인공지능 분야에서 크게 주목받고 있습니다. 특히, 연속적인 프레임을 예측해 비디오를 만드는 '다음 프레임 예측 모델(next-frame prediction models)'은 고화질의 자연스러운 영상을 생성하는 데 필수적인 기술입니다. 그러나 이러한 모델은 시간이 지남에 따라 초기 정보를 잊어버리는 문제(Forgetting) 와 오류가 누적되는 문제(Drifting) 로 인해 영상 품질이 저하되는 문제가 있었습니다.

오늘날 AI 트렌드는 모델의 성능을 높이기 위해 메모리를 강화하고자 하지만, 메모리를 강하게 하면 할수록 작은 오류도 빠르게 퍼져서 비디오 품질을 망칠 위험이 커집니다. 반대로 오류 전파를 줄이려고 과거 정보를 약하게 하면, 또 과거 상황을 잊어버려 영상이 엉망이 될 수 있습니다. 이러한 모순을 해결하기 위해 'FramePack'이라는 새로운 신경망 구조가 제안되었습니다. 이 기법은 입력 프레임을 압축하여 필요한 메모리 용량을 일정하게 유지하고, 오류가 퍼지는 것을 막는 새로운 샘플링 방식을 함께 적용하여 높은 품질의 긴 비디오 생성을 가능하게 합니다.


FramePack

1) 기존 방식의 문제점

 

전통적인 다음 프레임 예측 모델은 시간이 흐를수록 과거 정보를 점차 잊어버리고(망각), 작은 오류가 누적되어 품질이 떨어지는(드리프트) 문제가 있었습니다. 이를 막기 위해 더 많은 과거 프레임을 기억하려 하면, 메모리 사용량과 연산량이 급격히 늘어나 비효율적이었고, 프레임 간 중복 정보도 많아 불필요한 계산이 많았습니다.

 

2) 접근 방식

 

논문은 'FramePack'이라는 방법을 제안합니다. 이 방법은 입력 프레임들을 중요도에 따라 압축해서, 전체 메모리 사용량이 프레임 수에 상관없이 일정하게 유지되도록 합니다. 중요한 프레임은 더 자세히 보존하고, 덜 중요한 프레임은 압축해 공간을 아낍니다. 덕분에 더 많은 프레임을 효율적으로 다룰 수 있습니다.

 

또한, 'Anti-Drifting Sampling'이라는 새로운 샘플링 방법을 사용합니다. 전통적인 방법은 과거에서 미래로 차례차례 프레임을 생성했지만, 여기서는 미래 프레임부터 먼저 생성하거나, 중간을 채워나가는 식으로 진행합니다. 이렇게 하면 초기 오류가 뒤로 퍼지지 않도록 막을 수 있습니다.

 

 

3) 세부 적용 기술

 

1️⃣ FramePack 압축 구조

  • 프레임 중요도에 따른 압축 : 최근 프레임일수록 중요하다고 보고, 가까운 프레임은 자세히 보존, 먼 과거 프레임은 압축합니다.
  • 압축 비율 제어(λ) : 예를 들어, λ=2이면 프레임의 중요도가 2배씩 줄어들 때마다 압축 수준을 조정합니다.
  • Patchify 커널 : 입력 프레임을 패치로 나누는 과정에서 커널 크기를 조정하여 압축률을 다르게 합니다. (예: (1,2,2), (2,4,4) 등)
  • 독립적인 입력 프로젝션 레이어 : 각 압축 수준에 맞춘 별도의 입력 레이어를 두어 학습 안정성을 높였습니다.

그림 : FramePack의 다양한 압축 구조 예시

 

위의 그림은 다양한 입력 프레임 압축 구조를 보여주고 있습니다.

  • (a) 전형적인 기하급수 압축 (Typical geometric progression) : 최근 프레임 중요, 오래된 프레임 덜 중요 방식
  • (b) 압축 레벨 중복 (Progression with duplicated levels) : 압축 단계를 느리게 변화시키면서 비슷한 중요도의 프레임을 묶어서 저장하는 방식
  • (c) 시간 축 압축 (Geometric progression with temporal kernel) : 여러 프레임을 하나의 덩어리로 묶어 압축하는 방식
  • (d) 대칭 압축 (Symmetric progression) : '시작'과 '끝'이 둘 다 중요할 때 사용. 중간 프레임을 더 많이 압축하고 양 끝은 더 자세히 보존하는 방식
  • (e) 시작 프레임 중요 강조 (Progression with important start) : '사용자가 입력한 첫 장면'이 중요할 때 이를 특히 세밀하게 저장하는 방식

 

2️⃣ 다양한 FramePack 변형 구조

  • 중복 압축 레벨 : 비슷한 중요도의 프레임을 같은 수준으로 묶어 효율적으로 압축
  • 시간 축 압축 : 여러 프레임을 하나의 덩어리로 압축하여 시간 축 연산을 줄임
  • 시작/끝 프레임 중요도 강조 : 특히 첫 프레임이나 마지막 프레임에 더 많은 비중을 주는 구조도 가능

3️⃣ Anti-Drifting Sampling

  • 양방향 생성(Bi-Directional Context) 또는 역방향 생성(Inverted Sampling)을 이용해 프레임 품질 저하를 막고 일관성 있는 영상을 생성

그림 : 다양한 프레임 생성 순서 (Sampling 방법)

 

예로 위의 그림은 다양한 프레임 샘플링 방식을 보여 줍니다.

  • (a) 전통적 방법 (Vanilla) : 순서대로 한 프레임씩 차례로 예측. 초기 오류가 누적되어 뒤로 갈수록 품질 저하 발생 가능
  • (b) 양방향 생성 (Anti-drifting) : 처음과 끝 프레임 먼저 생성 후 중간 채우는 방식. 오류가 퍼지는 것을 줄일 수 있음
  • (c) 역방향 생성 (Inverted anti-drifting) : 영상의 끝부터 거꾸로 프레임 생성. 사용자가 제공한 이미지를 품질 기준으로 삼고 이 품질에 맞춰 영상을 생성. 가장 안정적이고 고품질 영상 생성이 가능함

 

4) 제약사항

 

FramePack은 이론상 매우 긴 비디오도 처리할 수 있지만, 현실적으로 프레임 수가 지나치게 많을 경우에는 아주 오래된 프레임이 거의 정보가 없는 상태로 남게 되어 추가 처리(삭제, 풀링 등)가 필요합니다.


 

FramePack은 비디오 생성 모델에서 오랜 시간 동안 기억을 유지하면서도 오류가 누적되지 않게 하는 혁신적인 방법을 제시했습니다. 입력 프레임을 중요도에 따라 압축하는 덕분에 긴 비디오를 생성할 때 필요한 연산량을 일정하게 유지할 수 있었고, 새로운 샘플링 방식으로 초기 오류가 퍼지는 것을 효과적으로 차단할 수 있었습니다. 이 방법은 기존의 비디오 생성 모델에 쉽게 적용할 수 있으며, 훈련 속도와 품질 모두를 향상시키는 장점이 있습니다.

 


 

참고자료

  • 사이트) FramePack 프로젝트 사이트 (링크)
  • 논문) Packing Input Frame Context in Next-Frame Prediction Models for Video Generation (링크)
  • 코드) FramePack github 저장소 (링크)
  • 데모) (링크)

Q&A

 

Q. FramePack이 왜 필요한가요?

FramePack은 프레임 수가 많아질수록 발생하는 메모리 폭발 문제를 해결하고, 긴 비디오를 효율적으로 생성하기 위해 필요합니다.

 

Q. FramePack은 기존 모델에 어떻게 적용하나요?

기존 비디오 생성 모델의 입력 부분에 FramePack 구조를 적용해 프레임을 압축하고, 새롭게 제안된 샘플링 방법을 사용하면 됩니다.

 

Q. Anti-Drifting Sampling이 중요한 이유는 무엇인가요?

기존 방식은 시간이 지날수록 오류가 누적되어 품질이 저하됐는데, Anti-Drifting Sampling은 초기 오류를 차단해 긴 비디오에서도 높은 품질을 유지할 수 있게 해줍니다.