Spaces:
Running
on
Zero
Running
on
Zero
## Textual Inversion fine-tuning example for SDXL | |
```sh | |
export MODEL_NAME="stabilityai/stable-diffusion-xl-base-1.0" | |
export DATA_DIR="./cat" | |
accelerate launch textual_inversion_sdxl.py \ | |
--pretrained_model_name_or_path=$MODEL_NAME \ | |
--train_data_dir=$DATA_DIR \ | |
--learnable_property="object" \ | |
--placeholder_token="<cat-toy>" \ | |
--initializer_token="toy" \ | |
--mixed_precision="bf16" \ | |
--resolution=768 \ | |
--train_batch_size=1 \ | |
--gradient_accumulation_steps=4 \ | |
--max_train_steps=500 \ | |
--learning_rate=5.0e-04 \ | |
--scale_lr \ | |
--lr_scheduler="constant" \ | |
--lr_warmup_steps=0 \ | |
--save_as_full_pipeline \ | |
--output_dir="./textual_inversion_cat_sdxl" | |
``` | |
Training of both text encoders is supported. | |
### Inference Example | |
Once you have trained a model using above command, the inference can be done simply using the `StableDiffusionXLPipeline`. | |
Make sure to include the `placeholder_token` in your prompt. | |
```python | |
from diffusers import StableDiffusionXLPipeline | |
import torch | |
model_id = "./textual_inversion_cat_sdxl" | |
pipe = StableDiffusionXLPipeline.from_pretrained(model_id,torch_dtype=torch.float16).to("cuda") | |
prompt = "A <cat-toy> backpack" | |
image = pipe(prompt, num_inference_steps=50, guidance_scale=7.5).images[0] | |
image.save("cat-backpack.png") | |
image = pipe(prompt="", prompt_2=prompt, num_inference_steps=50, guidance_scale=7.5).images[0] | |
image.save("cat-backpack-prompt_2.png") | |
``` | |