SW 개발

FLUX, 로컬 환경에서 텍스트 프롬프트로 이미지 생성하기

지단로보트 2024. 9. 23. 23:36

FLUX 소개

  • FLUX는 2024년 8월 출시된 새로운 text2img 모델 제품군이다. 제작사인 Black Forest LabsStable Diffusion으로 유명한 Stability AI 출신들이 창업한 회사로 생성형 이미지 분야에서 굉장한 노하우를 가진 전문가 집단이다. FLUX를 유명하게 만든 것은 생성된 이미지의 품질이다. 자체적으로 공개한 벤치마킹 결과 Midjourney-V6.0SD3-Ultra를 뛰어넘는 성과를 드러냈으며 실제로 커뮤니티의 반응도 굉장히 뜨겁다. [관련 링크]
  • 이번 글에서는 오픈 소스 모델인 FLUX.1 [dev]를 이용하여 로컬 환경에서 고품질의 생성형 이미지를 제작하는 방법을 정리했다.

준비물

  • Package Manager: Stability Matrix
  • Package: Stable Diffusion WebUI Forge
  • Model: FLUX.1 [dev]
  • VAE: ae.safetensors
  • Text Encoder: ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors, t5xxl_fp16.safetensors
  • Upscaler: 4xFFHQDAT.pth

Stability Matrix 설치

  • 이 링크에서 자신의 운영체제에 맞는 파일을 다운로드하여 로컬에 설치한다.

Stable Diffusion WebUI Forge 설치

  • Stability Matrix을 실행하고 아래 순서로 Stable Diffusion WebUI Forge을 설치한다.
Stability Matrix 실행
→ [Packages] 클릭
→ [Add Package] 클릭
→ [Stable Diffusion WebUI Forge] 클릭
→ [Install] 클릭

FLUX.1 [dev] 모델 설치

  • FLUX.1 [dev] 모델은 비상업적 용도에 한해 무료로 사용할 수 있는 오픈 소스 모델로 생성된 결과물은 상업적 용도로 사용할 수 있다. 최소 6GB VRAM에서도 사용 가능 가능하도록 메모리 사용량과 실행 속도를 최적화한 NF4 버전을 추천한다.
  • 이 링크에서 flux1-dev-bnb-nf4-v2.safetensors 파일을 다운로드한 후 Stability Matrix 설치 디렉토리 밑의 Data/Models/StableDiffusion 디렉토리에 저장한다.

VAE 설치

  • 이 링크에서 ae.safetensors 파일을 다운로드 후 Stability Matrix 설치 디렉토리 밑의 Data/Models/VAE 디렉토리에 저장한다.

Text Encoder 설치

  • 이 링크에서 ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors 파일을 다운로드 후 Stability Matrix 설치 디렉토리 밑의 Data/Models/CLIP 디렉토리에 저장한다.

Upscaler 설치

  • 이 링크에서 4xFFHQDAT.pth 파일을 다운로드 후 Stability Matrix 설치 디렉토리 밑의 Data/Models/ESRGAN 디렉토리에 저장한다.

Stable Diffusion WebUI Forge 실행

  • 이미지를 생성할 모든 준비가 완료되었다. 아래와 순서로 Stable Diffusion WebUI Forge을 실행한다.
Stability Matrix 실행
→ [Packages] 클릭
→ [Stable Diffusion WebUI Forge] 클릭
→ [Lanunch] 클릭
  • 브라우저에 웹 인터페이스가 실행되었으면, 최적의 이미지 생성을 위해 아래 설정을 적용한다.
Stable Diffusion WebUI Forge 웹 인터페이스
→ UI: [flux]
→ Checkpoint: [flux1-dev-bnb-nf4-v2.safetensors]
→ VAE / Text Encoder: [ae.safetensors], [ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensor], [t5xxl_fp16.safetensors]
→ Diffusion in Low Bits: [Automatic (fp16 LoRA)]
→ Sampling method: [[Forge] Flux Realistic]
→ Schedule type: [Beta]
→ Sampling steps: 20
→ Hires. fix: [체크]
→ Upscaler: [4xFFHQDAT]
→ Denosising strength: 0.35
→ Width: 512
→ Height: 512
→ Distilled CFG Scale: 2
→ CFG Scale: 1
→ PerturbedAttentionGuidance Integrated: [Enabled] 체크 → Scale: 3
  • 이제 프롬프트에 아래 예시를 입력하고 Generate 버튼을 클릭하면 이미지가 생성된다.
nukacola on the table, "nukacola", fallout, closed shot, nuclear radioactive color, realistic

FLUX 사용 소감

  • 위 설정으로 RTX 3080 10GB 기준으로 수십장의 이미지를 테스트해봤다. 최대 3개의 LoRA를 사용했고 512x768 해상도 기준 1분 45초 내외가 소요되었다. 512x512 또는 512x768에서의 결과물의 품질은 실사와 구분을 못할 정도로 훌륭하다. 하지만 FLUX의 진짜 능력은 768x768 이상부터 발휘된다. 차원이 다른 디테일을 보여주는데 768x1152 해상도 기준 1시간 내외가 소요되어 생성 시간이 상당히 느려서 많은 인내심이 필요했다.

결과물 이미지를 3D 애셋으로 변환하기

  • FLUX로 생성한 2D 이미지를 3D로 생성하면 게임 개발, 3D 프린터 출력 등 다양한 용도로 활용할 수 있다. 관련 업계는 아직 기술이 성숙되지 않은 상황인데 중국의 Tripo가 현재 가장 앞서 있다. 유료 모델인 Tripo AI v2.0을 이용하면 FLUX로 생성한 2D 이미지를 3D 애셋으로 손쉽게 변환할 수 있다. 생성된 3D 에셋을 GLB 파일로 저장하면 Windows 11에서 3D Viewer로 확인할 수 있다. [사이트 링크]

참고 글