목차
내 PC에서 이미지 생성형 AI ‘Stable Diffusion WebUI’ 구축하기
'Stable Diffusion'은 오픈소스 입니다.
Stability AI라는 인공지능 스타트업 기업에서 개발을 하였습니다.
'Stable Diffusion'은 Text-To-Image 인공지능 모델입니다.
내가 그리고 싶은 그림을 텍스트로 입력하면 인공지능이 그림을 그려줍니다.
블로그를 쓸때 이미지를 사용할때 이제는 내PC에서 인공지능이 그려주는 이미지를 사용할수 있게 됩니다.
'Stable Diffusion'의 Web버전이 'Stable Diffusion WebUI'입니다.
0. 개요
내 PC에서 이미지 생성형 AI ‘Stable Diffusion WebUI’ 구축하기
나의 PC에서 이미지 생성형 AI ‘Stable Diffusion WebUI’ 를 구축을 해보도록 하겠습니다.
인공지능에서 Stable Diffusion은 돌풍이며,
이미지 생성형 AI 확산의 일등공신입니다.
전세계 개발자는 환호를 하였습니다.
인공지능 서비스에는 오픈소스 vs 비오픈소스 가 있습니다.
특히 이미지 생성형 AI의 경우에는 비오픈소스가 대세였습니다.
Dall-E, Midjourney 등 유료 서비스로 지원하고 있습니다.
Dall-E : DALL·E 2
Midjourney : Midjourney
이때 혜성 같이 오픈소스를 들고 나온 과감한 회사가 있었으니
바로 ‘스태빌리티 AI (Stability AI)’ 입니다.
Stability AI : Stability AI
과감한 선택을 한 스태빌리티 AI는
전세계 이슈를 한몸에 받게 되고,
회사의 주가는 엄청 올라갑니다.
‘Stable Diffusion WebUI’는 인공지능 이미지 생성을 내 PC에서도 가능하게 만들어줍니다.
사용자 인터페이스가 웹 기반으로 제공되는 오픈소스 입니다.
누구라도 인공지능이 생성한 이미지를 PC에서 자유롭게 제작이 가능하게 된 것입니다.
그러면 바로 시작해보도록 하겠습니다.
저의 컴퓨터 사양은 다음과 같습니다.
모델명 : Precision 3630 Tower
CPU : Intel(R) Xeon(R) E-2136 CPU @ 3.30GHz 3.31 GHz
RAM : 16.0GB
OS : Windows 10 Pro for Workstations
Graphic Card : NVIDIA Quadro P400 2GB
1. 파이썬 설치하기
파이썬은 프로그래밍 언어입니다.
인공지능에서 빼놓을수없는 프로그래밍 언어이며,
인공지능 모델 개발에 가장 많이 사용하는 언어입니다.
Stable Diffusion WebUI 설치를 위해서는 3.10.6을 설치하라고 권장합니다.
해당 참고 자료 :
https://github.com/AUTOMATIC1111/stable-diffusion-webui
다음의 링크를 통해서 파이썬 3.10.6 버전을 다운로드 받아서 설치합니다.
https://www.python.org/downloads/release/python-3106/
설치는 내PC의 운영체제에 맞게 실행파일을 다운로드 받으면 됩니다.
저는 윈도우 10 64bit이기 때문에 ‘Windows installer (64-bit)’를 다운로드하였습니다.
다운로드 한 파일을 실행하여, 설치합니다
파이썬이 설치가 완료되었다면, ‘명령 프롬프트’ 를 실행해서 다음의 명령어로 버전을 확인해보겠습니다.
Python 3.10.6을 확인할 수 있습니다.
2. Git 설치
Git 설치를 합니다.
Git은 소프트웨어 개발할 때에 소스코드를 관리하기 위한 시스템입니다.
오픈소스 프로젝트의 경우 대부분이 GitHub에 소스코드를 저장을 합니다.
GitHub는 현재 Microsoft 사 것입니다. 네 윈도우 운영체제를 만드는 곳입니다.
GitHub를 Microsoft 사에서 인수를 한다음에 나온 서비스가 GitHub Copilot입니다.
개발자를 위한 코드생성형 인공지능 서비스 입니다.
아무튼 ‘Stable Diffusion WebUi’ 프로젝트의 소스코드가 GitHub에 있기 때문에
Git을 다운로드 받아서 설치를 합니다.
Git을 설치를 안해줘도 GiHub에서 다운로드 받을수는 있습니다.
하지만 설치 가이드에 Git을 설치하라고 했기 때문에 설치하도록 하겠습니다.
Git 다운로드 : Git
설치를 완료한다음에 ‘명령 프롬프트’를 실행해서
git 또는 ‘git —version’ 명령어를 수행하면 설치를 확인할 수 있습니다.
3. Stable Diffusion WebUI 설치
이제 GitHub에 있는 ‘Stable Diffusion WebUI’를 설치하도록 하겠습니다.
‘명령 프롬프트’를 실행합니다.
저장할 폴더를 정한 다음에 폴더로 이동합니다.
이제 git clone 명령어로 GitHub에 있는 ‘Stable Diffusion WebUI’를 설치하도록 하겠습니다.
git clone <https://github.com/AUTOMATIC1111/stable-diffusion-webui.git>
다음과 같이 다운로드가 됩니다
‘stable-diffusion-webui’ 폴더가 생성된 것을 확인할 수 있습니다.
생성된 ‘stable-diffusion-webui’ 폴더에 보면 해당 파일이 굉장히 많이 있는것을 확인할 수 있습니다.
‘webui-user.bat’파일이 있는데, 그 파일을 더블클릭해서 실행을 하거나
명령 프롬프트에서 ‘webui-user.bat’ 파일을 실행합니다.
파일을 다운로드 받고, 설치 하는데 시간이 꽤 소요됩니다.
2.6 GB 대용량 파일을 다운로드 받습니다.
그리고 3.97 GB 대용량 파일도 다운로드 받습니다.
제 PC나 인터넷 환경에서는 20분 가량 소요되는것 같습니다.
D:\\Source\\stable-diffusion-webui>webui-user.bat
Creating venv in directory D:\\Source\\stable-diffusion-webui\\venv using python "C:\\Langs\\Python\\Python310\\python.exe"
venv "D:\\Source\\stable-diffusion-webui\\venv\\Scripts\\Python.exe"
Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
Version: v1.4.1
Commit hash: f865d3e11647dfd6c7b2cdf90dde24680e58acd8
Installing torch and torchvision
Looking in indexes: <https://pypi.org/simple>, <https://download.pytorch.org/whl/cu118>
Collecting torch==2.0.1
Downloading <https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-win_amd64.whl> (2619.1 MB)
---------------------------------------- 2.6/2.6 GB ? eta 0:00:00
Collecting torchvision==0.15.2
Downloading <https://download.pytorch.org/whl/cu118/torchvision-0.15.2%2Bcu118-cp310-cp310-win_amd64.whl> (4.9 MB)
---------------------------------------- 4.9/4.9 MB 6.2 MB/s eta 0:00:00
Collecting networkx
Downloading networkx-3.1-py3-none-any.whl (2.1 MB)
---------------------------------------- 2.1/2.1 MB 5.5 MB/s eta 0:00:00
Collecting filelock
Downloading filelock-3.12.2-py3-none-any.whl (10 kB)
Collecting sympy
Downloading sympy-1.12-py3-none-any.whl (5.7 MB)
---------------------------------------- 5.7/5.7 MB 6.1 MB/s eta 0:00:00
Collecting jinja2
Downloading <https://download.pytorch.org/whl/Jinja2-3.1.2-py3-none-any.whl> (133 kB)
---------------------------------------- 133.1/133.1 kB 8.2 MB/s eta 0:00:00
Collecting typing-extensions
Downloading typing_extensions-4.7.1-py3-none-any.whl (33 kB)
Collecting pillow!=8.3.*,>=5.3.0
Downloading Pillow-10.0.0-cp310-cp310-win_amd64.whl (2.5 MB)
---------------------------------------- 2.5/2.5 MB 6.4 MB/s eta 0:00:00
Collecting numpy
Downloading numpy-1.25.1-cp310-cp310-win_amd64.whl (15.0 MB)
---------------------------------------- 15.0/15.0 MB 5.9 MB/s eta 0:00:00
Collecting requests
Downloading requests-2.31.0-py3-none-any.whl (62 kB)
---------------------------------------- 62.6/62.6 kB 3.5 MB/s eta 0:00:00
Collecting MarkupSafe>=2.0
Downloading MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl (17 kB)
Collecting certifi>=2017.4.17
Downloading certifi-2023.5.7-py3-none-any.whl (156 kB)
---------------------------------------- 157.0/157.0 kB ? eta 0:00:00
Collecting idna<4,>=2.5
Downloading <https://download.pytorch.org/whl/idna-3.4-py3-none-any.whl> (61 kB)
---------------------------------------- 61.5/61.5 kB 3.2 MB/s eta 0:00:00
Collecting urllib3<3,>=1.21.1
Downloading urllib3-2.0.3-py3-none-any.whl (123 kB)
---------------------------------------- 123.6/123.6 kB 7.6 MB/s eta 0:00:00
Collecting charset-normalizer<4,>=2
Downloading charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl (96 kB)
---------------------------------------- 96.9/96.9 kB 5.4 MB/s eta 0:00:00
Collecting mpmath>=0.19
Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)
---------------------------------------- 536.2/536.2 kB 5.7 MB/s eta 0:00:00
Installing collected packages: mpmath, urllib3, typing-extensions, sympy, pillow, numpy, networkx, MarkupSafe, idna, filelock, charset-normalizer, certifi, requests, jinja2, torch, torchvision
Successfully installed MarkupSafe-2.1.3 certifi-2023.5.7 charset-normalizer-3.2.0 filelock-3.12.2 idna-3.4 jinja2-3.1.2 mpmath-1.3.0 networkx-3.1 numpy-1.25.1 pillow-10.0.0 requests-2.31.0 sympy-1.12 torch-2.0.1+cu118 torchvision-0.15.2+cu118 typing-extensions-4.7.1 urllib3-2.0.3
[notice] A new release of pip available: 22.2.1 -> 23.1.2
[notice] To update, run: D:\\Source\\stable-diffusion-webui\\venv\\Scripts\\python.exe -m pip install --upgrade pip
Installing gfpgan
Installing clip
Installing open_clip
Cloning Stable Diffusion into D:\\Source\\stable-diffusion-webui\\repositories\\stable-diffusion-stability-ai...
Cloning K-diffusion into D:\\Source\\stable-diffusion-webui\\repositories\\k-diffusion...
Cloning CodeFormer into D:\\Source\\stable-diffusion-webui\\repositories\\CodeFormer...
Cloning BLIP into D:\\Source\\stable-diffusion-webui\\repositories\\BLIP...
Installing requirements for CodeFormer
Installing requirements
Launching Web UI with arguments:
No module 'xformers'. Proceeding without it.
Downloading: "<https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors>" to D:\\Source\\stable-diffusion-webui\\models\\Stable-diffusion\\v1-5-pruned-emaonly.safetensors
100%|███████████████████████████████████████████████████████████████████| 3.97G/3.97G [12:07<00:00, 5.86MB/s]
Calculating sha256 for D:\\Source\\stable-diffusion-webui\\models\\Stable-diffusion\\v1-5-pruned-emaonly.safetensors: preload_extensions_git_metadata for 7 extensions took 0.00s
Running on local URL:
To create a public link, set `share=True` in `launch()`.
Startup time: 744.0s (import torch: 5.6s, import gradio: 1.7s, import ldm: 1.1s, other imports: 3.4s, setup codeformer: 0.3s, list SD models: 728.2s, load scripts: 2.6s, create ui: 0.6s, gradio launch: 0.2s).
6ce0161689b3853acaa03779ec93eafe75a02f4ced659bee03f50797806fa2fa
Loading weights [6ce0161689] from D:\\Source\\stable-diffusion-webui\\models\\Stable-diffusion\\v1-5-pruned-emaonly.safetensors
Creating model from config: D:\\Source\\stable-diffusion-webui\\configs\\v1-inference.yaml
LatentDiffusion: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
Downloading (…)olve/main/vocab.json: 100%|████████████████████████████████| 961k/961k [00:00<00:00, 1.71MB/s]
Downloading (…)olve/main/merges.txt: 100%|████████████████████████████████| 525k/525k [00:00<00:00, 1.50MB/s]
Downloading (…)cial_tokens_map.json: 100%|██████████████████████████████████████████| 389/389 [00:00> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
Stable diffusion model failed to load
Applying attention optimization: Doggettx... done.
본인의 PC의 메모리가 부족하다면(GPU메모리) 아래와 같이 메모리가 부족해서 에러가 발생합니다
불행하게도 메모리 부족으로 에러가 발생하였습니다.
4. 메모리 부족 해결 방법
이때는 실행파일을 메모장으로 열어서
메모리를 적게 사용하도록 인자값을 넣어줍니다.
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--theme dark --xformers --no-half-vae --lowvram
call webui.bat
아래같이 입력 주소가 나오면 현재 동작을 한다는 것입니다.
Running on local URL : http://127.0.0.1:7860
웹브라우저를 열어서 주소 입력란에 ‘http://127.0.0.1:7860’ 을 입력하고 엔터를 칩니다.
아래 화면처럼 Stable Diffusion Web버전이 동작을 합니다.
이제 이미지를 생성해보겠습니다.
이미지를 생성해보도록 하겠습니다.
5. 이미지생성하기
프롬프트 입력란에 다음과 같이 입력해보도록 하겠습니다. ‘생성하다’ 버튼을 클릭하겠습니다.
a young female with blue eyes, highlights in hair, sitting outside restaurant, wearing a white outfit, side light
참고자료
GitHub의 주소는 ‘Stable Diffusion WebUI’에서도 확인할수 있습니다.
아래 링크를 접속해서 초록색 ‘Code’버튼을 클릭하면 됩니다.
GitHub 링크 : https://github.com/AUTOMATIC1111/stable-diffusion-webui
내 PC로 다운로드 가능한 주소
<https://github.com/AUTOMATIC1111/stable-diffusion-webui.git>
Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body
아래와 같이 머리가 자꾸 잘린다.
venv "d:\\Source\\stable-diffusion-webui\\venv\\Scripts\\Python.exe"
Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
Version: v1.4.1
Commit hash: f865d3e11647dfd6c7b2cdf90dde24680e58acd8
Installing requirements
Launching Web UI with arguments: --theme dark --xformers --no-half-vae --lowvram
Loading weights [6ce0161689] from D:\\Source\\stable-diffusion-webui\\models\\Stable-diffusion\\v1-5-pruned-emaonly.safetensors
preload_extensions_git_metadata for 7 extensions took 0.00s
Creating model from config: D:\\Source\\stable-diffusion-webui\\configs\\v1-inference.yaml
LatentDiffusion: Running in eps-prediction mode
Running on local URL: <http://127.0.0.1:7860>
To create a public link, set `share=True` in `launch()`.
Startup time: 33.1s (import torch: 7.6s, import gradio: 5.0s, import ldm: 3.3s, other imports: 8.6s, setup codeformer: 0.2s, load scripts: 1.8s, load upscalers: 0.1s, reload hypernetworks: 0.3s, initialize extra networks: 0.4s, create ui: 4.3s, gradio launch: 1.3s).
DiffusionWrapper has 859.52 M params.
Applying attention optimization: xformers... done.
Textual inversion embeddings loaded(0):
Model loaded in 192.4s (load weights from disk: 6.1s, create model: 2.0s, apply weights to model: 172.6s, apply half(): 4.8s, load VAE: 0.2s, move model to device: 0.1s, hijack: 0.2s, load textual inversion embeddings: 1.1s, calculate empty prompt: 5.2s).
Sampling steps ‘20’ 으로 설정되어서 20단계로 진행된것을 확인할 수 있습니다.
Batch size ‘4’로 하면 4개가 그려집니다.
6. 프롬프트 가이드
프롬프트 가이드는 구글 검색에서 ‘stable diffusion webui prompt guide’를 검색을 해서 연습을 하시면 될듯 합니다.
몇가지 검색한 프롬프트 내용은 다음과 같습니다.
1. Temple in ruins, forest, stairs, columns, cinematic, detailed, atmospheric, epic, concept art, matte painting, background, mist, photo-realistic, concept art, volumetric light, cinematic epic, 8k.
2. Pixel collage painting of the last supper, feasting over pixelated ramen, painted by Mark Rothko and Hilma af Klint, neo expressionism, pastel colors, pop art, intricate detail, masterpiece, 8k.
3. A portrait of a cyborg in a golden suit, D&D sci-fi, concept art, highly detailed illustration.
4. vBeautiful Victorian raven digital painting, art by Artgerm and Greg rutkowski, Alphonse Mucha, Cgsociety
5. Sci-fi, cyberpunk, Tokyo at night in the rain, neon lights, flying cars, watercolor
6. Dream, future design, architecture design, in the mountains, foggy, cinematic composition, highly detailed, 8k
7. full length photo of christina hendricks as an amazon warrior, highly detailed, 4 k, hdr, smooth, sharp focus, high resolution, award – winning photo
8. houses in front, houses background, straight houses, digital art, smooth, sharp focus, gravity falls style, doraemon style, shinchan style, anime style
9. Isometric Atlantis city,great architecture with columns, great details, ornaments,seaweed, blue ambiance, 3D cartoon style, soft light, 45° view
10. Parisian luxurious interior penthouse bedroom, dark walls, wooden panels, no gold, pink
11. a child drawing of a cat playing a piano on a desert island in the summer, detailed, HD, colorful
12. “a dog playing in the snow”
13. “a poodle playing in the snow”
14. “a woman dancing at the beach, impressionism, Claude Monet”
15. “a woman dancing at the beach, concept art, Disney”
16. “a girl standing in front of a cottage, an anime drawing inspired by Makoto Shinkai, conceptual art, makoto shinkai art style, anime art, street level view“
17. “a girl standing in front of a cottage, an anime drawing inspired by Makoto Shinkai, conceptual art, makoto shinkai art style, anime art, ultra wide-angle”
18. “a cat sitting near the window, ___, a storybook illustration, magical realism, children’s book illustration”
___부분에 넣을수 있는 옵션 Accent lighting, Ambient lighting, Backlight, Blacklight, Candlelight, Direct sunlight
19. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing
20. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting
21. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body
22. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha
23. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation
24. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly detailed, sharp focus
25. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful, dystopian
26. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful, dystopian, iridescent gold
27. Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting, hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly detailed, sharp focus, sci-fi, stunningly beautiful, dystopian, iridescent gold, cinematic lighting, dark
28. ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face, blurry, draft, grainy
29. dog, autumn in paris, ornate, beautiful, atmosphere, vibe, mist, smoke, fire, chimney, rain, wet, pristine, puddles, melting, dripping, snow, creek, lush, ice, bridge, forest, roses, flowers, by stanley artgerm lau, greg rutkowski, thomas kindkade, alphonse mucha, loish, norman rockwell.
30. full body taylor swift in future high tech dystopian city, digital painting
그외에 기타 옵션들이 다양하게 있습니다. 옵션을 잘 활용하면 다양한 느낌의 이미지를 생성해줍니다.
Sampling method
Sampling steps
Width, Height
Batch count
Batch size
CFG Scale
Seed
Script
7. 결론
내 PC에서 이미지 생성형 AI ‘Stable Diffusion WebUI’ 구축을 해서
직접 이미지를 생성해보니 정말 신기합니다~^^
직접 사용해보니 제가 익혀야 할 사항들이 있습니다.
-프롬프트 작성 방법
-다양한 옵션 사용 방법
그래픽 카드는 성능 좋은 걸로 추천드립니다.
제가 가진 그래픽 카드로는 한계가 있습니다.
생성하는데 시간도 많이 소요됩니다. (최소 7분 이상)
다른 작업을 같이하다가 메모리 부족으로 인해서 오류도 자주 발생했습니다.
그래픽 카드 메모리는 10GB 이상을 추천드립니다.
추천 PC 스펙 참고 링크
Stable Diffusion PC system requirements: what do you need to run it? | Digital Trends
참고링크
GitHub - stable diffusion web UI
https://github.com/AUTOMATIC1111/stable-diffusion-webui
GitHub - stable diffusion web UI Wiki
최적화 커맨드라인 인자값
웹툰AI : 내 PC에 Stable Diffusion WebUI 설치하기
WEBUI 권장사양 | Stable Diffusion AI 그림 GTX 1060 6GB로 가능할까? - 미라클뭐닝
구글 코랩(Colab) 스테이블디퓨젼 설치 방법 | 5GB 이상 구글드라이브 활용 - 미라클뭐닝
stable diffusion prompt guide
Stable Diffusion prompt: a definitive guide - Stable Diffusion Art
https://stable-diffusion-art.com/prompt-guide/
프롬프트 가이드
https://stable-diffusion-art.com/automatic1111/
샘플링 매소드(Sampling method) ← 추천
Know these Important Parameters for stunning AI images - Stable Diffusion Art
프롬프트 가이드
How to Write Amazing Stable Diffusion Prompts: A Definitive Guide for You | Fotor
'인공지능' 카테고리의 다른 글
[인공지능] Devika - 첫번째 오픈소스 인공지능 개발자 사용기 (설치 완료) (2) | 2024.04.02 |
---|---|
[인공지능] Devika - 첫번째 오픈소스 인공지능 개발자 내 PC에 설치하기 (Windows) (0) | 2024.04.02 |
[인공지능] 내 노트북에서 ChatGPT 같은 오픈소스 인공지능 챗봇(ChatBot) 구축하기(GPT4All) (0) | 2023.07.11 |