{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "Ze_NmNqaT2rE" }, "source": [ "**Environment Setup**" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2025-08-15T19:59:55.982107Z", "iopub.status.busy": "2025-08-15T19:59:55.981823Z", "iopub.status.idle": "2025-08-15T20:00:30.872303Z", "shell.execute_reply": "2025-08-15T20:00:30.871517Z", "shell.execute_reply.started": "2025-08-15T19:59:55.982084Z" }, "id": "85WiAIUsZbDy", "outputId": "fb9b5e90-8d1d-4e74-99e5-35b8b14dde71", "trusted": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n", " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n", " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n", " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n" ] } ], "source": [ "# 1️⃣ Install PyTorch + TorchVision + Torchaudio for CUDA 12.4\n", "!pip install -q --upgrade torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124\n", "\n", "# 2️⃣ Core Hugging Face + Diffusion packages\n", "!pip install -q --upgrade diffusers transformers accelerate datasets huggingface_hub\n", "\n", "# 3️⃣ Image, data, and visualization packages\n", "!pip install -q pillow numpy pandas matplotlib\n", "\n", "# 4️⃣ xformers compiled for current torch/CUDA (must come after torch install)\n", "!pip install -q xformers --index-url https://download.pytorch.org/whl/cu124\n", "\n", "# 5️⃣ Optional optimizations\n", "!pip install -q bitsandbytes\n", "\n", "# 6️⃣ Extras (gradio for demos, kagglehub for data, wandb for logging)\n", "!pip install -q gradio kagglehub wandb\n", "\n", "# 7️⃣ PEFT for parameter-efficient fine-tuning\n", "!pip install -q git+https://github.com/huggingface/peft.git\n", "\n", "# 8️⃣ Install OpenAI CLIP directly to ensure CLIPImageProcessor works\n", "!pip install -q git+https://github.com/openai/CLIP.git" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2025-08-15T20:00:30.874528Z", "iopub.status.busy": "2025-08-15T20:00:30.874226Z", "iopub.status.idle": "2025-08-15T20:00:33.920309Z", "shell.execute_reply": "2025-08-15T20:00:33.919548Z", "shell.execute_reply.started": "2025-08-15T20:00:30.874482Z" }, "id": "UBABeKsIZj-K", "outputId": "c28de2f9-1ed3-47e6-d9ac-2fe6c5ca04ce", "trusted": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Torch: 2.6.0+cu124\n", "TorchVision: 0.21.0+cu124\n", "CUDA: 12.4\n" ] } ], "source": [ "import torch, torchvision\n", "print(\"Torch:\", torch.__version__)\n", "print(\"TorchVision:\", torchvision.__version__)\n", "print(\"CUDA:\", torch.version.cuda)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2025-08-15T20:00:33.921482Z", "iopub.status.busy": "2025-08-15T20:00:33.921169Z", "iopub.status.idle": "2025-08-15T20:00:39.908173Z", "shell.execute_reply": "2025-08-15T20:00:39.907325Z", "shell.execute_reply.started": "2025-08-15T20:00:33.921432Z" }, "id": "FJPQbTBgdHvT", "outputId": "3f55a10b-6e2c-405f-81a0-3f445aedee11", "trusted": true }, "outputs": [], "source": [ "# Remove old xformers\n", "!pip uninstall -q -y xformers\n", "\n", "# Install matching xformers from PyTorch CUDA 12.4 wheels\n", "!pip install -q xformers --index-url https://download.pytorch.org/whl/cu124" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2025-08-15T20:00:39.909427Z", "iopub.status.busy": "2025-08-15T20:00:39.909211Z", "iopub.status.idle": "2025-08-15T20:00:40.112161Z", "shell.execute_reply": "2025-08-15T20:00:40.111565Z", "shell.execute_reply.started": "2025-08-15T20:00:39.909405Z" }, "id": "me8mhWHwdPTU", "outputId": "093da6c3-e870-4af5-d9d2-0ab76fc68469", "trusted": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "xformers imported successfully\n" ] } ], "source": [ "import xformers\n", "print(\"xformers imported successfully\")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2025-08-15T20:00:40.114807Z", "iopub.status.busy": "2025-08-15T20:00:40.114143Z", "iopub.status.idle": "2025-08-15T20:00:53.191794Z", "shell.execute_reply": "2025-08-15T20:00:53.191212Z", "shell.execute_reply.started": "2025-08-15T20:00:40.114787Z" }, "id": "eePXIVVxTkPZ", "outputId": "ec1834e8-99eb-4b6e-b41b-b2eba368fbdc", "trusted": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2025-08-15 20:00:46.680696: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "WARNING: All log messages before absl::InitializeLog() is called are written to STDERR\n", "E0000 00:00:1755288046.703371 357 cuda_dnn.cc:8310] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "E0000 00:00:1755288046.710323 357 cuda_blas.cc:1418] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n" ] } ], "source": [ "import os\n", "import torch\n", "import pandas as pd\n", "import random\n", "from PIL import Image\n", "from pathlib import Path\n", "import kagglehub\n", "from datasets import Dataset\n", "from diffusers import StableDiffusionPipeline, DDPMScheduler, AutoencoderKL\n", "from transformers import CLIPTokenizer, CLIPTextModel\n", "from peft import LoraConfig, get_peft_model, PeftModel\n", "from accelerate import Accelerator\n", "from torchvision import transforms\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "execution": { "iopub.execute_input": "2025-08-15T22:38:18.909762Z", "iopub.status.busy": "2025-08-15T22:38:18.909078Z", "iopub.status.idle": "2025-08-15T22:38:18.916820Z", "shell.execute_reply": "2025-08-15T22:38:18.916130Z", "shell.execute_reply.started": "2025-08-15T22:38:18.909730Z" }, "trusted": true }, "outputs": [], "source": [ "# Configuration class\n", "class KaggleConfig:\n", " MODEL_ID = \"runwayml/stable-diffusion-v1-5\"\n", " IN_KAGGLE = True\n", " DATASET_PATH = \"/kaggle/input/wikiart\" if IN_KAGGLE else \"./wikiart\"\n", " OUTPUT_DIR = \"/kaggle/working/outputs\"\n", " MODEL_CACHE_DIR = \"/kaggle/working/models\"\n", " LORA_WEIGHTS_NAME = \"pytorch_lora_weights.safetensors\"\n", " LORA_BIN_NAME = \"pytorch_lora_weights.bin\"\n", " TARGET_STYLES = ['Impressionism', 'Baroque', 'Cubism', 'Abstract_Expressionism', 'Romanticism', 'Realism', 'Post_Impressionism']\n", " TARGET_ARTISTS = ['Vincent van Gogh', 'Claude Monet', 'Rembrandt', 'Pablo Picasso'] # Adjust based on dataset\n", " IMAGE_RESOLUTION = 512\n", " TRAIN_BATCH_SIZE = 1\n", " GRADIENT_ACCUMULATION_STEPS = 4\n", " LEARNING_RATE = 1e-4\n", " MAX_TRAIN_STEPS = 1000\n", " SAVE_STEPS = 250\n", " LORA_RANK = 8\n", " LORA_ALPHA = 32\n", " LORA_DROPOUT = 0.1\n", " MIXED_PRECISION = 'fp16'\n", " GRADIENT_CHECKPOINTING = True\n", " USE_8BIT_ADAM = True\n", " MAX_SAMPLES_PER_ENTITY = 100\n", " INFERENCE_STEPS = 20\n", " GUIDANCE_SCALE = 7.5\n", " HF_TOKEN = \"\" # Replace with your Hugging Face token from https://huggingface.co/settings/tokens\n", " HF_REPO_ID = \"\" # Replace with your repo, e.g., \"aanchal77/Final-One\"\n", "\n", "# Initialize config and create directories\n", "config = KaggleConfig()\n", "os.makedirs(config.OUTPUT_DIR, exist_ok=True)\n", "os.makedirs(config.MODEL_CACHE_DIR, exist_ok=True)\n", "os.makedirs(os.path.join(config.OUTPUT_DIR, \"test_images\"), exist_ok=True)\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2025-08-15T20:00:53.200594Z", "iopub.status.busy": "2025-08-15T20:00:53.199951Z", "iopub.status.idle": "2025-08-15T20:00:53.228578Z", "shell.execute_reply": "2025-08-15T20:00:53.227879Z", "shell.execute_reply.started": "2025-08-15T20:00:53.200574Z" }, "id": "pVmcMPUeTo9S", "outputId": "a90495e9-327f-414a-add5-d6a0b279d489", "trusted": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "🚀 GPU: Tesla T4\n", "💾 GPU Memory: 14.7 GB\n" ] } ], "source": [ "# Set up device\n", "def setup_device():\n", " if torch.cuda.is_available():\n", " device = \"cuda\"\n", " torch.backends.cudnn.benchmark = True\n", " if hasattr(torch.backends.cuda.matmul, 'allow_tf32'):\n", " torch.backends.cuda.matmul.allow_tf32 = True\n", " print(f\"🚀 GPU: {torch.cuda.get_device_name(0)}\")\n", " print(f\"💾 GPU Memory: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.1f} GB\")\n", " return device\n", " print(\"⚠️ CUDA not available - falling back to CPU!\")\n", " return \"cpu\"\n", "\n", "device = setup_device()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2025-08-15T20:00:53.229478Z", "iopub.status.busy": "2025-08-15T20:00:53.229238Z", "iopub.status.idle": "2025-08-15T20:00:53.253175Z", "shell.execute_reply": "2025-08-15T20:00:53.252625Z", "shell.execute_reply.started": "2025-08-15T20:00:53.229434Z" }, "trusted": true }, "outputs": [], "source": [ "# System checks\n", "def run_system_checks():\n", " print(\"Running system checks...\")\n", " print(\"\\nDisk space:\")\n", " !df -h /kaggle/working\n", " print(\"\\nMemory usage:\")\n", " !free -m\n", " print(\"\\nChecking dataset files (sample):\")\n", " !ls /kaggle/input/wikiart/*/*.jpg | head -n 10\n", " print(\"\\nChecking for non-JPEG files:\")\n", " !find /kaggle/input/wikiart -type f -name \"*.jpg\" -exec file {} \\; | grep -v \"JPEG\" || echo \"All files are JPEG\"" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "execution": { "iopub.execute_input": "2025-08-15T20:00:53.254033Z", "iopub.status.busy": "2025-08-15T20:00:53.253866Z", "iopub.status.idle": "2025-08-15T20:00:53.272290Z", "shell.execute_reply": "2025-08-15T20:00:53.271778Z", "shell.execute_reply.started": "2025-08-15T20:00:53.254020Z" }, "id": "1lvr-F1WTtyK", "outputId": "4524e623-f508-44a5-b524-48b52d483afc", "trusted": true }, "outputs": [], "source": [ "# Check for metadata CSV\n", "def load_metadata(dataset_path):\n", " csv_path = os.path.join(dataset_path, \"wikiart.csv\")\n", " if os.path.exists(csv_path):\n", " df = pd.read_csv(csv_path)\n", " print(\"✅ Found metadata CSV\")\n", " print(f\"CSV columns: {df.columns.tolist()}\")\n", " print(f\"Sample rows:\\n{df.head()}\")\n", " return df\n", " print(\"⚠️ No metadata CSV found; inferring from file names\")\n", " return None" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2025-08-15T20:00:53.273279Z", "iopub.status.busy": "2025-08-15T20:00:53.272963Z", "iopub.status.idle": "2025-08-15T20:00:53.291945Z", "shell.execute_reply": "2025-08-15T20:00:53.291422Z", "shell.execute_reply.started": "2025-08-15T20:00:53.273255Z" }, "trusted": true }, "outputs": [], "source": [ "# Prepare dataset with artist and style\n", "def prepare_filtered_dataset(dataset_path, target_styles, target_artists, samples_per_entity):\n", " filtered_data = []\n", " metadata_df = load_metadata(dataset_path)\n", " \n", " for root, _, files in os.walk(dataset_path):\n", " style = os.path.basename(root)\n", " if style in target_styles:\n", " image_files = [f for f in files if f.lower().endswith(('.jpg', '.jpeg', '.png'))]\n", " if len(image_files) > samples_per_entity:\n", " image_files = random.sample(image_files, samples_per_entity)\n", " \n", " for img_file in image_files:\n", " img_path = os.path.join(root, img_file)\n", " artist = None\n", " if metadata_df is not None:\n", " match = metadata_df[metadata_df['file_name'] == img_file]\n", " if not match.empty:\n", " artist = match['artist'].iloc[0]\n", " else:\n", " for target_artist in target_artists:\n", " if target_artist.lower().replace(' ', '-') in img_file.lower():\n", " artist = target_artist\n", " break\n", " \n", " if artist in target_artists:\n", " caption = f\"A painting by {artist} in {style.replace('_', ' ').lower()} style\"\n", " else:\n", " caption = f\"A painting in {style.replace('_', ' ').lower()} style\"\n", " \n", " filtered_data.append({\n", " 'image_path': img_path,\n", " 'style': style,\n", " 'artist': artist,\n", " 'caption': caption\n", " })\n", " \n", " df = pd.DataFrame(filtered_data)\n", " print(f\"Total filtered images: {len(filtered_data)}\")\n", " print(\"\\nDataset distribution by style:\")\n", " print(df['style'].value_counts())\n", " print(\"\\nDataset distribution by artist:\")\n", " print(df['artist'].value_counts(dropna=False))\n", " return Dataset.from_pandas(df)\n", "\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2025-08-15T20:00:53.292819Z", "iopub.status.busy": "2025-08-15T20:00:53.292606Z", "iopub.status.idle": "2025-08-15T20:02:05.386675Z", "shell.execute_reply": "2025-08-15T20:02:05.385804Z", "shell.execute_reply.started": "2025-08-15T20:00:53.292796Z" }, "trusted": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running system checks...\n", "\n", "Disk space:\n", "Filesystem Size Used Avail Use% Mounted on\n", "/dev/loop1 20G 4.1G 16G 21% /kaggle/working\n", "\n", "Memory usage:\n", " total used free shared buff/cache available\n", "Mem: 32102 1526 25053 2 5523 30119\n", "Swap: 0 0 0\n", "\n", "Checking dataset files (sample):\n", "ls: cannot access '/kaggle/input/wikiart/*/*.jpg': No such file or directory\n", "\n", "Checking for non-JPEG files:\n", "find: ‘/kaggle/input/wikiart’: No such file or directory\n", "All files are JPEG\n", "\n", "Downloading WikiArt dataset...\n", "Path to dataset files: /kaggle/input/\n", "⚠️ No metadata CSV found; inferring from file names\n", "Total filtered images: 700\n", "\n", "Dataset distribution by style:\n", "style\n", "Impressionism 100\n", "Cubism 100\n", "Abstract_Expressionism 100\n", "Baroque 100\n", "Romanticism 100\n", "Post_Impressionism 100\n", "Realism 100\n", "Name: count, dtype: int64\n", "\n", "Dataset distribution by artist:\n", "artist\n", "None 642\n", "Vincent van Gogh 23\n", "Claude Monet 14\n", "Rembrandt 14\n", "Pablo Picasso 7\n", "Name: count, dtype: int64\n" ] } ], "source": [ "# Load dataset\n", "run_system_checks()\n", "print(\"\\nDownloading WikiArt dataset...\")\n", "path = kagglehub.dataset_download(\"steubk/wikiart\")\n", "print(f\"Path to dataset files: {path}\")\n", "dataset = prepare_filtered_dataset(path, config.TARGET_STYLES, config.TARGET_ARTISTS, config.MAX_SAMPLES_PER_ENTITY)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2025-08-15T20:02:05.388106Z", "iopub.status.busy": "2025-08-15T20:02:05.387839Z", "iopub.status.idle": "2025-08-15T20:02:05.393464Z", "shell.execute_reply": "2025-08-15T20:02:05.392808Z", "shell.execute_reply.started": "2025-08-15T20:02:05.388082Z" }, "trusted": true }, "outputs": [], "source": [ "# Image preprocessing with validation\n", "def preprocess_image(example):\n", " try:\n", " image = Image.open(example['image_path']).convert(\"RGB\")\n", " transform = transforms.Compose([\n", " transforms.Resize((config.IMAGE_RESOLUTION, config.IMAGE_RESOLUTION)),\n", " transforms.ToTensor(),\n", " transforms.Normalize([0.5], [0.5])\n", " ])\n", " example['pixel_values'] = transform(image)\n", " example['is_valid'] = True\n", " except Exception as e:\n", " print(f\"Error processing image {example['image_path']}: {e}\")\n", " example['pixel_values'] = None\n", " example['is_valid'] = False\n", " return example" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2025-08-15T20:02:05.394549Z", "iopub.status.busy": "2025-08-15T20:02:05.394294Z", "iopub.status.idle": "2025-08-15T20:06:49.015619Z", "shell.execute_reply": "2025-08-15T20:06:49.014889Z", "shell.execute_reply.started": "2025-08-15T20:02:05.394522Z" }, "trusted": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e86e376df5a4445289c2944ee36f7383", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Preprocessing images: 0%| | 0/700 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "--- Starting Full Training for Artists ---\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e32f652abb29457e9356fc466f29087c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Filtering for Vincent van Gogh: 0%| | 0/700 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for artist Vincent van Gogh from /kaggle/working/outputs/lora_weights/artist/Vincent van Gogh\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "95e707505e87429b872d1e0932ca9b0a", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for artist Claude Monet from /kaggle/working/outputs/lora_weights/artist/Claude Monet\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "21320ba4cc544ec4b79de6583d3ab7d3", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for artist Rembrandt from /kaggle/working/outputs/lora_weights/artist/Rembrandt\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "fb3d4f39e5124d5e822725f48b57d5b5", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for artist Pablo Picasso from /kaggle/working/outputs/lora_weights/artist/Pablo Picasso\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "40dea1c9651e4d26857c80e35ed777f3", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for style Impressionism from /kaggle/working/outputs/lora_weights/style/Impressionism\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "6c37ee26da984ac9b9780c95b1e15918", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for style Baroque from /kaggle/working/outputs/lora_weights/style/Baroque\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d29f0958a59148df9ea366e0085b0914", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for style Cubism from /kaggle/working/outputs/lora_weights/style/Cubism\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "1c05b7ac3e1245e89b393706dfef0bc5", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for style Abstract_Expressionism from /kaggle/working/outputs/lora_weights/style/Abstract_Expressionism\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "124b9343ee254548b3a7d21e2d6fe038", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for style Romanticism from /kaggle/working/outputs/lora_weights/style/Romanticism\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "5916ba43a55f4d26b6cc146946e46e7e", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for style Realism from /kaggle/working/outputs/lora_weights/style/Realism\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c1da25c96fb7409db7099a92c9ece2ee", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for style Post_Impressionism from /kaggle/working/outputs/lora_weights/style/Post_Impressionism\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "adc509cdb9d0418fad7a360df474480e", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00 by passing `safety_checker=None`. Ensure that you abide to the conditions of the Stable Diffusion license and do not expose unfiltered results in services or applications open to the public. Both the diffusers team and Hugging Face strongly recommend to keep the safety filter enabled in all public facing circumstances, disabling it only for use-cases that involve analyzing network behavior or auditing its results. For more information, please have a look at https://github.com/huggingface/diffusers/pull/254 .\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "✅ Loaded LoRA weights (safetensors) for artist Vincent van Gogh from /kaggle/working/outputs/lora_weights/artist/Vincent van Gogh\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a0704a35ff9e484e96454451bb23c355", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00