Концепция
Я с детства искренне не понимала, почему именно черные коты стали символом неудачи, спутниками всякого рода зла и нечести. Почему образ, который мог бы быть просто красивым и загадочным, обернулся для многих символом тревоги? Мне всегда было искренне жаль ни в чем неповинных котиков. Эта детская обида и стала отправной точкой проекта: мне захотелось дать им новую, собственную визуальную историю, в которой не будет места страху, но будет место красоте, характеру и, главное, домашнему теплу.
Много котиков, как известно, не бывает, поэтому я решила, что могу нагенерировать ещё парочку черных красавцев — таких, какими вижу их сама.
Итогом работы становится серия изображений, в которых коты предстают в разных стилях, ситуациях и художественных интерпретациях — от реалистичных до фантазийных. Все они объединены общей идеей: показать котиков не как символ суеверий, а как самостоятельных, выразительных и по-своему эстетичных персонажей.
Начало проекта. Датасет
В качестве датасета я взяла фотографии разных котиков в разной обстановке. Обрезала их до квадрата.
Самое сложное! Код!
Для обучения модели я использовала специальный скрипт DreamBooth. В нём я указала путь к заранее подготовленным фотографиям котиков, задала настройки обучения — например, что картинки будут обрабатываться в разрешении 512 пикселей, а сам процесс займёт 250 шагов. Все эти параметры помогли модели быстро и аккуратно «запомнить», как выглядят именно мои чёрные коты, не перегружая память компьютера (на 500 шагах ноутбук сдавался на половине процесса и вел себя неприлично).
Здесь я подготавливаю нейросеть к созданию изображений. Сначала я загружаю специальную улучшенную версию кодировщика VAE (он отвечает за чёткость деталей и стабильность цветов). Его я взяла от разработчика madebyollin, потому что эта версия работает быстрее и экономичнее памяти. Затем я собираю основную модель Stable Diffusion XL в единый pipeline — это главный инструмент, который будет генерировать картинки. Я указываю, что работаю с 16-битной точностью, чтобы ускорить процесс и снизить нагрузку на видеокарту, а также использую безопасный формат safetensors для хранения весов модели — это надёжнее, чем обычные файлы. Всё вместе это позволяет быстро и стабильно запускать генерацию прямо в Colab.
В конце я загружаю в модель результаты обучения (LoRA), которая запомнила образ кота. После загрузки я переношу модель на видеокарту (CUDA), чтобы генерация шла быстро. Затем я задаю промты, по которым нейросеть будет генерировать. Для каждого промта модель делает 30 шагов уточнения, а параметр guidance_scale отвечает за то, насколько строго она будет следовать моему описанию.
Результаты генерации
Сначала я решила попробовать сгенерировать просто котов, задавая в промтах только их общее окружение, но не цвет и стиль. Получились весьма смазанные и смешные изображения.
Однако, пара из них, как мне кажется, прекрасно подходит под создание мемов, так что я решила сделать два, вдохновленные истинным зумерским юмором.
качество улучшено с помощью airbrush.com
Но настало время для черных котиков, про которых я изначально и думала. Я решила для начала сгенерировать просто мордочки.
Результаты, как мне кажется, получились достаточно хорошими, чистыми. Да, видна некоторая несимметричность, но явных дефектов нет.
качество улучшено с помощью airbrush.com
Далее, вдохновившись элегантной загадочностью предыдущей серией генераций, я решила сделать несколько, посвященных поп-культурному образу черных котиков как вечных спутников ведьм.
Мне кажется, эта серия генераций вышла самой удачной: наиболее яркой, кинематографичной, запоминающейся. Тут тоже не видно ярких диффектов, всё выглядит достаточно четко и даже эстетично.
качество улучшено с помощью airbrush.com
Наконец я перешла к главной проектной серии: генерациям, где черные котики наконец окажутся в уюте и комфорте.
Те экземпляры, что были менее похожи на фотографии из датасета, оказались «поломанными».
качество улучшено с помощью airbrush.com
А вот те, что были более простыми, без сложных действий, более похожие на датасет, получились заметно лучше.
качество улучшено с помощью airbrush.com
Для улучшения результатов генераций была использована нейросеть airbrush.com
Для уточнения моментов работы с кодом, помощи в некоторых «поломках» был использован chat.deepseek.com