Генерируем живописные логотипы известных компаний с помощью Stable Diffusion и ControlNet

Генерируем живописные логотипы известных компаний с помощью Stable Diffusion и ControlNet

Недавно выполнял коммерческий заказ по QR-кодам, и заказчик очень просил сделать так, будто это и не QR-код вовсе, а натуральная картина. Ох и долго же я ломал голову над тем, как сгенерированы знаменитые примеры из интернета. Я и онлайн-сервисы пробовал по типу QR Code Monster, а также разные пространства на Hugging Face — вот ссылка на одно из таких. И модели скачивал диковинные, которые не давали должного результата.

Затем наткнулся на репозиторий qr_code_monster, где было хорошо все, кроме одного: модели не работали. Пришлось немного подправить код .yaml файла, без которого модель не может запуститься, поэтому прикрепляю ссылку на его скачивание (продублирую далее).

В общем, на данный момент способ околоидеальный и может выполнять большое число задач: генерировать вписанные в окружение QR-коды, логотипы, текст и много чего еще.

Что нам понадобится?

Во-первых, установленный либо на ПК, либо в Google Colab — Automatic1111. В случае проблем с установкой готов помочь в чате.

Также необходимо поставить расширение ControlNet, репозиторий которого вы можете найти по ссылке.

Основная модель ControlNet
Основная модель ControlNet

Предпоследним шагом установим специальные модели ControlNet, которые и позволят нам создавать из черно-белого рисунка замысловатые изображения. Для этого переходим по ссылке и скачиваем файл со скриншота.

.yaml файл для работы основной модели ControlNet
.yaml файл для работы основной модели ControlNet

Также не забываем загрузить файл .yaml, необходимый для работы основной модели. Далее я покажу, куда это все дело закинуть. Если у вас не сработает официальный, то можете попробовать скачать мою версию.

Закидываем файлы в нужную папку
Закидываем файлы в нужную папку

Скачанные файлы закидываем в корневую папку Stable Diffusion: stable-diffusion-webui\extensions\sd-webui-controlnet\models.

Перейдем к практике

Для начала подготовим исходник. В моем случае это черно-белое изображение логотипа Nike.

Исходник логотипа Nike
Исходник логотипа Nike

Заметьте, что чем более светлый рисунок на исходнике, тем более светлым он будет и на генерации. Т.е. если вы хотите, чтобы логотип был темнее всего остального, то инвертируйте цвета.

Вставляем ссылку на загрузку моделей в блокнот
Вставляем ссылку на загрузку моделей в блокнот

Далее запускаем Automatic1111, в моем случае я буду использовать Google Colab, где ControlNet уже установлен по умолчанию, что очень удобно. Также там сразу автоматически скачиваются все модели. А чтобы поставить дополнительные для генерации QR-кодов, я просто указал их ссылками в специальном поле.

Если вы хотите пользоваться Google Colab, то переходите в мой чат, я поделюсь блокнотом. А иначе из-за публичности его могут забанить, как это произошло со всеми известным The_Last_Ben...

Первая ссылка вдет на репозиторий с основной моделью, которая весит 1,4Гб, а вторая на мой Google disk и скачивает .yaml файл. Вы можете таким же образом загрузить этот файл к себе на диск и указывать на него ссылку.

Настройки ControlNet
Настройки ControlNet

Итак, загружаем наш исходник в ControlNet, проставляем все галочки и выбираем модель. Веса у модели нужно ставить от 1 до 2, иначе рисунок будет заметен очень слабо. Не бойтесь завышать значения, ведь их можно компенсировать параметрами Starting и Ending Control Step.

Галочка Pixel perfect автоматически подгоняет разрешение исходника под разрешение генерации модели, чтобы вам не делать этого вручную. Однако если исходник слишком большой, то слабые видеокарты могут не потянуть такого монстра :]

Составляем грамотный промпт
Составляем грамотный промпт

Не торопитесь сразу же лезть на рожон. У вас, скорее всего, ничего не получится. Почему? Важен грамотно составленный промпт. Это 50% успеха (проверено слезами и испорченными нервами). Сам намучался со всеми этими моделями, пока не понял банальное: промпт всему голова.

Я прикреплю для вас ссылку на файл со множеством промптов для визуализации ваших идей. Все они проверены и отлично работают с данным методом.

Еще несколько советов

Если у вас не получаются слова или буквы, да и сам логотип, то попробуйте увеличить его. У диффузных моделей есть общая проблема: они плохо генерируют маленькие предметы, поэтому иногда нужно их растягивать.

У вас, скорее всего, не получится сразу следовать четкому ТЗ, поэтому придется дорабатывать изображение вручную — будьте готовы к этому. Также не пытайте мечт по поводу мгновенного выполнения задания со стороны исполнителя, если таковой будет. Это большая работа: пре-продакшн, разбор стиля, тестирование, пост-обработка.

Вы также можете использовать данный метод во вкладке img2img, чтобы более тонко контролировать процесс генерации.

Если у вас получается размытое или низкокачественное изображение, попробуйте прописать в поле Negtive prompt следующее: worst quality, low quality:1.4.

Не зацикливайтесь на одном варианте. Пробуйте крутить по 10 генераций, чтобы делать правильные выводы.

Если нейронка не держит форму исходника, то ставьте в конце промпта токен BREAK, который заставляет нейросеть как бы облеплять черно-белый трафарет.

Вот примеры стилизованных логотипов

Эта история больше подходит, как оно обычно бывает с нейронками, либо для генерации идей, либо для доработки уже существующего концепта. Ну, а серединка работы на вашей совести :3

Логотип Adidas
Логотип Adidas
Логотип Samsung
Логотип Samsung
Логотип Bellini group
Логотип Bellini group

Congratulations, вы справились!

Теперь кто-то умеет создавать визуализации логотипов с помощью лучшего фреймворка для Stable Diffusion на сегодняшний день. Буду рад обратной связи и вашим комментариям, а также приглашаю в свой телеграм чат, где отвечу на все вопросы касаемо SD.

Буду рад видеть вас в телеграм-канале, где я собираю лучшие гайды по Stable Diffusion. А если не найду, то пишу сам.

18
4 комментария

Ты что, с крск?

2
Ответить

Yes, сэр, я из Красноярска 🕵️‍♀️

2
Ответить

Это абибас и точка

1
Ответить

А лого dtf?

1
Ответить