ComfyUI on Mac AMD GPU or M1 M2 M3 Apple Siliconedit - step by step tutorial
나만 그런건지는 모르겠지만 맥북 실리콘 OS에 ComfyUI를 설치는 제대로 했는데 FLUX 모델을 적용하려고 이것저것 하다보니 언제부터인가 "bfloat 16 파일은 MPS를 지원하지 않습니다"라는 오류메세지가 뜨면서 생성오류가 생겼다. 도대체 맥북과 윈도우의 차이가 뭔지 한달 정도는 틈 날때 그 부분에 대해서 찾아보았는데 여기저기 블로그 글을 보면서 정보를 짜집기해서 시도해봐도 오류는 마찬가지였다. 전체적인 구조에 대한 이해없이 하라는데로만 설치하다보니 오류에 접근하기도 쉽지 않았던것이다. 결국 지금 하게 된 생각은 '제공하는 자가 알려주는 튜토리얼을 내가 읽어보고 이해하는것에서부터 시작해보자'이다.
1. 맥 OS에 ComfyUI 설치하려면 알아야할 것
ComfyUI는 AMD GPU 또는 Apple Silicon이 장착된 MacBook에서 작동하며, 설치 방법에 대한 튜토리얼을 제공한다. 사용자는 ComfyUI의 GitHub 홈페이지에 방문하여 Mac OS 섹션을 통해 설치 방법을 확인할 수 있다. 홈페이지에 맥 설치 방법에 대해 꼼꼼히 읽어보고 왜 윈도우 설치전에 다른 과정을 먼저 진행해야하는지 확인해봤다. Accelerated PyTorch training on Mac에서 좀 더 자세한 설치 메뉴얼을 제공한다고 해서 내용을 파악해보니 맥의 OS에서 지원하는 MPS를 사용하여 성능을 최적화하기 위함인걸 알 수 있었다.
You can install ComfyUI in Apple Mac silicon (M1 or M2) with any recent macOS version.
최신 macOS 버전과 함께 Apple Mac 실리콘(M1 또는 M2)에 ComfyUI를 설치할 수 있습니다.
- Install pytorch nightly. For instructions, read the Accelerated PyTorch training on Mac Apple Developer guide (make sure to install the latest pytorch nightly).
pytorch nightly를 설치합니다. 지침은 Mac Apple Developer 가이드에서 Accelerated PyTorch 교육을 읽어보세요(최신 pytorch nightly를 설치해야 합니다). - Follow the ComfyUI manual installation instructions for Windows and Linux.
Windows 및 Linux용 ComfyUI 수동 설치 지침을 따르세요. - Install the ComfyUI dependencies. If you have another Stable Diffusion UI you might be able to reuse the dependencies.
ComfyUI 종속성을 설치합니다. 다른 Stable Diffusion UI가 있는 경우 종속성을 재사용할 수 있습니다. - Launch ComfyUI by running python main.py
python main.py를 실행하여 ComfyUI를 시작합니다.
Note: Remember to add your models, VAE, LoRAs etc. to the corresponding Comfy folders, as discussed in ComfyUI manual installation.
참고: ComfyUI 수동 설치에서 설명한 대로 모델, VAE, LoRA 등을 해당 Comfy 폴더에 추가하는 것을 잊지 마세요.
Metal acceleration Metal 가속
PyTorch uses the new Metal Performance Shaders (MPS) backend for GPU training acceleration. This MPS backend extends the PyTorch framework, providing scripts and capabilities to set up and run operations on Mac. The MPS framework optimizes compute performance with kernels that are fine-tuned for the unique characteristics of each Metal GPU family. The new mps device maps machine learning computational graphs and primitives on the MPS Graph framework and tuned kernels provided by MPS.
PyTorch는 GPU 트레이닝 가속을 위해 새로운 Metal Performance Shaders(MPS) 백엔드를 사용합니다. 이 MPS 백엔드는 PyTorch 프레임워크를 확장하여 Mac에서 작업을 설정하고 실행하는 스크립트와 기능을 제공합니다. MPS 프레임워크는 각 Metal GPU 제품군의 고유한 특성에 맞게 미세 조정된 커널로 컴퓨팅 성능을 최적화합니다. 새로운 mps 장치는 MPS Graph 프레임워크에서 머신 러닝 계산 그래프와 기본 요소를 매핑하고 MPS에서 제공하는 조정된 커널을 매핑합니다.
Requirements 요구 사항
- Mac computers with Apple silicon or AMD GPUs Apple 실리콘 또는 AMD GPU가 있는 Mac 컴퓨터
- macOS 12.3 or later macOS 12.3 이상
- Python 3.7 or later Python 3.7 이상
- Xcode command-line tools: xcode-select --install Xcode 명령줄 도구: xcode-select --install
2. Comfy UI 설치 준비
자, 이제 왜 아나콘다나 파이썬을 미리 설치해야하는지 어느정도 파악했으니 시작해보자.
A. 아나콘다 설치
먼저, Anaconda라는 프로그램을 설치한다. 이 프로그램은 여러 파이썬 패키지들을 쉽게 설치하고 관리할 수 있게 도와준다. 쉽게 말해서, Anaconda는 다양한 도구(패키지들)를 하나의 상자(환경) 안에서 쉽게 꺼내 쓸 수 있게 도와주는 일종의 '도구상자'라고 할 수 있다. 터미널을 열고 아래 명령어를 복사해서 실행한다.
애플 실리콘
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
sh Miniconda3-latest-MacOSX-arm64.sh
B. python 환경 설치하기: MacBook에서 Python 프로그래밍 언어를 사용할 수 있도록 준비하는 과정
Anaconda 설치가 끝나면, 아래의 명령어를 카피하여 실행하여 python을 설치한다. 아래 두 명령줄 두 개 모두 설치하는데 문제가없다고도 하고 어떤이들은 conda 명령어보다 pip 명령어를 추천하기도 한다.
Anaconda 활용 코드(맥용)
conda install pytorch torchvision torchaudio -c pytorch-nightly
Pip 활용 코드(윈도우 X86용)
pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
설치가 완료되면 이번에는 Conda라는 명령어로 Python 3.10.12 버전을 사용하여 ComfyUI-env라는 환경을 만든다.
conda create -n comfyuienv python=3.10.12 실행(중간에 [y/n] 질문이 나오면 y를 입력한다. 환경을 만든 후에는 필요한 여러 프로그램을 설치하고, 'conda activate comfyuienv '라는 명령어로 그 환경을 사용할 수 있게 만든다.
Python이 제대로 설치 되었는지 확인해본다. 위에서 comfyuienv을 활성화시켰으므로 이제 명령어 실행 앞에는 (confyuienv)가 표시된다.
(confyuienv) $ python 을 치고 실행하면 버전과 정보가 표시된다.
다음 단계는 PyTorch nightly 버전을 설치해야 한다. 맥 os에서는 콘다를 이용하여 설치를 했었는데 최근에는 인식되지 않는경우도 있다고 하니 pip명령어를 카피해서 붙여주고 실행한다. 맥북 상단 메뉴바에 GPU와 CPU 사용 정보를 확인할 수 있는 메뉴가 생성되어 작업하는동안 확인도 가능하다.
pip3 install --pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
C. 확인하기
Python 스크립트를 사용하여 mps 지원을 간단하게 확인할 수 있다 .
(confyuienv) $ python
import torch
if torch.backends.mps.is_available():
mps_device = torch.device("mps")
x = torch.ones(1, device=mps_device)
print (x)
else:
print ("MPS device not found.")
위의 명령어를 붙여넣고 리턴을 한다. 제대로 설치되었다면 아래와 같은 결과값이 나온다.
tensor([1.], device='mps:0')
위 작업을 종료하기 위해 quit()를 사용한다.
MPS 지원으로 PyTorch를 빌드하려면 Xcode 13.3.1 이상이 필요하다. Mac App Store에서 최신 공개 Xcode 릴리스를 다운로드하거나 맥 앱 스토어또는 Apple Developer 웹사이트 의 최신 베타 릴리스 . USE_MPS환경 변수는 PyTorch 빌드를 제어하고 MPS 지원을 포함한다.
3. Comfy UI 설치 방법
ComfyUI를 설치하려면 ComfyUI 저장소를 로컬 MacBook에 복사해야 한다. 링크 페이지에 들어가서 코드를 클릭, URL을 복사하는 버튼을 클릭하고 터미널에서 git clone을 입력하고 붙여넣은 다음 Enter를 치면 복사가 된다. 홈페이지를 찾는 번거로움을 줄이기 위해 명령을 완성해두었으니 아래코드를 터미널에 복사해 넣고 엔터 하면 된다.
git clone https://github.com/comfyanonymous/ComfyUI
자신의 컴퓨터에서 해당 디렉토리로 이동해보면 ComfyUI폴더가 카피되어 있을것이다. 이제 그 폴더에 있는 requirements.txt에 있는 모든 것을 pip install한다. 파일을 열어서 항목을 확인해 볼 수 있고 많지 않아서 금방 설치된다.
로컬에 있는 comfyui 폴더의 우클릭 메뉴에서 터미널을 실행한 후 아래의 명령어를 붙여넣고 엔터.
pip install -r requirements.txt
4. 모델 다운로드
테스트를 위해 체크포인트 모델을 다운 받는다. sdxl, tubo, lighting, flux 등의 여러 모델중 일단 SDXL 모델을 다운받아본다. FLUX모델이 요즘 핫하긴 하지만 기본을 모른체 적용하려니 자꾸 오류가 생기는데 해결할 수가 없어 차근차근 해보려고 다짐중이다. 보통은 CIVITAI 사이트에서 주로 다운을 받는데 Hugging Face에도 좋은 모델이 많다고 하니 참고하면 좋을듯 하다. SDXL Base 1.0 파일을 다운로드하면 comfyUI 폴더의 model>checkpoints 폴더에 저장해야 한다.
5. 확인 방법
ComfyUI 애플리케이션 설치가 완료되면, 터미널창에 python main.py 명령어를 입력하여 실행할 수 있다.
터미널 창에 http://127.0.0.1:8188 이런 주소가 뜨면 카피해서 새창에 붙여넣는다.
SDXL 모델을 사용할 경우, 이미지 해상도는 1024x1024로 설정할 수 있다. 생성 과정과 소비전력도 낮아서 웹유아이보다도 더 가볍게 실행 가능하지만 컴퓨터 사양마다 차이가 있다.
**** 혹시 webui를 사용하시던 분들은 모델을 공유할 수 있는 방법이 있다. comfyui 폴더에 extra_model_paths.yaml.example라는 파일명에서 .example를 지우고 yaml파일로 변경한다. 경고창이 뜨는 yes를 클릭한다. extra_model_paths.yaml파일 우클릭 메뉴에서 텍스트 편집기 파일로 연 후 체크된 부분에 webui 폴더 경로를 붙여넣고 저장해준다. 다시 실행해보면 모델 항목에 리스트가 뜨는 걸 확인할 수 있다.
이번에는 m1, m2맥북에 comfyUI를 설치하는 방법에 대해서 정리해 올렸다. 다음엔 기본적인 화면 구성 요소 설명과 실제 적용 사례를 적어보려한다. 메인 화면의 노드를 활용해서 이미지를 생성하고 변형하고 업스케일하는 등 여러 기능을 정리하면서 조금 익숙해지면 FLUX와 sd 3.5를 적용하는것과 기존 webUI에서 다운받아두었던 모델을 사용할 수 있는 방법, 이미지 생성시 파일 정리하는 팁까지~
나처럼 맥북에서 스테이블 디퓨전을 해보려고는 하지만 자세한 설명이 없어 헤메는 사람들에게 조금이나마 도움이 되었으면 한다.
'스터디' 카테고리의 다른 글
ComfyUI 워크플로우 노드와 용어 설명 & Manager 설치 방법 (0) | 2024.11.27 |
---|---|
ComfyUI 메뉴얼 1 기본 사용법과 설정 (0) | 2024.11.26 |
윈도우용 아이클라우드 파일명 깨짐 현상 해결 방법 (0) | 2024.09.10 |
스테이블 디퓨전 Webui - 시비타이 모델 etherRealMix_4 (0) | 2024.08.08 |
스테이블 디퓨전 Webui - 체크포인트 모델 morphxl_v10 (0) | 2024.07.08 |