누군가에겐 이것도 유용한 정보/AI

AI 그림 생성 가장 쉽게 하는 방법 :: stable-diffusion, Google colab

VeryIP 2023. 3. 11. 14:01

요즘 커뮤마다 핫한 AI 그림.  자세히 봐도 사진같은 것들, 유명 일러스트레이터가 그린듯한 이미지까지 정말 입이 벌어지는 수준도 많습니다. 보고 있지만 말고 직접 그려봐야죠. (그리는게 아니고 만든다고 표현해야 하나? 뽑아야 된다고 해야하나?)

뚝딱 만들어낸 AI 이미지

고사양의 그래픽카드가 필수인데, 내장그래픽인 내 컴퓨터로는 안될꺼야 라고 생각했다면 

아닙니다. 우리에겐 구글이 있으니까요. 

 
인터넷 되는 수준의 컴퓨터면 다 됩니다!. 심지어 태블릿, 핸드폰에서도 되요.  프로그램 언어 같은거 1도 몰라도 가능합니다.
설명의 편의를 위해 PC 기준으로 알려드릴게요. (핸드폰도 똑같습니다. 다만 핸드폰 특유의 좁은 화면과 승인 절차등이 다를 뿐이죠.).  

준비물 : 인터넷 되는 컴퓨터(사양무관), 구글 계정

1. 구글 코랩을 검색하여 들어갑니다. 혹은 다음 주소를 클릭합니다. 구글계정으로 로그인하면 되요. https://colab.research.google.com/

2. 들어가면 위 스샷처럼 바로 파일 열기 팝업이 뜹니다. (위 스샷처럼 안보이면 파일 - 노트 열기 )
 GitHub 를 선택합니다
 

3. nolanaatama 를 검색합니다.
 

4.여러가지 파일들이 보이는데 스크롤을 내려서 chilloutmix.ipynb 파일을 선택합니다. (파일명을 클릭합니다)
 

5. 복잡해 보이는 이런저런 코드들 옆에 있는 ▶ 를 클릭합니다. 소스코드 아래로  출력창이 생기고 주르륵 뭔가의 진행상황이 나옵니다.
 

6. 한 5분이상 기다리면 Running on public URL : *********  (매번 주소는 바뀝니다) 이라는 링크가 나오고 출력창이 멈춥니다. 링크를 클릭하면 이제 AI 이미지를 생성할 수 있는 UI(User interface)가 보이는 인터넷창이 하나 열립니다.
** 제작하신 분이 노트를 종종 업데이트 하기 때문에 링크가 3개가 뜬다거나 그럴 수도 있습니다.

 

7. 여기서 ⓛ 이라고 적어놓은 빨간색으로 표시한 칸에 적당한 키워드를 적고 Generate 를 누르면 잠시후 이미지가 생성됩니다. 

참 쉽죠?

 
다시한번 간단하게 정리해보자면 이렇습니다.

1. https://colab.research.google.com/ 로그인
2. 파일 메뉴에서 노트 열기
3. GitHub 탭으로 가서 nolanaatama 검색
4. chiloutmix, orangemix 등의 원하는 모델이름으로 된 파일 선택
5. 셀 실행
6. 한참 기다려서 출력창이 완료되고 화면에 나오는 링크 클릭해서 webui 화면으로 이동
7. prompt를 적고 generate를 눌러 이미지 생성


프롬프트에는 원하는 이미지를 상상해서 영어로 적어주면 됩니다. 구분은 쉼표로 하시구요.  적는 순서도 중요하게 반영됩니다. 

 예를 들어  a little boy, jogging, sportswear, gloves, winter, 라고 하고 Generate 를 누르면 운동복을 입고 장갑을 낀 아이가 겨울에 조깅하는 모습의 이미지가  생성될 겁니다. 바로 이렇게요

꼬마가 잘생겼네!


 이렇게 안나온다구요? 네 당연히 똑같은 이미지는 안나옵니다. generate 누를 때마다 매번 새로운 이미지가 나옵니다.(물론 조절하는 방법도 있습니다.)

그런게 아니라구요?

화질이 나쁜가요? 팔다리가 여러개인가요? 얼굴이 이상한가요?

네 맞아요. 저대로 하면 재수 좋은 경우 말고는 대체로 인간같지만 인간이라고 볼 수 없는 그런 이미지가 생성됩니다.

중요한 내용이 더 있습니다. stable-diffusion에서는 prompt에 적은 내용에 맞도록 이미지를 생성해 냅니다. 그런데 저기에 얼굴이 이상하면 안된다는 내용이 있나요? 팔다리가 여러개면 안된다는 내용도 없죠? 화질이 나쁘면 안되! 라는 것도 없습니다.

그런걸 정하는게 위에 7번 단계 스샷에서 ②라고 파랗게 표시한 칸에 적는겁니다. 이걸 네거티브 프롬프트라고 부릅니다.

전 이렇게 적었습니다.

sketch, painting, worst quality, low quality, normal quality, lowres, bad anatomy, open mouth, 

 

실사 형태로 AI 이미지를 뽑고 싶었으니까 스케치 안되고 페인팅도 안되고 퀄리티는 최고 아니면 다 안되고, 해상도 떨어지는것도 안되고, 팔다리 여러개인것도 안되고.  그런 뜻입니다.

그러면 open mouth 는 왜 적었을까요? 

ai가 조깅하니까 당연히 힘들거고 입을 벌릴거다 라고 판단해버렸는지 대부분 입벌린 이미지가 생성됩니다. 그런데 아쉽게도 입벌린 이미지를 좀 어색하게 만들어요. 그래서 굳이 open mouth를 negative prompt로 넣었습니다.
(사실은 입벌린것도 다른 조치를 취해서 잘 만들게 할 수도 있습니다.)

이제 다른 프롬프트를 넣어서 자유롭게 해보세요

상상력과 디테일한 설명을 잘 적을수록 좋은 이미지가 나옵니다.  다음번에는 어떻게 프롬프트를 입력해야 더 좋은 이미지를 뽑아낼 수 있을지에 대해 올려볼게요
 
ps. 우연히 유튜브에서 본 덕에 손쉽게 stable diffusion을 사용할 수 있게 만들어 두신 Nolan Aatama 님에게 감사드립니다. https://www.youtube.com/@nolanaatama