https://gitee.com/leeguandong/dreambooth-for-diffusion https://gitee.com/leeguandong/dreambooth-for-diffusion https://zhuanlan.zhihu.com/p/584736850 https://zhuanlan.zhihu .com/p/584736850 Эта библиотека использует библиотеку диффузоров, и сейчас это в основномkohya-ss/sd-скриптов, либо непосредственно используется для диффузоров.
1.установить
torch
torchvision
huggingface_hub==0.14.1
tokenizers==0.13.3
transformers==4.25.1
diffusers==0.16.0
accelerate==0.15.0
Обновите libstdc++.so.6, glic
2.ckpt2диффузоры
from diffusers.pipelines.stable_diffusion.safety_checker import StableDiffusionSafetyChecker
Строки 705/817 настраивают вес клипа openai.
if os.path.exists(default_model_path):
text_model = CLIPTextModel.from_pretrained(os.path.join(default_model_path, "clip-vit-large-patch14"))
else:
text_model = CLIPTextModel.from_pretrained("/home/imcs/local_disk/dreambooth-for-diffusion-main/tools/clip-vit-large-patch14")
if os.path.exists(default_model_path):
tokenizer = CLIPTokenizer.from_pretrained(os.path.join(default_model_path, "clip-vit-large-patch14"))
else:
tokenizer = CLIPTokenizer.from_pretrained("/home/imcs/local_disk/dreambooth-for-diffusion-main/tools/clip-vit-large-patch14")
3.train_object.sh
Тренировка конкретных людей и предметов: (рекомендуется подготовить 3-5 картинок в едином стиле и с конкретными предметами)
# accelerate launch tools/train_dreambooth.py \
python -m torch.distributed.launch --nproc_per_node=4 --nnodes=1 --node_rank=0 --master_addr=localhost --master_port=22222 --use_env "tools/train_dreambooth.py" \
--train_text_encoder \
--pretrained_model_name_or_path=$MODEL_NAME \
--instance_data_dir=$INSTANCE_DIR \
--instance_prompt="a photo of <xxx> building" \
--with_prior_preservation --prior_loss_weight=1.0 \
--class_prompt="a photo of building" \
--class_data_dir=$CLASS_DIR \
--num_class_images=200 \
--output_dir=$OUTPUT_DIR \
--logging_dir=$LOG_DIR \
--center_crop \
--resolution=512 \
--train_batch_size=1 \
--gradient_accumulation_steps=1 --gradient_checkpointing \
--use_8bit_adam \
--learning_rate=2e-6 \
--lr_scheduler="constant" \
--lr_warmup_steps=0 \
--auto_test_model \
--test_prompts_file=$TEST_PROMPTS_FILE \
--test_seed=123 \
--test_num_per_prompt=3 \
--max_train_steps=1000 \
--save_model_every_n_steps=500
# --mixed_precision="fp16" \
4.train_style.sh
Finetune обучает собственную большую модель: (Рекомендуется подготовить 3000+ картинок, включая как можно большее разнообразие, данные определяют качество обученной модели)