| |
| """SDXL-Thumbsup.ipynb |
| |
| Automatically generated by Colab. |
| |
| Original file is located at |
| https://colab.research.google.com/drive/1T0tqXsscUsDxLSt6MIiqEmNVYEuCejGL |
| |
| # Training DreamBooth LoRA with Stable Diffusion XL on Trump Thumbs Up Images: |
| |
| ## Linking Drive |
| """ |
|
|
| from google.colab import drive |
| drive.mount('/content/drive') |
|
|
| import warnings |
| warnings.filterwarnings("ignore") |
|
|
| """## Installing & Login to Hugging Face |
| |
| """ |
|
|
| !pip install huggingface-hub |
|
|
| !git config --global credential.helper store |
|
|
| !huggingface-cli login |
|
|
| """##Cloning Hugging Face/diffusers - [Repo](https://github.com/huggingface/diffusers) |
| |
| """ |
|
|
| import os |
| import subprocess |
|
|
|
|
| subprocess.run(["git", "clone", "https://github.com/huggingface/diffusers"]) |
| os.chdir("diffusers") |
| subprocess.run(["pip", "install", "-e", "."]) |
|
|
| """## Installing Requirements - Dreambooth SDXL""" |
|
|
| os.chdir("examples/dreambooth") |
|
|
| !pip install -r requirements_sdxl.txt |
|
|
| """## Write Basic Configuration for Accelerate""" |
|
|
| from accelerate.utils import write_basic_config |
| write_basic_config() |
|
|
| """## Load and Display Images from Drive""" |
|
|
| import os |
| import cv2 |
| from matplotlib import pyplot as plt |
|
|
| dir = '/content/drive/MyDrive/SDXL/Images/thumbsup' |
| count = 0 |
| max_images = 10 |
|
|
| for img_name in os.listdir(dir): |
| img_path = os.path.join(dir, img_name) |
|
|
| if img_path.lower().endswith(('.png', '.jpg', '.jpeg')): |
| img = cv2.imread(img_path) |
|
|
| if img is None: |
| print(f"Failed to load image: {img_path}") |
| continue |
|
|
| img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) |
|
|
| plt.imshow(img) |
| plt.axis('off') |
| plt.show() |
|
|
| count += 1 |
| if count >= max_images: |
| break |
|
|
| """## Installing Required Libraries""" |
|
|
| !pip install tensorrt bitsandbytes xformers wandb |
|
|
| pip install --upgrade diffusers accelerate |
|
|
| """## Logging into Weights and Biases""" |
|
|
| !wandb login |
|
|
| """## Train DreamBooth LoRA Model with Stable Diffusion XL""" |
|
|
| !accelerate launch train_dreambooth_lora_sdxl.py \ |
| --pretrained_model_name_or_path="stabilityai/stable-diffusion-xl-base-1.0" \ |
| --instance_data_dir="/content/drive/MyDrive/SDXL/Images/thumbsup" \ |
| --pretrained_vae_model_name_or_path="stabilityai/sdxl-vae" \ |
| --output_dir="/content/drive/MyDrive/SDXL/Output-Complex" \ |
| --mixed_precision="fp16" \ |
| --instance_prompt="a high-quality photo of Trump showing thumbs up" \ |
| --resolution=1024 \ |
| --train_batch_size=1 \ |
| --gradient_accumulation_steps=2 \ |
| --learning_rate=2e-4 \ |
| --lr_scheduler="constant_with_warmup" \ |
| --lr_warmup_steps=0 \ |
| --max_train_steps=500 \ |
| --validation_prompt="A high-quality photo of Trump showing thumbs up in a taco restaurant, detailed, sharp focus" \ |
| --validation_epochs=15 \ |
| --seed="42" \ |
| --push_to_hub \ |
| --gradient_checkpointing \ |
| --checkpointing_steps=100 \ |
| --use_8bit_adam \ |
| --prior_loss_weight=0.8 \ |
| --num_class_images=10 \ |
| --report_to="wandb" |
|
|
| |
| |
|
|
| !pip uninstall diffusers |
| !pip install -e ./diffusers |
|
|
| """## Load LoRA Weights and Generate Images |
| |
| """ |
|
|
| from huggingface_hub.repocard import RepoCard |
| from diffusers import DiffusionPipeline |
| import torch |
|
|
| pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16) |
| pipeline = pipeline.to("cuda") |
| pipeline.load_lora_weights("/content/diffusers/examples/dreambooth/pytorch_lora_weights.safetensors") |
|
|
| image = pipeline("A high quality picture of Trump showing the thumbs up in Paris", num_inference_steps=50).images[0] |
|
|
| image_path = "/content/drive/MyDrive/SDXL/Output-Complex/Trump1.png" |
| image.save(image_path) |
|
|
| print("Image saved at:", image_path) |
|
|
| image = pipeline("A picture of Trump showing the thumbs up as a Anime character, detailed, sharp focus", num_inference_steps=50).images[0] |
|
|
| image_path = "/content/drive/MyDrive/SDXL/Output-Complex/Trump2.png" |
| image.save(image_path) |
|
|
| print("Image saved at:", image_path) |
|
|
| image = pipeline("A picture of Trump showing thumbsup in whitehouse", num_inference_steps=50).images[0] |
|
|
| image_path = "/content/drive/MyDrive/SDXL/Output-Complex/Trump3.png" |
| image.save(image_path) |
|
|
| print("Image saved at:", image_path) |
|
|
| image = pipeline("A high quality picture of Trump showing the thumbs up as The Statue of Liberty", num_inference_steps=50).images[0] |
|
|
| image_path = "/content/drive/MyDrive/SDXL/Output-Complex/Trump4.png" |
| image.save(image_path) |
|
|
| print("Image saved at:", image_path) |
|
|
| image = pipeline("A high quality picture of Trump showing thumbs up in a lake with a laptop", num_inference_steps=50).images[0] |
|
|
| image_path = "/content/drive/MyDrive/SDXL/Output-Complex/Trump5.png" |
| image.save(image_path) |
|
|
| print("Image saved at:", image_path) |
|
|
| """## Push to Hugging Face Hub""" |
|
|
| from huggingface_hub import HfApi |
|
|
| api = HfApi() |
|
|
| username = "Paresh1879" |
| repo_name = "stable-diffusion-xl-thumbsup-extend" |
|
|
| api.upload_folder(repo_id=f"{username}/{repo_name}", folder_path="/content/drive/MyDrive/SDXL") |