궁금해서 오늘 조사한 내용인데

틀린거 있으면 좀 알려주세요.


 Stable Diffusion은 인공신경망의 일종입니다.

인공신경망은 인공 신경들이 복잡하게 서로 연결된 구조이고

모든 연결에는 Weight 즉 가중치라는게 있습니다.

복잡하고 거대한 인공신경망의 모든 가중치는 학습을 통해 자동으로 결정됩니다.

stable diffusion의 ckpt 파일은 미리 학습된 가중치 파일입니다.

safetensors 파일은 헤더에 추가 정보를 삽입한 ckpt 파일 입니다.

만약 학습한 이미지 중 토끼가 없었다면 토끼는 그릴 수 없습니다.

토끼 이미지를 추가로 학습 시켜 가중치를 미세조정 하면 토끼도 그릴 수 있게 됩니다.


 가중치를 미세조정 하는 방법


Dreambooth

 Dreambooth는 단 몇 장의 이미지로 이미 학습된 모델에 새로운 개념을 추가하는 가장 효과적인 방법입니다.

모델 전체의 가중치를 미세 조정합니다.

하지만 모델 전체를 수정하기 때문에 새로운 ckpt 파일이 만들어 집니다. 

stable diffusion의 ckpt 파일의 크기는 약 2~7GB로 디스크 용량을 많이 차지하는 단점이 있습니다.


Textual Inversion

 Textual Inversion은 텍스트 임베딩 부분을 수정해서 새로운 키워드를 정의합니다. 

< 오브젝트 추가 예 >

< 스타일 추가 예 >

모델을 변경하지 않고도 몇 장의 이미지 만으로 새로운 물체나 화풍을 추가 할 수 있습니다.

모델을 변경하지 않기 때문에 효과가 제한적 입니다.

임베딩 파일의 크기는 보통 100KB 미만으로 매우 작습니다.


LoRa

 lora는 모델에서 가장 중요한 부분인 프롬프트와 이미지가 만나는 부분을 수정합니다.

모델 전체를 수정할 때 보다는 못하지만 작은 변화로 큰 효과를 볼 수 있습니다.

모델을 직접 수정하기 때문에 Textual Inversion보다 훨씬 뛰어납니다.

수정된 부분만 별도의 파일로 저장하며, ckpt 파일과 함께 사용해야 합니다.

파일의 크기는 2~200MB 입니다.


Hypernetworks

 Hypernetworks는 모델의 노이즈 제거 U-Net에 연결되는 추가 네트워크입니다.

모델을 변경하지 않고 모델을 미세 조정하는 것이 목적입니다.

모델을 변경하지 않기 때문에 효과가 제한적입니다.

파일 크기는 일반적으로 약 5~200MB입니다.


 VAE variational autoencoder

 ckpt 파일에 이미 포함되어 있지만 눈이나 얼굴 묘사의 오류를 개선하기 위해 새로운 버전을 추가로 사용할 수 있습니다.

이미 개선된 ckpt 파일에는 사용해도 더 좋아지지 않지만 나빠지지도 않습니다.