MFLUX 소개
MFLUX는 Black Forest Labs에서 개발한 강력한 FLUX 모델의 MLX 포팅 버전으로, Mac에서 이 모델을 로컬로 실행할 수 있게 해줍니다.
관련 링크
- GitHub: https://github.com/filipstrand/mflux
- 공식 웹사이트: https://blackforestlabs.ai
- 공식 문서: https://huggingface.co/black-forest-labs/FLUX.1-dev
- 데모/온라인 테스트: https://blackforestlabs.ai/#get-flux
- Hugging Face: https://huggingface.co/black-forest-labs
- 커뮤니티: https://github.com/filipstrand/mflux/discussions
- 라이선스: MIT
주요 기능
- Huggingface Diffusers 구현과 완전 호환
- 3/4/6/8비트 양자화 실행 지원
- LoRA 어댑터 지원
- ControlNet 제어 생성 지원
- 이미지-이미지 변환 지원
- Dreambooth 미세조정 지원
- Flux 도구 세트(채우기, 깊이, Redux) 제공
- 제3자 HuggingFace 모델 지원
설치 방법
시스템 요구사항
- macOS 운영체제
- Python 3.9+
설치 옵션
uv 도구로 설치 (권장)
uv tool install --upgrade mflux
가상 환경으로 설치
mkdir -p mflux && cd mflux && python3 -m venv .venv && source .venv/bin/activate
pip install -U mflux
Python 3.13 개발 프리뷰 버전 설치
uv venv --python 3.13
python -V # 예: Python 3.13.0rc2
source .venv/bin/activate
uv pip install https://github.com/anthonywu/sentencepiece/releases/download/0.2.1-py13dev/sentencepiece-0.2.1-cp313-cp313-macosx_11_0_arm64.whl
uv pip install --pre --extra-index-url https://download.pytorch.org/whl/nightly -e .
개발자용 설치
git clone git@github.com/filipstrand/mflux.git
make install
make test
사용 가이드
1. 이미지 생성
기본 생성 예제
mflux-generate --model schnell --prompt "고급 음식 사진 촬영" --steps 2 --seed 2 -q 8
mflux-generate --model dev --prompt "고급 음식 사진 촬영" --steps 25 --seed 2 -q 8
전체 명령줄 인자
--prompt(필수): 이미지 설명 텍스트--model(필수): 사용할 모델("schnell" 또는 "dev")--output: 출력 파일명 (기본값: "image.png")--seed: 랜덤 시드 (여러 개 가능)--height/--width: 이미지 크기 (기본값 1024x1024)--steps: 추론 단계 수 (기본값 4)--guidance: 안내 비율 (dev 모델만 해당)--quantize/-q: 양자화 비트 수 (3/4/6/8)--lora-paths: LoRA 가중치 경로--lora-scales: LoRA 스케일 비율--image-path: 이미지-이미지 변환을 위한 원본 이미지--image-strength: 원본 이미지 영향 강도 (0.0-1.0)--low-ram: 저 메모리 모드
2. 양자화 실행
실행 시 양자화
mflux-generate \
--model schnell \
--steps 2 \
--seed 2 \
--quantize 8 \
--height 1920 \
--width 1024 \
--prompt "대나무 숲 연못의 새베 풍경"
양자화 모델 크기 비교
| 3비트 | 4비트 | 6비트 | 8비트 | 원본(16비트) |
|---|---|---|---|---|
| 7.52GB | 9.61GB | 13.81GB | 18.01GB | 33.73GB |
양자화 모델 저장
mflux-save \
--path "/Users/username/Desktop/schnell_8bit" \
--model schnell \
--quantize 8
양자화 모델 로드
mflux-generate \
--path "/Users/username/Desktop/schnell_8bit" \
--model schnell \
--steps 2 \
--seed 2 \
--prompt "고급 음식 사진 촬영"
3. 이미지-이미지 변환
mflux-generate \
--prompt "에펠탑 건축 스케치" \
--image-path "reference.png" \
--image-strength 0.3 \
--lora-paths Architectural_Sketching.safetensors \
--lora-scales 1.0 \
--model dev \
--steps 20 \
--seed 43 \
--guidance 4.0 \
--quantize 8 \
--height 1024 \
--width 1024
4. LoRA 어댑터
단일 LoRA 사용
mflux-generate --prompt "샌더 클레인" --model dev --steps 20 --seed 43 -q 8 --lora-paths "sandor_clegane_single_layer.safetensors"
다중 LoRA 조합
mflux-generate \
--prompt "대나무 숲 속의 샌더 클레인, 종이예술 스타일" \
--model dev \
--steps 20 \
--seed 43 \
--lora-paths sandor_clegane_single_layer.safetensors Flux_1_Dev_LoRA_Paper-Cutout-Style.safetensors \
--lora-scales 1.0 1.0 \
-q 8
5. ControlNet 제어 생성
mflux-generate-controlnet \
--prompt "보라색 정장을 입은 광대 만화 스타일" \
--model dev \
--steps 20 \
--seed 1727047657 \
--height 1066 \
--width 692 \
-q 8 \
--lora-paths "Dark Comic - s0_8 g4.safetensors" \
--controlnet-image-path "reference.png" \
--controlnet-strength 0.5 \
--controlnet-save-canny
6. Dreambooth 미세조정
학습 예제
mflux-train --train-config src/mflux/dreambooth/_example/train.json
학습 복원
mflux-train --train-checkpoint 0001000_checkpoint.zip
Flux 도구 세트
1. 채우기 도구 (Inpainting/Outpainting)
마스크 생성
python -m tools.fill_mask_tool /path/to/your/image.jpg
사용 예제
mflux-generate-fill \
--prompt "빨간 모자와 스노우글라스를 쓴 강아지" \
--steps 20 \
--seed 42 \
--height 1280 \
--width 851 \
--guidance 30 \
-q 8 \
--image-path "dog.png" \
--masked-image-path "dog_mask.png"
2. 깊이 도구
깊이맵 생성
mflux-save-depth --image-path "your_image.jpg" -q 8
깊이맵 사용 생성
mflux-generate-depth \
--prompt "하얀 칼라라 대리석 복도" \
-q 8 \
--height 1680 \
--width 1200 \
--image-path "original_image.png" \
--steps 20 \
--seed 7102725
3. Redux 도구
mflux-generate-redux \
--prompt "흰색 플랫폼 위의 회색 고양이 조각상" \
--redux-image-paths "original.png" \
--steps 20 \
--height 1654 \
--width 1154 \
-q 8
성능 및 호환성
이미지 생성 속도 참고
| 장치 | 칩 | 사용자 | 보고 시간 | 비고 |
|---|---|---|---|---|
| Mac Studio | M2 Ultra | @awni | <15초 | |
| Macbook Pro | M4 Max | @ivanfioravanti | ~19초 | 128GB 메모리 |
| Macbook Pro | M3 Max | @karpathy | ~20초 | |
| Mac Mini | M4 Pro | @Stoobs | ~34초 | 64GB 메모리 |
| Macbook Air | M1 | @mbvillaverde | ~335초 | 8GB 메모리, 512x512 |
현재 제한사항
- 배치 생성 미지원
- 부정 프롬프트 미지원
- LoRA는 transformer 부분만 지원
- 일부 LoRA 어댑터 호환되지 않음
- ControlNet은 canny 버전만 지원
- Dreambooth 학습 매개변수는 구성 파일을 통해 설정 필요
작업 흐름 제안
HF_HUB_DISABLE_PROGRESS_BARS=1로 다운로드 진행 표시 숨기기- 복잡한 매개변수를 저장하기 위해 구성 파일 사용
- 셸 별칭으로 일반 명령 단순화
- 저 메모리 장치에서
--low-ram옵션 사용 - 다중 시드 생성을 위해
--seed다중 값 또는--auto-seeds사용 --stepwise-image-output-dir로 중간 단계 이미지 저장
감사의 말
MFLUX 구현은 다음 프로젝트의 기여 없이는 불가능했습니다:
- MLX 팀이 개발한 MLX
- Black Forest Labs의 FLUX
- Hugging Face의 Diffusers
- Depth Pro 팀의 깊이 모델
- 모든 기여자 및 테스터