Docker를 사용해보려고했으나 webui.sh로 설치하는 것이 너무나 쉽게 돼서 이 방법을 남긴다. 또한, 윈도우에서는 어떻게 설치하는 것이 좋을 지에 대해서도 살펴본다.
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh
conda create -n sdwebui python=3.11
conda activate sdwebui
wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
cd ./stable-diffusion-webui/models/Stable-diffusion
wget https://civitai.com/api/download/models/11745 -O chillout-mix.safetensors
wget https://civitai.com/api/download/models/242444?type=Model&format=SafeTensor&size=full&fp=bf16 -O product_easy-produt-photo-xl.safetensors
wget https://civitai.com/api/download/models/239561?type=Model&format=SafeTensor -O product_bg_outdoor.safetensors
wget https://civitai.com/api/download/models/245598?type=Model&format=SafeTensor&size=pruned&fp=fp16 -O realistic_vision_v6.0B1.safetensors
wget https://huggingface.co/wavymulder/Analog-Diffusion/resolve/main/analog-diffusion-1.0.safetensors -O analog-diffusion-1.0.safetensors
wget https://civitai.com/api/download/models/70458?type=Model&format=SafeTensor&size=pruned&fp=fp16 -O Henmix_Real.safetensors
wget https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors\?download\=true -O v2-1_768-ema-pruned.safetensors
wget https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-nonema-pruned.safetensors\?download\=true -O v2-1_768-nonema-pruned.safetensors
wget https://civitai.com/api/download/models/28103?type=Model&format=SafeTensor&size=full&fp=fp16 -O vendo-photorealistic.safetensors
wget https://civitai.com/api/download/models/88158?type=Model&format=SafeTensor&size=full&fp=fp16 -O RunDiffusion-FX-Photorealistic.safetensors
wget https://civitai.com/api/download/models/4224?type=Model&format=SafeTensor&size=full&fp=fp16 -O Dreamlike-Photoreal-2-0.safetensors
wget https://civitai.com/api/download/models/128713?type=Model&format=SafeTensor&size=pruned&fp=fp16 -O DreamShaper.safetensors
wget https://civitai.com/api/download/models/126688?type=Model&format=SafeTensor&size=full&fp=fp16 -O DreamShaper-XL.safetensors
wget https://civitai.com/api/download/models/4298?type=Pruned%20Model&format=SafeTensor&size=pruned&fp=fp16 -O Protogen-x5_8-Rebuilt-scifi-anime.safetensors
chmod 755 ./webui.sh
#로그인 기능이 없으므로 폐쇄된 환경에서만 돌려야함.
#만일 퍼블릭 망을 통해 외부에서 접근해 올 가능성이 없다면 아래와 같이 실행.
./webui.sh --listen
#만일 퍼블릭 망을 통해 외부에서 접근해 올 가능성이 있다면 아래와 같이 해서 로컬에서만 실행.
./webui.sh
civitai.com에 포스팅 된 이미지들 중 마음에 드는 결과물에 사용된 모델을 다운 받아 사용하는 것이 가장 직관적이다.
https://github.coUbuntum/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-NVidia-GPUs
위 링크에 방문하면 보이는 method 1을 추천한다.
1. 그냥 다운받고 압축 푼다.
2. 탐색기에서 webui.bat를 더블클릭해서 실행하여 설치
이 때 관련된 파이썬 및 라이브러리들이 알아서 설치된다.
3. 설치 완료후 run.bat를 더블 클릭해서 실행.
위에 정리한 ubunt에 설치 방법과 모두 같지만 한 가지 설치시에 아래와 같이 오류가 발생하기 때문에 강제 실행을 해야한다.
conda activate sdwebui
bash webui.sh -f
아래와 같은 스크립트로 여러 인스턴스를 띄워서 폭풍 생성 가능.
#!/bin/bash
# Check if the first argument is provided and is within the range 0 to 3
if [[ -z "$1" ]] || [[ "$1" -lt 0 ]] || [[ "$1" -gt 3 ]]; then
echo "Please enter a value between 0 and 3."
read -p "Enter value: " value
# Validate the input
while [[ -z "$value" ]] || [[ "$value" -lt 0 ]] || [[ "$value" -gt 3 ]]; do
echo "Invalid input. Please enter a value between 0 and 3."
read -p "Enter value: " value
done
# Set the argument to the input value
set -- "$value"
fi
# The rest of the script
export CUDA_VISIBLE_DEVICES=$1
nohup ./webui.sh --port 786$1 > /home/bravo/imgserver/run$1.log 2>&1 &
disown
# Follow the log file in the background
tail -f /home/bravo/imgserver/run$1.log &
TAIL_PID=$!
# Wait for user input to terminate the tail process
read -p "Press [Enter] key to stop tailing the log..."
# Kill the specific tail process
kill $TAIL_PID
lsof -i :7860
lsof -i :7861
lsof -i :7862
lsof -i :7863
kill `lsof -ti tcp:786$1`
골치 아프다 어차피 마음에 드는 이미지는 어딘가에 따로 보관하기 때문에 기 생성된 이미지를 한 번에 삭제하기 좋은 스크립트로 관리 하면 좋다.
#!/bin/bash
# Ask for confirmation
read -p "Are you sure you want to delete ~/imgserver/stable-diffusion-webui/outputs? (yes/no) " answer
# Check the response
if [[ $answer = "yes" ]]
then
# If the answer is 'yes', proceed with the deletion
rm -rf ~/imgserver/stable-diffusion-webui/outputs
echo "Directory deleted."
else
# If the answer is not 'yes', do not delete
echo "Deletion aborted."
fi
아래 명령어 실행후 webui.sh 다시 실행
sudo apt install libgoogle-perftools4 libtcmalloc-minimal4
파이썬 버전이 3.10 이상이 아닐 때 나타날 수 있는 예외상화이다.
Traceback (most recent call last):
File "launch.py", line 48, in <module>
main()
File "launch.py", line 44, in main
start()
File "/root/imgserver/stable-diffusion-webui/modules/launch_utils.py", line 460, in start
import webui
File "/root/imgserver/stable-diffusion-webui/webui.py", line 13, in <module>
initialize.imports()
File "/root/imgserver/stable-diffusion-webui/modules/initialize.py", line 33, in imports
from modules import shared_init
File "/root/imgserver/stable-diffusion-webui/modules/shared_init.py", line 5, in <module>
from modules import shared
File "/root/imgserver/stable-diffusion-webui/modules/shared.py", line 5, in <module>
from modules import shared_cmd_options, shared_gradio_themes, options, shared_items, sd_models_types
File "/root/imgserver/stable-diffusion-webui/modules/options.py", line 80, in <module>
class Options:
File "/root/imgserver/stable-diffusion-webui/modules/options.py", line 83, in Options
def __init__(self, data_labels: dict[str, OptionInfo], restricted_opts):
TypeError: 'type' object is not subscriptable
파이썬 버전을 올린후 다시 설치한다.
conda install python=3.10
conda update --all
rm -rf stable-diffusion-webui/
./webui.sh*
이참에 3.11로 테스트 해보 결과 잘 동작한다. 그러나 Extension들이 3.10.x 에서 호환되는 경우가 종종 있어 아직 3.11은 시기 상조로 보인다.