낼름낼름 동동이

[ASAC 0806] 스테이블 디퓨전: 생성형 AI 기초 Part 1 본문

데이터분석/머신&딥러닝

[ASAC 0806] 스테이블 디퓨전: 생성형 AI 기초 Part 1

인죠인간 2024. 8. 7. 14:43

8월 6일의 기록

게임아트 딥러닝 팀 프로젝트를 좀 더 디벨롭해서 실무에 적용할 수 있을 수준까지 만들려면 어떻게 해야 할까 고민하며 Stable Diffusion에 대해서 더 공부해보기로 했다. 괜찮은 자료가 있어서 직접 참고하면서 공부를 했다.

목차

  • 이미지 생성형 인공지능의 종류
  • 스테이블 디퓨전(Stable Diffusion) 이란?
  • Stable Diffusion 사용방법은?
  • Stable Diffusion의 장점
  • 스테이블 디퓨전으로 할 수 있는 것
  • 어떤 Stable Diffsion 서비스를 사용해야 할까?
  • 프롬프트를 잘 만들려면?
  • Stable Diffusion 기본 파라미터

이미지 생성형 인공지능의 종류

이미지 생성형 인공지능(Generative AI for Image)란, 말 그대로 인공지능 중에서 이미지 생성 방면으로 특화된 인공지능이다. 현재 가장 널리 사용되는 것은 자신의 사진을 입력하면 약간 변형한 이미지 혹은 아바타를 만들어주는 서비스로서, AI 프로필 사진으로 유료 결제로도 사람들이 많이 사용한다.

특정한 이미지만 처리해주는 서비스외에 어떤 문장 또는 단어의 조합(프롬프트)만 입력하면, 이에 맞는 이미지를 생성 해주는 서비스나 소프트웨어도 많다. 이러한 기술의 경우 생성하는 이미지가 인물, 풍경, 정물 등 아무런 제한이 없고, 예술가 스타일이나, 애니 스타일을 적용하는 등 이미지로 상상할 수 있는 모든 것을 생성할 수 있다.

이러한 서비스/소프트웨어 중에서 가장 유명한 것은 미드저니(MidJourney)와 달리3(DALL-E 3) 그리고 스테이블 디퓨전이다.

  1. 미드저니, 달리3는 가입형 서비스
  2. 스테이블 디퓨전은 오픈소스 소프트웨어로서 자유롭게 자신의 PC 에서 수행할 수 있다.

그래서, 대부분 사람들이 만들어내는 더 가공된 버전의 이미지들도 스테이블 디퓨전을 기반으로 하고 있다. 나도 스테이블 디퓨전 기반으로 fine-tuning을 시도해서 최종 모델을 배포까지 해볼 예정이다.

스테이블 디퓨전이란

스테이블 디퓨전은 인공지능 이미지를 생성하는 잠재 확산 모델(latent diffusion model) 모델이다. 카메라로 직접 촬영한 듯한 정말 사실적인 사진도, 예술가들이 직접 그린 예술 작품 같은 이미지도 생성할 수 있다.

장점

  • 오픈소스(Open-Source) : 소스가 공개되어 있어 무료로 사용할 수 있으며, 많은 개발자들이 참여하여 새로운 기능이 추가되고 있다.
  • 저사양 컴퓨터 작동 가능 : 대부분의 상용 이미지 생성형 인공지능은 컴퓨터 자원 (및 전기)을 무지막지하게 사용하는 걸로 알려져 있다. 하지만, Stable Diffusion은 저가 컴퓨터에서도 작동하긴 한다.(아주 느리긴 해도 GPU없이 CPU만으로 돌릴 수도 있다) 물론… 왠만해선 시도하지 않는게 좋다..

스테이블 디퓨전으로 할 수 있는 것

1. 텍스트로부터 이미지를 생성하기

스테이블 디퓨전을 사용해 이미지를 생성하는 방법은 여러가지가 있지만, 가장 기본적인 것은 text-to-image(txt2img) 방식이다.

Stable Diffusion으로 생성할 수 있는 이미지의 예

  1. Anime 스타일
  2. 실사 스타일
  3. 풍경
  4. 판타지풍 이미지동물

어떤 Stable Diffsion 서비스를 사용해야 할까?

스테이블 디퓨전은 오픈 소스로, 다양한 서비스 존재 한다.

온라인 생성기

스테이블 디퓨전 기반의 온라인 서비스도 존재는 많이 하고 있으니, 생성해보는 것만 관심 있다면 다른 사람이 만든 서비스를 활용하면 된다.

GUI 환경

PC 로컬 환경이나 Google Colab 환경에서 설치해서 진행 할 수도 있다. 초반 단계에서 배워나갈 때는 Automatic1111을 사용하는 것이 가장 좋다. 로컬 환경 설치는 여기 참고

가진 PC의 성능이 떨어지거나 노트북이라면 Google Colab을 사용하는 것이 좋은 방법. Google Colab은 구글에서 제공하는 클라우드에서 연산을 하고, 자신의 PC에서는 GUI로 환경을 설정하는 일만 담당하기 때문에, 자원이 거의 없는 노트북에서도 사용할 수 있다.

왜 독자 GUI를 사용해야 할까?

  • 보다 고급 프롬프트 입력할 수 있다.
  • 인페이트 기능을 사용해 이미지 일부만 다시 그릴 수 있다.
  • 이미지를 입력하고, 그 이미지를 기반으로 새로운 이미지를 생성할 수 있다.(img2img)
  • 명령을 입력해 이미지를 편집할 수 있다(pix2pix)

현재는 AUTOMATIC1111만 사용하고 있는데, 이 GUI로 기초 학습에 대해서 익숙해진 뒤 다음 UI들을 활용해볼 생각이다.

프롬프트를 잘 만들기 위해서 해야할 일

좋은 프롬프트를 작성하는 방법

가장 중요한 법칙 1) 자세하게, 구체적으로, 2) 강력한 키워드를 쓸 것. 이 두가지

1. 자세하게 구체적으로

AI 가 하루가 멀게 진화하고 있지만, 스테이블 디퓨전이 당신의 마음을 읽을 수는 없다. 따라서, 자신의 마음 속에 있는 것을 가능한 한 상세하게 적는 것이 프롬프트의 출발점이다.

2. 강력한 키워드 사용

일부 키워드는 매우 강력하게 작용한다.

  • 유명인 이름 예: Emma Watson
  • 예술가 이름 예: Vincent van gogh
  • 예술 매체 예: illustration, painting, photograph, pencil schetch

이런 단어들을 적절히 사용하면 원하는 이미지를 얻을 수 있다. 단, 모든 키워드는 영어로 입력해야 한다.

Stable Diffusion 기본 파라미터

Stable Diffusion은 매우 많은 파라미터를 설정할 수 있다. 그러나 그 중 가장 중요한 것은 다음과 같다.

  • 이미지 크기 : 출력 이미지의 크기. 512x512가 기본 텍스트 프롬프트가 동일할 경우에도, 크기가 달라지면 생성되는 이미지가 엄청나게 달라진다. 예를 들어 이미지 크기는 좌우가 넓은데 서있는 사람을 프롬프트에 입력해서는 생성될 확률이 떨어짐. 이때는 512x768 등 landscape가 아닌 portrait 크기로 지정하는 것이 좋다. 이미지 크기를 잘못 설정하면 이런 기괴한 이미지가 생성될 수도 있다.
  • 샘플링 스텝(Sampling steps) : 최소 20회 필요. 이미지가 좋지 않으면 일단 좀 더 늘려볼 수 있다. 단, 40회 이상은 거의 필요가 없다.
  • CFG(무분류기 안내, Classifier-free Guidance) : 기본이 7. 숫자가 작으면 인공지능의 자유도가 올라간다. 즉 프롬프트를 무시할 확률이 커진다.
  • 시드 값(seed) : -1로 지정하면 무작위로 지정된다. 모든 이미지에는 시드 값이 있다고 생각하면 되는데, 동일한 값을 입력하면 동일한 이미지를 얻을 수 있다.