본문 바로가기
Step by Step! 스테이블디퓨전 입문

스테이블디퓨전(stablediffusion) 로라(Lora) 만드는 방법!

by 배하나 유니버스 2023. 6. 24.
반응형

 

여름이다. 시원한 맥주가 땡긴다.

이러한 여름에 맞춰 AI 맥주 광고를 하면 어떨까? 싶다.

 

AI 이미지 생성에 가장 어려운 부분은 바로 일관성이다.

같은 프롬프트에 같은 설정을 하더라도 같은 이미지가 나오지 않는다.

이러한 불규칙성은 상용화에 걸림돌인데.

 

AI 이미지 생성 후 비슷한 이미지 끼지 다시 묶어서 로라를 만드는다면

규칙적인 이미지를 만들 확률이 높아진다.

그러면 AI 이미지를 만드는 방법에 대해서 알아보겠다.

 

< 스테이블디퓨전 연구소 오픈 채팅방 >

(같이 공부하고 싶다면 아래 링크 클릭!)

https://open.kakao.com/o/glPd6M8e

 

목차

1. AI 이미지 셋 만들기

2. AI 이미지 데이터셋 만들기

3. 로라 트레이닝하기

4. 로라 테스트하기

 

1. AI 이미지 셋 만들기

 

스테이블 디퓨전을 통해 생성한 AI 이미지 중 원하는 이미지를 선별했다.

로라를 만들기 위해서는 최소 20개 이상의 이미지 셋이 필요하다.

 

그리고 구글 드라이브에 lora_traing 폴더에 datasets 폴더에

자기가 원하는 이름(project_name)의 폴더(beergirl)를 생성하고 이미지 셋을 붙여 넣는다.

이때 'lora_traing'폴더와 'datasets' 폴더의 이름을 바꾸면 안 된다.

 

2. AI 이미지 데이터셋 만들기

주소 : https://civitai.com/models/22530

 

로라를 트레이닝시키는 방법은 위 사이트에 자세한 설명이 있다.

이번 장에서는 기본적인 이미지 셋으로 로라를 트레이닝해보려고 한다.

 

주소 : https://colab.research.google.com/github/hollowstrawberry/kohya-colab/blob/main/Dataset_Maker.ipynb#scrollTo=HuJB7BGAyZCw

 

먼저 이미지 셋을 데이터셋으로 만들어야 한다.

어려워 보이지만, 한 번 해보면 쉽다.

 

상단 이미지 붉은 칸 1번에 원하는 폴더명을 적는다.

이때 원하는 폴더명(project_name)은 1장에서 만들었던 폴더명(beergirl)과 동일해야 한다.

그리고 붉은 칸 2번에 Organize by category로 설정한다.

(MyDrive/lora_training/datasets/project_name) 경로를 확인해야 한다.

마지막으로 붉은 칸 3번 실행(▶) 누른다.

 

스크롤을 내려 2번 항목은 패스한다.

우리에게 이미지가 있으니 굳이 스크랩할 필요가 없다.

 

 

3번 항목은 유사한 이미지를 제거하는 코드이다.

대량의 이미지 셋으로 로라를 만들 때 유사한 이미지를 자동적으로 분류해 준다.

아직 필요하지는 않지만, 기능을 알아보겠다.

실행(▶)을 누른다.

 

 

코드를 실행하면  Fiftyone이라는 창이 활성화된다.

AI 이미지를 보면서 상단 이미지 붉은 칸 1번부터 3번을 따라 제거할 수 있다.

우리는 제거할 이미지가 없으므로 바로 붉은 칸 4번을 클릭 후 엔터를 누른다.

 

 

다음 4번 항목은 이미지에 태그를 지정하는 코드이다.

우리는 실사 이미지를 사용했으므로 상단 이미지 붉은 칸 2번을 photo captions로 지정한다.

실행(▶)을 클릭한다.

 

항목 5번은 생성한 태그를 선별하여 수정하는 코드인데.

우리는 이미지가 많지 않아 패스하겠다.

 

다음은 6번 Ready에 실행(▶)을 누르면, 데이터셋이 생성된다.

시간이 지나 데이터셋이 만들어지면 상단 이미지 붉은 칸 2번 'Click here to open the Lora trainer' 하이퍼 링크가 생성된다.

해당 링크를 누르면 로라 트레이닝하는 코드로 이어진다.

 

1

 

상단 이미지 첫 번째처럼 Project name 폴더(beergirl)에 데이터셋이 생성된다.

데이터셋 txt 파일을 열면 위와 같은 태그가 적혀있다.

이제 드디어 로라를 만들어볼 차례이다.

 

3. 로라 트레이닝하기

주소 : https://colab.research.google.com/github/hollowstrawberry/kohya-colab/blob/main/Lora_Trainer.ipynb#scrollTo=OglZzI_ujZq-

 

다음은 로라를 트레이닝하는 방법이다.

2장에서 'Click here to open the Lora trainer'를 통해서 로라 트레이너로 들어올 수 있고,

위 주소로도 들어갈 수 있다.

 

상단 이미지 사이트에 들어온 후에 붉은 칸 1번 Setup에 2번 프로젝트 네임을 2장과 동일(beergirl)하게 적어준다.

그리고 3번 폴더 스트럭처는 Organize by category로 지정한다.

 

 

스크롤을 내려 training_model은 Stable Diffusion으로 설정한다.

 

스크롤을 내려 상단 이미지 붉은 칸 1번 Steps는 이미지 수에 맞게 설정해야 한다.

20장의 경우 붉은 칸 2번 repeats 10, 3번 epochs는 10으로 한다.

 

이는 가이드라인이 있고,

업데이트될 때마다 조금씩 달라지니.

사진수에 맞게 확인 후 설정하면 된다.

 

 

다음은 상단 이미지 붉은 칸 1번 스트럭처 설정이다.

붉은 칸 2번을 보면 타입별 적절한 세팅 예시가 있다.

로라의 경우 network_dim은 32, network_alpha는 16이다.

붉은 칸 3번 network_dim을 32로, 4번 network_alpha를 16으로 설정한다.

 

 

이제 다시 스크롤을 올려

상단 이미지 붉은 칸 1번 Start here 아래 2번 실행(▶)을 누르면 끝이다.

시간은 20분에서 30분 정도 소요가 된다.

 

 

구글 드라이브에 lora_training 폴더에 output 폴더에 가면

프로젝트 폴더(beergirl)가 생성되어 있고, 10개의 로라 파일이 생성되어 있다.

 

4. 로라 테스트하기

위 로라는 SD 폴더에 붙여 넣어 준다.

경로는 구글 드라이브에서 SD-models-lora로 들어간다.

 

그다음 스테이블 디퓨전을 실행한 다음 프롬프트 창에 기준이 되는 로라를 입력한다.

<lora:beergirl-01:1> 입력하고, 그 뒤에는 AI 이미지를 생성할 때 사용했던 프롬프트 입력하고 설정한다.

 

 

그리고 스크롤을 내려 상단 이미지 붉은 칸 1번 스크립트를 x/y/z plot으로 설정하고

2번 x type은 prompt s/r 3번 x values에는 생성했던 로라를 입력한다.

 

그러면 위와 같은 로라가 생성이 된다.

유사한 이미지를 생성한 것을 알 수 있다.

원하는 얼굴, 행동, 옷 등을 로라를 통해 강화 학습을 해서

일관된 이미지를 만들 수 있다.

 

< 아래 링크는 Step by Step 스테이블디퓨전 입문 커리큘럼입니다! >

(전자책, VOD, 전용 오픈채팅방, 실시간 미팅, 과제 등 한 달 커리큘럼입니다!)

'빠르게 배우고 싶다면 클릭하세요!'

https://kmong.com/self-marketing/476466/gu839xLANz

반응형

댓글