멀티모달 생성형 시각 AI 이해하기

VVercel
AI/미래기술마케팅/광고사진/예술

Transcript

00:00:00많은 분들이 와주셔서 반갑습니다.
00:00:02서두에서 말씀드렸듯이,
00:00:04이미지 생성 및 편집을 위한 저희 모델 제품군인 Flux에 대해 자세히 설명해 드리겠습니다.
00:00:13(작동하는지 확인하는 뉘앙스) 잘 되나요?
00:00:16저는 Black Force Labs의 공동 창립자 앤디입니다.
00:00:22모델에 대해 설명하기 전에 저희가 어떤 일을 하는지 간략하게 소개해 드리고자 합니다.
00:00:29Black Force Labs는 미래에 시각 미디어가 인간 소통의 중심 인터페이스가 될 것이라고 믿습니다.
00:00:39저희는 사람들이 서로 소통하는 데 사용할 모든 이미지와 비디오를 구동하는 핵심 인프라 제공자로서,
00:00:48카메라가 포착할 수 있는 것을 넘어 훨씬 더 많은 것을 제공하고자 합니다.
00:00:54이러한 비전을 가지고 2024년 8월에 회사를 설립했습니다.
00:01:00그 이후로 직원 수는 45명으로 늘었으며, 두 개의 본사에 분산되어 있습니다.
00:01:07주요 본사는 독일 블랙 포레스트의 프라이부르크에 있으며, 샌프란시스코에도 사무실이 있습니다.
00:01:152024년 8월 회사 설립과 함께 이미지 생성 제품군인 Flux를 출시한 이래로,
00:01:22저희는 항상 세 가지 계층으로 출시를 구성하고 모델 제품군을 지속적으로 발전시켜 왔습니다.
00:01:31그 계층은 다음과 같습니다.
00:01:33프로 모델이 있습니다.
00:01:35이 모델들은 매우 강력하고 저희가 제공하는 가장 빠른 모델입니다.
00:01:41VFL API를 통해서만 사용할 수 있으며,
00:01:45File 및 Replicate와 같은 몇몇 추론 파트너를 통해서도 제공됩니다.
00:01:52아마 여러분도 아실 겁니다.
00:01:54통합이 매우 쉽고 거의 즉시 대규모 볼륨으로 확장할 수 있습니다..
00:02:03이것이 첫 번째 계층이지만,
00:02:05아시다시피 저와 공동 창립자들은 오늘 저희를 초대한 분과 마찬가지로 오픈 소스에 깊은 뿌리를 두고 있습니다.
00:02:13저희는 또한 Stable Diffusion의 원 개발자이기도 합니다.
00:02:19저희는 여전히 그 정신을 고수하고 있습니다.
00:02:22저희는 오픈 소스 커뮤니티를 사랑하며, 그래서 오픈 웨이트 및 오픈 소스 모델도 제공합니다..
00:02:29Flux Dev 모델도 있습니다.
00:02:32이 모델들은 공개적으로 다운로드하여 자유롭게 활용할 수 있습니다.
00:02:37완전히 맞춤 설정이 가능하며, 사용하고자 하는 모든 사람에게 많은 유연성을 제공합니다.
00:02:45마지막으로 Flux Schnell 모델이 있습니다.
00:02:49이 모델들은 완전한 오픈 소스이며, Flux 생태계로 진입하는 완벽한 시작점이라고 할 수 있습니다.
00:02:57생태계에 대해 말하자면,
00:02:59Hugging Face의 모델 아틀라스(다양한 분야에서 가장 많이 사용되는 오픈 소스 기반 모델을 시각화한 것)를 보면,
00:03:09Hugging Face에서 가장 큰 생태계를 가진 단일 모델이 바로 저희 Flux Dev 모델임을 알 수 있습니다.
00:03:19이는 Flux가 이미 개방형 이미지 생성의 표준이 되었음을 분명히 보여줍니다.
00:03:25물론, 저희는 앞으로도 배포를 더욱 발전시키고 확장할 계획입니다.
00:03:30회사 소개는 여기까지입니다.
00:03:33(장비 확인) 아직도 안 되나요?
00:03:35어쨌든.
00:03:36이제 강연의 주요 부분으로 넘어가겠습니다..
00:03:41여러분과 함께 Flux,
00:03:43특히 텍스트-이미지 생성과 편집을 통합한 최신 모델인 Flux Context에 대해 자세히 알아보고자 합니다.
00:03:52오늘은 이것을 어떻게 통합하는지에 대해 이야기하겠습니다..
00:03:56그 전에 몇 가지 말씀드리겠습니다.
00:03:59이 통합 모델을 갖는 것이 매우 중요하다고 생각합니다.
00:04:04이미지 생성은 분명히 많은 훌륭한 응용 분야를 가지고 있으며 지난 한 해 동안 이를 보아왔지만,
00:04:11이미지 편집은 올해까지는 개발 속도가 그에 미치지 못했습니다.
00:04:16이미지 편집은 사실 매우 중요한 사용 사례입니다.
00:04:20기존 이미지를 반복적으로 수정할 수 있게 해주며,
00:04:24사람들이 이미지를 정밀하게 수정할 수 있는 추가적인 제어 수준을 제공한다고 생각합니다.
00:04:31이것은 매우 중요합니다.
00:04:33Flux Context를 통해 저희는 이미지 편집의 결정적인 순간을 만들었습니다.
00:04:402025년 6월에 출시되었습니다.
00:04:43이 모델은 이미지 생성과 캐릭터 일관성,
00:04:46스타일 참조,
00:04:47로컬 편집 등 편집에 필요한 모든 기능을 거의 실시간 속도로 결합합니다.
00:04:53이것은 나중에 살펴보겠습니다..
00:04:57좋은 예시로, 여기 이미지 한 줄을 가져왔습니다.
00:05:01왼쪽에서 오른쪽으로, 먼저 입력 이미지로 시작합니다.
00:05:04그런 다음 모델에 그녀의 얼굴에서 이 물체를 제거하도록 지시하고,
00:05:09캐릭터의 일관성을 유지하면서 완전히 새로운 맥락에 그녀를 배치할 수 있습니다.
00:05:15이것은 매우 중요합니다.
00:05:16과거에는 공개된 텍스트-이미지 모델을 기반으로 이러한 캐릭터 일관성을 모델에 구현하기 위해 많은 미세 조정 작업이 필요했지만,
00:05:26이 즉각적인 이미지 편집 기능 덕분에 항상 다소 번거로웠던 모든 미세 조정 작업을 없앨 수 있었습니다.
00:05:33이제 이것이 4초 정도밖에 걸리지 않는다는 것은 정말 놀랍습니다.
00:05:38마지막으로, 배경을 바꿀 수 있습니다.
00:05:41이 경우, 가장 오른쪽 이미지는 겨울 풍경으로 변경됩니다.
00:05:45멋지죠.
00:05:45이 모델이 할 수 있는 몇 가지 추가 예시입니다.
00:05:49캐릭터 일관성 편집뿐만 아니라 스타일 전송에도 매우 유용합니다.
00:05:53왼쪽에서 볼 수 있습니다.
00:05:55입력 이미지에서 스타일을 가져와 새로운 콘텐츠에 적용하거나,
00:06:00폰트를 일관되게 유지하면서 몬트리올을 프라이부르크로 바꾸는 텍스트 편집과 같은 작업을 할 수 있습니다.
00:06:07이 모든 것이 하나의 모델에 통합되어 있으며,
00:06:10매우 간단한 텍스트 인터페이스를 통해 상호 작용할 수 있습니다.
00:06:15멋집니다.
00:06:16매우 중요한 점은,
00:06:17이 모델이 일반적인 모델일 뿐만 아니라 특정하고 중요하며 흥미로운 비즈니스 문제를 해결하는 데도 매우 뛰어나다는 것입니다.
00:06:26예를 들어,
00:06:27왼쪽 예시에서 우리는 실제 이미지에서 이 치마를 추출하여 거의 즉시,
00:06:32다시 말해 몇 초 만에 제품 사진과 확대 이미지를 얻을 수 있습니다.
00:06:37이전에는 이러한 편집 모델이 없었을 때는 몇 시간, 며칠이 걸리거나 심지어 불가능했던 작업입니다.
00:06:44오른쪽 예시와 유사하게, 스케치에서 완전히 렌더링된 결과물을 몇 초 만에 얻을 수 있습니다.
00:06:50멋지죠.
00:06:51이미 언급했듯이, Flux Context는 텍스트-이미지 생성과 이미지 편집을 결합합니다.
00:06:58방금 몇 가지 예시를 보았습니다.
00:07:00이제 이것이 실제로 모델 파이프라인 측면에서 무엇을 의미하는지 간략하게 살펴보겠습니다.
00:07:06여기서는 고전적인 텍스트-이미지 파이프라인을 볼 수 있습니다.
00:07:11아주 간단합니다.
00:07:12우리 모두 알고 있습니다.
00:07:14텍스트 프롬프트를 사용합니다.
00:07:16모델을 통해 전달합니다.
00:07:18그러면 모델이 마법을 부립니다.
00:07:20잠시 후 이런 모델을 어떻게 만드는지 설명해 드리겠습니다.
00:07:24그러면 모델이 좋다면, 우리의 입력 텍스트 프롬프트를 따르는 이미지가 나옵니다.
00:07:30이미지 편집을 보면, 상당히 다르게 보입니다.
00:07:33우리는 모델에 이미지를 보여주는 방식으로 시작하고,
00:07:37전체 장면을 설명하는 텍스트 지시가 아니라 해당 이미지에 대한 변경 사항만을 추가합니다.
00:07:43여기에는 두 가지 조건이 있습니다.
00:07:46첫 번째 부분에서는 더 많은 입력만 있습니다.
00:07:49첫 번째 예시에서는 입력이 하나뿐이었습니다.
00:07:52이제 변경 사항을 설명하면 모델은 그 변경 사항에 따라 이미지를 수정해야 합니다.
00:07:58여기 교회처럼 일부 부분은 편집 후에도 동일해야 합니다.
00:08:02다른 부분은 그렇지 않습니다.
00:08:04이것이 바로 이러한 편집 모델이 하는 일입니다.
00:08:08상당히 다른 작업입니다.
00:08:09이것을 단일 모델로 결합하는 것은 실제로 매우 좋습니다.
00:08:13왜냐하면 모든 것을 할 수 있기 때문입니다.
00:08:16이미지를 생성한 다음 나중에 편집하여 훨씬 더 많은 유연성을 얻을 수 있습니다.
00:08:22이미 언급했듯이,
00:08:23이러한 편집 모델을 출시하기 전,
00:08:26또는 이러한 일반 편집 모델을 보기 전에는 텍스트-이미지 모델을 미세 조정하여 이러한 수준의 제어를 모델에 통합하기 위한 많은 작업이 있었습니다.
00:08:36하지만 이제는 더 이상 필요하지 않습니다.
00:08:39우리는 이것을 즉시 할 수 있습니다.
00:08:42이것은 좋은 결과를 얻는 데 필요한 시간을 크게 단축시킵니다.
00:08:47파이프라인 측면에서는 이렇습니다.
00:08:49이제 이러한 모델을 실제로 어떻게 훈련시킬 수 있는지 살펴보겠습니다.
00:08:54그리고 제가 이야기하고 싶은 매우 중요한 알고리즘이 있습니다.
00:08:58이러한 모델을 훈련할 수 있게 해주는 알고리즘은 Latent Flow Matching이라고 불리며,
00:09:06Latent와 Flow Matching이라는 두 가지 측면으로 구성되어 있습니다.
00:09:12이 두 가지에 대해 좀 더 자세히 설명해 드리고자 합니다..
00:09:24먼저 Latent부터 시작하겠습니다.
00:09:26이것은 잠재 생성 모델링에서 파생된 것입니다.
00:09:29이 알고리즘은 저와 공동 창립자들이 거의 5년 전에 고안한 것입니다.
00:09:33이것이 무엇을 의미하는지 설명하기 위해, 먼저 다음 예시를 살펴보겠습니다.
00:09:37제가 여기서 시각화한 것은 기본적으로 두 개의 이미지인데, 우리 눈에는 똑같아 보입니다.
00:09:43왼쪽은 JPEG이고, 오른쪽은 동일한 이미지를 PNG로 저장한 것입니다.
00:09:47따라서 왼쪽 이미지는 오른쪽 이미지의 근사치이지만, 우리는 어떤 차이도 느끼지 못합니다..
00:09:53아니면 이 두 이미지에서 차이를 보시는 분이 계신가요?
00:09:58없을 것 같습니다.
00:09:59좋습니다, 이제 이 이미지들의 파일 크기를 살펴보겠습니다.
00:10:03JPEG 파일의 크기는 실제로 PNG 파일 크기보다 거의 한 자릿수 정도 작습니다.
00:10:10이것은 상당히 놀라운 일이며,
00:10:12우리 모두 이미지 압축이 어떻게 작동하는지 알고 있지만,
00:10:17이미지에서 많은 정보를 눈치채지 못하게 제거할 수 있다는 사실을 깨닫는 것은 매우 놀랍다고 할 수 있습니다..
00:10:26따라서 이미지에는 우리 인간의 눈으로 인지할 수 없는 많은 정보가 분명히 존재합니다.
00:10:32이를 시각화하는 또 다른 방법은,
00:10:35이전 예시에서 PNG 이미지(원본 이미지)와 이 이미지의 근사치인 JPEG 이미지의 지각적 유사성을 파일 크기에 대비하여 그래프로 그리는 것입니다.
00:10:46이렇게 하면 이 그래프를 얻을 수 있습니다.
00:10:49이것은 개념적인 그래프이므로 실제 데이터는 아니지만, 개념적으로는 이렇게 생겼습니다.
00:10:56지각적 유사성은 빠르게 증가한 다음, 거의 전체 파일 크기에 걸쳐 일정한 수준을 유지합니다.
00:11:03이것이 바로 JPEG와 같은 손실 압축 알고리즘이 활용하는 부분이며,
00:11:08이제 여러분은 이것이 생성 모델링과 무슨 관련이 있는지 물을 수 있습니다.
00:11:13이는 이미지와 같은 지각 신호,
00:11:16즉 자연 신호(오디오도 마찬가지)가 실제처럼 보이거나 실제처럼 인지되기 위해서는,
00:11:22우리가 인지할 수 없는 모든 고주파 세부 사항을 모델링할 필요가 없다는 것을 보여줍니다.
00:11:28우리가 인지할 수 없는 모든 고주파 세부 사항을 모델링할 필요가 없으며,
00:11:34따라서 픽셀 공간에서 이러한 모든 고주파 세부 사항에 대해 생성 모델을 훈련하는 것은 실제로 컴퓨팅 자원과 시간의 엄청난 낭비가 될 것입니다.
00:11:45왜냐하면 모델이 우리가 인지하지도 못하는 측면을 표현하도록 학습할 것이기 때문에,
00:11:51이것을 학습하는 것은 무의미합니다,
00:11:53그렇죠?
00:11:54그리고 이것이 바로 잠재 생성 모델링의 핵심입니다.
00:11:58따라서 이미지에 대해 픽셀 공간에서 직접 생성 모델을 훈련하는 대신,
00:12:03우리는 더 낮은 차원의 소위 잠재 공간을 추출하는 압축 모델을 학습합니다.
00:12:08이 잠재 공간이 여기 중앙에서 보이는 것입니다.
00:12:12레이저 포인터가 작동하는지 보겠습니다.
00:12:15아, 네, 이 부분입니다.
00:12:17이 모델을 어떻게 학습할까요?
00:12:19사실 매우 간단합니다..
00:12:24여기 왼쪽에 이미지를 사용합니다.
00:12:26이미지를 인코더를 통해 전달합니다.
00:12:29사실상 이것은 오토인코더입니다.
00:12:31이미지를 인코더를 통해 전달하면 이 잠재 공간에 도달하고,
00:12:35이 표현을 정규화(regularisation)라는 작업을 통해 다시 전달합니다..
00:12:42이것은 모델이 이 잠재 표현에서 정보를 제거하도록 강제합니다.
00:12:47이는 이산적으로 또는 연속적으로 구현될 수 있으며, 그런 다음 이 잠재 표현에서 이미지를 다시 재구성합니다.
00:12:56따라서 고전적인 오토인코더를 훈련하여 기본적으로 입력과 유사한 재구성을 생성하도록 하며,
00:13:03매우 중요하게도 이 판별자 손실(discriminator loss)을 추가합니다.
00:13:10이것은 우리 인간의 눈에 지각적으로 중요한 세부 사항만 이 잠재 표현에 반영되도록 하는 사전 정보(prior)로 생각할 수 있습니다.
00:13:21다시 말해,
00:13:22이 정규화는 모델이 정보를 줄이거나 제거하도록 강제하고,
00:13:27판별자는 우리가 인지할 수 없는 올바른 정보를 제거하도록 합니다.
00:13:32이렇게 해서 이 모델을 훈련하고 나면, 생성 모델을 훈련하는 데 사용되는 이 잠재 공간에 도달하게 됩니다.
00:13:41잠재 공간은 입력 이미지 또는 지각적으로 동등한 이미지의 저차원 표현입니다.
00:13:47이것이 기본적으로 잠재 플로우 매칭 알고리즘의 잠재(latent) 측면입니다.
00:13:54이제 두 번째인 플로우 매칭에 대해 이야기해 봅시다.
00:13:58다시 말하지만, 제가 지금 설명하는 모든 것은 이 잠재 공간에서 일어납니다.
00:14:04따라서 우리가 지금 무엇을 하든, 여기에서 볼 수 있습니다.
00:14:09왼쪽에서 모든 이미지는 기본적으로 그 잠재 공간에 임베딩됩니다.
00:14:14네, 그럼 플로우 매칭에 대해 이야기해 봅시다.
00:14:18플로우 매칭 알고리즘은 매우 간단한 분포(저희의 경우 항상 표준 정규 분포)에서 변환하는 데 사용되는 일반적인 알고리즘 제품군입니다.
00:14:29따라서 우리는 지금 확률 분포에 대해 이야기하고 있습니다.
00:14:34여기에서 시각화했습니다.
00:14:36여기 매우 간단한 분포가 있습니다.
00:14:39플로우 매칭 알고리즘은 이 간단한 분포와 자연 이미지의 데이터 분포와 같이 매우 복잡한 분포 사이를 매핑하기 위해 신경망(여기 보이는 이 부분)으로 표현되는 벡터 필드를 훈련하는 수단을 제공합니다.
00:14:55이것이 데이터 분포입니다.
00:14:57이것을 훈련하기 위해 무엇을 할까요?
00:15:00플로우 매칭 알고리즘은 이를 수행하는 매우 간단한 수단을 제공합니다.
00:15:06훈련 중에 우리가 해야 할 일은 여기 표준 정규 분포에서 샘플을 추출하는 것입니다.
00:15:13그래서 우리는 샘플을 하나 가지고,
00:15:16그것을 데이터 분포에서 가져온 하나의 샘플,
00:15:19즉 훈련 예시에 할당하고,
00:15:21이것을 연결한 다음,
00:15:23이들을 직접적으로 선형적으로 연결하는 이러한 종류의 벡터를 구성할 수 있습니다..
00:15:34훈련 데이터셋의 모든 예시에 대해 이 작업을 수행하면,
00:15:38즉 예시를 가져와 표준 정규 분포에서 무작위로 점을 샘플링하고 연결하면,
00:15:44여기 보이는 이러한 종류의 구성된 벡터 필드에 도달하게 됩니다.
00:15:49이제 벡터 필드의 속성에 대해 많은 이야기를 할 수 있습니다.
00:15:54한 가지 중요한 속성은 벡터 필드에서 경로가 교차할 수 없다는 것인데,
00:16:00여기서는 많은 교차가 일어나고 있으므로,
00:16:03이것은 분명히 이 분포의 모든 점 사이,
00:16:06또는 이 분포와 저 분포 사이를 변환하는 진정한 벡터 필드가 아닙니다..
00:16:13플로우 매칭의 놀라운 점은,
00:16:15이 규칙을 따르기만 하면,
00:16:17즉 데이터 샘플과 표준 정규 분포에서 가져온 샘플 사이의 이러한 종류의 벡터를 항상 예측하도록 모델을 훈련하면 됩니다.
00:16:28그러면 우리는 진정한 벡터 필드에 도달하게 되는데, 그 모습은 이렇습니다.
00:16:34여기서는 경로가 더 이상 교차하지 않으며, 플로우 매칭 알고리즘이 이를 보장합니다.
00:16:41이것은 약간 마법처럼 보이지만, 수학적으로 적어보면 실제로 말이 됩니다.
00:16:47그리고 이처럼 우리는 표준 정규 분포와 우리의 데이터 분포 사이를 변환하는 이 진정한 벡터 필드를 표현하도록 모델을 훈련할 수 있습니다..
00:17:00그리고 중요하게도,
00:17:01우리는 텍스트 입력을 기반으로 이미지를 생성할 수 있기를 원하므로,
00:17:08모든 이미지 예시에 대해 이 네트워크를 항상 기본적으로 텍스트 입력에 조건화합니다.
00:17:17그렇다면 모델을 샘플링할 때 우리는 무엇을 하는 걸까요?
00:17:21우리는 이 두 분포 사이의 매핑을 나타내는 벡터 필드를 가지고 있습니다.
00:17:27우리가 하는 일은 표준 정규 분포에서 샘플로 시작하는 것입니다.
00:17:32컴퓨터로 샘플링할 수 있죠?
00:17:34우리 모두 알고 있습니다.
00:17:36그리고 신경망으로 표현된 이 궤적을 따라 통합합니다.
00:17:40간단한 오일러 전진 알고리즘으로 할 수 있습니다.
00:17:43아마 많은 분들이 아실 겁니다.
00:17:46따라서 수치 적분 방식을 사용하여 여기 이 궤적을 따라 적분한 다음 데이터 샘플에 도달할 수 있습니다.
00:17:53다시 디코더를 통해 전달하면 도착합니다.
00:17:56다시 말해, 이것은 잠재 공간에서 일어나지만, 여기서는 다시 픽셀 공간에 도달합니다.
00:18:03그리고 이것이 제가 텍스트 프롬프트를 기반으로 이미지를 생성하는 방법입니다.
00:18:09멋지죠.
00:18:09한 가지, 이러한 수치 적분 방식은 꽤 많은 단계를 사용한다고 생각합니다.
00:18:15그래서 이 과정을 최대 50단계로 세분화합니다.
00:18:19따라서 이러한 잠재 플로우 매칭 모델은 본질적으로 꽤 느려서 이미지를 생성하는 데 약 30초에서 1분 정도 걸리는데,
00:18:28이는 다소 긴 시간입니다..
00:18:32곧 이 모델들을 어떻게 빠르게 만드는지 설명해 드리겠습니다.
00:18:35하지만 이것이 일반적인 잠재 플로우 매칭 알고리즘입니다.
00:18:39다시 말해, 잠재(latent)는 우리가 모델을 훈련하는 이 잠재 공간을 연결하거나 나타냅니다.
00:18:45그리고 플로우 매칭 알고리즘은 방금 여기서 논의한 것입니다.
00:18:48좋습니다,
00:18:49이제 텍스트 프롬프트를 기반으로 이미지를 생성하는 방법을 설명했지만,
00:18:53이것이 편집 모델인 컨텍스트에 어떻게 적용될까요?
00:18:56이것도 매우 간단합니다.
00:18:57이것은 기본적인 Flux Context 아키텍처입니다.
00:19:01트랜스포머 모델입니다.
00:19:02우리 모두 알고 있습니다..
00:19:05조금 특별하지만, 마법은 입력에 있습니다.
00:19:08여기 왼쪽에서 모델의 입력을 볼 수 있습니다.
00:19:12먼저 텍스트 인코더에 의해 텍스트 토큰 집합으로 임베딩되는 텍스트 입력이 있습니다.
00:19:18그리고 지난 슬라이드에서 이미 보았던 이미지 인코더가 있습니다, 그렇죠?
00:19:24여기 이 부분입니다.
00:19:25이것이 지금 여기서 보는 것입니다.
00:19:28그래서 이 이미지 인코더가 있고, 여기에는 두 세트의 시각 토큰이 있습니다.
00:19:34첫 번째는 실제로 생성하는 데 사용하는 시각 토큰 집합입니다.
00:19:39이것이 출력 이미지가 될 것입니다.
00:19:42그리고 이미지 편집을 하고 싶다면,
00:19:44컨텍스트 이미지를 모델링하거나 나타내는 두 번째 시각 토큰 집합이 있습니다.
00:19:50즉, 모델에 보여주는 참조 이미지입니다.
00:19:54그리고 나서 이것을 트랜스포머 모델로 전달합니다.
00:19:57이것은 소위 이중 스트림 블록(double stream blocks)을 포함하고 있기 때문에 특별합니다.
00:20:06이것들은 각 충실도(fidelity)에 대한 일종의 전문가 모델이라고 할 수 있습니다.
00:20:13그래서 여기서는 시각 토큰과 텍스트 토큰을 별도로 처리합니다..
00:20:20어텐션 연산을 제외한 모든 것에 대해, 어텐션 연산은 모든 토큰에 걸쳐 공동으로 발생합니다.
00:20:28그리고 어텐션 연산 전에 모든 입력과 텍스트 토큰,
00:20:33시각 토큰을 동일한 매핑으로 기본적으로 매핑하는 표준 블록,
00:20:38즉 표준 트랜스포머 블록이 있습니다.
00:20:42그리고 이렇게 하면 이미지 편집으로 바로 들어갈 수 있습니다..
00:20:48여기에 입력 이미지를 제공하고 텍스트 이미지 생성을 할 때는 이것을 제공하지 않으면 텍스트 프롬프트만 입력으로 사용됩니다,
00:20:57그렇죠?
00:20:58멋지죠.
00:20:58마지막으로 한 가지 더 말씀드리겠습니다.
00:21:01이 모델은 어떻게 그렇게 빠를까요?
00:21:04Flux 모델을 아는 분이 얼마나 계신지 모르겠습니다.
00:21:08혹시 Flux 모델을 아시는 분은 손을 들어주시겠어요?
00:21:12아, 몇 분 계시네요.
00:21:14좋습니다, 멋지네요.
00:21:15그래서 우리 모두 이 모델들이 꽤 빠르다는 것을 알고 있습니다, 그렇죠?
00:21:21제가 빠르다고 말할 때 무슨 의미일까요?
00:21:24저희 모델은 기본적으로 비교 가능한 모델보다 대부분 몇 배나 더 빠릅니다.
00:21:29예를 들어, 여기서는 분명히 매우 느리지만 훌륭한 모델인 GPD 이미지 1을 살펴봅니다.
00:21:36편집에서도 Flux 모델은 10배 이상, 심지어 20배 이상 빠릅니다.
00:21:41그래서 비교적 강력한 모델들과 비교했을 때 얼마나 빠른지는 정말 놀랍습니다.
00:21:47그 이유는 저희가 2, 3년 전에 개발한 알고리즘 때문입니다.
00:21:51이 알고리즘은 적대적 확산 증류(adversarial diffusion distillation)라고 불리며,
00:21:59이 알고리즘의 목표는 수치 적분 단계의 수를 줄이는 것입니다.
00:22:04앞서 말씀드렸듯이,
00:22:05표준 플로우 매칭 모델의 경우 대부분 50단계인데,
00:22:09여기서는 이를 4단계까지 줄이는 것이 목표입니다.
00:22:13각 수치 적분 단계는 신경망을 통한 순방향 전달을 의미하므로,
00:22:18이것이 오랜 시간이 걸린다는 것을 짐작할 수 있습니다.
00:22:22따라서 가능한 한 많이 줄이고자 합니다.
00:22:25어떻게 작동할까요?
00:22:26여기에서 교사(teacher)와 학생(student)이라는 두 개의 네트워크를 초기화합니다.
00:22:33둘 다 방금 보여드린 알고리즘을 통해 학습된 플로우 매칭 모델에서 초기화됩니다.
00:22:39그리고 나서 우리는 학생 모델이 교사 모델이 50단계에서 얻는 것과 동일한 이미지 품질을 4단계에서 얻도록 훈련합니다.
00:22:48이것이 목표이며, 이렇게 합니다.
00:22:50이미지로 시작하여,
00:22:52여기에서 다시 잠재 공간으로 인코딩한 다음,
00:22:55학생 모델을 위해 4단계 또는 우리가 원하는 목표 단계 수로 출력 이미지를 생성합니다.
00:23:01그리고 다시 픽셀로 디코딩합니다..
00:23:08처음에는 여기 이 이미지가 매우 흐릿하고 비현실적으로 보입니다.
00:23:12그리고 목표는 당연히 이것을 개선하는 것입니다.
00:23:16그래서 우리는 이것을 다시 사용하여,
00:23:18다시 잠재 공간으로 인코딩한 다음,
00:23:20교사 모델로 동일한 작업을 수행하지만 4단계 대신 50단계로 수행합니다.
00:23:25그러면 고품질 이미지가 생성되고, 우리는 이 증류 손실(distillation loss)을 사용합니다.
00:23:32기본적으로 교사 또는 학생의 분포가 교사의 분포와 일치하도록 보장하는 손실입니다.
00:23:38이것만으로는 불행히도 실제처럼 보이는 이미지를 기본적으로 생성할 수 없습니다.
00:23:43그래서 우리는 또 다른 판별자 손실(discriminator loss)을 추가합니다.
00:23:49이전에 강연의 잠재 생성 모델링 부분에서 오토인코더 부분에서 이미 이것을 보았습니다.
00:23:55이것은 기본적으로 동일합니다.
00:23:57그래서 우리는 학생 모델이 생성한 이미지와 여기에 입력하는 실제 이미지를 구별하도록 판별자를 훈련합니다.
00:24:04그리고 이것은 dyno v2 특징 공간 또는 학습된 이미지 표현 모델 공간에서 일어납니다.
00:24:10그리고 이렇게 하면 결국 모델을 훈련하여 50단계를 사용하는 대신 4단계만 사용하여 사실적인 이미지를 생성할 수 있습니다.
00:24:19그것은 분명히 엄청난 속도 향상입니다.
00:24:21하지만, 마지막으로 한 가지 더 말씀드리겠습니다.
00:24:24여기 이 부분을 보면, 꽤 많은 오버헤드가 있는 것 같습니다, 그렇죠?
00:24:29왜냐하면 여기서는 잠재 공간으로 침범해야 하기 때문입니다.
00:24:33그래서 이미지 공간에서 시작하여 잠재 공간으로 변환된 다음,
00:24:37다시 디코딩하고,
00:24:38다시 인코딩하고 디코딩해야 합니다.
00:24:41그리고 이 부분도 다시 다른 표현 공간으로 인코딩됩니다.
00:24:45많은 오버헤드, 이와 관련된 많은 메모리 비용이 발생합니다.
00:24:49그리고 이것은 정말, 우리가 이것을 고안했을 때 놀라웠습니다.
00:24:53왜냐하면 빠른 모델을 훈련할 수 있게 해주었기 때문입니다.
00:24:57이것을 훈련하는 데 많은 노력이 필요했습니다.
00:25:00그래서 우리는 '이것을 어떻게 단순화할 수 있을까?'라고 생각했습니다?
00:25:05그리고 답은 항상 답입니다.
00:25:07픽셀이 있을 때마다 잠재 공간으로 옮기세요.
00:25:10그래서 저희는 잠재 적대적 확산 증류(latent adversarial diffusion distillation) 접근 방식을 고안했습니다.
00:25:19이것은 기본적으로 일반적인 잠재 생성 모델링 알고리즘에 대해 우리가 했던 것과 매우 유사합니다.
00:25:26우리는 여기 모든 것을 잠재 공간으로 옮깁니다.
00:25:29같은 방식이지만, 이러한 인코더와 디코더를 사용할 필요 없이 그냥 없앨 수 있습니다.
00:25:35그리고 중요하게도, 판별자로 더 이상 dyno를 사용하지 않습니다..
00:25:44이 이미지 표현 모델은 교사 모델을 사용합니다.
00:25:47왜냐하면 교사 모델은 어차피 잠재 공간에 이미 존재하며, 매우 훌륭한 이미지 표현을 제공하기 때문입니다.
00:25:54따라서 교사 모델을 판별자로도 사용할 수 있습니다.
00:25:57그리고 나머지는 기본적으로 거의 동일합니다.
00:26:00증류 손실도 제거합니다.
00:26:01필요 없다는 것을 알게 되었는데, 이것도 멋진 점입니다..
00:26:06그래서 손실이 줄어들고 모든 것이 단순화됩니다.
00:26:10그리고 이처럼 우리는 매우 메모리 효율적인 방식으로 통합 단계를 5단계에서 4단계로 줄일 수 있습니다.
00:26:21그래서 12.5배의 속도 향상을 얻었고,
00:26:25이것이 바로 이 섹션 초반에 보여드린 그래프에서 볼 수 있는 그 정도의 규모입니다.
00:26:34그래서 이것이 기본적으로 플로우 매칭, 즉 기본 플로우 매칭 모델에서 매우 빠른 모델을 얻는 방법입니다.
00:26:45이제 강연이 끝나기 전에, Flux가 실제로 어떻게 작동하는지 보여드리기 위해 데모를 준비했습니다.
00:26:55한번 보시죠.
00:26:57그럼 여기서 이미지 편집에 사용해 보겠습니다.
00:27:01잠시 후에 뭔가 업로드하겠습니다.
00:27:05여기서 뭘 하고 있죠.
00:27:07이게 좋아 보이네요?
00:27:09네.
00:27:10좋습니다.
00:27:10네.
00:27:11좋습니다.
00:27:12여기 제가 가장 좋아하는 축구 클럽인 SC 프라이부르크 축구 클럽의 로고로 시작하겠습니다.
00:27:21미국에서는 '축구'라고 말해야겠죠.
00:27:25좋습니다.
00:27:26이 클럽은 제가 가장 좋아하는 클럽이고, 이 로고로 티셔츠를 만들고 싶습니다.
00:27:34그럼 이 로고를 티셔츠에 넣어보겠습니다.
00:27:38앞에 화면이 없어서 좀 이상하네요.
00:27:42좋습니다.
00:27:42자, 시작합니다.
00:27:44생성 중입니다.
00:27:46이걸 좀 더 작게 만들어 볼게요..
00:27:53아마 이렇게요.
00:27:55좋습니다.
00:27:56좋네요.
00:27:56몇 초 기다리면 티셔츠에 멋진 로고가 새겨진 것을 볼 수 있습니다.
00:28:03그리고 이제 좋은 점은 우리가 계속 진행할 수 있다는 것입니다, 그렇죠?
00:28:10이것을 반복해서 수정할 수 있습니다.
00:28:14예를 들어, 이 로고가 좀 너무 크다고 할 수 있겠네요.
00:28:19로고를 더 작게 만들고 나머지 부분에 놓아보겠습니다.
00:28:24다시요.
00:28:25몇 초 기다립니다.
00:28:27좋습니다.
00:28:28멋지네요.
00:28:29그리고 정말 멋진 결과에 도달합니다.
00:28:32제가 원했던 바로 그겁니다.
00:28:35다시 이것으로 시작하고 싶습니다.
00:28:38그리고 이제 색상을 바꾸고 싶습니다.
00:28:42왜냐하면 SC 프라이부르크의 색상은 검정이 아니라 빨강이기 때문입니다.
00:28:49그래서 티셔츠를 빨간색으로 만들겠습니다.
00:28:53이것도 매우 간단합니다.
00:28:55이제 로컬 편집을 하고 있습니다.
00:28:58이미지의 특정 부분만 편집하는 거죠?
00:29:02이 경우 색상입니다.
00:29:04그리고 중요하게도,
00:29:06우리는 몇 가지 편집을 했지만 로고가 여전히 매우 일관되게 표현되고 있음을 볼 수 있습니다.
00:29:15이것이 우리가 보았던 캐릭터, 또는 이 경우 객체 일관성입니다.
00:29:21이것은 매우 중요합니다.
00:29:23어떤 객체를 가지고 특정 맥락에 배치하고 싶어 하는 마케터를 생각해 보세요, 그렇죠?
00:29:32비즈니스 가치 측면에서 이것은 훌륭하고 매우 중요합니다.
00:29:37그리고 이제 마지막으로 좀 더 복잡한 변환을 추가해 보겠습니다.
00:29:43티셔츠를 공원을 걷는 남자에게 입히라고 말할 수 있습니다.
00:29:49앗.
00:29:49이것은 복잡한 변환이며,
00:29:52여러분은 '색상 변경 같은 것은 포토샵으로 할 수 있잖아?'라고 말할 수도 있습니다,
00:30:00그렇죠?
00:30:01역사적으로 그런 종류의 작업은 표준 또는 이전의 비AI 이미지 생성 도구로는 할 수 없었던 일입니다?
00:30:11이것은 정말 멋집니다.
00:30:13그래서 이제 이런 종류의 결과가 나왔고,
00:30:17마지막으로,
00:30:18시간이 다 된 것 같지만,
00:30:20이 모델이 얼마나 일반적인지 보여주는 마지막 한 가지를 해보겠습니다.
00:30:27스타일 전송도 할 수 있습니다, 그렇죠.
00:30:31그럼 이것을 수채화로 만들어 보겠습니다.?
00:30:42좋습니다, 마지막입니다.
00:30:44그리고 이러한 모델이 나오기 전에는 아마도 각 작업마다 개별적으로 미세 조정을 훈련해야 했을 텐데,
00:30:53이제는 이 모든 것을 하나로 결합할 수 있다는 것이 정말 멋집니다.
00:30:59좋네요.
00:31:00이제 이것을 인쇄해서 벽에 걸어둘 수도 있겠네요.
00:31:04어쨌든, 네, 이것이 이 모델들의 힘을 보여준다고 생각합니다.
00:31:10아, 뭔가 충돌했네요.
00:31:12마지막 슬라이드를 보여드리고 싶었는데, 시간이 다 되어서요.
00:31:17저희는 채용 중입니다.
00:31:19저희와 함께하고 싶으시다면 여기를 스캔하시거나,
00:31:23방금 보여드린 데모를 자유롭게 이용할 수 있는 플레이그라운드를 방문해 주세요.
00:31:30정말 감사합니다.
00:31:32뭔가 배우셨기를 바랍니다..

Key Takeaway

Black Force Labs의 Flux Context는 텍스트-이미지 생성과 이미지 편집을 하나의 모델로 통합하여, Latent Flow Matching 및 속도 최적화 알고리즘을 통해 캐릭터 일관성과 스타일 전송을 유지하면서 다양한 시각 콘텐츠를 빠르고 효율적으로 생성 및 수정할 수 있는 강력한 멀티모달 AI 솔루션입니다.

Highlights

Black Force Labs의 Flux는 이미지 생성 및 편집을 위한 모델 제품군으로, 프로, 오픈 소스(Flux Dev), 오픈 소스(Flux Schnell)의 세 가지 계층으로 제공됩니다.

Flux Context는 텍스트-이미지 생성과 이미지 편집 기능을 하나의 모델에 통합하여 캐릭터 일관성, 스타일 참조, 로컬 편집 등을 실시간에 가까운 속도로 가능하게 합니다.

이 모델은 기존 이미지의 반복적인 수정과 정밀한 제어를 가능하게 하여, 제품 사진 생성이나 스케치 렌더링과 같은 비즈니스 문제 해결에 탁월합니다.

Flux 모델은 지각적으로 중요하지 않은 정보를 제거한 저차원 잠재 공간에서 작동하는 Latent Flow Matching 알고리즘을 기반으로 훈련되어 효율성을 높입니다.

모델의 빠른 속도는 수치 적분 단계를 50단계에서 4단계로 줄여 12.5배의 속도 향상을 달성한 Adversarial Diffusion Distillation (ADD) 및 Latent Adversarial Diffusion Distillation (LADD) 알고리즘 덕분입니다.

Flux Context는 단일 텍스트 인터페이스를 통해 로고 삽입, 크기 조정, 색상 변경, 배경 전환, 스타일 전송 등 다양한 복합 이미지 편집 작업을 수행할 수 있음을 데모를 통해 보여줍니다.

Timeline

회사 소개 및 Flux 모델 개요

Black Force Labs의 공동 창립자 앤디는 이미지 생성 및 편집 모델 제품군인 Flux를 소개합니다. 회사는 2024년 8월에 설립되어 시각 미디어가 미래 소통의 중심이 될 것이라는 비전을 가지고 있으며, 카메라가 포착할 수 있는 것을 넘어선 핵심 인프라를 제공하고자 합니다. Flux는 강력하고 빠른 '프로 모델', 공개적으로 다운로드 가능한 'Flux Dev' (오픈 소스), 그리고 생태계 진입점인 'Flux Schnell'의 세 가지 계층으로 구성되어 있습니다. 특히 Flux Dev는 Hugging Face에서 가장 큰 생태계를 형성하며 개방형 이미지 생성의 표준이 되고 있음을 강조합니다.

Flux Context: 통합 생성 및 편집 모델

강연의 핵심 주제인 Flux Context 모델이 소개됩니다. 이 모델은 텍스트-이미지 생성과 이미지 편집 기능을 통합한 최신 버전으로, 2025년 6월에 출시되었습니다. 연사는 이미지 편집이 기존 이미지의 반복적인 수정과 정밀한 제어를 가능하게 하는 매우 중요한 사용 사례임을 강조합니다. Flux Context는 캐릭터 일관성, 스타일 참조, 로컬 편집 등 편집에 필요한 모든 기능을 거의 실시간 속도로 결합하여, 과거에 많은 미세 조정이 필요했던 작업을 4초 만에 수행할 수 있게 합니다.

비즈니스 적용 및 모델 파이프라인

Flux Context가 실제 비즈니스 문제를 어떻게 해결하는지 구체적인 예시를 통해 설명합니다. 예를 들어, 실제 이미지에서 치마를 추출하여 몇 초 만에 제품 사진을 만들거나, 스케치에서 완전히 렌더링된 결과물을 얻는 것이 가능해졌습니다. 이는 이전에는 몇 시간, 며칠이 걸리거나 불가능했던 작업입니다. 모델 파이프라인 측면에서, 텍스트-이미지 생성은 텍스트 프롬프트만으로 이미지를 만들고, 이미지 편집은 입력 이미지와 변경 지시를 통해 이미지를 수정하는 방식으로 작동합니다. 이 두 가지를 단일 모델로 결합함으로써 이미지를 생성한 후 편집하는 유연성을 제공하며, 미세 조정 없이 즉시 작업을 수행할 수 있어 시간을 크게 단축시킵니다.

잠재 플로우 매칭(Latent Flow Matching) 알고리즘

Flux 모델이 어떻게 훈련되는지 핵심 알고리즘인 '잠재 플로우 매칭'에 대해 깊이 있게 설명합니다. 이 알고리즘은 '잠재(Latent)'와 '플로우 매칭(Flow Matching)'의 두 가지 주요 측면으로 구성됩니다. '잠재' 부분은 JPEG와 PNG 이미지의 파일 크기 비교를 통해 인간의 눈으로 인지할 수 없는 많은 정보가 이미지에 존재함을 보여주며, 생성 모델을 픽셀 공간 대신 저차원의 '잠재 공간'에서 훈련하여 컴퓨팅 자원 낭비를 줄이는 개념을 설명합니다. '플로우 매칭' 부분은 간단한 분포에서 복잡한 데이터 분포로 변환하는 벡터 필드를 훈련하는 방법을 제시하며, 텍스트 입력을 기반으로 이미지를 생성하기 위해 이 네트워크를 텍스트 입력에 조건화하는 과정을 상세히 다룹니다.

Flux Context 아키텍처 및 속도 최적화

Flux Context의 트랜스포머 기반 아키텍처와 모델의 놀라운 속도 비결을 설명합니다. 모델은 텍스트 인코더의 텍스트 토큰과 이미지 인코더의 시각 토큰(생성용 및 컨텍스트 참조용)을 입력으로 받아 이중 스트림 블록을 통해 처리합니다. Flux 모델이 비교 가능한 모델보다 10배에서 20배 이상 빠른 이유는 '적대적 확산 증류(Adversarial Diffusion Distillation, ADD)' 알고리즘 덕분입니다. 이 알고리즘은 표준 플로우 매칭 모델의 50단계 수치 적분 과정을 4단계로 줄여 속도를 크게 향상시킵니다. 또한, '잠재 적대적 확산 증류(Latent Adversarial Diffusion Distillation, LADD)'를 통해 모든 과정을 잠재 공간으로 옮겨 오버헤드를 줄이고, 교사 모델을 판별자로 활용하여 메모리 효율성을 높여 12.5배의 속도 향상을 달성했습니다.

Flux Context 라이브 데모 및 결론

연사는 Flux Context의 강력한 이미지 편집 기능을 라이브 데모를 통해 시연합니다. SC 프라이부르크 축구 클럽 로고를 티셔츠에 삽입하고, 로고 크기를 조정하며, 티셔츠 색상을 빨간색으로 변경하는 로컬 편집을 보여줍니다. 이 과정에서 객체 일관성이 유지됨을 강조합니다. 이어서, 티셔츠를 입은 남자를 공원에 배치하는 복잡한 배경 전환과 이미지를 수채화 스타일로 바꾸는 스타일 전송 기능까지 선보입니다. 이 모든 작업이 단일 모델에서 통합되어 수행될 수 있음을 보여주며, 과거에 각 작업마다 개별적인 미세 조정이 필요했던 것과 비교하여 모델의 일반성과 효율성을 강조하며 강연을 마무리합니다.

Community Posts

View all posts