DiffusionKit: Apple Silicon에 최적화한 Diffusion 모델 (feat. MLX)
DiffusionKit 소개
DiffusionKit은 Apple Silicon에서 Diffusion 모델을 실행할 수 있는 Python 및 Swift 패키지입니다. Python 패키지인 diffusionkit
은 PyTorch 모델을 Core ML 형식으로 변환하고, MLX를 통해 이미지 생성을 지원합니다. Swift 패키지인 DiffusionKit
은 Core ML과 MLX를 활용한 온디바이스 추론을 가능하게 합니다. 이를 통해 Apple 기기에서 더 작은 메모리 사용으로 고성능 이미지 생성이 가능합니다.
DiffusionKit은 Apple Silicon의 강력한 성능을 활용하기 위해 최적화된 도구입니다. 기존에는 PyTorch 모델을 Apple 기기에서 실행하려면 변환 과정이 복잡했고, 성능 저하가 발생하기 쉬웠습니다. DiffusionKit은 이러한 문제를 해결하며, Core ML과 MLX를 통해 더 빠르고 효율적인 모델 추론을 제공합니다. 특히, Apple의 Core ML Stable Diffusion 프로젝트와 통합되어 있어 최신 Stable Diffusion 모델을 쉽게 사용할 수 있습니다.
주요 기능
-
PyTorch 모델 변환: PyTorch 모델을 Core ML 형식으로 변환하여 Apple Silicon에서 실행할 수 있습니다.
-
MLX 통합: MLX를 통해 Python 환경에서 효율적으로 이미지 생성을 수행할 수 있습니다.
-
Swift 패키지: Swift를 통해 온디바이스에서 직접 Diffusion 모델을 추론할 수 있습니다.
-
Hugging Face Hub 지원: Stable Diffusion 3와 같은 최신 모델을 쉽게 사용할 수 있도록 지원합니다.
사용 방법
Python 환경 설정
conda create -n diffusionkit python=3.11 -y
conda activate diffusionkit
cd /path/to/diffusionkit/repo
pip install -e .
Hugging Face Hub에 로그인하여 Stable Diffusion 3 모델을 다운로드 합니다:
huggingface-cli login --token YOUR_HF_HUB_TOKEN
PyTorch 모델을 Core ML로 변환
- denoise 모델 준비:
python -m tests.torch2coreml.test_mmdit --sd3-ckpt-path <path-to-sd3-mmdit.safetensors or model-version-string-from-hub> --model-version {2b} -o <output-mlpackages-directory> --latent-size {64, 128}
- VAE Decoder 모델 준비:
python -m tests.torch2coreml.test_vae --sd3-ckpt-path <path-to-sd3-mmdit.safetensors or model-version-string-from-hub> -o <output-mlpackages-directory> --latent-size {64, 128}
MLX를 통한 이미지 생성
간단한 텍스트-이미지 생성 예제:
diffusionkit-cli --prompt "a photo of a cat" --output-path </path/to/output/image.png> --seed 0 --w16 --a16
사용 가능한 모든 인수는 도움말 메뉴에서 확인할 수 있습니다:
diffusionkit-cli -h
라이선스
이 프로젝트는 MIT License로 공개 및 배포되고 있습니다.
더 읽어보기
DiffusionKit GitHub 저장소
MLX GitHub 저장소
Stable Diffusion 3 허깅페이스 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~