
Процесс обучения модели 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 для оптимизации памяти. Разрешение изображений — 512×512, 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
В процессе преодоления вышеперечисленных трудностей удалось достичь важных целей: удалось сохранить первоначальную цветовую палитру, заложенную в стиле художника, и почти неизменную размытость образов.




Шестое, генерация изображений: В конце загружается обученная LoRA и применяется к SDXL для генерации изображений в стиле «TUUKZS».
import torch
from diffusers import DiffusionPipeline, AutoencoderKL
vae = AutoencoderKL.from_pretrained("madebyollin/sdxl-vae-fp16-fix", torch_dtype=torch.float16)
pipe = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
vae=vae,
torch_dtype=torch.float16,
variant="fp16",
use_safetensors=True
)
pipe.load_lora_weights(repo_id)
_ = pipe.to("cuda")




В заключение исследования можно утверждать, что несмотря на значительные достижения в области нейросетевых технологий и их способности генерировать визуальные произведения искусства, они все же не могут в полной мере воспроизвести уникальный стиль художника. Нейросети способны анализировать и имитировать определенные элементы стиля, такие как цветовые палитры, композиционные решения и текстуры. Однако полностью скопировать стиль художника очень тяжело.
Использованные нейросетевые инструменты и модели:
Stable Diffusion — генерация изображений BLIP — генерация описаний для изображений в датасете Hugging Face — сохранение обученной LoRA-модели AirBrush — улучшение качества изображений художника Tuukzs