AUTOMATIC1111 을 이용해 Stable Diffusion 맛보기

조홍철·2024년 2월 18일
0
post-thumbnail

최근 생성형 AI 기술을 이용해 어떤 서비스 혹은 기능을 개발할 수 있을지에 대해 고민중에 있습니다. 그 과정에서 기술에 대한 깊은 이해에 앞서 해당 기술를 빠르게 사용해볼 수 있는 방법에 대해 공유하고자 합니다

그 중에서도 이미지 혹은 텍스트 기반 이미지 생성 기술인 Stable Diffusion을 많은 리소스를 들이지 않고 경험해 볼 수 있는 WebUI 방식인 Autiomatic1111에 대해서 소개하고자 합니다

AUTOMATIC1111 설치


AUTOMATIC1111은 local에서 쉽게 Stable Diffusion모델 들을 web ui 를 이용해 사용해 볼 수 있도록 합니다.

python 3.10 버전과 git을 설치했다면 이 후 해당 레포지토리를 clone 합니다
저의 경우 mac을 사용하였기 때문에 mac 설치 가이드 과정을 따랐습니다

이후 해당 폴더로 이동하여 mac의 경우

./webui.sh 

를 실행시켜 필요한 설치를 진행하면 기본적인 준비는 완료됩니다.

설치가 완료되면 http://127.0.0.1:7860/ 의 주소로 webui 실행됩니다

모델 탐색 및 설치


대표적은 Civitai 사이트를 이용해 쉽게 모델을 다운받아 적용해볼 수 있습니다

해당 사이트에서 Models 탭에 들어가 rate순으로 정렬하게되면 사람들에게 가장 좋은 평가를 받는 모델들 순으로 볼 수 있습니다. 여기서 모델별로 checkpoint, LoRA 등의 용어를 볼 수 있습니다.

checkpoint는 이미지를 생성하는 주모델이고, LoRA, embedding등은 이미지 생성을 위한 보조모델의 기능을 합니다

따라서 사용을 위해서는 원하는 checkpoint모델을 우선적으로 정하고 이를 더 잘 사용하기 위한 보조모델들을 설치하는 과정을 반복하게 됩니다

필요한 모델을 다운받은 후에는 이를 사용하기 위해서 올바른 경로에 옮겨주어야 합니다
checkpoint의 경우

stable-diffusion-webui/models/Stable-diffusion 

경로에 넣어주어야 webui실행시에 인식이 됩니다

checkpoint가 아닌 LoRA모델을 다운받았을시애는 models 내부에 있는 Lora 디렉토리 하위에 위치시켜주면 됩니다

모델 사용해보기


상단에 2가지 종류의 프롬프트가 존재하는데, Prompt에는 만들고 싶은 이미지의 특징들을 입력하고 Negative Prompt에는 어떤 특징이 나타나지 않았으면 하는지에 대해서 입력하게 됩니다

명령어 형식은 아니지만, 다른 사람들이 생성한 이미지는 어떤 프롬프트를 사용해 만들어졌는지를 참고하여 작성해볼 수 있습니다

사진 하단에 있는 i(info)를 클릭하게되면 해당 이미지는 어떤 Promt를 이용해서 만들어졌는지 알 수 있습니다

여기서 소괄호 ()는 강조를 의미하고 해당 특징에 가중치를 주는 개념입니다. 그 안에 :(number)의 경우 얼마 정도의 가중치를 줄지에 대해서 설정할 수 있습니다

저의 경우에는 고3시절에 '가고싶은 학교를 다니는 나의 모습을 상상해봐라' 라는 말들을 듣곤 했는데 여기서 아이디어를 착안하여 '가고 싶은 대학의 과잠바를 입고있는 나의 모습 혹은 신입생 때 나의 모습' 의 이미지를 생성해보면 어떨까라는 시도를 해보았습니다

Stable Diffusion을 이용해서 만들어본 가상 인물의 이미지 예시 입니다.


추가 기능들

상단 Extension 탭에 들어가게 되면 유용한 extension들을 설치하여 Prompt로는 완벽하게 컨트롤하지 못한 부분들을 다룰 수 있습니다

예를 들어, inpaint 기능을 이용해 이미지 특정 부분만을 재생성할 수 있는데 여기에 roop를 이용해 해당 부분에 내가 원하는 이미지를 기반으로 재생성해볼 수도 있습니다.

배운점


새로운 기술을 사용할 떄, 원리 이해에 앞서 만들어진 기술을 사용해보면서 익히는 것이 얼마나 초반 작업을 빠르게 진행시킬 수 있는지에 대해 배우게 되었습니다. 생성형 AI의 경우 특히 해당 기술을 쉽게 사용해볼 수 있는 인터페이스를 찾아보고 기술을 이용해서 2차적으로 생산해낼 수 있는 컨텐츠가 무엇인지 고민하는 것이 중요한 지점임을 배웠습니다.

profile
데이터와 파이썬을 좋아합니다 :) contact : chal405@naver.com

0개의 댓글