web-ui 정리 및 사용 후기
[web-ui 정리 및 사용 후기]
최근에 sora AI라는 동영상 생성 AI 영상을 보았다. 놀랍고 무섭더라... ChatGPT(GPT-3.5) 처음 쓸때도 놀라웠고, Stable Diffusion때도 놀라웠고 sora도 놀랐다. AI 관련으로 엔디비아 주식도 놀랍다. 놀라움의 연속이다.
대부분 개발자들(연관 사무직)은 AI가 자신을 대체하지 않을까라는 생각을 다들 한번은 해봤을 것 같다.
그만큼 AI의 발전속도는 놀랍다.
피할 수 없으면 즐기라했던가, 늦었다고 생각했을 때가 가장 빠른때라던가, AI 관련 프로덕트를 뭐라도 사용 해봐야 할 것만 같다. 그래도 ChatGPT는 자주 사용하니까 이번에 Stable Diffusion으로 이미지 생성을 해보기로 했다.
Stable Diffusion: 텍스트 및 이미지 프롬프트에서 고유한 실사 이미지를 생성하는 생성형 인공 지능(생성형 AI) 모델 web-ui: 웹 기반 유저 인터페이스
가장 대중적인 방법인 web-ui로 이미지 생성을 해보자!! 본인의 기기는 M1 max이다.
1. web-ui 설치
web-ui는 굉장히 성공적인 프로젝트고 바리에이션도 많다.
- https://github.com/AUTOMATIC1111/stable-diffusion-webui web-ui를 개발한 오토좌의 레포 링크이다.
- https://github.com/vladmandic/automatic 검색 후 최초로 사용한 web-ui 추가적인 기능이 많고, 로그가 상세
- https://github.com/brkirch/stable-diffusion-webui 기존의 web-ui에서 Apple silicon 관련 성능 개선이 있다고 한다.(vladmandic web-ui와는 기본이미지 생성에서 속도 차이가 없는 것 같다)
설치법들은 각 레포 README에 자세하게 나와있다.
// https://github.com/brkirch/stable-diffusion-webui
// conda로 환경만들고 진행하는 것을 추천
// python은 3.11.0 (9,10,11)
// 설치 원하는 경로에서 명령어 실행
wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
sh webui.sh // 프로젝트 설치
// 설치 된 stable-diffusion-webui 폴더에서 아래 명령어를 실행
sh webui.sh // 프로젝트 실행
2. model 다운로드
어떤 모델이 생성할 수 있는 이미지는 모델 학습에 사용된 이미지에 의해 결정됩니다. 고양이를 학습하지 않은 모델을 사용해서는 고양이를 생성할 수 없고, 고양이만 학습한 모델이라면 고양이 말고는 아무것도 생성하지 못합니다. https://www.internetmap.kr/entry/Stable-Diffusion-Everything-about-models
그렇다고 한다. 간단하게 이해하고 넘어가자.
- ui를 설치했다면 이미지를 생성할 model을 다운받자.
본인이 사용한 사이트는 civitai이다.
모델들이 굉장히 많아 like가 가장 많은 picxreal 모델(SD 1.5)을 다운 받았다.
모델 관련 유튜브 링크
- 다운받은 모델 파일을 프로젝트의 models/Stable-diffusion 폴더에 넣어준다.
3. 이미지 생성
이제는 web-ui를 실행하고, 이미지 생성을 해보자.
vladmandic/automatic
brkirch/stable-diffusion-webui
벌써 그럴듯한 이미지를 만들었다.
위부터 1번 박스가 모델 선택(우측 새로고침), 2번이 positive prompt(원하는 특성), 3번이 negative prompt(원하지 않는 특성) 이다.
생성형 AI에게 어떤 행동을 해야 하는지 자연어로 설명해 원하는 결과물을 출력할 수 있게 하는 입력값을 프롬프트(Prompt)라고 합니다. 코드 스테이츠
생성할 이미지와 퀄리티를 결정 짓는 요소는 모델과 prompt인 것이다. prompt에 대한 레퍼런스는 굉장히 많은데 요점적으로는
- 부정형 프롬프트가 더 중요하고(좋은 퀄리티를 강조하기보단 나쁜 퀄리티를 배제하는 방향),
- 너무 길게 쓰면 오히려 퀄리티가 떨어진다는 것이다.
4. 이미지 개선
여러장을 프롬프트를 바꿔서 실행 해봤지만, 뭔가 다른 사람들이 만들어낸 고퀄리티 이미지 레벨까지는 생성되지 않는다.