My Blog

다양한 정보 – 스타크래프트, 그림AI, 동물, 파이썬 등

Fooocus그림AI

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으로 파일들을 다운로드 받으면 Fooocus 디렉토리가 생성되고 그 안에 파일들이 들어있습니다. 디렉토리에 들어가 anaconda 가상환경을 만들고 활성화한 후 필요한 라이브러리들을 설치하는 명령입니다.

Venv

마찬가지로 디렉토리에 들어가 가상환경을 활성화 하고 필요한 라이브러리들을 설치하는 명령입니다.

Python (가상환경 사용 안함)

비슷하게 디렉토리에 들어가 필요한 라이브러리들을 설치하는 명령입니다.

Colab

코랩도 기본적으로는 리눅스와 같은데 주피터노트북 셀에서 명령어를 실행해야 하기 때문에 약간 달라집니다. 아래 코드를 셀 하나에 입력하고 실행해주면 됩니다.

구글드라이브와 연동해서 사용하려면 아래코드를 이용해서 연동 후 구글드라이브로 경로를 바꿔 다운로드 받습니다.

모델 다운로드 받고 실행하기

Fooocus 디렉토리의 내부를 보면 models 디렉토리가 있습니다. models 디렉토리 안에는 여러 개의 디렉토리가 있는데 checkpoints에 SDXL 기반 모델들을 넣어주고 loras에 lora 파일들을 넣어줍니다. Fooocus를 실행할 때 지정하는 preset에 다운로드 주소를 넣어 실행할 때 다운로드 되게 할 수도 있습니다.

모델들은 civitai huggingface 등의 사이트에서 다운로드 받을 수 있는데 civitai에서는 인기 있는 모델을 알 수 있고 모델로 만든 이미지를 볼 수 있습니다. 그냥 다운로드가 가능한 경우도 있지만 다운로드 받는데 로그인이 필요한 경우도 있습니다. 만들고 싶은 이미지에 적합한 모델을 다운로드 받아 Fooocus/models/checkpoints에 옮겨줍니다.

일반적으로 모델을 다운로드 받는 경우는 브라우저를 통해 다운로드 받아 경로에 옮겨주면 되고 CLI 환경이나 코랩에서는 wget으로 다운로드 받을 수 있습니다.

아래는 코랩에서 사용하는 코드의 예시입니다.

로그인이 필요한 모델의 경우 API키가 필요합니다.

실행전에 preset 파일을 이용하는 방법을 알아보겠습니다. Fooocus/presets 경로에는 기본 프리셋들이 들어있는데 이를 이용할 수도 있고 직접 만들어서 사용할 수도 있습니다. 지정을 안하면 기본 프리셋이 적용됩니다. 아래의 예시는 civitai에서 Jugg_XI_by_RunDiffusion 모델을 다운로드 받고 사용하는 프리셋입니다. 프리셋에 대한 자세한 내용은 이 글에 작성했습니다.

중요한 부분은 default_model과 checkpoint_downloads 부분으로 checkpoint_downloads에 어떤 경로를 통해 다운로드 받는지와 파일이름을 어떻게 할건지 지정해줍니다. default_model은 사용할 모델파일을 입력하기 때문에 checkpoint_downloads에서 지정한 파일이름을 똑같이 적어줍니다.

이미 다운로드 받은 모델이 있는 경우 checkpoint_downloads의 내용을 비우고 default_model에 다운로드 받은 모델 파일명을 그대로 써줍니다.

참고로 civitai에서 로그인이 필요한 모델의 경우 주소에 api값을 넣어줘야 합니다. 로그인하고 설정에서 api키를 발급받을 수 있습니다.

프리셋 파일을 파일명.json으로 해서 Fooocus/presets 안에 저장해줍니다. 예시 파일명은 Jugg_XI.json으로 지정했습니다.

다른 옵션도 모델에 맞게 바꾸는게 편하지만 실행 후 webui화면에서도 바꿀 수 있기 때문에 webui화면에서 본 다음에 살펴보겠습니다. 물론 webui화면에서 모델, lora 등도 바꿀 수 있습니다.

프리셋을 지정해 실행하면 자동으로 모델을 다운로드 받고 값들이 설정됩니다.

Windows

윈도우에서는 다운로드 받아서 압축을 풀고 들어가면 run.bat 파일들을 볼 수 있습니다. 하나를 run_anime.bat이나 run_realistic.bat을 복사한 후 다른 bat 파일들과 구별이 쉽게 파일명을 바꿔줍니다. 파일을 우클릭하고 편집하기를 눌러서 메모장으로 보면 아래처럼 되어있습니다. 여기서 –preset의 인수를 새롭게 만들었던 프리셋 파일의 파일명으로 바꿔줍니다.

Linux

anaconda, venv에서는 Fooocus 디렉토리로 이동하고 전에 만들었던 가상환경을 활성화해줍니다. 가상환경을 사용하지 않는 경우에도 Fooocus 디렉토리에 이동해줍니다. 프리셋 인수를 지정해 Fooocus 디렉토리 내의 entry_with_update.py를 실행해줍니다.

Anaconda
Venv
Python (가상환경 사용 안함)

Colab

드라이브를 사용하지 않는 경우

구글 드라이브를 사용하는 경우

추가 인수

추가로 몇 가지 다른 인수를 보겠습니다.

  • –listen : 원격으로 사용하는 경우 (예 : 서버에서 실행하고 내부망의 PC로 접속)
  • –port <포트 번호> : 포트 지정
  • –share : gradio로 중계 (외부망에서 접속, 코랩에서 사용)

프롬프트를 입력해서 이미지 생성하기

Fooocus를 실행하면 접속할 수 있는 주소가 나오는데 브라우저로 접속해줍니다. 로컬의 경우 “127.0.0.1:포트번호” 로 접속하면 됩니다. 원격의 경우 “ip주소:포트번호”로 접속하고 코랩의 경우 –share 옵션이 들어가서 gradio.live로 끝나는 주소가 생성되는데 이 주소로 접속하면 됩니다.

Fooocus 첫 화면
Fooocus 첫 화면

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

생성된 이미지
생성된 이미지

Advanced를 활성화 해 이미지 크기 및 비율, 스텝 수, 사용 모델, guidance scale 등을 변경 할 수 있습니다. 다음 글에서 이를 살펴보고 프리셋 파일에도 적용해보겠습니다.

네거티브 프롬프트

프롬프트 아래의 Advanced를 활성화하면 생기는 Settings 탭에서 네거티브 프롬프트를 입력할 수 있습니다. 이미지에 나타나지 않게 하고 싶은 것을 적으면 됩니다.

Negative Prompt
Negative Prompt

이미지생성 기록보기

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

History Log
History Log

이미지 생성과 관련된 설정 조정하기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!