이 프로젝트는 자체 데이터 세트에서 안정적인 확산 모델을 미세 조정하는 방법을 보여줍니다.
참고 :이 스크립트는 실험적입니다. 스크립트는 전체 모델을 미세 조정하고 종종 모델이 지나치게 잊어 버리고 치명적인 잊어 버린 문제를 해결합니다. 데이터 세트에서 최상의 결과를 얻으려면 다른 하이퍼 파 램터를 사용해 보는 것이 좋습니다.
스크립트를 실행하기 전에 라이브러리의 교육 종속성 (예 : Pytorch 및? Transformers)을 설치하십시오.
git clone https://github.com/huggingface/diffusers
cd diffusers
pip install .그런 다음 실행하십시오
cd ..
pip install -r requirements.txt다음과 함께 환경을 가속화하는 초기화.
accelerate config 그런 다음 model_download.py 사용하여 사전에 미리 안정된 확산 모델을 다운로드해야합니다.
python model_download.py --repo_id runwayml/stable-diffusion-v1-5
# If you cannot connect to huggingface, you should use the following command:
python model_download.py --repo_id runwayml/stable-diffusion-v1-5 --mirror자체 데이터 세트에서 안정적인 확산 모델을 미세 조정하려면 다음 형식으로 데이터 세트를 준비해야합니다.
먼저 루트 디렉토리에서 dataset 디렉토리를 작성하고 세 가지 하위 디렉토리 jpg , hint 및 train 작성해야합니다. jpg 디렉토리에서 모든 대상 이미지를 데이터 세트에 넣어야합니다. hint 디렉토리에서는 데이터 세트에 모든 소스 이미지 (조건 이미지)를 넣어야합니다. train Directory에서는 metadata.jsonl 을 넣어야합니다. metadata.jsonl 은 다음 형식이어야합니다.
{ "jpg" : " ./dataset/jpg/<name_of_target_image_1> " , "txt" : " <prompt_1> " , "hint" : " ./dataset/hint/<name_of_source_image_1> " }
{ "jpg" : " ./dataset/jpg/<name_of_target_image_2> " , "txt" : " <prompt_2> " , "hint" : " ./dataset/hint/<name_of_source_image_1> " }
… 다음은 dataset 디렉토리의 구조입니다.
dataset
├── hint
│ ├── a.png
│ ├── b.png
│ └── c.png
├── jpg
│ ├── a.png
│ ├── b.png
│ └── c.png
└── train
└── metadata.jsonl metadata.jsonl 파일에서 :
{ "jpg" : " ./dataset/jpg/a.png " , "txt" : " a " , "hint" : " ./dataset/hint/a.png " }
{ "jpg" : " ./dataset/jpg/b.png " , "txt" : " b " , "hint" : " ./dataset/hint/b.png " }
{ "jpg" : " ./dataset/jpg/c.png " , "txt" : " c " , "hint" : " ./dataset/hint/c.png " }로라 모델을 훈련 시키려면 실행 :
./train_lora.sh run_lora.sh 파일에서 일부 하이퍼 파라미터를 변경할 수 있습니다. 예를 들어 --num_train_epochs 변경하여 훈련 에포크 수를 변경할 수 있습니다.
Controlnet 모델을 훈련 시키려면 실행 :
./train_controlnet.sh run_controlnet.sh 파일에서 일부 하이퍼 파라미터를 변경할 수 있습니다. 예를 들어 --num_train_epochs 변경하여 훈련 에포크 수를 변경할 수 있습니다.
Controlnet과 Lora를 동시에 훈련 시키려면 달리기 :
./train_controlnet_and_lora.shControlnet 및 LORA 모델의 출력 디렉토리를 변경하여 자신의 교육을 시작해야합니다.
그냥 실행 :
./train_lora.sh && ./train_controlnet.sh && ./train_controlnet_and_lora.sh controlnet-lora-output 디렉토리에서 모든 모델을 얻을 수 있습니다.
Model의 경로와 Condition Image를 inference.py 파일로 변경할 수 있습니다. 그런 다음 실행 :
python inference.py 루트 디렉토리에서 output.png 얻게됩니다.
이 프로젝트는 디퓨저를 기반으로하며 예제입니다.