17일차 강의 : 이미지 생성 AI (Stable Diffusion)

Luis_J·2024년 10월 1일
0

MS_AI_School 5기

목록 보기
17/48
post-thumbnail
post-custom-banner

Summary

  1. 이미지 생성 AI 는 GAN 기반 (암시적 분포 기반) 입니다.
  2. 미세 조정 모델 (fined tuned model) : 특정 분야 이미지 생성에 특화된 모델을 의미합니다.
    앞 쪽에서는 큰 특징들, 뒤 쪽에서는 세세한 특징들을 다룸
  3. 확산 모델 (Diffusion Probabilistic Model) : 지속적으로 잡음(noise)을 추가하여 손상 후, 잡음을 제거해 가며 원상 복구하는 방식의 생성 모델입니다.

Introduction

강명호 강사님
스테이블 디퓨전 관련 이론과 개념들을 배웁니다.

스테이블 디퓨전이 왜 가치가 있다고 하는지 몰랐는데,
저의 무지함으로 그렇게 판단했음을 알게 됐습니다.

CivitAI의 모델링을 참고하고
프롬프트 엔지니어링의 중요함을 깨달으며
스테이블 디퓨전의 가치를 제대로 마주했습니다.

Code, Conept & Explanation

생성 AI (Generative AI)

  1. 응용분야
    1) 코드 생성
    2) 데이터 증강
    3) 의학 이미지 합성
    4) + @

  2. 고려사항
    1) 학습 데이터의 품질
    2) 사용자 입력의 중요성
    3) 저작권 문제 및 윤리적 문제
    4) 생성 결과의 오용 문제
    (1) 딥페이크
    (2) 거짓 정보 / 뉴스의 유통

Text Generation 텍스트 기반 이미지 생성

Transformer architecture를 사용
확률이기 때문에, 환각 이슈

Image Generation 이미지 기반 이미지 생성

GAN (Generative Adversarial Network - 적대적 생성 신경망)

AI 가 인간을 예술적으로 뛰어넘는 시점이 되면
NFT는 각광 받을 수 있음

신약 개발

시청각 자료 생성 (선생님들이 역사적 인물 소개시 활용)

Audio Generation

TTS : Text-To-Speech, 텍스트를 음성으로 변환

Video Generation

생성 기술을 통해 기존의 비디오를 결합하거나 빠진 부분을 보충하여 완성

개떡같이 프롬프트를 줘도 찰떡같이 알아들음

5초 만에 딥페이크 영상 생성
디지털 장의사

Image Generation - 생성 모델

Image Generation - 생성 모델

명시적 분포(Explicit Density): 데이터를 정확하게 분석해서 새로운 걸 만들어냅니다. 수학적으로 데이터를 꼼꼼히 분석합니다.

암시적 분포(Implicit Density): 데이터를 직접 계산하지 않고, 대충 패턴을 보고 새롭게 만들어냅니다. 게임에서 캐릭터를 만드는 걸 생각하면, 얼굴이나 몸 모양을 대충 보고 비슷하게 그려내는 것과 같습니다.

GAN은 암시적 분포

생성 모델은 데이터의 분포를 학습하여 새로운 데이터 생성
VAE : Variational autoencoder 명시적 표시

Image Generation - GAN

위조지폐범과 경찰의 예시

Image Generation - VAE

샘플링하여 분포를 따르는 새로운 이미지 생성

분포 학습

예시 : 평범한 얼굴보다 미간의 폭이 너무 넓으면 이상하다고 판단

확산 모델 (Diffusion Probabilistic Model)

가우시안 분포를 따르면서 퍼지는 것을 확산 모델
대단한 짧은 시간 단위로 봤을 때,
지속적으로 잡음(noise)을 추가하여 손상 후,
잡음을 제거해 가며 원상 복구하는 방식의 생성 모델

노이즈를 확률적으로 특정 분포로 계속해서 넣었다가
노이즈를 학습한대로 특정 분포로 제거해준다면 이미지가 나옴

이미지 프레딕터

확산 모델 (Diffusion Probabilistic Model)

"얼굴 생성해줘"
Transformer
텍스트를 임베딩시키다
노이즈를 섞을 때 하나의 팩터로 들어감

순방향 확산 (Forward Diffusion)
고양이에 노이즈를 추가
역방향 확산 (Reverse Diffusion)
노이즈에서 고양이로

샘플링 스텝(step) 수
스텝수가 많을 수록 정교한 이미지를 뽑아낼 수 있다

잠재 공간에는 분포가 있다
분포에는 특징이 있다

잠재 공간에서 멀게

대표적인 이미지 생성 AI 서비스

DALL-E 3 : OpenAI
Midjourney : 4가지 유료 플랜
Stable diffusion : 오픈소스

Stable Diffusion 기본 구조

Latent Space

User prompt
text encoder
77x768
text embeddings
latent UNet
VAE
output image

  • MODEL: 컴퓨터가 문제를 해결하는 방법이나 계획.
  • CLIP: 텍스트와 이미지를 연결해서 AI가 둘을 이해하고 비교할 수 있게 돕는 도구.
  • VAE: 데이터를 압축한 후, 그것을 바탕으로 새로운 데이터를 만들어내는 기술.

Stable Diffusion 사용 조건

배치 처리
고가의 그래픽 카드
비디오 메모리가 큰 것이 좋음
24기가 이상이면 좋음

Stable Diffusion base models

미리 학습된 Stable Diffusion 가중치(weight)를 의미함

Fine Tuned Models

미세 조정 모델 (fined tuned model)은 특정 분야 이미지 생성에 특화된 모델을 의미
앞 쪽에서는 큰 특징들, 뒤 쪽에서는 세세한 특징들을 다룸
세세하게 학습시키는 것을 전이 학습, Fine Tuning

ckpt 체크 포인트, 파일 크기가 크다

UI

  1. Web UI : 가장 널리 사용, AUTOMATIC1111 아이디 소유자 개발
  2. Easy Diffusion : 단순
  3. ComfyUI : 워크플로우 기반 이미지 생성

클립 : 텍스트를 토큰화?
텍스트를 잘 이해하고, 그에 맞는 이미지를 만들 수 있게 하는 중요한 역할
컨디셔닝

  1. Fooocus : 단순, 요즈음에는 잘 사용하지 않음

Web UI

보통 스탭수는 20~30이 적당하다고 판단
배치 : 묶어서 덩어리로 작업
Batch count : 묶음 작업을 몇 번 할 것인지
Batch size : 한 번에 어느 정도 작업을 할 지

Batch count : 2
Batch size : 3
2x3 → 총 6장 이미지 생성

CFG Scale (Classifier-Free Guidance Scale)
창의적으로 할지 (0), 충실하게 할지 (20)
보통 7~13에서 적당하고 판단

Web UI 기능

  1. Outpainting : 확장
    세로선은 잘 하지만 (가로 방향), 가로선 잘 못함 (위아래 방향)

  2. Upscaling
    AI 기술이 아니라, R-ESRGAN 부드럽고 사실적인 이미지

  3. Inpainting
    생성된 이미지에서 마음에 안 드는 부분이 있을 때, 다시 그릴 수 있음

  4. Controlnet
    피사체의 자세를 복제

전처리 (Preprocessing)

zero convolution 하는 역할 : 0으로 채운 컨볼루션 필터를 사용, 추가적인 계싼 없이 기존 정보를 그대로 유지

  1. LoRA
    Low-Rank Adaption 미세 조정하는 방법
    Low Rank 부분만 변화를 줘서 배포
    굉장히 작은 사이즈

프롬프트

프롬프트 예시

부정 프롬프트
nsfw
not safe for work

nudity

A sorceress
vs
Emma Watson as a powerful mysterious sorceress, casting lightning magic, detailed clothing, digital painting,
hyperrealistic, fantasy, Surrealist, full body, by Stanley Artgerm Lau and Alphonse Mucha, artstation, highly
detailed, sharp focus, sci-fi, stunningly beautiful, dystopian, iridescent gold

텍스트(프롬프트) 작성 방법 1

  1. 주제/중심 피사체 : 성별, 직업, 역할, 동물, 건물, 물건
  2. 소재/작화 기법 : 사진, 그림, 실사(realistic), 수채화(watercolor), 유화(oil painting), 파스텔, 연필
  3. 화풍/스타일 : 인상주의(impressionism), 현실주의(realism), 팝아트(pop-art), 초현실주의(surrealism)
  4. 구도 : 배치, 아이템들의 균형, 대칭
  5. 색상&조명 : 전체적인 색상 지정, 명암 지정
  6. 해상도 : 선명한 이미지 위해 해상도 지정 (4K, 8K, UHD)
  7. 예술가, 작가 실명 : 실명을 사용하여 해당 스타일 이미지 유도

텍스트(프롬프트) 작성 방법 2

  1. 문장이 아닌 키워드 : 쉼표로 구분
  2. 중요한 키워드 앞으로
  3. 괄호는 모든 것에 우선
  4. 키워드 블렌딩
  5. 가중치 직접 지정 : (아름다움:1.8), (소녀:0.6), (치마:0.2)
  6. 다른 작품의 프롬프트 적용 : Civitai.com, huggingface.com

Challenges & Solutions

Results

What I Learned & Insights

프롬프트 엔지니어링의 소중함을 알았습니다.
어떻게 프롬프트를 사용하느냐에 따라 결과가 천지 차이였습니다.

Conclusion

  1. 프롬프트 엔지니어링 역량을 강화해야 합니다.
  2. 거인의 어깨에서 시작하듯, CivitAI와 허깅 페이스를 지혜롭게 활용해야 합니다.
  3. 아는만큼 보입니다. 배우는 과정에서는 섣불리 판단하지 않습니다.
profile
New life & History
post-custom-banner

0개의 댓글