Fooocus – SDXL 이미지 생성 도구 Fooocus 설치하기
Fooocus 사용법, AI 이미지생성
Fooocus(깃허브 주소) 는 스테이블디퓨전XL (SDXL) 기반 모델로 이미지 생성을 할 수 있게 해주는 파이썬 Gradio WEBUI로 이루어진 툴입니다. 윈도우, 리눅스 ,코랩의 다양한 환경에서 사용 할 수 있고 다른 툴과 비교했을 때 메모리 최적화가 잘 되어 어느 정도 저사양이여도 돌아가는 편입니다(https://github.com/lllyasviel/Fooocus?tab=readme-ov-file#minimal-requirement 참고)
컴퓨터 GPU의 성능이 괜찮다면 개인 컴퓨터를 이용해 AI 이미지를 생성할 수 있고 성능이 안 좋다면 코랩 같은 서비스를 이용해 이미지를 생성할 수 있어서 구독형 AI 이미지 생성 서비스와 비교했을 때 비용 절감이 가능합니다.
Fooocus를 사용하기 위해서는 다운로드 받고 실행해주면 되는데 사용할 SDXL 기반 모델(SDXL, Pony, ILXL 등) 이나 Lora는 civitai나 huggingface 등의 사이트에서 다운로드 받아 알맞은 경로에 넣어줘야 합니다.
이 글에서는 여러 환경에서 Fooocus를 다운로드 받고 모델로 이미지를 생성하는 방법을 알아보겠습니다.
코랩에서 사용가능한 주피터노트북 파일입니다.
목차
Fooocus 다운로드 및 설치
Fooocus 깃허브 페이지에서 환경별로 다운로드 받고 설치하는 방법들이 나와있습니다. 깃허브 페이지에는 AMD GPU, Mac에서 사용하는 방법도 나와 있는데 이 글에서는 다루지 않습니다.
Windows
윈도우는 https://github.com/lllyasviel/Fooocus?tab=readme-ov-file#windows 이 링크에서 다운로드 받고 압축을 풀어주면 됩니다.
Linux
리눅스의 경우 https://github.com/lllyasviel/Fooocus?tab=readme-ov-file#linux-using-anaconda에 파이썬 가상환경에 따라 설치하기 위한 명령어가 나와 있습니다.
Anaconda
git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
conda env create -f environment.yaml
conda activate fooocus
pip install -r requirements_versions.txt
git clone으로 파일들을 다운로드 받으면 Fooocus 디렉토리가 생성되고 그 안에 파일들이 들어있습니다. 디렉토리에 들어가 anaconda 가상환경을 만들고 활성화한 후 필요한 라이브러리들을 설치하는 명령입니다.
Venv
git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
python3 -m venv fooocus_env
source fooocus_env/bin/activate
pip install -r requirements_versions.txt
마찬가지로 디렉토리에 들어가 가상환경을 활성화 하고 필요한 라이브러리들을 설치하는 명령입니다.
Python (가상환경 사용 안함)
git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
pip3 install -r requirements_versions.txt
비슷하게 디렉토리에 들어가 필요한 라이브러리들을 설치하는 명령입니다.
Colab
코랩도 기본적으로는 리눅스와 같은데 주피터노트북 셀에서 명령어를 실행해야 하기 때문에 약간 달라집니다. 아래 코드를 셀 하나에 입력하고 실행해주면 됩니다.
!pip install pygit2==1.15.1
%cd /content
!git clone https://github.com/lllyasviel/Fooocus.git
구글드라이브와 연동해서 사용하려면 아래코드를 이용해서 연동 후 구글드라이브로 경로를 바꿔 다운로드 받습니다.
from google.colab import drive
drive.mount('/content/drive')
!pip install pygit2==1.15.1
%cd /content/drive/MyDrive
!git clone https://github.com/lllyasviel/Fooocus.git
모델 다운로드 받고 실행하기
Fooocus 디렉토리의 내부를 보면 models 디렉토리가 있습니다. models 디렉토리 안에는 여러 개의 디렉토리가 있는데 checkpoints에 SDXL 기반 모델들을 넣어주고 loras에 lora 파일들을 넣어줍니다. Fooocus를 실행할 때 지정하는 preset에 다운로드 주소를 넣어 실행할 때 다운로드 되게 할 수도 있습니다.
모델들은 civitai나 huggingface 등의 사이트에서 다운로드 받을 수 있는데 civitai에서는 인기 있는 모델을 알 수 있고 모델로 만든 이미지를 볼 수 있습니다. 그냥 다운로드가 가능한 경우도 있지만 다운로드 받는데 로그인이 필요한 경우도 있습니다. 만들고 싶은 이미지에 적합한 모델을 다운로드 받아 Fooocus/models/checkpoints에 옮겨줍니다.
일반적으로 모델을 다운로드 받는 경우는 브라우저를 통해 다운로드 받아 경로에 옮겨주면 되고 CLI 환경이나 코랩에서는 wget으로 다운로드 받을 수 있습니다.
!wget -O 파일경로 다운로드주소
아래는 코랩에서 사용하는 코드의 예시입니다.
!wget -O /content/Fooocus/models/checkpoints/NoobAI-XL-v1.1.safetensors https://huggingface.co/Laxhar/noobai-XL-1.1/resolve/main/NoobAI-XL-v1.1.safetensors
로그인이 필요한 모델의 경우 API키가 필요합니다.
실행전에 preset 파일을 이용하는 방법을 알아보겠습니다. Fooocus/presets 경로에는 기본 프리셋들이 들어있는데 이를 이용할 수도 있고 직접 만들어서 사용할 수도 있습니다. 지정을 안하면 기본 프리셋이 적용됩니다. 아래의 예시는 civitai에서 Jugg_XI_by_RunDiffusion 모델을 다운로드 받고 사용하는 프리셋입니다. 프리셋에 대한 자세한 내용은 이 글에 작성했습니다.
{
"default_model": "Jugg_XI_by_RunDiffusion.safetensors",
"default_refiner": "None",
"default_refiner_switch": 0.5,
"default_loras": [
[
true,
"None",
1.0
],
[
true,
"None",
1.0
],
[
true,
"None",
1.0
],
[
true,
"None",
1.0
],
[
true,
"None",
1.0
]
],
"default_cfg_scale": 6.0,
"default_sample_sharpness": 2.0,
"default_sampler": "dpmpp_2m_sde_gpu",
"default_scheduler": "karras",
"default_performance": "Speed",
"default_prompt": "",
"default_prompt_negative": "",
"default_styles": [
],
"default_aspect_ratio": "896*1152",
"default_overwrite_step": -1,
"checkpoint_downloads": {
"Jugg_XI_by_RunDiffusion.safetensors": "https://civitai.com/api/download/models/782002"
},
"embeddings_downloads": {},
"lora_downloads": {},
"previous_default_models": [
]
}
중요한 부분은 default_model과 checkpoint_downloads 부분으로 checkpoint_downloads에 어떤 경로를 통해 다운로드 받는지와 파일이름을 어떻게 할건지 지정해줍니다. default_model은 사용할 모델파일을 입력하기 때문에 checkpoint_downloads에서 지정한 파일이름을 똑같이 적어줍니다.
이미 다운로드 받은 모델이 있는 경우 checkpoint_downloads의 내용을 비우고 default_model에 다운로드 받은 모델 파일명을 그대로 써줍니다.
참고로 civitai에서 로그인이 필요한 모델의 경우 주소에 api값을 넣어줘야 합니다. 로그인하고 설정에서 api키를 발급받을 수 있습니다.
https://civitai.com/api/download/models/1022833?token=<api>"
프리셋 파일을 파일명.json으로 해서 Fooocus/presets 안에 저장해줍니다. 예시 파일명은 Jugg_XI.json으로 지정했습니다.
다른 옵션도 모델에 맞게 바꾸는게 편하지만 실행 후 webui화면에서도 바꿀 수 있기 때문에 webui화면에서 본 다음에 살펴보겠습니다. 물론 webui화면에서 모델, lora 등도 바꿀 수 있습니다.
프리셋을 지정해 실행하면 자동으로 모델을 다운로드 받고 값들이 설정됩니다.
Windows
윈도우에서는 다운로드 받아서 압축을 풀고 들어가면 run.bat 파일들을 볼 수 있습니다. 하나를 run_anime.bat이나 run_realistic.bat을 복사한 후 다른 bat 파일들과 구별이 쉽게 파일명을 바꿔줍니다. 파일을 우클릭하고 편집하기를 눌러서 메모장으로 보면 아래처럼 되어있습니다. 여기서 –preset의 인수를 새롭게 만들었던 프리셋 파일의 파일명으로 바꿔줍니다.
.\python_embeded\python.exe -s Fooocus\entry_with_update.py --preset Jugg_XI
pause
Linux
anaconda, venv에서는 Fooocus 디렉토리로 이동하고 전에 만들었던 가상환경을 활성화해줍니다. 가상환경을 사용하지 않는 경우에도 Fooocus 디렉토리에 이동해줍니다. 프리셋 인수를 지정해 Fooocus 디렉토리 내의 entry_with_update.py를 실행해줍니다.
Anaconda
conda activate fooocus
python entry_with_update.py --preset Jugg_XI
Venv
source fooocus_env/bin/activate
python entry_with_update.py --preset Jugg_XI
Python (가상환경 사용 안함)
python3 entry_with_update.py --preset Jugg_XI
Colab
드라이브를 사용하지 않는 경우
%cd /content/Fooocus
!python entry_with_update.py --share --always-high-vram --preset Jugg_XI
구글 드라이브를 사용하는 경우
%cd /content/drive/MyDrive/Fooocus
!python entry_with_update.py --share --always-high-vram --preset Jugg_XI
추가 인수
추가로 몇 가지 다른 인수를 보겠습니다.
- –listen : 원격으로 사용하는 경우 (예 : 서버에서 실행하고 내부망의 PC로 접속)
- –port <포트 번호> : 포트 지정
- –share : gradio로 중계 (외부망에서 접속, 코랩에서 사용)
프롬프트를 입력해서 이미지 생성하기
Fooocus를 실행하면 접속할 수 있는 주소가 나오는데 브라우저로 접속해줍니다. 로컬의 경우 “127.0.0.1:포트번호” 로 접속하면 됩니다. 원격의 경우 “ip주소:포트번호”로 접속하고 코랩의 경우 –share 옵션이 들어가서 gradio.live로 끝나는 주소가 생성되는데 이 주소로 접속하면 됩니다.

프롬프트 창에 생성하고 싶은 내용을 영어로 입력하고 쉼표로 구분해 줍니다. 모델에 따라 프롬프트 형식이 있는 경우도 있습니다. 프롬프트를 입력하고 Generate를 누르면 이미지가 생성됩니다.

Advanced를 활성화 해 이미지 크기 및 비율, 스텝 수, 사용 모델, guidance scale 등을 변경 할 수 있습니다. 다음 글에서 이를 살펴보고 프리셋 파일에도 적용해보겠습니다.
네거티브 프롬프트
프롬프트 아래의 Advanced를 활성화하면 생기는 Settings 탭에서 네거티브 프롬프트를 입력할 수 있습니다. 이미지에 나타나지 않게 하고 싶은 것을 적으면 됩니다.

이미지생성 기록보기
프롬프트 아래의 Advanced를 활성화하면 생기는 Settings 탭 가장 아래에 History Log를 눌러서 만들었던 이미지들과 프롬프트, 설정 등을 확인할 수 있습니다. 이미지가 너무 많으면 랙이 걸릴수도 있습니다.
