Процесс обучения модели Stable Diffusion XL (SDXL) с использованием LoRA (Low-Rank Adaptation) для создания изображений в стиле цифрового художника Tuukzs.
Tuukzs, настоящее имя которого Артур Мачадо, – это талантливый бразильский художник, завоевавший признание благодаря своим вдохновляющим абстрактным и психоделическим произведениям.
Изображения художника, включенные в датасет
Изображения художника, включенные в датасет
Основные особенности стиля художника Tuukzs — это яркие цвета и абстрактность, соединённая с фигуративностью. В его работах исследуются темы абстракции и психоделии. Поэтому основной задачей было сохранить цветовую гамму в сочетании с размытыми образами.
Изображения, сгенерированные обученной моделью
Первое, что следует сделать, чтобы начать обучать модель, — это установить библиотеки: bitsandbytes, transformers, accelerate, peft — для эффективного обучения. diffusers — библиотека от Hugging Face для работы с диффузионными моделями. Загрузка скрипта train_dreambooth_lora_sdxl.py для обучения LoRA.
Изображения художника, включенные в датасет
Второе, подготовка данных: Собрав 50 изображений с сайта художника, создается папка ./tuukzs/, куда загружаются изображения. Изображения предпросматриваются в виде сетки.
Изображения художника, включенные в датасет
Третье, генерация подписей (капчей) к изображениям: Используется модель BLIP (Salesforce/blip-image-captioning-base) для автоматического описания загруженных изображений. К подписям добавляется префикс "photo collage in TUUKZS style,". Метаданные сохраняются в metadata.jsonl.
import requests
from transformers import AutoProcessor, BlipForConditionalGeneration
import torch
device = "cuda" if torch.cuda.is_available() else "cpu"
blip_processor = AutoProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
blip_model = BlipForConditionalGeneration.from_pretrained(
"Salesforce/blip-image-captioning-base",
torch_dtype=torch.float16
).to(device)
Изображения, сгенерированные обученной моделью
В процессе обучения модели были выделены несколько тем для генерации изображений, включая портреты девушек, птиц, цветы и пейзажи. Эти темы также являются ключевыми для художника Tuukzs.
Изображение, сгенерированные обученной моделью
Изображения, сгенерированные обученной моделью
Четвертое, обучение LoRA: Запускается обучение с помощью train_dreambooth_lora_sdxl.py. Используется предобученная модель Stable Diffusion XL 1.0. Применяется 8-bit Adam для оптимизации памяти. Разрешение изображений — 512x512, batch size = 2, 500 шагов обучения. LoRA обучается для адаптации SDXL под стиль "TUUKZS".
Изображения, сгенерированные обученной моделью
В ходе генерации было выявлено, что у художника более четкие линии, чем у изображения, созданного нейросетью, несмотря на промпт, в котором указывался этот критерий.
Изображения, сгенерированные обученной моделью
Изображение, сгенерированные обученной моделью
Также было тяжело добиться минимализма: в некоторых работах художника присутствует ограниченное количество графики, однако в изображениях, сгенерированных нейросетью, часто можно найти различные графические элементы, которые заполняют всё пространство.
Изображения, сгенерированные обученной моделью
Изображения, сгенерированные обученной моделью
Пятое, сохранение и загрузка модели: Обученная LoRA сохраняется в папку tuukzs_style_LoRA. Модель загружается на Hugging Face Hub.
!ls tuukzs_style_LoRA
from huggingface_hub import whoami
from pathlib import Path
output_dir = "tuukzs_style_LoRA"
username = whoami(token=Path("/root/.cache/huggingface/"))["name"]
repo_id = f"{username}/{output_dir}"
from train_dreambooth_lora_sdxl import save_model_card
from huggingface_hub import upload_folder, create_repo
repo_id = create_repo(repo_id, exist_ok=True).repo_id
Изображения, сгенерированные обученной моделью
В процессе преодоления вышеперечисленных трудностей удалось достичь важных целей: удалось сохранить первоначальную цветовую палитру, заложенную в стиле художника, и почти неизменную размытость образов.
Изображения, сгенерированные обученной моделью
Изображение, сгенерированные обученной моделью




