Computer Science

[AI] Stable Diffusion을 이용해 원하는 이미지 생성하기

이우열 2023. 3. 28. 23:08
728x90

✏️ Diffusion 모델 간단 원리

원본 이미지이미지를 설명하는 프롬프트를 주고 이미지가 흐려지는 노이즈를 추가해

 

다시 노이즈를 해석하면서 원본 이미지로 돌아가는 것을 학습하는 모델

 

 

 

이를 통해 원본 이미지 없이 노이즈와 프롬프트를 통해 데이터가 없는 새로운 이미지 생성이 가능

 

✅ stability.ai

이 기업에서 Diffusion 모델을 만들었고 오픈소스로 배포하였고 Hugging Face에서 사용 가능

 

 

✅ Stable Diffusion web UI

Stable Diffusion 모델을 사용하여 이미지를 생성하는 것을 web UI로 만들어 사용자들에게 제공해 주는 무료 오픈소스가 있음

 

https://github.com/AUTOMATIC1111/stable-diffusion-webui

 

GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI

Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub.

github.com

 

 

위의 링크를 통해서 Stable Diffusion을 사용해 볼 수 있음

 

✏️ 설치 방법

 

 

사용 방법은 여러 가지가 있음

 

✏️ 1. 온라인 웹 사이트에서 사용하는 방법

 

위의 List of Online Services를 클릭한 뒤

 

위의 리스트에서 아무거나 골라 사용하면 됨

예시로 maintained by TheLastBen의 서비스를 이용

 

 

아래와 같은 구글 코랩이 열림

 

그 후 상단에 있는 Drive로 복사 버튼을 클릭하여 자신의 드라이브에 사본을 만듦

 

상단에 런타임 버튼을 클릭한 뒤

 

 

런타임 유형 변경을 클릭

 

하드웨어 가속기GPU로 설정 후 저장

 

그 후, 따로 건들 것 없이 코드마다 있는 왼쪽에 있는 시작 버튼을 클릭하여 모든 코드를 실행

 

최종적으로 위와 같은 코드가 실행됨

 

그 후 생성된 링크를 접속Stable Diffusion web UI를 사용할 수 있음

 

 

✏️ 2. 직접 파일을 설치하여 사용

 

Python 3.10.6 링크를 접속하여 3.10.6 버전을 다운로드

더 높은 버전을 사용한다면 상관은 없겠지만 낮은 버전은 호환이 안될 수 있으니 버전에 맞게 다운하는 것을 추천

 

 

그 후, git 링크를 통해 git도 설치

자신의 윈도우 버전에 맞게 설치

 

 

다운로드를 완료했다면 C 드라이브에 저장소를 클론해야 함

(바탕화면에 클론을 했을 경우 실행에 오류가 있을 수 있으므로 C드라이브에 하는 것을 추천)

 

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

 

마지막으로 webui-user.bat 파일을 실행

 

콘솔 창이 뜨고 중간에 있는 Running on local URL: ~ 주소로 접속하면 됨

 

 

web UI에 접속했으니 사용법에 대해 알아보자

 

✏️ text2img

Prompt 안에 입력한 내용을 바탕으로 이미지를 그려주는 방식

 

  • Prompt

 

원하는 이미지의 내용을 작성

 

 

  • Negative prompt

 

원하지 않는 이미지의 내용들을 작성, 작성된 내용을 제외한 결과가 나옴

 

 

  • Sampling method

 

이미지를 생성하는 데 사용되는 알고리즘

 

 

  • Sampling steps

 

노이즈에서 디노이즈, 즉 원하는 결과를 얻기까지의 스텝 수

 

 

  • Width, Height

 

이미지 결과의 너비와 높이

 

 

  • Batch count, Batch size

 

결과로 나오는 이미지의 세로와 가로의 수

 

 

ex) Batch count : 2, Batch size : 3으로 설정했을 때, 세로 2, 가로 3의 결과 이미지가 나오게 됨.

 

 

각각의 이미지, 총 2*3개의 이미지 포함

 

 

  • CFG Scale

얼마나 프롬프트를 따라서 그림을 그릴건지 설정.

 

숫자가 작으면 프롬프트와 관계없는 그림이 나오고 숫자가 크면 프롬프트의 내용에 완벽하게 일치하여 나옴

 

 

  • Seed

결과를 얻으면 아래에 Seed 값이 생성되는데 이 값을 그대로 사용하면 같은 결과를 얻을 수 있음

 

 

✏️ img2img

 

이미지를 넣고 Prompt를 입력해 이미지를 변형하는 방식

 

 

 

✅ Lexica.art

https://lexica.art/

 

Lexica

The Stable Diffusion search engine

lexica.art

 

 

Stable Diffusion을 잘 사용하기 위해서 프롬프트를 잘 작성해야 하는데

프롬프트를 작성하는 것이 어렵다면 누군가가 미리 작성해 둔 프롬프트를 보고 중요 키워드를 얻을 수 있음

 

Copy prompt를 누르면 이 그림을 생성할 때 사용한 프롬프트를 복사할 수 있음

 

 

 

위와 같은 설정으로 생성된 이미지

 

이미지의 퀄리티가 그렇게 좋은 것 같지는 않음

 

그래도 AI를 사용하여 원하는 그림을 만들 수 있다는 것에서 신기한 경험을 해볼 수 있음

 

728x90

'Computer Science' 카테고리의 다른 글

브라우저 저장소(LocalStorage, SessionStorage, Cookie)  (0) 2023.06.27
쿠키와 세션  (0) 2023.06.27
Flux 패턴이란?  (0) 2023.04.13
dns-prefetch란?  (0) 2023.03.14
웹 브라우저에 URL을 입력하면?  (0) 2023.03.14