-
Notifications
You must be signed in to change notification settings - Fork 1
/
stable_diffusion.qmd
162 lines (120 loc) · 8.82 KB
/
stable_diffusion.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
---
title: "chatGPT"
subtitle: "Stable Diffusion"
author:
- name: 이광춘
url: https://www.linkedin.com/in/kwangchunlee/
affiliation: 한국 R 사용자회
affiliation-url: https://github.com/bit2r
title-block-banner: true
#title-block-banner: "#562457"
format:
html:
css: css/quarto.css
theme: flatly
code-fold: true
toc: true
toc-depth: 3
toc-title: 목차
number-sections: true
highlight-style: github
self-contained: false
filters:
- lightbox
lightbox: auto
link-citations: true
knitr:
opts_chunk:
message: false
warning: false
collapse: true
comment: "#>"
R.options:
knitr.graphics.auto_pdf: true
editor_options:
chunk_output_type: console
bibliography: bibliography.bib
csl: apa-single-spaced.csl
---
# Text-to-Image
Text-to-Image는 텍스트를 입력하면 이미지를 생성해주는 인공지능 서비스다.
텍스트를 이미지로 제작함으로서 다양한 사용사례를 발견할 수 있다.
- 텍스트를 이미지: 블로그나 소셜미디어에 게시
- 텍스트를 이미지: 시각 예술 작품(Artwork)과 콘텐츠 제작
- 텍스트를 이미지: 아이디어나 컨셉을 시각화
- 텍스트를 이미지: 재미있는 실험
- 텍스트를 이미지: 교육이나 연구에 활용
일반적으로 인기있고 평가가 좋은 Text-to-Image 소프트웨어로는 상용 API, 오픈소스 소프트웨어로
다음을 들 수 있다.
- Midjourney: 미드저니는 새로운 사고의 매체를 탐구하고 인류의 상상력을 확장하는 독립 연구실입니다. 디자인, 휴먼 인프라 및 AI에 중점을 둔 소규모 자체 자금 지원 팀으로 11명의 상근 직원과 훌륭한 자문단이 있음
- Stable Diffusion: 독일 뮌헨 대학 CompVis 연구실의 "잠재 확산 모델을 이용한 고해상도 이미지 합성 연구"를 기반하여, Stability AI와 Runway ML 등의 지원을 받아 개발된 딥러닝 인공지능 모델로 오픈소스로 공개되어 다른 상용 Text-to-Image와 차별점이 있다.
- OpenAI: DALL-E
- Google: Imagen
- DeepAI: [Text to Image](https://deepai.org/)
- Canva: Text to Image
# Stable Diffusion
2022년 8월에 공개된 Stable Diffusion은 텍스트를 이미지로 변환하는 오픈소스 소프트웨어로
Stability AI, CompVis LMU, Runway, EleutherAI, LAION이 참여기관으로 공개에 함께 했다.
텍스트를 입력하면, Stable Diffusion은 latent diffusion model이라는 인공지능 모델을 사용하여 텍스트에 해당하는 이미지를 생성한다.
이 모델은 LAION 5b라는 인터넷 크롤링 데이터로 훈련되었으며,
768x768의 고해상도 이미지를 생성할 수 있다.
Stable Diffusion은 텍스트를 이미지로 변환하는 기능 외에도,
이미지를 텍스트로 수정하거나, 저해상도나 저상세도의 이미지를 고해상도나 고상세도로 변환하는 기능도 제공한다.
Stable Diffusion의 코드와 모델 가중치는 [GitHub](https://github.com/AUTOMATIC1111/stable-diffusion-webui)에 공개되어 있으며,
8GB 이상의 VRAM을 갖는 GPU가 장착된 대부분의 컴퓨터에서 실행할 수 있다.
Stable Diffusion은 DALL-E와 Midjourney와 같은 클라우드 서비스로만 접근할 수 있는 텍스트를 이미지로 변환하는 모델과 달리,
**오픈소스로 공개**되었다는 점에서 차별화되었다.
Stable Diffusion은 텍스트를 이미지로 변환하는 오픈소스 소프트웨어 중에서 가장 품질과 다양성이 뛰어난 소프트웨어로 평가받고 있다. Stable Diffusion은 COCO 데이터셋에서 FID 점수가 7.27로 새로운 최고 기록을 달성했으며, 인간 평가자들은 Stable Diffusion이 생성한 이미지를 COCO 데이터셋의 이미지와 비교하여 이미지-텍스트 정렬에서 동등하게 평가했다.
또한, Stable Diffusion은 DrawBench라는 텍스트를 이미지로 변환하는 모델을 평가하는 새로운 벤치마크에서
VQ-GAN+CLIP, Latent Diffusion Models, DALL-E 2 등의 최신 모델들과 비교하여 인간 평가자들이 샘플 품질과 이미지-텍스트 정렬에서 가장 선호하는 모델로 선정되었다.
# Stable Diffusion web UI
스테이블 디퓨전 웹 UI(Stable Diffusion web UI)는
Stable Diffusion을 위한 Gradio 라이브러리 기반 브라우저 인터페이스다.
여기서 Gradio 라이브러리는 머신 러닝 모델을 위한 웹 인터페이스를 제작할 수 있어
Text-to-Image AI 모델과 결합시킨 것이 Stable Diffusion web UI다.
![](images/stability_diffusion_ui.jpg)
## 툴 설치
API로 공개된 Text-to-Image 상용모형은 API-Key만 설정하면 되지만,
오픈소스로 공개된 Stable Diffusion 을 자유로이 사용하기 위해서는 하드웨어부터
스스로 작업해야하는 것이 제법 된다.
- 준비물
- 하드웨어: 준수한 성능의 그래픽카드
- 프로그래밍 언어: [파이썬 3.10.6](https://www.python.org/downloads/release/python-3106/)
- 소프트웨어: [Git](https://gitforwindows.org/) 및 [Git 프로그램 저장소](https://github.com/AUTOMATIC1111/stable-diffusion-webui)에서 클론
- AI 모형: 허깅페이스에서 [모형 다운로드](https://huggingface.co/runwayml/stable-diffusion-v1-5) 후 복사설치
## 환경설정
파이썬 버진이 필히 3.10.6인 경우 테스트가 충분히 되어 문제가 없지만 다른 버전을 설치하여 실행시킬 경우 예기치 못한 문제가
발생된다. 먼저, 파이썬은 윈도우의 경우 제어판에서 `환경설정`에서 경로명에 파이썬 3.10.6이 설치된 디렉토리에서 `python.exe`를 확인하고 경로에 추가하면 된다.
`stable-diffusion-webui` 폴더 아래 `webui-user.bat` 파일을 찾아 설치한 파이썬 위치를 지정하고 `--xformers` 오류가 있는 경우 이를 잡기 위해 관련 설정으 추가한다. 허깅페이스를 비롯하여 GitHub 등에서 찾은 AI 모형은 `stable-diffusion-webui\models` 디렉토리 아래 저장한다.
```bash
git pull
@echo off
set PYTHON=C:\Users\XXXX\AppData\Local\Programs\Python\Python310\python.exe
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--reinstall-xformers --xformers
call webui.bat
```
`stable-diffusion-webui\webui-user.bat` 파일을 탐색기에서 찾아 더블클릭하면 text-to-image stable diffusion 기능을 사용할 수 있게 된다.
![](images/stable_diffusion_webui.jpg)
# 실사 이미지
실사에 가까운 혹은 실사를 능가하는 이미지도 Stable Diffusion 을 이용하면 가능하다.
Stable Diffusion 기본 모형으로도 고품질 이미지를 얻을 수 있으나,
특정 인종(아시아 등)에 특화된 모델을 차용하는 경우 더 좋은 품질을 얻을 수 있다.
[civitai](https://civitai.com) 혹은 [GitHub 저장소](https://github.com/civitai/civitai)에서 필요한 모형을 다운로드 받아 [Stable Diffusion web UI](https://github.com/AUTOMATIC1111/stable-diffusion-webui)를 인터페이스로 다양한 인공지능 이미지를 제작한다.
- ChilloutMix(아시아 여성): https://civitai.com/api/download/models/11745
- Lora(한국 아이돌): [KrakExilios/koreandoll](https://huggingface.co/datasets/KrakExilios/koreandoll
- VAE: [stabilityai/sd-vae-ft-mse-original](https://huggingface.co/stabilityai/sd-vae-ft-mse-original)
- Negative prompt: [](https://civitai.com/api/download/models/5637)
![](images/stable_diffusion.jpg)
## 실사 사진 예시
한국 50대 남성/(아이돌)여성 이미지를 다음 지시명령어와 앞서 다운로드 받아 설정한 내용을 바탕으로 AI 이미지를 생성한다.
> Positive prompt:RAW photo, a portrait photo of 50 y.o korean woman wearing glass in clothes, night seoul, (high detailed skin:1.2), 8k uhd, dslr, soft lighting, high quality, film grain, Fujifilm XT3 <lora:koreanDollLikeness_v15:1>
> Negative prompt: (earings, deformed iris, deformed pupils, semi-realistic, cgi, 3d, render, sketch, cartoon, drawing, anime:1.4), text, close up, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck
> Steps: 77, Sampler: Euler a, CFG scale: 7, Seed: 2987338690, Size: 512x512, Model hash: 20bae33336, Model: realisticVisionV13_v13
> Time taken: 44.08sTorch active/reserved: 2949/3390 MiB, Sys VRAM: 5610/10240 MiB (54.79%)
::: {layout-ncol=3}
![안경 쓴 50대 한국남성](images/real_photo/korean_man_50.png)
![안경 쓴 50대 한국여성](images/real_photo/korean_woman_50.png)
![안경 쓴 50대 아이돌 한국여성](images/real_photo/korean_woman_lora_50.png)
:::