넷플릭스의 새로운 AI 모델, 영상 속 배우를 흔적 없이 지워버립니다 (VOID 모델 분석)

BBetter Stack
컴퓨터/소프트웨어영화사진/예술AI/미래기술

Transcript

00:00:00세상에, 좀 슬퍼 보이네요. 불쌍한 케이트 윈슬렛, 맙소사. 그냥 저기 혼자 서 있어요,
00:00:09잭도 없이요.
00:00:11넷플릭스가 방금 '비디오 객체 및 상호작용 삭제' 혹은 VOID라고 불리는
00:00:17매우 흥미로운 오픈 소스 AI 도구를 출시했습니다.
00:00:19대부분의 AI 비디오 도구는 이미 사물을 지우는 데 탁월합니다. 새로운 건 아니죠.
00:00:24하지만 장면 속에서 그 사물이 사라졌을 때의 결과물을 처리하는 데는 서툽니다.
00:00:29예를 들어, 볼링공이 핀을 치는 장면을 지우면 대부분의 모델은 핀이
00:00:34아무 이유 없이 쓰러지게 내버려 두지만, VOID는 이 문제를 해결하려고 합니다.
00:00:39넷플릭스와 Insight가 개발한 이 새로운 프레임워크는 인과관계를 이해하고
00:00:44제거된 객체에 따라 비디오 콘텐츠를 수정합니다.
00:00:47그래서 이번 영상에서는 이 모델을 자세히 살펴보고 작동 원리를 알아보겠습니다. 제가 사실
00:00:52이 모델의 성능을 제대로 테스트하기 위해 웹 앱을 만들었거든요. 직접 몇 가지
00:00:57비디오 테스트를 진행해 보겠습니다.
00:00:58정말 재미있을 것 같으니 바로 시작해 보죠.
00:01:05VOID는 'Video Object and Interaction Deletion'의 약자입니다.
00:01:09이게 왜 대단한 일인지 이해하려면 보통의 비디오 인페인팅이
00:01:15어떻게 작동하는지 봐야 합니다.
00:01:16표준 AI 지우개는 기본적으로 성능이 대폭 강화된 '내용 인식 채우기'입니다.
00:01:20빈 공간 주변의 픽셀을 보고 그 자리에 무엇이 있어야 할지 추측하죠.
00:01:24이 방식은 워터마크나 가만히 서 있는 사람에게는 효과적이지만,
00:01:29물리적 상호작용이 발생하는 순간 무너집니다.
00:01:31만약 믹서기로 스무디를 만드는 여자를 지우면, 일반 AI는 사람은 지우겠지만
00:01:36믹서기가 아무 이유 없이 계속 돌아가며 소용돌이치는 모습은 남겨둘 것입니다.
00:01:40겉모습은 수정하지만 주변 사물의 물리학적 법칙은 무시하는 것이죠.
00:01:46VOID는 '반사실적 현실'을 재구상함으로써 이러한 유령 상호작용 문제를 해결하도록 설계되었습니다.
00:01:53기본적으로 해당 사물이나 사람이 애초에 존재하지 않았던 버전의
00:01:57비디오를 만드는 것입니다.
00:01:58그리고 이 일을 해내는 방식이 꽤 영리합니다.
00:02:01그냥 즉시 그림을 그리기 시작하는 게 아닙니다.
00:02:03대신 '2단계 시스템'을 사용합니다.
00:02:06첫 번째 단계에서는 추론 단계를 거칩니다.
00:02:08먼저 VOID는 시각 언어 모델과 SAM2(Segment Anything Model 2)를 사용하여
00:02:15장면을 파악합니다.
00:02:16사실 SAM2가 어떻게 작동하는지에 대해 별도의 영상을 찍었으니 궁금하시면 확인해 보세요.
00:02:22SAM2가 제거하려는 대상의 픽셀 단위 궤적을 만드는 동안, AI는
00:02:28스스로에게 묻습니다. "이걸 지우면 또 무엇이 변할까?"
00:02:32도미노 쌓기에서 도미노 하나를 제거하면, AI는 다른 도미노들이 인과적으로
00:02:38영향을 받는다는 것을 식별합니다.
00:02:39그런 다음 연구진이 "Quad Mask"라고 부르는 것을 생성하는데, 이는 확산 모델에게
00:02:44어디를 지워야 할지뿐만 아니라 주변 영역의 물리 법칙을 어디서부터
00:02:50다시 써야 할지 알려주는 특수한 맵입니다.
00:02:51그다음 두 번째 단계는 생성 및 정교화입니다.
00:02:54해당 맵이 생성되면 비디오 확산 모델이 새로운 영상을 생성합니다.
00:03:00때때로 이런 모델들은 사물이 변형되거나 형태를 잃는 등 몽환적으로 변할 수 있습니다.
00:03:05이를 해결하기 위해 VOID에는 선택적인 두 번째 단계가 있습니다.
00:03:08필터링을 위해 'flow warp noise'라는 것을 사용하여 형태를 고정합니다.
00:03:14물리 법칙은 변하더라도 남은 사물들은 고정되고 일관되게 유지되도록 보장하는 것이죠.
00:03:19그런데 궁금하실 겁니다. 일어나지 않은 일을 AI에게 어떻게 가르칠까요?
00:03:23넷플릭스와 Insight 팀은 학습 데이터를 얻기 위해 자동차 사고를 촬영한 뒤
00:03:28현실에서 사고 전으로 되돌릴 수는 없었습니다.
00:03:30대신 'Kubric' 같은 합성 환경을 사용했습니다.
00:03:34그들은 전과 후의 버전이 있는 수천 개의 물리 시뮬레이션을 실행했습니다.
00:03:40충돌이 있는 버전과 물체가 아예 없었던 버전 말이죠.
00:03:44AI에게 두 버전을 모두 보여줌으로써 물체의 존재와
00:03:49그것이 환경에 미치는 영향 사이의 관계를 학습시켰습니다.
00:03:51매우 흥미로운 이야기지만, 이제 이 도구를 직접 테스트해 보겠습니다.
00:03:57실행하기 가장 좋은 방법은 H100 GPU나 그에 준하는 사양에서 돌아가는
00:04:02RunPod 모듈 같은 클라우드 GPU를 사용하는 것입니다.
00:04:05하지만 미리 말씀드리자면, 설정하는 게 전혀 간단하지 않습니다.
00:04:10깃허브(GitHub) 문서에는 빠진 내용도 많고 잘못된 정보도 있습니다.
00:04:14그래서 제대로 작동시키려면 주의해야 할 몇 가지 사항이 있습니다.
00:04:18예를 들어, 이 명령은 실패할 확률이 높은데 이 과정에
00:04:23SAM3 모델이 필요하다는 것을 명시하지 않았기 때문입니다.
00:04:25또한 쿼드 마스크의 이름이 반드시 quad_mask_0.mp4여야
00:04:30정상적으로 작동한다는 점을 명시하지 않아 이 명령도 실패할 수 있습니다.
00:04:35문서화되지 않은 이런 사소한 문제들이 아주 많습니다.
00:04:38그리고 그들의 Gradio 데모는 SAM2로 분할된 마스크가 이미 있다면 좋지만,
00:04:44실제로 그 마스크를 생성할 수 있는 그래픽 사용자 인터페이스(GUI)를 제공하지 않습니다.
00:04:48그래서 제가 이런 문제들을 모두 해결하고, 세분화 단계부터 추론 단계,
00:04:54그리고 2단계 시스템까지 모두 거칠 수 있는 바로 사용 가능한
00:05:00맞춤형 웹 앱을 구축했습니다.
00:05:02비디오를 업로드하고 마스크를 분할한 뒤 최종 결과물을 렌더링하기만 하면 됩니다.
00:05:07그 과정을 지금 바로 보여드리겠습니다.
00:05:09우선 고성능 GPU가 장착된 RunPod 인스턴스를 구동해야 합니다.
00:05:14이번 테스트에서는 H100을 사용하겠습니다.
00:05:17템플릿 섹션에서 컨테이너 크기를 100GB로 늘려야 한다는 점 잊지 마세요.
00:05:22그리고 포트 섹션에 8998 포트를 추가합니다. 여기가 바로
00:05:27우리 웹 앱이 노출될 곳이기 때문입니다.
00:05:29그다음은 포트에 SSH로 접속해서 제 레포를 클론하고, 해당 디렉토리로 이동해 run.sh
00:05:36명령을 실행하기만 하면 됩니다.
00:05:38모델을 실제로 다운로드하기 위해 허깅 페이스(Hugging Face) 토큰을 제공하라는 메시지가 뜰 것이고,
00:05:42SAM3 저장소에 대한 접근 권한이 있는지도 확인하세요. 이것은 접근이 제한된
00:05:48모델이라서 사용 허가를 요청해야 하거든요.
00:05:51보통 과정은 꽤 빠르고 몇 분 안에 승인이 납니다.
00:05:55그리고 제미나이(Gemini) API 키도 필요합니다. 세분화 단계에서 모델이
00:06:00정밀한 쿼드 마스크 생성을 위한 포즈 추정에 제미나이를 사용하기 때문입니다.
00:06:06좋습니다.
00:06:07두 자격 증명이 모두 준비되었다면 run.sh 명령이 모든 것을 설치하게 두세요.
00:06:13설치가 완료되면 이제 여기 명시된 명령어로
00:06:18웹 앱을 실행할 수 있습니다.
00:06:19이제 RunPod 페이지에서 해당 포트를 클릭하면
00:06:24우리의 웹 앱이 열립니다.
00:06:25이제 마침내 모델 테스트를 시작할 수 있습니다.
00:06:28첫 번째 테스트로 매트릭스의 이 유명한 장면을 사용하여
00:06:32네오를 장면에서 지우면 어떤 일이 일어나는지 보겠습니다.
00:06:35가장 먼저 해야 할 일은 제거 지침 프롬프트를 지정하는 것입니다.
00:06:41이 경우에는 "장면에서 흰색 기모노를 입은 격투가를 제거해 줘"
00:06:45같은 내용을 적으면 됩니다.
00:06:46그다음은 제거하고 싶은 물체나 사람 주변에 점을 찍어 세분화하는
00:06:51섹션입니다. SAM2 모델이 어떤 형태에 집중해야 할지 알 수 있게 말이죠.
00:06:57그 후 결과 파일이 저장될 출력 폴더를 지정합니다.
00:07:02이 폴더의 이름을 기억해야 합니다. 다른 탭에서 우리가 작업 중인 비디오를
00:07:06식별하는 고유 식별자로 사용될 것이기 때문입니다.
00:07:11그 후 두 번째 탭으로 넘어가면 세분화 단계를 실행하고
00:07:16프로세스를 진행합니다.
00:07:17완료되면 추론 단계인 세 번째 탭으로 이동합니다. 여기서
00:07:22모델이 실제로 원하는 물체나 사람을 제거하려고 시도합니다.
00:07:26여기서 아까 그 폴더 이름을 다시 입력해야 합니다.
00:07:29그리고 제거된 물체나 사람이 없는 상태의 비디오가
00:07:34어떤 모습이어야 하는지 설명하는 프롬프트를 입력해야 합니다.
00:07:37우리의 경우, "체육관 안에 서 있는 어두운 기모노를 입은 격투가"
00:07:42정도가 되겠네요.
00:07:43제거된 대상에 대해서는 언급하지 말고, 비디오에 무엇이 있어야
00:07:48하는지에만 집중해서 추론 단계를 실행하라고 권장하더군요.
00:07:52완료되면 이제 결과 탭으로 가서 최종 영상을 볼 수 있습니다.
00:07:58다시 한번 비디오 폴더를 지정해 줍니다.
00:08:01자, 보세요.
00:08:03세상에.
00:08:04네, 모피어스가 유령과 싸우는 것처럼 보이네요.
00:08:07손이 제거된 부분 등 몇 가지 일관되지 않은 부분을 볼 수 있습니다.
00:08:12완벽하진 않지만, 개선하기 위해 할 수 있는 일이 하나 더 있습니다.
00:08:18네 번째 탭에서 두 번째 단계 필터를 실행하여 더 나은 결과를 얻을 수 있습니다.
00:08:24두 번째 단계를 실행하고 나면, 두 번째 단계의 결과가
00:08:29표시되는 추가 창이 뜹니다.
00:08:32그런데 다시 봐도 여전히 좀 이상하긴 하네요.
00:08:34여전히 모피어스가 유령과 싸우거나 춤을 추는 것처럼 느껴집니다.
00:08:39보시다시피 모든 장면에 다 잘 통하는 것은 아닙니다.
00:08:42어떤 장면은 매우 이상하겠지만, 장면에서 네오를
00:08:48완전히 제거하는 일은 꽤 잘 해냈습니다.
00:08:49그건 그렇고, 재미있는 예시를 두 개 더 해보죠.
00:08:53여기는 라라랜드의 유명한 춤 장면입니다.
00:08:56여기서 엠마 스톤을 장면에서 제거하면 어떻게 될지 보겠습니다.
00:09:01와, 저것 좀 보세요.
00:09:03거의 흠잡을 데가 없어 보입니다.
00:09:05라이언 고슬링이 혼자 춤추고 있다는 게 정말 믿겨지네요.
00:09:09엠마 스톤이 라이언 고슬링 앞으로 지나가는 순간을 보세요.
00:09:13이 전환이 거의 매끄럽습니다.
00:09:15약간의 흔적은 보이지만 대부부은, 와, 정말 놀라운 결과네요.
00:09:21제가 테스트한 모든 결과 중에서 이게 가장 훌륭했습니다.
00:09:24어떤 면에선 이게 실행하기 가장 어려운 예시일 거라고 생각했거든요.
00:09:28하지만 놀랍게도 제가 한 모든 테스트 중에서 가장 좋은 결과를 냈습니다.
00:09:33좋습니다.
00:09:34한 가지 예시를 더 해보고 싶네요.
00:09:35이번에는 유명한 타이타닉 장면에서 레오나르도 디카프리오를 제거하면
00:09:41어떻게 될지 보겠습니다.
00:09:42오, 세상에, 좀 슬퍼 보이네요.
00:09:48불쌍한 케이트 윈슬렛.
00:09:49맙소사.
00:09:50잭도 없이 그냥 저기 혼자 서 있어요.
00:09:53흥미롭네요.
00:09:55이 모델이 장면에서 레오를 제거하는 일을 아주 잘 해냈다는 걸 알 수 있습니다.
00:09:59비록 케이트 윈슬렛의 팔에 약간의 흔적이 남아 있긴 하지만요.
00:10:03그리고 맙소사, 이건 너무 오싹하네요.
00:10:06반대편에 케이트의 팔을 잡고 있는 기괴한 손이 여전히 남아 있어요.
00:10:10안 돼요.
00:10:11이제 계속 생각날 것 같아요.
00:10:14솔직히 이건 제 실수입니다. 세분화 단계에서 제거를 위해
00:10:19해당 지점들을 구체적으로 지정하지 않았거든요.
00:10:21제 탓이죠.
00:10:23그리고 케이트 윈슬렛의 얼굴도 약간 변하는 걸 볼 수 있습니다.
00:10:26확실히 '불쾌한 골짜기' 현상이 좀 일어나고 있네요.
00:10:30전반적으로 이 도구는 광고하는 기능을 제대로 수행한다고 생각합니다.
00:10:33다만 특정 비디오의 성격에 따라 결과가 다를 뿐이죠.
00:10:37당연히 이 장면에서 모피어스가 가만히 서 있게 강제할 수는 없으니까요.
00:10:41하지만 프로젝트 페이지의 다른 예시들을 보면 정말 믿기 힘들 정도로 훌륭합니다.
00:10:46그래서 이 모델은 확실한 잠재력이 있고, 추가 학습을 거치면
00:10:51훨씬 더 좋아질 수도 있을 것 같습니다.
00:10:52자, 여기까지입니다 여러분.
00:10:53이게 바로 VOID 모델의 핵심입니다.
00:10:55솔직히 이걸 테스트하면서 정말 즐거웠습니다.
00:10:58넷플릭스에서 개발한 만큼, 과연 이걸 어디에 사용할지
00:11:03정말 궁금하네요.
00:11:04사용자의 취향이나 선택에 따라 비디오 서사를 바꾸는 데 쓰일 수 있을까요?
00:11:09넷플릭스가 '블랙 미러: 밴더스내치'에서 보여주었던 것 같은
00:11:15사용자 선택형 상호작용 경험처럼 말이죠.
00:11:17기억하시나요?
00:11:18누가 알겠어요?
00:11:19어쨌든 앞으로 이 도구가 어떻게 발전해 나갈지 지켜보는 것은
00:11:23매우 흥미로울 것입니다.
00:11:24자, 이 프레임워크에 대해 어떻게 생각하시나요?
00:11:27이 도구가 어떤 상황에서 유용하게 쓰일까요?
00:11:30아래 댓글 섹션에 여러분의 생각을 알려주세요.
00:11:33여러분, 이런 기술적인 분석이 마음에 드셨다면 영상 아래의
00:11:37좋아요 버튼을 꾹 눌러서 알려주세요.
00:11:39그리고 저희 채널 구독하는 것도 잊지 마시고요.
00:11:42지금까지 Better Stack의 Andres였고, 다음 영상에서 뵙겠습니다.

Key Takeaway

넷플릭스의 VOID 모델은 객체 제거 시 SAM2와 Quad Mask를 결합한 2단계 시스템을 통해 단순한 픽셀 복원을 넘어 물리적 인과관계가 유지되는 반사실적 영상을 생성합니다.

Highlights

  • VOID(Video Object and Interaction Deletion)는 넷플릭스와 Insight가 공동 개발한 오픈 소스 AI 모델로, 영상 속 객체 제거 시 발생하는 인과관계 오류를 해결합니다.

  • 표준 AI 인페인팅 방식이 픽셀 채우기에만 집중하는 것과 달리, VOID는 객체가 사라진 후 주변 사물의 물리적 반응까지 재계산하여 영상을 수정합니다.

  • 모델 학습을 위해 Kubric 합성 환경을 사용하여 객체 충돌이 있는 버전과 아예 존재하지 않는 버전의 물리 시뮬레이션 데이터 수천 개를 비교 학습했습니다.

  • VOID는 SAM2(Segment Anything Model 2)를 사용하여 객체의 궤적을 추적하고, 확산 모델에게 물리 법칙 재작성 범위를 지시하는 Quad Mask 맵을 생성합니다.

  • 실제 테스트 결과 영화 '라라랜드'의 복잡한 춤 장면에서 인물을 제거했을 때 배경과의 폐쇄(Occlusion) 관계를 매끄럽게 처리하는 높은 정밀도를 보였습니다.

Timeline

기존 비디오 인페인팅의 한계와 VOID의 등장

  • 표준 AI 지우개는 주변 픽셀을 복제하는 방식이라 물리적 상호작용이 있는 장면에서는 오류를 발생시킵니다.
  • 볼링공을 지워도 핀이 쓰러지거나 믹서기 안의 내용물이 계속 회전하는 유령 상호작용 현상이 대표적인 결함입니다.
  • VOID는 객체가 애초에 존재하지 않았던 '반사실적 현실'을 구현하여 물리 법칙의 일관성을 유지합니다.

대부분의 영상 편집 AI는 정적인 사물이나 워터마크 제거에는 능숙하지만 움직이는 물체 사이의 인과관계를 이해하지 못합니다. 넷플릭스는 이러한 문제를 해결하기 위해 물리적 상호작용까지 함께 삭제하거나 수정하는 새로운 프레임워크를 개발했습니다. 이를 통해 제거된 대상이 주변 환경에 끼친 영향까지 자연스럽게 지워진 결과물을 얻습니다.

물리 법칙을 재작성하는 2단계 시스템의 작동 원리

  • 1단계 추론 과정에서 SAM2와 시각 언어 모델을 활용해 객체의 픽셀 단위 궤적과 인과 관계를 파악합니다.
  • Quad Mask는 확산 모델에게 수정이 필요한 영역과 물리 법칙을 다시 써야 할 범위를 안내하는 특수 맵 역할을 수행합니다.
  • 2단계 생성 과정에서는 flow warp noise를 적용하여 영상의 형태가 몽환적으로 변형되는 현상을 방지하고 일관성을 확보합니다.

단순한 삭제가 아니라 장면 전체를 분석하는 추론 단계를 거칩니다. 도미노 하나를 뺐을 때 나머지 도미노에 미치는 영향을 AI가 스스로 질문하고 답하는 방식입니다. 학습 과정에서도 현실에서 불가능한 사고 전후 데이터를 얻기 위해 Kubric 시뮬레이션 기반의 합성 데이터를 활용하여 존재 유무에 따른 환경 변화를 익혔습니다.

로컬 환경 구축 및 실행 시 주의사항

  • H100 GPU 이상의 클라우드 환경과 최소 100GB 이상의 컨테이너 용량이 필요합니다.
  • 허깅 페이스의 SAM3 모델 접근 권한 승인과 포즈 추정을 위한 제미나이(Gemini) API 키가 필수적입니다.
  • 공식 문서의 누락된 명령어나 특정 파일명(quad_mask_0.mp4) 강제 규정 등 설정 과정의 기술적 장벽이 존재합니다.

VOID는 오픈 소스로 공개되었지만 설정 과정이 매우 복잡하며 고사양 하드웨어를 요구합니다. 원활한 구동을 위해서는 전용 웹 앱 구축이 효율적이며 특히 8998 포트 설정과 같은 네트워크 환경 구성이 선행되어야 합니다. 추론 단계에서 정밀한 쿼드 마스크를 생성하기 위해 제미나이 API가 포즈 추정에 활용되는 특징이 있습니다.

실제 영화 장면을 활용한 성능 테스트와 한계

  • 영화 '라라랜드' 테스트에서는 춤추는 인물이 다른 인물 앞을 지나가는 복잡한 가림 현상을 거의 완벽하게 처리했습니다.
  • 영화 '매트릭스'의 격투 장면처럼 역동적인 상호작용이 밀집된 경우 손의 잔상이 남는 등 일관성 문제가 발생할 수 있습니다.
  • 프롬프트 입력 시 제거할 대상을 언급하지 않고 남아있어야 할 배경 요소에만 집중하는 것이 더 나은 결과물을 만듭니다.

네오를 지운 매트릭스 장면에서는 모피어스가 유령과 싸우는 듯한 기괴한 연출이 나타났으며 타이타닉 장면에서는 미처 지정하지 못한 손의 흔적이 남기도 했습니다. 이는 사용자 지정 세분화의 정밀도에 따라 결과가 달라짐을 보여줍니다. 넷플릭스는 이 기술을 향후 시청자의 선택에 따라 실시간으로 영상 서사가 바뀌는 상호작용형 콘텐츠에 활용할 가능성이 높습니다.

Community Posts

View all posts