검색
검색
공개 노트 검색
회원가입로그인

Stable Diffusion 사용법 - 인공지능으로 텍스트에서 이미지를 생성

Stable Diffusion 스테이블 디퓨전

스테이블 디퓨전. 안정적인 확산이라는 뜻. 인공지능 이미지의 안정적인 확산을 하겠다는 건가? 사실 diffusion은 인공지능 엔진에 사용한 딥러닝 모델을 이야기 한다.

stability.ai 라는 스타트업에서 만든 텍스트에서 이미지를 만들어주는 인공지능이다.

이미지 생성 모델을 무료로 풀어버린 클라스…

사람들이 로컬에 다운 받아서 사용할 수 있다. 자신의 서버에 설치해 돌리는 것도 가능하다.

  • web ui로 실행할 수 있게 만들어놓은 것이 있다. 그런데 stable diffusion을 내 컴퓨터에서 돌리려면 그래픽카드 메모리가 최소 4GB 이상이어야 한다.

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

  • 그래서 colab에서 사용할 수 있게 누군가 만들어 놓은 것이 있다. (Altryne의 stable diffusion colab)

    (스테이블 디퓨전 1.5 버전이나 2.1 버전을 사용하려면 fast stable diffusion colab을 사용하자. Automatic1111의 웹 ui와 드림부스를 사용한 버전이다. 모델이 이미 올라가 있어 약 5분 정도로 생성이 빠르고 나중에 원하는 이미지를 넣어 추가학습하는 파인 튜닝도 할 수 있다. 원리는 아래 내용과 똑같다.)

  • 그러나 최근 다시 돌려봤을 때 더이상 colab 무료 버전에서는 stable diffusion을 돌릴 수 없다. (실행은 가능하지만 이미지를 몇 장 생성하면 Connection이 끊긴다.) 대안으로 사용하려면 colab 유료 버전이나 runpod과 같은 GPU를 빌려주는 클라우드 서비스를 이용해야 한다.

  1. 위 주소의 colab을 카피한다.

  2. 런타임 -> 런타임 유형 변경 에서 GPU 인지 확인한다.

  3. 런타임 -> 모두 실행을 돌리면 된다. (시간이 10분정도 걸린다.)

  4. 구글 drive의 AI/models 폴더에 https://huggingface.co/CompVis/stable-diffusion-v-1-4-original 에서 sd-v1-4.ckpt 모델을 받아서 구글 드라이브에 올리면 된다. colab에서 올리는게 아니고 구글 드라이브에 올린다. (4기가 정도)

stable-diffusion-webui

  1. 그럼 https://104xx.gradio.app/ 같은 주소가 나오고 이런 ui 환경에서 사용할 수 있다. 링크는 72시간 정도 지속된다. 그런데 코랩이 그 정도까지 유지를 해주는지 모르겠다. 그래도 한번 만들면 한참 쓴다. 나중에 다시 쓰려면 처음부터 다시 돌려줘야 한다.

  • 이미지를 생성하기 위한 텍스트를 프롬프트라고 하는데 이걸 잘 사용하기 위한 가이드도 나와 있다. https://dallery.gallery/the-dalle-2-prompt-book/

  • 사람들이 stable diffusion을 사용해 만든 이미지를 모아놓은 사이트이다. prompt도 같이 확인할 수 있어 좋다.

    https://lexica.art/

dall-e나 midjourney는 한 달 무료 사용량을 다 사용하면 유료로 사용해야 하지만 스테이블 디퓨전은 내가 원하는 만큼 원하는 대로 이미지를 생성할 수 있다.

c6f4e0f7-e11a-419d-8fa1-a31823669c8a

스테이블 디퓨전을 활용해 만들어진 이미지.

Stable Diffusion 사용법 - 인공지능으로 텍스트에서 이미지를 생성 image 3

text to image 모델을 사용해 보면서 느낀건 가끔 기괴한 이미지들이나 불완전한 이미지들이 나온다는 것이다. 인공지능은 패턴만을 인식하기 때문에 뭐가 이상한지 모르는 경우가 많다. 예를 들면 손이 하나 더 있다든지… 그리고 좋은 프롬프트를 쓰기가 좀 어렵다. 여러번 시도해서 찾아나가야 한다.

개인적인 생각으로 인간이나 디자이너를 대체하기는 어려울 것 같다. 정확하게 방향을 제시할 수가 없고 완벽하지 않은 부분이 있다. 그래서 디자이너가 방향을 제시하거나 부족한 부분을 수정할 수 있으면 베스트인것 같다. 그래서 디자이너에게 오히려 좋은 도구가 될 수 있을것 같다.

그래도 이제 인공지능이 인간만이 가지고 있던 making 의 영역에 들어가는 중요한 사건인것 같다. 인공지능이 앞으로 우리의 삶에 어떤 변화를 가져다 줄지 함께 지켜보자.

  • 1~2장의 이미지를 생성하거나 체험하는데 목적이 있으신 분들은 허깅페이스의 stable diffusion 데모 페이지에서 사용해 보세요.

  • dream studio 는 스테빌리티 ai 에서 출시한 유료 웹앱입니다. 만약 유료로 안정적으로 계속 사용하고 싶을 경우에 쓰면 될거 같네요. 가격은 1000 크레딧에 10달러 정도라고 합니다. 회원가입하면 200 크레딧을 무료로 줍니다. (200 크레딧까지 이곳에서 연습해보시면 좋을거 같습니다.)

  • diffusion은 원본 이미지에 노이즈를 주고 원본 이미지로 원상복구하는 인공지능 모델의 이름입니다.

stable diffusion 프롬프트 잘 쓰는 법

이제 인공지능에게 명령을 내리는 prompt를 잘쓰는 것이 중요해 졌다. 어떻게 하면 프롬프트를 잘 사용할 수 있을까? 영어를 못한다고 어려워하지 말자. 구글 번역을 돌리면 된다.

1. 기본 프롬프트 (raw prompt)

간단한 단어 형태이다. 예를 들면 cute cat, a cup of coffee, a warrior with sword 같은 단어이다. 다들 이렇게 시작한다. 하지만 이렇게 하면 내가 원하는 이미지를 정확히 얻기가 어렵다.

2. 스타일

그래서 여기에 스타일을 추가한다. 이는 전체적인 이미지의 톤을 결정한다. 많이 사용되는 예는 다음과 같다.

  1. Realistic

  2. Oil painting

  3. Pencil drawing

  4. Concept art

realistic을 추가하면 보다 현실적인 느낌의 이미지를 얻게 된다. 예를 들어 다음과 같이 적용할 수 있다.

  1. a photo of + raw prompt

  2. a photograph of + raw prompt

  3. raw prompt, hyperrealistic

  4. raw prompt, realistic

나의 경우 4번과 같이 콤마(,)와 같이 많이 사용한다. a warrior with sword, realistic

3. 아티스트

여기에 아티스트의 형태를 추가해서 화풍을 더할 수 있다. 예를 들면 추상적인 이미지를 원한다면 “made by Pablo Picasso” 또는 “Picasso”. 라고 적는 것이다.

다음은 입력할 수 있는 스타일과 아티스트를 예로 들어본 것이다.

초상화 (Portrait)

  1. John Singer Sargent

  2. Edgar Degas

  3. Paul Cézanne

  4. Jan van Eyck

유화 (Oil painting)

  1. Leonardo DaVinci

  2. Vincent Van Gogh

  3. Johannes Vermeer

  4. Rembrandt

스케치 (Pencil/Pen drawing)

  1. Albrecht Dürer

  2. Leonardo da Vinci

  3. Michelangelo

  4. Jean-Auguste-Dominique Ingres

풍경화 (Landscape art)

  1. Thomas Moran

  2. Claude Monet

  3. Alfred Bierstadt

  4. Frederic Edwin Church

예술가들의 화풍을 섞는 것도 흥미로운 그림을 생성할 수 있는 방법이다.

아래 사진은 지브리와 디즈니를 섞어서 풍경 그림을 만들어 본 예시이다.

a fantasy castle, landscape art, ghibli, disney

Stable Diffusion 사용법 - 인공지능으로 텍스트에서 이미지를 생성 image 4

4. 피니싱 터치 (Finishing touches)

여기에 추가적으로 여러분의 마법이 들어갈 수 있다. 만약 좀 더 예술적으로 만들고 싶다면 “trending on artstation” 을 추가할 수 있고 보다 현실적인 조명이 필요하다면 “Unreal Engine.” 이라고 추가할 수 있다. 원하는 건 무엇이든 추가할 수 있지만 아래는 몇 가지 많이 쓰이는 예이다.

Highly detailed, surrealism, trending on art station, triadic color scheme, smooth, sharp focus, matte, elegant, the most beautiful image ever seen, illustration, digital paint, dark, gloomy, octane render, 8k, 4k, washed colors, sharp, dramatic lighting, beautiful, post processing, picture of the day, ambient lighting, epic composition

이 글은 dream studio에 있는 Graverman의 가이드를 참고하였습니다. 저도 처음에 화려하게 프롬프트를 쓰는 사용자들을 보며 기가 죽었었는데요 ㅎㅎ 몇가지 요령을 알면 훨씬 퀄리티가 좋은 이미지를 쉽게 생성할 수 있습니다. 위의 예시는 스테이블 디퓨전 뿐만 아니라 dall-e 2나 midjourney 같은 이미지 생성 모델에서도 활용할 수 있습니다.

이미지 생성 외에 추가적으로 가능한 기술

  • 인페인팅 (inpainting) : 색칠한 부분(masking)을 입력한 텍스트 프롬프트로 바꿔주는 것

  • 아웃 페인팅 (outpainting) : 그림 바깥의 부분을 인공지능이 그려주는 것

파인 튜닝이란? (fine-tuning)

이미 학습된 모델 위에 새로운 데이터를 학습시켜서 사용하는 것. 예를 들어 스테이블 디퓨전 모델에 판타지 풍의 그림을 계속 학습시키면 판타지 풍의 이미지 생성 모델을 만들어 낼 수 있다. 원리는 학습된 모델이 이미 이미지 생성의 딥러닝 모델을 가지고 있기 때문이다. 이런식으로 커스터마이징하여 여러 서비스들이 등장하고 있다.

학습데이터

LAION-5B라는 데이터셋을 활용해서 학습됨. 데이터셋은 이미지와 설명 텍스트(caption)으로 이루어져 있다고 한다. Common Crawl에 의해 공개적으로 접근이 가능한 이미지이 크롤링됨. 이 데이터셋은 LAION이라고 하는 stability AI에 의해 펀딩을 받는 비영리 단체에 의해 만들어졌다고 한다.

stable diffusion 원리

이미지에 노이즈를 주고 이를 다시 원상 복구하는 diffusion 모델을 활용. 이미지와 설명으로 학습된 데이터는 여러 차원의 latent space에 존재한다. 이를 노이즈화된 이미지와 사용자의 텍스트 프롬프트를 주면 특정 공간에 있는 이미지를 찾아가는 방식이라고 한다.

stable diffusion을 무료로 편하게 사용할 수 있는 사이트

만약 설치 없이 스테이블 디퓨전을 활용해 간단하게 이미지를 빠르게 생성해서 사용하고 싶다면 정리 해놓은 다음 문서를 활용해 보세요. 스테이블 디퓨전을 무료로 사용할 수 있는 사이트 모음

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 61584
heart
T
페이지 기반 대답
AI Chat