본문 바로가기
chatGPT와 인공지능AI

구글코랩 + 스테이블 디퓨전 도전기

최근 구글 코랩에서 AI를 이용, "실사 이미지를 무료로 생성"하는 방법을 알아보았습니다.
오늘은 해당 방법을 최대한 간단하게 사용하는 방법을 공유드립니다.

특히 "횟수 무제한", 내가 생성한 이미지를 "타인에게 공개하지 않는" 장점이 있는데요.
보통 많은 생성 횟수를 사용하거나 이미지를 비공개하려면 여러 AI 이미지 생성 사이트들은 유료 결제를 해야 합니다.

사용법은 약간의 학습이 필요하지만 위의 장점을 생각해본다고 할 때 충분히 학습할 만한 가치가 있는데요. 
익히는 양의 부담도 그리 크지 않고 사용법도 그다지 어렵지 않습니다.

여기에 추가적인 파이썬 코딩 학습을 한다면 더 놀라운 것도 만들어 낼수가 있지요.
뭐 이 부분은 독자 여러분의 학습 역량에 맡겨 두도록 하겠습니다 :)

그냥 글만 읽으면 심심하니, 영어 CCM "디스이스 아워 타임" 공유드립니다.
기독교 음악이지만 전혀 클래식하지 않으니 틀어놓고 보시면 매우 EXCITING! 신나실 겁니다 :)

자, 그러면 AI 실사 이미지 생성의 놀라운 세계로 떠나볼까요? 렛츠 고우~


구글 코랩 서버 소환!

구글 코랩 연구소 서버를 잠깐 사용해볼까요? 물론 공짜입니다 :)

우선 구글 아이디는 하나 만들어 주셨다는 가정하에 시작하겠습니다.

1) 구글 코랩 페이지로 이동합니다. 아래 주소를 클릭하시면 됩니다.
사이트 URL : https://colab.research.google.com/

2) 새 노트를 만듭니다.
파일 - 새 노트 메뉴 선택

3) 노트 제목을 자유롭게 적어 주세요.
크레이는 "AI 이미지 생성"으로 적겠습니다.


구글 코랩 서버 열혈모드!

인공지능을 작동하려면 서버 컴퓨터도 머리가 좋아야 하는데요.
구글 코랩에서는 CPU 보다 더 머리가 좋은 T4GPU를 제공합니다.
빠른 속도를 위해서 서버 컴퓨터의 두뇌를 T4GPU로 변경해 주세요.

1) 연결 우측의 ▼ 버튼 클릭, 런타임 유형 변경 선택

2) T4 GPU 선택, 저장 버튼 선택


스테이블 디퓨전 설치

이제 AI 이미지를 생성할 파이썬 코드 블럭을 복붙해 주시면 되는데요.
코드 블록은 2개로 나누어 집니다.
하나는 스테이블 디퓨전을 설치하는 코드 블럭이고
또 하나는 이미지를 생성하는 코드입니다.

1) 첫번째 코드 블록(아래)를 복사하여 구글 코랩에 붙여 넣고

 
!pip install diffusers["torch"] transformers
!pip install accelerate
!pip install git+https://github.com/huggingface/diffusers

2) 실행(▶) 버튼을 눌러 주세요.

3) 실행 버튼 왼쪽에 체크(√) 표시가 보일 떄까지 기다리시면 되는데요. 크레이는 38초 소요되었습니다.


이미지 생성 코드 블럭 

이제 2번째 코드 블럭을 붙여 넣고 프롬프트를 수정하시면 되는데요.
코드 블럭은 아래와 같습니다.

import torch
from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained("redstonehero/henmixreal_v40", torch_dtype=torch.float16)

pipe = pipe.to("cuda")
pipe.safety_checker = None

prompt = "medival houses, country, scenery, 8K, masterpiece, ultradetailed, breathtaking, realistic"
h=800
w=640
steps=25
guidance=7.5
neg = "easynegative, human, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worstquality, low quality, normal quality, jpegartifacts, signature, watermark, username, blurry, bad feet, cropped, poorly drawn hands, poorly drawn face, mutation, deformed, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, extra fingers, fewer digits, extra limbs, extra arms,extra legs, malformed limbs, fused fingers, too many fingers, long neck, cross-eyed,mutated hands, polar lowres, bad body, bad proportions, gross proportions, text, error, missing fingers, missing arms, missing legs, extra digit, extra arms, extra leg, extra foot,"

image = pipe(prompt, height=h, weight=w, num_inference_steps=steps, guidance_scale=guidance, negative_prompt=neg).images[0]
image

1) 코드 셀을 추가합니다.

2) 코드 블럭을 붙여 넣습니다.

3) 프롬프트를 수정합니다.

4) 실행 버튼을 클릭합니다.

5) 실행이 완료될 때까지 느긋하게 커피를 한잔 마시고 옵니다 ( 처음에는 약 5분 소요됩니다. )

구글 코랩 화면에 생성된 이미지가 표시될 텐데요.
이미지 생성에 성공한 것입니다!

크레이가 실행했을 때 생성된 이미지는 아래와 같습니다.
매번 생성할 때마다 다른 이미지가 나올 테니 엉뚱한 이미지가 나와도 놀라지 마세요 :)


응용편

2번째 코드를 일부 변경하면 재미 있는 것들을 할 수 있는데요.
1. 해상도를 바꿔 보세요.
우선 이미지 해상도를 변경하려면, h(높이), w(너비)값을 바꿔주시면 됩니다.
아래 코드를 변경한 후 다시 실행해보세요. 다른 이미지가 생성될 것입니다.

h=800
w=640

2. 프롬프트를 변경해 보세요.
여기서 사용된 아래 프롬프트는
medival houses, country, scenery, 8K, masterpiece, ultradetailed, breathtaking, realistic, cloud

각각 한글로 번역하면 아래와 같습니다.
중세풍의 집, 시골, 풍경, 8K, 명작, 초세밀하게, 멋진, 현실적인, 구름

파파고에서 한글 단어를 영어로 번역하는 방법 등으로 여러분만의 멋진 프롬프트를 찾아 적용해 보세요 :)

3. 모델을 바꿔 보세요.

현재 사용된 훈련 모델은 실사 분위기의 "redstonehero/henmixreal_v40"인데요.
"redstonehero/cetusmix_v4" 모델을 사용하면 만화 분위기가 연출되기도 합니다.
사진보다 더 예쁜 것 같네요 :)

모델을 바꾸려면 아래 코드의 따옴표 안쪽 부분을 변경해 주시면 되는데요.

pipe = StableDiffusionPipeline.from_pretrained("redstonehero/henmixreal_v40", torch_dtype=torch.float16)

모델 목록은 아래 페이지에서 검색하여 찾으실 수 있습니다. 엄청난 양(9,000 이상의 모댈)이라 뭐 어떤게 어떤 건지는 아직 모르겠네요.https://huggingface.co/models?other=diffusers%3AStableDiffusionPipeline


마무~리

아무쪼록 도움이 되셨나요?
오늘도 방문해 주신 모든 분들께 감사드립니다.

도움 되셨다면 구독, 공감 감사드립니다.
댓글 또한 무한 감사합니다 :)