요즘 ai그림 학습에 관한 이야기가 많아졌습니다. 학습에 관한 이야기에 앞서 각 ai 그림 서비스에 대해 언급하자면, 미드저니나 달리같은 인공지능 그림Ai는 특정 기업에서 개발을 하고 서비스를 하고 있습니다. 그런데 스테이블 디퓨전은 조금 특이합니다. 오픈 소스로 풀려서 개인들이 여러 기능을 추가하고 개발하고 있습니다.
그리고 이 스테이블 디퓨젼이 이제 XL 버전까지 발표가 되었습니다. 그리고 그걸 계기로 기존의 자료를 새롭게 정리했습니다. 그간 발표된 학습법을 정리하면 크게 카테고리를 5개로 나눌 수 있어 보입니다. 다만 이 기준으로 각 프로그램을 분류를 하니 중복된 경우가 많아서, 학습법 소개와 프로그램 소개 하는 부분을 분리했습니다.
관련 자료는 여기서 계속 업데이트 할 계획입니다.
수정내역
- 2023년 3월 16일 / LoCon 에 대한 내용 정리 중.
- 2023년 3월 17일 / thelastben 잘못된 설명 수정.
- 2023년 3월 18일 / LoRA 링크 추가
- 2023년 6월 2일 / EveryDream Trainer 2.0 추가
- 2023년 7월 16일 / LoRA에 SDXL 0.9 버전추가 (runpod에서 실행)
- 2023년 7월 18일 / oneTrainer 추가 (SDXL도 지원)
- 2023년 8월 6일 / 전체 문서 재정리
스테이블 디퓨전 학습 5가지
전체적으로 학습법을 구분하자면 아래와 같이 크게 5가지로 분류 할 수 있어 보입니다.
- 텍스트 인버전 / Textual Inversion
- 사용자가 제공한 객체나 스타일과 같은 개념에 대해 3-5개의 이미지만을 사용하여, 해당 개념을 새로운 “단어”로 표현하는 방법을 학습. 이러한 “단어”들은 자연어 문장으로 구성됨.
- 관련 페이지 링크
- LoRA가 나오기 전엔 많이 쓰였지만 지금은 거의 쓰여지지 않습니다. 임베딩이란 단어로 지칭 되기도 합니다.
- 하이퍼네트워크 / Hypernetwork
- Novel AI라는 사람이 개발한 미세조절 기술.
- 관련 페이지 링크
- 용량이 적지만 텍스트 인버젼보다는 훨씬 큰 용량을 차지합니다.
- 로라 / LoRA
- Low-Rank Adaptation of Large Language Models 의 약자가 LoRA 입니다
- LoRA는 모델의 학습하면서 더 적은 메모리를 사용하는 학습 방법입니다. 이 방법은 기존 가중치에 랭크 분해 가중치 행렬 쌍을 추가하고, 새로 추가된 가중치만을 학습합니다.
- 드림부스가 나오고 난뒤에 퍼진 기술입니다. 하지만 사실상 현재 가장 많이 학습시키는 방법으로 생각됩니다. 드림부스에 비견될 학습결과를 보여주지만 용량은 하나의 체크포인트 파일이 나오는 드림부스보다는 월등이 작은 용량을 가집니다.
- 관련 페이지 링크
- 드림부스
- 구글이 발표한 기술
- 몇 장(3-5장)의 이미지로 텍스트-이미지 모델을 개인화하는 방법. 서로 다른 장면, 자세 및 시각에서 주제에 맞는 이미지를 생성할 수 있음.
- 관련 페이지 링크
- 기타 FineTuning
- 드림부스가 아닌 파인튜닝을 하는 방식들을 말합니다. 각각의 프로그램마다 다르다고 봐야겠지요. 개인적으론 드림부스보다 조금 더 학습이 잘된다고 생각하고 있습니다.
학습법의 결과물은 “텍스트 인버젼 < 하이퍼네트워크 << 로라 < 드림부스 < 기타 방식”으로 잘 나오는 것으로 보입니다.
이 글은 기본적으로 webui를 로컬이든 코랩이나 구름 또는 런포드에서 돌려본 적이 있으신 분들을 전제로 글이 작성되었습니다. ai그림 작업을 처음 하시는 분들에게는 부적합한 글이 될 수 있습니다. 또한 저는 전공자나 관련 업종 종사자가 아니기 때문에 용어 사용에서 부정확 하거나 틀린 점이 있습니다.
이러한 학습법을 사용할 수 있는 프로그램들을 정리하겠습니다.
학습 프로그램
- Automatic1111 WebUI
- 지원 기능
- 텍스트 인버전
- 하이퍼네트워크
- 확장프로그램으로 (링크) SD1.5 버전의 드림부스와 LoRA 학습을 사용할 수 있습니다. 드림부스는 ShivamShiaro를 기반으로 합니다. LoRA는 cloneofsimo를 기반으로 하는것으로 보입니다.
- 지원 기능
- thelastben
- 링크
- 지원 기능 코랩 프로
- 드림부스: SD1.5, SD2.1 512, SD2.1 768
- 지원 기능 런포드 / Paperspace
- 드림부스: SD1.5, SD2.1 512, SD2.1 768
- 로라: SDXL
- 틈만나면 버그를 잡는걸로 보입니다. 버그 때문에 문제날 일은 적지 않을까 싶습니다.
- kohya-ss
- EveryDream Trainer 2.0
- 링크
- 지원기능
- 파인튜닝: SD1.5, SD2.0 512, SD 2.0 768 SD2.1 512, SD2.1 768
- 코랩, 런포드, vast.ai을 지원합니다.
- One Trainer
- 링크
- 지원기능
- 임베딩(텍스트 인버전 으로 보입니다): SD1.5, SD2.0, SD2.1, SDXL
- LoRA: SD1.5, SD2.0, SD2.1, SDXL
- 파인튜닝: SD1.5, SD2.0, SD2.1, SDXL
- 아래의 Stable Tuner 로부터 영감을 받았다고 합니다. 아래 프로그램 대신 쓰면 되지 않을까 싶습니다.
- 설치 경로에 한글이 있으면 오류가 날 수 있습니다.
- StableTuner
- 링크
- 지원 기능
- 드림부스: SD1.4 ,SD1.5, SD2 512, SD2 768, SD2.1 512, SD2.1 768
- 파인튜닝: SD1.4 ,SD1.5, SD2 512, SD2 768, SD2.1 512, SD2.1 768
- 로컬 컴퓨터에서 돌리는 기능이 기본이나 런포트나 코랩에서 돌릴 수 있는 설정이 있습니다.
- 제가 주력으로 쓰던 프로그램인데 지원이 끊겼습니다. 앞으로 제대로 작동 안할 가능성이 있습니다. 윈도우만 지원합니다.
- JoePenna
- 링크
- 지원기능
- 드림부스: SD1.5
- 코랩, 윈도우, 우분투, vast.ai을 지원합니다.
- 초기에 발표 된 프로그램입니다. 지금은 Stability AI에서 일하시는 것 같습니다.
- ShivamShrirao
- 링크
- 지원기능
- 드림부스: SD1.5
- 위와 함께 완전 초기에 발표 된 프로그램 중 하나지만 Stable Tuner 보다 업데이트가 된지 오래됬습니다.
학습에 필요한 공통적인 준비물
학습시킬 이미지와 토큰. 추가로 정규화 이미지(드림부스나 LoRa, StableTuner사용 시 선택)
- 학습 시킬 이미지
- 여러분이 학습시킬 이미지입니다. 예를 들면 좋아하는 캐릭터의 이미지가 될 수도 있고 어떠한 작가의 그림체가 될 수도 있습니다.
- 토큰
- 일종의 태그라고 생각하고 있습니다. 태그와 완전 같지는 않지만 비슷하게 생각하면 될것 같습니다. 토큰이라고 적었는데 거창한건 아니고 파일명이 같거나(thelastben), 아니면 같은 파일명으로 된 txt파일 안에 태그나 설명이 들어가 있으면 됩니다.
- Webui에 토큰을 편집하는 확장기능이 있습니다. 그리고 트레이닝 탭에 자동으로 토큰을 달아주는 기능이 있습니다. 파일명을 토큰으로 사용할 경우 윈도우에서 바꿀 그림파일들을 선택한뒤 F2를 누르면 일괄변경이 가능합니다.
- 정규화 이미지(선택)
- 드림부스나 LoRa, StableTuner등의 학습에서 필요한 이미지. 제가 추측하기로는 과도한 학습을 하지 않게 도와주는 이미지라고 볼 수 있습니다. 저는 학습시키지 않을 일반적인 사진 또는 그림이라고 생각하고 있습니다.
하이퍼네트워크와 드림부스 비교
참고로 드림부스와 StableTuner, LoRa 이렇게 셋은 그렇게 까지 많은 스타일의 차이는 없는 것으로 생각됩니다. 아래는 img2img기능을 사용했을 때 나온 차이 입니다.
인스타 계정에(짭홍도 https://www.instagram.com/jjabhongdo/) 주로 img2img 또는 deforum을 이용한 이미지를 정리해서 올려 놓았는데, 중간에 있는 자판기기를 포함해서 이전에는 하이퍼넷트워크, 자판기 이후부터 파리까지 드림부스, 최근 이미지는 파인튜닝입니다.
학습에 관한 기타 의견
- 드림부스(LoRA, Stable Tuner포함)를 과도하게 학습시키지 마세요. 일반적으로 이미지 개수가 많지 않은 이상 하이퍼네크워크보단 시간이 적게 걸립니다.
- 어떤 학습법이든 처음부터 완벽하게 하기보다는 기본설정을 놔두거나 값을 낮춘 뒤 사용법을 익히는 것을 추천합니다.
- Webui의 확장기능을 이용할 시 다른 곳에서는 되도 코랩에서는 안될 수도있습니다. 저의 경우 Deforum같은 확장기능이 되지 않고 있습니다.
- 하이퍼네트워크와 드림부스는 동시에 사용도 가능했던것 같습니다. 꼭 한가지만 고집해야하는 것은 아닌것 같습니다.
- 제가 링크를 남긴 곳을 통해 학습 방법을 익힐 수도 있지만 구글에서 학습에 대한 검색을 하면 한글로 된 자료를 많이 볼 수 있습니다. 가입해야만 볼 수 있는 곳도 있겠지만 그냥 볼 수 있는 페이지로도 충분하다고 생각합니다.
- 학습 프로그램 중 짙게 칠한 두 프로그램이 사실상 가장 많이 쓰이고 유지보수가 되는 프로그램으로 보입니다.
답글 남기기