snow · 2026.5.18 00:00 · 조회 3

FLUX.1 설치 및 사용 가이드 (Mac)

FLUX

개요

이 가이드는 Mac Apple Silicon(M1/M2/M3/M4) 환경에서 FLUX.1 이미지 생성 모델을 HuggingFace diffusers 라이브러리를 이용해 설치하고 실행하는 방법을 설명한다. FLUX.1 [schnell](Apache 2.0)과 FLUX.1 dev 모두 로컬에서 실행 가능하다.

관련 페이지: FLUX.1 소개


사전 요구사항

하드웨어

항목최소 권장권장
RAM (통합 메모리)16 GB32 GB 이상
저장공간30 GB (schnell) / 35 GB (dev)50 GB 이상
칩셋Apple M1Apple M2 이상
  • 8 GB RAM: FLUX.1 실행 불가. 메모리 부족으로 크래시 발생
  • 16 GB RAM: schnell은 GGUF 양자화 버전으로 제한적 실행 가능
  • 24 GB RAM 이상: diffusers 기반 전체 파이프라인 안정 실행 가능
  • 32 GB RAM 이상: 고해상도(1024×1024 이상) 생성 시 안정적

소프트웨어

  • macOS 13 Ventura 이상
  • Python 3.10 이상
  • Xcode Command Line Tools: xcode-select --install

설치 방법 (HuggingFace diffusers)

1단계: 가상 환경 생성

1python3 -m venv flux-env2source flux-env/bin/activate

2단계: PyTorch 설치

Mac MPS를 지원하는 PyTorch를 설치한다. torch 2.3.1 이상을 권장한다.

1pip install torch torchvision torchaudio

설치 확인:

1python3 -c "import torch; print(torch.__version__); print('MPS available:', torch.backends.mps.is_available())"

3단계: diffusers 및 의존성 설치

1pip install diffusers transformers accelerate sentencepiece protobuf

4단계: HuggingFace 로그인 (dev 모델 사용 시)

FLUX.1 [dev]는 HuggingFace에서 라이선스 동의가 필요하다. HuggingFace 모델 페이지에서 동의 후 토큰으로 로그인한다.

1pip install huggingface_hub2huggingface-cli login

FLUX.1 [schnell]은 로그인 없이 사용 가능하다.


Apple Silicon MPS 설정

MPS(Metal Performance Shaders)는 Apple Silicon의 GPU를 PyTorch에서 활용할 수 있게 해주는 백엔드다.

1import torch2 3# MPS 사용 가능 여부 확인4if torch.backends.mps.is_available():5    device = torch.device("mps")6    print("MPS 사용 가능 — Apple Silicon GPU 가속 활성화")7elif torch.cuda.is_available():8    device = torch.device("cuda")9else:10    device = torch.device("cpu")11    print("CPU 모드로 실행 (느림)")12 13print(f"사용 디바이스: {device}")

주의: MPS 백엔드는 FP8 데이터 타입을 지원하지 않는다. float16 또는 bfloat16을 사용해야 한다.


기본 이미지 생성 코드

FLUX.1 [schnell] — 빠른 생성 (4 스텝)

1import torch2from diffusers import FluxPipeline3 4# 파이프라인 로드 (최초 실행 시 약 24GB 다운로드)5pipe = FluxPipeline.from_pretrained(6    "black-forest-labs/FLUX.1-schnell",7    torch_dtype=torch.bfloat168)9pipe = pipe.to("mps")10 11prompt = "A serene mountain lake at sunset, photorealistic, golden hour lighting"12 13image = pipe(14    prompt=prompt,15    num_inference_steps=4,      # schnell은 1~4 스텝 권장16    guidance_scale=0.0,         # schnell은 guidance_scale=0 사용17    height=1024,18    width=1024,19    max_sequence_length=256,20).images[0]21 22image.save("output_schnell.png")23print("이미지 저장 완료: output_schnell.png")

FLUX.1 [dev] — 고품질 생성

1import torch2from diffusers import FluxPipeline3 4pipe = FluxPipeline.from_pretrained(5    "black-forest-labs/FLUX.1-dev",6    torch_dtype=torch.bfloat167)8pipe = pipe.to("mps")9 10prompt = "A majestic snow leopard in the Himalayas, ultra-detailed fur texture, bokeh background"11 12image = pipe(13    prompt=prompt,14    num_inference_steps=28,     # dev는 20~50 스텝 권장15    guidance_scale=3.5,         # dev는 3.5~7.0 권장16    height=1024,17    width=1024,18    max_sequence_length=512,19).images[0]20 21image.save("output_dev.png")

파라미터 조절 가이드

파라미터설명schnell 권장값dev 권장값
num_inference_steps노이즈 제거 반복 횟수. 높을수록 품질 향상, 속도 저하1~420~50
guidance_scale프롬프트 충실도. 높을수록 프롬프트에 집착0.03.5~7.0
height / width출력 이미지 해상도 (64의 배수여야 함)512~1024512~1360
max_sequence_length프롬프트 최대 토큰 길이256512
generator재현 가능한 결과를 위한 시드 고정아래 참고아래 참고

시드(Seed) 고정으로 재현 가능한 결과 생성

1import torch2from diffusers import FluxPipeline3 4pipe = FluxPipeline.from_pretrained(5    "black-forest-labs/FLUX.1-schnell",6    torch_dtype=torch.bfloat167).to("mps")8 9# CPU generator 사용 (MPS에서 generator는 CPU로 생성해야 함)10generator = torch.Generator(device="cpu").manual_seed(42)11 12image = pipe(13    prompt="A futuristic city skyline at night",14    num_inference_steps=4,15    guidance_scale=0.0,16    generator=generator,17).images[0]18 19image.save("output_seeded.png")

메모리 최적화

방법 1: Sequential CPU Offload (16 GB RAM 환경)

모델의 각 레이어를 순차적으로 GPU에 올렸다 CPU로 내리는 방식. 속도는 느리지만 메모리 사용량을 최소화한다.

1import torch2from diffusers import FluxPipeline3 4pipe = FluxPipeline.from_pretrained(5    "black-forest-labs/FLUX.1-schnell",6    torch_dtype=torch.bfloat167)8 9# CPU Offload 활성화 (pipe.to("mps") 대신 사용)10pipe.enable_sequential_cpu_offload()11 12# VAE 메모리 절약13pipe.vae.enable_slicing()14pipe.vae.enable_tiling()15 16image = pipe(17    prompt="A beautiful waterfall in a lush forest",18    num_inference_steps=4,19    guidance_scale=0.0,20).images[0]21image.save("output.png")

방법 2: mflux — Mac 전용 MLX 네이티브 구현 (권장)

mflux는 Apple MLX 프레임워크 기반의 FLUX.1 구현체로, Mac에서의 성능과 메모리 효율이 diffusers보다 뛰어나다.

1pip install mflux
1# schnell — 4 스텝으로 빠르게 생성2mflux-generate \3  --model schnell \4  --prompt "A cozy cabin in the woods during winter" \5  --steps 4 \6  --seed 42 \7  --height 1024 \8  --width 10249 10# dev — 고품질 생성11mflux-generate \12  --model dev \13  --prompt "Portrait of an astronaut on Mars" \14  --steps 25 \15  --guidance 3.5 \16  --seed 42

방법 3: float16 명시 지정

bfloat16 대신 float16을 명시하면 일부 환경에서 메모리 효율이 개선된다.

1pipe = FluxPipeline.from_pretrained(2    "black-forest-labs/FLUX.1-schnell",3    torch_dtype=torch.float16  # bfloat16 대신 float164).to("mps")

ComfyUI 연동 방법

ComfyUI는 노드 기반 GUI로 FLUX.1을 시각적으로 사용할 수 있게 해준다.

설치

1# ComfyUI 설치2git clone https://github.com/comfyanonymous/ComfyUI.git3cd ComfyUI4pip install -r requirements.txt5 6# Mac 전용 PyTorch nightly (MPS 최신 기능 사용 시)7pip install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu

모델 파일 배치

  1. FLUX.1 [dev] FP8 체크포인트 다운로드 → ComfyUI/models/checkpoints/ 에 배치
  2. VAE 파일(ae.safetensors) 다운로드 → ComfyUI/models/vae/ 에 배치
  3. 텍스트 인코더 CLIP/T5 → ComfyUI/models/clip/ 에 배치

실행

1python main.py --force-fp16

브라우저에서 http://127.0.0.1:8188 접속 후 FLUX.1 워크플로우를 로드한다.


자주 발생하는 오류 해결

MPS backend out of memory

RuntimeError: MPS backend out of memory (MPS allocated: X.XX GB, other allocations: X.XX GB, max allowed: X.XX GB)

해결 방법:

  • enable_sequential_cpu_offload() 사용
  • 해상도를 낮춤 (1024 → 768 또는 512)
  • 다른 앱을 종료하여 RAM 확보
  • mflux 사용으로 전환

float64 not supported on MPS

NotImplementedError: The operator 'aten::_fft_r2c' is not currently implemented for the MPS device

해결 방법: torch_dtype=torch.bfloat16 또는 torch.float16으로 명시 지정. float32/float64는 MPS에서 지원되지 않는 연산이 있다.

slow_tokenizer or sentencepiece 오류

ModuleNotFoundError: No module named 'sentencepiece'

해결 방법:

1pip install sentencepiece protobuf

HuggingFace 401 인증 오류 (dev 모델)

OSError: You are trying to access a gated repo ... make sure to have access to it

해결 방법: FLUX.1-dev HuggingFace 페이지에서 라이선스에 동의 후 huggingface-cli login 재실행.

Generator device 오류 (MPS)

RuntimeError: Expected a 'mps' device type for generator but found 'cpu'

해결 방법: MPS 환경에서는 torch.Generator(device="cpu")로 생성해야 한다.

1# 잘못된 예2generator = torch.Generator(device="mps").manual_seed(42)3 4# 올바른 예5generator = torch.Generator(device="cpu").manual_seed(42)

참고 링크

리소스링크
diffusers FLUX 공식 문서huggingface.co/docs/diffusers/api/pipelines/flux
mflux (MLX 네이티브 구현)github.com/filipstrand/mflux
FLUX.1 [schnell] 모델huggingface.co/black-forest-labs/FLUX.1-schnell
FLUX.1 [dev] 모델huggingface.co/black-forest-labs/FLUX.1-dev
Black Forest Labs 공식bfl.ai
ComfyUI GitHubgithub.com/comfyanonymous/ComfyUI
Mac에서 FLUX 실행 가이드 (DEV.to)dev.to/nabata/running-the-flux1
Apple MPS 최적화 (HuggingFace 공식)huggingface.co/docs/diffusers/optimization/mps

댓글

아직 댓글이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.