Flux 모델이 등장하면서 생성형 AI 그림 커뮤니티가 매우 뜨겁습니다. 당사의 자체 자료에 따르면 미드저니 6을 능가하는 성능을 내면서도, 로컬에서 오픈소스로 사용 가능한 상황이기 때문에, 등장 자체만으로도 뜨거운 감자일 수 밖에 없는 것 같습니다. 본문에서는 현재 공개된 Flux 모델에 대해 살펴보고, ComfyUI에서 Flux 모델을 구동하는 방법에 대해 알아보겠습니다.
Flux 모델
Flux는 Black Forest Labs에서 2024년 8월 1일 공개한 디퓨전 모델로 기존의 스테이블 디퓨전 모델과는 조금 다른 구조의 이미지 생성 인공지능 모델입니다. 현재 총 3개의 모델이 공개되었으며, 각각의 특징은 다음과 같습니다.
- Flux.1 Pro : 공개된 Flux.1 시리즈 중 가장 높은 성능의 모델으로, 3개 모델 중 가장 높은 프롬프트 이해도 및 고품질 이미지를 생성할 수 있습니다.
- Flux.1 Dev : Flux.1 Pro 모델을 경량화한 모델으로, 비교적 작은 크기로도 pro 모델에 버금가는 프롬프트 이해도 및 이미지 품질을 보장합니다.
- Flux.1 Schnell : 세 모델 중 가장 작은 모델로, 프롬프트 이해도 및 이미지 품질이 조금 떨어지지만, 반대로 이미지 생성 속도는 가장 빠른 모델입니다.
위 3개 Flux 모델의 성능만 비교하면, 당연히 Pro 모델이 제일 좋지만, 현재 Pro 모델은 API형태로만 서비스를 제공하고 있기 때문에, 로컬 PC에서 직접 다운받아 사용하는 것은 불가능합니다. 즉, 사용자가 모델을 내려받아 직접 구동할 수 있는 모델은, Flux.1 Dev 및 Flux.1 Schnell 모델뿐입니다.
Flux.1 Dev 및 Flux.1 Schnell 모델
응답 정확성을 기준으로 AI 모델의 능력ㅇ르 평가하는 ELO 성능 벤치마크 결과에 따르면 공개된 3개의 Flux 모델 모두 Midjourney V6보다 높은 성능을 보여주고 있습니다. Pro 및 Dev 모델은 심지어 최근 공개된 SD3 Ultra보다도 더욱 높은 점수를 기록하고 있습니다.
이는 다시말해 dev 및 schnell 모델을 이용해 가정에서도 미드저니 6버전만큼의 고품질 이미지를 생성할 수 있다는 의미로, 그동안 SD1.5, SDXL을 거쳐 스테이블 디퓨전으로는 채워지지 않았던 미드저니와의 이미지 품질의 차이를 한 번에 극복할 수 있는 굉장히 고무적인 일입니다. 물론 아직까지는 공개 초기라 실사용에서 품질에 대해서는 조금 더 지켜봐야 하겠지만, 최초 버전에서 이정도 성능이 오픈소스로 풀렸다면, 앞으로의 행보가 더욱 기대되는 것이 사실입니다.
Flux 모델의 라이센스 제약 및 단점
SD3가 발표되고 얼마 안되어 reddit, civitai 및 youtube 등 생성형 AI 이미지 기술을 관심있게 다루는 각종 커뮤니티 및 SNS에서 라이센스 문제로 굉장히 시끌벅적했습니다. 학습 이미지의 검열이 심해 인물을 그리는 능력이 기대이하라는 점은 둘째치고, SD3 모델의 라이센스 정책에 따르면 생성한 이미지를 사용하는 것도 무상으로 사용이 불가했기 때문입니다.
라이센스
Flux 모델의 경우 Pro는 어차피 API로 제공되는 서비스이므로 관계가 없고, Dev와 Schnell 모델의 라이센스가 각기 다른데요, Dev는 non-commercial, 즉 비상업용 용도로만 사용이 가능하고, Schnell은 Apache, 즉 상업적 이용을 포함해 제약없이 자유롭게 이용이 가능한 라이센스로 배포가 되었습니다. 그런데 여기서 Dev의 라이센스에 대해 또다른 논쟁이 발생했는데요, 과연 인공지능 모델의 비상업용 용도의 범위가 어디까지인가 하는점입니다.
각종 커뮤니티의 논쟁 결론부터 보자면, 모델 자체를 이용해 이미지를 생성하는 서비스를 제공하거나, 혹은 모델을 파인튜닝하여 배포 및 판매하는 등의 방식으로 수익을 얻는 행위(상업적 이용)는 제한되지만, 모델로 생성한 결과물(이미지)에 대해서는 상업적 사용을 포함해 자유로운 활용이 가능하다는 것이 중론입니다. 하지만 이런 의견도, 커뮤니티의 해석일 뿐, 실제 라이센스 문제로 법적 논쟁이 발생할 때는 어떤 스탠스로 받아들여야할지 아직 명확하지 않은 것 같습니다.
단점
라이센스 문제를 차치하고, Flux 모델을 이용할 때 마주하는 또 다른 제약사항이자 가장 큰 단점은 바로, 현행 보급형 GPU로는 구동차제가 거의 불가하다는 점입니다. Dev 및 Schnell 모델 모두 모델 용량만 24GB수준에 이르기 때문에, 일반적인 GPU의 VRAM으로는 감당이 어렵습니다. 가정용 NVIDIA GPU인 RXT 시리즈 3000 또는 4000 세대의 최고 사양인 RTX 3090 또는 RTX 4090 정도는 되어야 그럭저럭 쓸만한 정도입니다. 때문에 만약 사용을 한다 하더라도, VRAM에서 추가로 일반 RAM을 거쳐 사용해야하는데, 이렇게 될 경우 이미지 생성 시간이 기하급수적으로 늘어나 실질적으로는 사용이 어렵습니다. 그럼에도 불구하고, 물론 본문에서는 12GB VRAM에서 구동하는 워크플로우도 함께 살펴볼 예정입니다. 여하간, 모델의 용량이 이렇게 커져서, 구동을 위해 요구되는 컴퓨팅 파워가 늘어난 점 자체만 놓고 보면, 대중적인 활용도 측면에서는 매우 큰 제약이자 단점이라고 볼 수 있습니다.
Flux 모델을 VRAM 12GB GPU에서 구동하기
필자가 사용하는 GPU는 출시된지 1년 반이 넘어가는 RTX 4070Ti로, VRAM 12GB를 장착하고 있습니다. Flux Dev 및 Schnell 모델 모두 아래의 허깅페이스 페이지에서 다운로드가 가능한데요, 둘 모두 23.8GB의 용량을 자랑하고있습니다.
FP8 Model Download
위의 원본 모델(FP16)들을 조금 경량화한 FP8 버전을 이용하면, 그 용량을 약 절반 수준으로 낮출 수 있습니다. 물론 용량이 적어지는 만큼, 이미지 퀄리티 측면에서의 희생도 감당해야하지만, 퀄리티가 절반으로 떨어지거나 하진 않으며, 용인할만한 수준이므로, 시도해볼 가치가 있습니다. 아래에서는 동일한 모델을 FP8으로 변환한 모델을 다운로드할 수 있습니다.
사용할 모델을 다운받아 ComfyUI 설치 위치의 models 폴더에서, unet 폴더를 찾아 이동해줍니다.
CLIP Text Encoder & VAE Model Download
스테이블 디퓨전과 마찬가지로, 디퓨전 모델을 구동하려면, CLIP 모델과, VAE 모델도 다운받아줘야 합니다. Flux에서는 SDXL처럼 2개의 CLIP 모델을 사용하기 때문에, 마찬가지로 아래 링크를 통해 FP8 버전의 t5xxl CLIP 모델 및 Clip_l 모델을 다운받아 models 폴더의 CLIP 폴더로 이동해줍니다. VAE 모델은 models 폴더의 vae폴더로 이동해줍니다.
Workflow
웹에서 다운받은 Flux 기본 워크플로우를 처음 열면 스테이블 디퓨전의 기본 워크플로우와 다르게 구성되어 있어 조금 당황하실 수 있습니다. 하지만, 자세히 보면, KSampler를 커스텀 샘플러로 바꾸고, CFG 대신 기본 Guider를 사용할 뿐, 사실 크게 차이는 없습니다. 오히려 Flux 모델은 부정 프롬프트를 입력으로 받지 않기 때문에 KSampler를 이용하면 아래와 가팅 더욱 간단하게 워크플로우를 구성할 수 있습니다.
위 예시 이미지 속 상단의 빨간 노드들은 SDXL 기본 워크플로우를 나타내고, 하단의 파란 노드들은 FLUX 기본 워크플로우를 나타냅니다. 스테이블 디퓨전 기본 워크플로우와 비교하면 Flux 기본 워크플로우의 큰 차이점은 다음과 같습니다.
- Load Checkpoints 노드를 3개의 각기 다른 인공지능 모델 로더로 대체한 점
- 부정프롬프트 대신, Zero conditioning을 입력한다는 점(혹은 빈 프롬프트를 입력)
- cfg 값을 1로 고정한다는 점
이처럼 간단하게 수정하고 긍정 프롬프트를 입력하고 이미지를 성생하면 ComfyUI에서 간단하게 Flux 모델을 사용할 수 있습니다. Dev모델의 경우 20스텝, Schnell 모델의 경우 4스텝 생성이 가능한데요, 첫 생성시 모델로딩 시간이 꽤 걸릭 때문에 오래걸릴 수 있다는 점만 고려하여, 마음것 로컬에서 고품질 이미지를 생성해볼 수 있습니다.
뿐만아니라 위 영상을 참고하여, 스테이블 디퓨전과 마찬가지로 인페인팅 워크플로우를 구성하면 간단하게 Flux 모델로도 인페인팅을 구현해볼 수 있습니다. 워크플로우는 영상 하단의 링크에 첨부되어 있습니다.