스테이블디퓨젼(stable-diffusion)을 리눅스(Ubuntu 22.04.1 LTS)에 설치하는 방법

스테이블디퓨젼(stable-diffusion)을 리눅스(Ubuntu 22.04.1 LTS)에 설치하는 방법

목차

스테이블 디퓨전(Stable Diffusion)을 리눅스(Ubuntu 22.04)에 설치하면 윈도우 라이선스 없이 무료로, 그리고 웹 브라우저로 어디서든 접속할 수 있는 이미지 생성 서버를 만들 수 있다. 이 글에서는 가장 많이 쓰이는 AUTOMATIC1111 Stable Diffusion WebUI를 Ubuntu 22.04.1 LTS에 설치하는 전 과정을, 준비물(GPU·드라이버·파이썬) → 의존성 설치 → 저장소 내려받기·실행 → 모델 확인 → 웹 접속 → 원격 접속 설정 → 트러블슈팅 순서로 정리한다.

왜 리눅스(Ubuntu)에 스테이블 디퓨전을 설치하는가

Stable Diffusion은 그 자체로는 이미지 생성 알고리즘(오픈소스 소스 코드)이라, 실제로 쓰려면 UI 프로그램이 필요하다. 그중 가장 널리 쓰이는 것이 웹 브라우저로 조작하는 AUTOMATIC1111 WebUI다. 웹 UI라는 점이 핵심 장점인데, 서버에 한 번 띄워 두면 크롬·사파리·엣지·파이어폭스 등 브라우저만 있으면 PC·노트북·모바일 어디서든 접속해 쓸 수 있기 때문이다.

윈도우에 설치해도 되지만, 24시간 켜 두는 이미지 생성 서버 용도라면 리눅스가 유리하다. OS와 WebUI 모두 오픈소스라 비용이 들지 않고, 윈도우 라이선스 비용도 아낄 수 있다. 리눅스 설치 및 드라이버 설정에 익숙하다면 설치 과정도 비교적 단순한 편이다.

  1. 리눅스 OS와 WebUI 모두 오픈소스라 무료로 사용할 수 있다.
  2. 웹 UI라 브라우저만 있으면 언제 어디서나 접속해 이용할 수 있다.
  3. 서버로 띄워 두기 좋아 PC·노트북·모바일 등 기기를 가리지 않는다.

준비물 — GPU, 드라이버, 파이썬

설치를 시작하기 전에 다음 환경이 갖춰져 있어야 한다.

  • OS: Ubuntu 22.04.1 LTS (이 글은 우분투 설치가 끝난 상태를 전제로 한다)
  • GPU: NVIDIA 그래픽카드. 이 글은 가성비 좋은 지포스 RTX 3060 12GB를 기준으로 작성했다. VRAM이 클수록 고해상도 생성에 유리하다.
  • NVIDIA 드라이버: 그래픽카드 드라이버가 설치돼 있어야 한다. 드라이버를 설치하면 전력 관리도 함께 처리된다.
  • 파이썬 3.10: Ubuntu 22.04에는 Python 3.10이 기본 포함돼 있어 AUTOMATIC1111의 요구 버전(3.10~3.11)을 그대로 충족한다.

이 글은 리눅스와 그래픽카드 드라이버 설치가 끝난 상태에서 진행한다. 우분투 설치와 그래픽카드 드라이버 설치가 필요하다면 아래 글을 먼저 참고하면 된다.

의존성 프로그램 설치 (gcc·git·python3-venv·pip·packaging)

스테이블 디퓨전을 설치하려면 먼저 의존성 프로그램과 라이브러리를 깔아 둬야 한다. 설치 전 알아 둘 조건은 세 가지다.

  1. 의존성 프로그램 설치 (gcc, git, python3-venv, pip, packaging)
  2. webui.sh가 있는 파일에 실행 권한 부여
  3. root 계정이 아닌 일반 사용자 계정으로 실행

gcc 설치

gcc(GNU Compiler Collection)는 C·C++ 등 여러 언어를 컴파일하는 표준 컴파일러로, 파이썬 패키지를 빌드할 때 필요하다. 명령어 한 줄로 설치한다.

sudo apt-get install gcc

git 설치

git은 소스 코드를 내려받고 버전을 관리하는 분산 버전 관리 시스템으로, WebUI 저장소를 클론할 때 쓰인다. 최신 버전을 쓰려고 PPA 저장소를 추가한 뒤 설치한다(기본 저장소의 git을 그대로 써도 무방하다).

sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git

위와 같이 저장소를 등록·갱신한 뒤 apt install git으로 간단히 설치된다.

python3-venv 설치

리눅스에는 대개 파이썬이 기본 설치돼 있다. 여기에 venv를 추가로 설치한다. venv는 파이썬3가 기본 제공하는 가상환경(virtualenv)을 만드는 라이브러리로, WebUI는 이 가상환경 안에 의존 패키지를 격리해 설치한다. Ubuntu 22.04에서는 python3.10-venv가 함께 설치된다.

sudo apt install python3-venv

그 외 의존 라이브러리 설치

WebUI 구동에 필요한 그래픽·시스템 라이브러리를 함께 설치한다. libgl1, libglib2.0-0 등이며, 환경에 따라 libflashrom1, libftdi1-2가 요구되기도 한다.

sudo apt install libgl1 libglib2.0-0 libflashrom1 libftdi1-2

참고로 AUTOMATIC1111 공식 가이드가 안내하는 리눅스(Debian 계열) 의존성은 다음과 같다. 위 패키지와 사실상 동일하니, 공식 문서를 따르고 싶다면 아래 한 줄이면 충분하다.

sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0

의존성 목록의 근거가 궁금하다면 AUTOMATIC1111 공식 저장소의 리눅스 설치 가이드를 보는 것이 가장 정확하다.

pip와 packaging 설치

스테이블 디퓨전은 파이썬 기반으로 동작하므로 파이썬 패키지 관리자 pip가 필요하다. pip를 먼저 설치한 뒤, WebUI가 요구하는 packaging 패키지를 설치한다.

sudo apt install python3-pip
pip install packaging

이렇게 하면 의존성 준비가 끝난다.

저장소 내려받기와 webui.sh 실행

이제 AUTOMATIC1111을 설치한다. 설치 스크립트인 webui.sh를 내려받고, ls로 잘 받아졌는지 확인한다.

wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
ls
# 결과: webui.sh

저장소 전체를 한 번에 받고 싶다면 git clone을 써도 된다. 이 경우 생성된 stable-diffusion-webui 디렉터리 안의 webui.sh를 실행하면 된다.

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui

앞서 말한 두 조건을 잊지 말자. webui.sh실행 권한을 주고, root가 아닌 일반 계정으로 실행해야 한다. chmod로 실행 권한을, chown으로 소유자를 일반 계정(예: gyeominater)으로 바꾼다.

# 실행 권한 부여
chmod +x webui.sh
# 소유자를 일반 계정으로 변경 (root로 받은 경우)
chown gyeominater. webui.sh
ls -al
# -rwxr-xr-x 1 gyeominater gyeominater 8098 ... webui.sh

이제 일반 계정으로 스크립트를 실행한다. 처음 실행 시 venv 가상환경을 만들고, PyTorch·torchvision 등 수 GB 분량의 패키지를 내려받기 때문에 시간이 꽤 걸린다(네트워크에 따라 수 분~수십 분).

./webui.sh

실행하면 아래와 같은 로그가 흐른다. 저장소 클론 → venv 생성 → PyTorch·torchvision 설치 → 기본 모델(v1-5-pruned-emaonly) 다운로드 순으로 진행된다.

Install script for stable-diffusion + Web UI
Running on gyeominater user

Clone stable-diffusion-webui
Create and activate python venv
Launching launch.py...

Installing torch and torchvision
Downloading https://download.pytorch.org/whl/cu118/torch-2.0.1+cu118-...whl (2267.3 MB)
...
Downloading: "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"
...
Running on local URL:  http://127.0.0.1:7860
...
Model loaded in 9.8s ...

마지막에 Model loaded 로그가 출력되고 Running on local URL: http://127.0.0.1:7860이 보이면 정상적으로 실행된 것이다.

모델(체크포인트) 확인과 추가

WebUI는 첫 실행 시 기본 체크포인트 모델 v1-5-pruned-emaonly.safetensors를 자동으로 내려받아 배치한다. 모델 파일은 아래 경로에 위치한다.

stable-diffusion-webui/models/Stable-diffusion/

다른 모델(checkpoint)을 추가하고 싶다면 Civitai·Hugging Face 등에서 받은 .safetensors(또는 .ckpt) 파일을 위 디렉터리에 넣으면 된다. 파일을 넣은 뒤 WebUI 좌측 상단의 모델 목록에서 새로고침 버튼을 누르면 목록에 나타나고, 선택해서 바로 사용할 수 있다.

웹 접속과 동작 확인

실행이 끝나면 같은 서버의 브라우저에서 아래 주소로 접속한다.

http://127.0.0.1:7860

WebUI 화면이 뜨면 설치는 성공이다. 다만 기본 설정은 설치한 서버 자기 자신에서만 접속이 가능하다. 다른 PC나 모바일에서 접속하려면 아래 원격 접속 설정이 필요하다.

원격 접속 설정 (webui-user.sh)

WebUI의 가장 큰 장점인 “어디서나 접속”을 살리려면 추가 설정이 필요하다. 설정은 webui-user.sh 파일에서 한다. 확장자는 .sh지만 실행용이 아니라 설정용 파일로, 여기에 옵션을 적어 두면 webui.sh 실행 시 자동 반영된다.

원격 접속과 확장프로그램 설치 권한을 함께 켜려면 COMMANDLINE_ARGS에 두 옵션을 추가한다.

vi ./webui-user.sh

# 파일 내 COMMANDLINE_ARGS 줄을 아래처럼 수정
export COMMANDLINE_ARGS="--listen --enable-insecure-extension-access"
옵션설명
--listen모든 IP 대역(0.0.0.0)에서 접속 허용 — 외부 기기 접속 가능
--enable-insecure-extension-accessWebUI에서 확장프로그램을 설치·관리할 수 있는 권한 부여
webui-user.sh에 추가하는 기본 옵션

옵션을 적용했으면 webui.sh를 다시 실행한다. 확장프로그램 On/Off를 적용하려면 반드시 webui.sh로 재실행해야 한다.

./webui.sh
...
Version: v1.6.0
Launching Web UI with arguments: --listen --enable-insecure-extension-access
...
Running on local URL:  http://0.0.0.0:7860
Model loaded in 4.5s ...

이번엔 접속 주소가 http://0.0.0.0:7860으로 바뀐 것을 볼 수 있다. 이제 같은 네트워크의 다른 기기에서 http://서버IP:7860으로 접속하면 된다. 외부 인터넷에서 접속하려면 공유기 포트포워딩(7860)이나 방화벽 개방이 추가로 필요하다.

버전 변경 참고

위 로그에서 보듯 최신 버전(예: v1.6.0)이 설치된다. 강의나 튜토리얼이 특정 버전(예: v1.5.1)을 기준으로 한다면 버전을 맞춰야 할 수 있다. 버전 변경 방법은 아래 영상을 참고하면 된다.

필수 확장프로그램

WebUI는 확장프로그램(Extension)으로 기능을 크게 확장할 수 있다. 확장을 설치하면 그만큼 UI도 조금씩 바뀐다. 공부·작업에 자주 쓰이는 대표 확장프로그램은 다음과 같다.

  • ControlNet — 포즈·구도 제어: https://github.com/Mikubill/sd-webui-controlnet
  • ADetailer — 얼굴·디테일 자동 보정: https://github.com/Bing-su/adetailer
  • Regional Prompter — 영역별 프롬프트: https://github.com/hako-mikan/sd-webui-regional-prompter
  • LoRA Block Weight — LoRA 블록 가중치: https://github.com/hako-mikan/sd-webui-lora-block-weight
  • Dynamic Prompts — 프롬프트 자동 조합: https://github.com/adieyal/sd-dynamic-prompts
  • Ultimate SD Upscale — 고해상도 업스케일: https://github.com/Coyote-A/ultimate-upscale-for-automatic1111
  • Agent Scheduler — 생성 작업 예약·큐: https://github.com/ArtVentureX/sd-webui-agent-scheduler
  • Segment Anything — 객체 분할: https://github.com/continue-revolution/sd-webui-segment-anything
  • Images Browser — 생성 이미지 관리: https://github.com/AlUlkesh/stable-diffusion-webui-images-browser
  • System Info — 시스템·VRAM 모니터링: https://github.com/vladmandic/sd-extension-system-info
  • Civitai Helper — 모델 관리: https://github.com/butaixianran/Stable-Diffusion-Webui-Civitai-Helper
  • Tag Complete — 태그 자동완성: https://github.com/DominikDoom/a1111-sd-webui-tagcomplete
  • Merge Block Weighted — 모델 병합: https://github.com/bbc-mc/sdweb-merge-block-weighted-gui

확장프로그램은 WebUI의 Extensions 탭에서 위 URL을 입력해 설치하거나, extensions 디렉터리에 직접 git clone해도 된다. 설치 후에는 WebUI를 재시작해야 적용된다.

자주 겪는 오류와 점검 순서

  • root로 실행 시 중단 — webui.sh는 보안상 root 실행을 막는다. 반드시 일반 계정으로 실행하고, 파일 소유자도 chown으로 일반 계정에 맞춘다.
  • 실행 권한 없음(Permission denied)chmod +x webui.sh로 실행 권한을 부여한다.
  • libgl1·libglib 관련 오류 — 그래픽 라이브러리 미설치가 원인이다. sudo apt install libgl1 libglib2.0-0로 설치한다. 이 라이브러리는 가장 나중에 설치해야 충돌이 없다.
  • 다른 기기에서 접속 불가--listen 옵션을 켰는지, 방화벽·공유기에서 7860 포트가 열려 있는지 확인한다.
  • CUDA out of memory — VRAM 부족 시 webui-user.shCOMMANDLINE_ARGS--medvram 또는 --lowvram을 추가하면 메모리 사용량을 줄일 수 있다.
  • no module ‘xformers’ — xformers 미설치 경고로, 없어도 동작은 한다. 속도를 높이고 싶다면 --xformers 옵션으로 설치할 수 있다.

정리

지금까지 Ubuntu 22.04에 AUTOMATIC1111 Stable Diffusion WebUI를 설치하는 과정을 정리했다. 핵심 순서는 준비물(NVIDIA GPU·드라이버·Python 3.10) → 의존성 설치(gcc·git·python3-venv·libgl1·pip·packaging) → webui.sh 내려받기·실행 → 모델 확인 → 127.0.0.1:7860 접속 → webui-user.sh 원격 접속 설정이다. 특히 일반 계정 실행과 실행 권한 부여, 그리고 --listen 옵션이 빠지면 실행이 안 되거나 외부에서 접속이 막히니 잊지 말자.

설치를 마쳤다면 다음 단계는 실제 이미지 생성이다. 프롬프트 작성과 주요 파라미터(샘플러·스텝·CFG) 사용법은 다음 글에서 이어서 다룬다.

💬 댓글 0

💬 댓글을 남기려면?
첫 댓글을 남겨보세요 ✨

이 콘텐츠가 도움이 됐나요?

누스쿨 커뮤니티에서 더 많은 커리어 전략을 나눠요