이미지를 귀엽고 조종 가능한 캐릭터로 바꿔주는 로컬 실행 모델
Locally running mode turns an Image into a Cute Controllable Character you can Play as
핵심 요약
이미지를 실시간으로 조종 가능한 캐릭터로 변환하는 800M 파라미터 기반의 로컬 실행 모델 개발기입니다.
- 모델 성능 개선 — 이전 버전 대비 컨텍스트를 12개 레이턴트 프레임으로 늘리고 깜빡임 현상을 해결함
- 실시간 구동 — RTX 5090 환경에서 500M 모델 기준 60fps 이상의 속도로 실시간 구동 가능
- 인과적 확산 방식 — KV 캐시를 활용해 과거 프레임 정보를 저장하고 슬라이딩 윈도우로 컨텍스트를 관리함
- 향후 계획 — 모델 가중치 공개를 준비 중이며 현재 r/lucidmlx에서 관련 테스트 영상을 공유 중임
이건 지난번 게시물에 이은 후속작입니다!! 지난번에 정말 긍정적인 피드백을 많이 받아서 큰 힘이 됐어요.
이건 이전 모델의 800M 버전입니다. 여전히 문제는 많지만 가능성은 그대로예요. 소비자용 GPU에서 원활하게 작동합니다.
컨텍스트는 12개의 레이턴트 프레임으로 늘어났습니다. 지난번의 이상한 깜빡임 현상은 사라졌고요. 일관성은 형편없지만 안정성은 훨씬 좋아졌습니다. 다음 반복 학습에서 그 부분을 고쳐보려고 합니다. 500M 모델은 이제 RTX 5090에서 60fps 이상 나옵니다.
아키텍처는 그대로고, 주로 MLP를 좀 더 키웠습니다. 이번에도 디노이저는 diffusion forcing을 사용해 처음부터 학습시켰습니다.
LLM은 포워드 패스마다 토큰을 1개씩 샘플링해서 KV 캐시에 추가합니다. 그래서 KV 캐시가 바로 "컨텍스트"가 존재하는 곳이죠.
확산 모델(Diffusion Models)은 가이던스에 더 기반을 둡니다. 노이즈가 들어가면 모델이 디노이징 과정을 거치죠.
그래서 제 모델 같은 것들의 아이디어는 인과적 확산(causal diffusion)입니다. 프레임마다 디노이징 루프를 돌리고, 그걸 KV 캐시에도 추가하는 방식이죠. 즉, KV 캐시는 과거의 모든 프레임을 저장하는 저장소입니다.
하지만 약 20~30개의 레이턴트 프레임(제가 사용하는 사전 학습된 VAE 때문에 대략 80~120 픽셀 프레임 정도)까지만 학습했기 때문에, KV 캐시에서 슬라이딩 윈도우를 사용해 중간의 쓸모없는 프레임들을 제거해야 합니다. 그래야 모델이 "아, 내가 학습한 컨텍스트 내에서 작업할 수 있구나, 그 이상은 아니야"라고 생각하게 되니까요.
영상을 많이 올리고 있는데, 제가 시도하는 거의 모든 것을 lucidmlx라는 서브레딧에 올리고 있습니다.



