Описание
Обучение проводилось на датасете из 21 фотографии моего черного кота, предварительно обработанных до единого формата и разрешения. В результате настройки модель приобрела способность воспроизводить уникальные черты питомца (форму морды, окрас, характерные позы) в различных сценариях генерации.
исходные изображения для обучения
Результирующая серия изображений
В итоговой серии представлены сгенерированные изображения кота в различных сценариях. Модель успешно передала уникальные черты питомца — округлую форму морды, характерный разрез желтых глаз, гладкую текстуру черной шерсти с легкими бликами, а также его типичные позы. Благодаря регуляризации и LoRA модель сохранила способность генерировать разнообразные фоны и ракурсы, при этом ни один из сценариев не повторял исходные обучающие фотографии. Изображения отличаются по освещению, композиции, стилю и эмоциональной окраске. Результаты полностью соответствуют первоначальной идее персонализации — нейросеть научилась узнавать конкретного кота и воспроизводить его образ в любых сценариях.
генерации обученной нейросети
генерации обученной нейросети
генерации обученной нейросети
генерации обученной нейросети
1. Подготовка окружения
Монтируется Google Drive для доступа к датасету и сохранения результатов.
Очищается память GPU, настраиваются переменные окружения для оптимизации работы CUDA.
Устанавливаются необходимые библиотеки: diffusers, peft, bitsandbytes, xformers и другие.
2. Загрузка и подготовка датасета
Датасет находится в папке cat_photos в Google Drive.
Для каждого изображения автоматически создается текстовый файл с описанием (caption). Caption задаются вручную и повторяются циклически для всех изображений.
3. Параметры обучения
Используется модель Stable Diffusion 1.5.
Разрешение изображений: 512×512.
Размер батча: 1, градиентная аккумуляция: 2 (эффективный батч = 2).
Количество шагов обучения: 500.
Ранг LoRA: 8, скорость обучения: 1e-4.
4. Загрузка модели и настройка LoRA
Модель загружается в формате float16 для экономии памяти.
Включается xformers для оптимизации внимания.
К U-Net применяется LoRA: целевые модули — to_q, to_v, to_k (слои внимания).
5. Подготовка датасета с предварительным кодированием
Изображения преобразуются в тензоры и кодируются в латентное пространство с помощью VAE (4 канала, размер 64×64 для изображений 512×512).
Caption токенизируются через CLIP токенизатор.
Все данные возвращаются в виде латентов и токенов, что ускоряет обучение.
6. Цикл обучения
На каждом шаге:
К латентам добавляется шум (noise) согласно расписанию шумов DDPMScheduler.
Получаются текстовые эмбеддинги через text encoder (без градиентов).
U-Net предсказывает добавленный шум.
Считается MSE-лосс между предсказанным и реальным шумом.
Градиенты накапливаются, затем обновляются веса LoRA.
Каждые 50 шагов выводится текущий лосс и использование памяти GPU.
7. Сохранение модели
После завершения обучения LoRA-веса сохраняются локально и архивируются.
Архив копируется в Google Drive.
8. Генерация изображений с использованием обученной LoRA
Модель перезагружается, LoRA применяется к U-Net.
Генерируется 10 изображений по разным промптам (от реалистичных до фэнтези).
Результаты сохраняются и визуализируются в виде галереи.
9. Экспорт результатов
Все сгенерированные изображения архивируются и сохраняются в Google Drive.
Ссылка на код
Описание применения генеративной модели
DeepSeek-V3 — генерация идей, поиск ошибок в коде




