Рассказываем, как установить нейросеть на компьютер, как обработать изображение и как составлять промты!
Stable Diffusion иногда может давать неожиданные результаты. Часто – очень хорошие, в других случаях — очень плохие. Ведь SD использует различные алгоритмы обработки и генерации фотографий, часто эти алгоритмы могут давать не те результаты, на которые мы рассчитываем. Да и навык составления промтов прокачать не так просто.
Еще одна проблема — нейросети для работы на компьютере нужны значительные ресурсы. На старом компьютере установить Stable Diffusion будет сложно, она может вообще не работать. Для применения фильтров и эффектов к фотографиям, для самой генерации нужен хороший процессор, оперативная память и видеокарта.
Минимальные системные требования
Чтобы установить SD на свой компьютер, убедитесь, что ваш ПК соответствует этим системным требованиям:
- CPU: Intel Core i5 или AMD Ryzen 5 или выше.
- GPU: Nvidia GTX 1060 6 ГБ или выше; AMD Radeon RX 580 8 ГБ или выше.
- Оперативная память: 8 ГБ или выше.
- Свободное место на жестком диске: 20 ГБ или более.
Для достижения максимальной производительности понадобится 10 ГБ свободной VRAM на GPU.
Как установить Stable Diffusion на компьютер в 2023 году
Сперва загрузите программу установки с сайта Stable Diffusion.
Для пользователей Windows — может потребоваться .NET Framework 4.6.2 или выше.
Для пользователей Mac — может потребоваться установка инструментария командной строки Xcode.
Для пользователей Linux — может потребоваться установка соответствующих зависимостей для вашего дистрибутива (далее расскажем).
Если вам нужно пользоваться нейросетью онлайн, просто сгенерировать несколько изображений — откройте страницу нейросети и нажмите кнопку Get Started for Free:
Введите промт и нажмите кнопку генерации. Для генерации изображения не требуется ничего кодить или устанавливать Python.
Внимание: онлайн-версия Stable Diffusion может работать некорректно время от времени. Всё дело в большом количестве запросов. Если сервер не отвечает и страница зависает, просто повторите попытку через несколько минут.
Способ №1. Python + Hugging Face
Первым делом установите Python 3.8 или более позднюю версию. Теперь установите PyTorch. Для этого откройте командную строку и выполните эту команду:
pip install torch torchvision torchaudio |
Установите Stable Diffusion. Для этого инсталлируйте репозиторий stable-diffusion-pytorch от Hugging Face. Для установки выполните эту команду:
pip install stable-diffusion-pytorch |
Установите дополнительные пакеты и зависимости (numpy, pillow). Они необходимы для корректной работы нейросети. Для этого введите и выполните эту команду:
pip install -r requirements.txt |
Установите (или настройте, если они уже установлены) папки colab — для сохранения моделей и выходных данных.
Загрузите контрольные точки для Stable Diffusion. Ссылки на них можно найти здесь.
Распакуйте файлы контрольных точек и поместите их в папку colab.
Теперь вы можете запустить Stable Diffusion локально, другими словами, на своем компьютере.
Чтобы проверить работоспособность нейросети, введите команду:
python run_txt2img.py --text "A landscape under the moon" --prompt default |
Если все установлено корректно, вы увидите изображение пейзажа с луной.
Способ №2. Python + Anaconda
Установите Anaconda или Miniconda — для управления средами Python. Теперь откройте окно Anaconda Prompt (окно терминала). Создайте и активируйте новую среду Conda. Чтобы это сделать, используем две соответствующие команды:
conda create --name diffusers python=3.10 |
Установите PyTorch и другие зависимости. Для этого введите эти команды:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch |
Наконец, установите Stable Diffusion:
pip install stable-diffusion |
Скачайте модель контрольной точки. Самый популярный вариант — v1-5 (это хорошо знакомый многим DALL-E от Anthropic:
wget https://cdn.openai.com/dall-e/v1-5/model.ckpt -O model.ckpt |
Чтобы проверить работоспособность нейросети — придумайте и отправьте промт. Например, a cute babe cat. Команда будет выглядеть следующим образом:
from stable_diffusion import StableDiffusionPipeline |
Если все было установлено правильно, вы увидите милого котенка.
Дополнительные рекомендации
Для получения последней версии можно клонировать репозиторий GitHub, а не просто устанавливать всё с помощью pip. Вот так выглядит команда клонирования:
git clone https://github.com/CompVis/stable-diffusion |
И еще несколько важных рекомендаций:
- Контрольные точки можно загрузить из разных источников, это не только HuggingFace. Например, можно поискать на Reddit.
- Для дополнительных возможностей можно использовать расширения, например, вам нужен полноценный графический интерфейс. Подойдет расширение webui от Automatic1111.
- При локальной работе (когда нейросеть установлена у вас на компьютере) генерация изображений занимает некоторое время. Если машина слабая или вам нужно генерировать картинки быстрее, можете уменьшить размер пакета, снизить разрешение изображения или снизить количество шагов вывода.
- Примеры генерации изображений, их масштабирования и обработки вы можете посмотреть вот здесь.
- Существуют также Torch-версии Stable Diffusion (пригодится, если вы предпочитаете использовать PyTorch напрямую).
Как обработать фотографию в Stable Diffusion
Начнем с трудностей. При обработке и генерации фотографий в Stable Diffusion они обязательно возникнут. Главная сложность — правильное формулирование промтов. Тут нужно будет набить руку. Ну и сама установка, как вы уже поняли, также может вызвать трудности, если вы не работали с GitHub и Python ранее.
Сложности и ограничения Stable Diffusion
Нейросеть может быть сложной в использовании, если вы никогда не работали с ней. Тут много настроек и инструментов, а для составления промтов действуют особые правила. Это может затруднить понимание того, с чего начать и как добиться желаемых результатов.
Другие сложности, которые нужно постоянно держать в голове, разберем ниже.
Разрешение
SD-модели обучаются на изображениях низкого разрешения: обычно — это квадрат 256x256 пикселей или 512x512 пикселей. Если вы захотите генерировать изображение высокого разрешения, то готовьтесь к артефактам или общему снижению качества изображения и потери детализации. Чтобы этого избежать, перед отправкой исходного изображения уменьшите его размер.
Соотношение сторон
Как мы говорили, изображение в SD всегда квадратное. Поэтому неквадратные фотографии необходимо обрезать или подгонять соответствующим образом. В противном случае на выходе будут искажения или нежелательные вставки.
Пакетная обработка
Если у вас тысячи фотографий, то выполнение генераций по одному изображению очень неудобно. Для генерации нескольких фотографий лучше использовать пакетную обработку, но понадобится сначала привести все изображения к одинаковому размеру. Это также займёт некоторое время.
Совмещение цветов
При генерации отредактированной фотографии цвета могут не полностью совпадать с оригиналом — из-за сжатия и различий в цветовом пространстве. Придется тратить время на цветокоррекцию.
Артефакты
Нейросеть может генерировать странные артефакты (лишние конечности, искаженные лица). Может потребоваться тонкая настройка промта.
Несогласованные текстуры
На фотографиях с нестандартным сюжетом или композицией, текстуры и детали могут плохо сочетаться с объектом — из-за ограниченности обучающих данных. Решить эту проблему можно только при помощи очень тонкой настройки промта.
Размытость
Характерная болезнь Stable Diffusion. Проявляется характерный блюр вокруг текстурированных областей или краев. Для получения изображения без этой размытости можно поэкспериментировать с сокращением шагов отрисовки.
Детализация лиц
Детали лица на финальном изображении могут быть несогласованными, иметь артефакты. Особенно это заметно, если в референсе лица слишком маленькие или частично скрыты другими объектами.
Почему не получается сгенерировать фотореалистичное изображение
Эти сложности связаны с тем, что нейросети рассчитаны на работу с синтетическими изображениями, которые создаются на компьютере. Они чистые, без шумов, водяных знаков и других артефактов. Но реальные фотографии — несовершенны, на них есть и искажения и свои артефакты, получающиеся при съемке. Все это затрудняет получение фотореалистичных изображений через нейросеть.
Еще одна особенность и одновременно проблема заключается в том, что Stable Diffusion — модель глубокого обучения: она обучается на большом наборе данных (это изображения). Но реальные фотографии — всегда другие. Вот почему генерация по настоящему реалистичных изображений — все еще недостижимая задача для нейросетей.
Пошаговая инструкция
Переходим непосредственно к генерации изображений. Первым делом выберите фотографию, которую необходимо отредактировать. Желательно, чтобы это было изображение с высоким разрешением (как минимум 1024x1024 пикселей).
- Загрузите фотографию на Яндекс.Диск, затем скопируйте URL-адрес изображения в буфер обмена.
- Напишите промт. Попробуйте поэкспериментировать со словами, например: artistic, painted-like effect, stylized, mood lighting, night time, desaturated, high contrast.
- Передайте URL на изображение или строку base64, используя флаг --init-image. Например, вот так:
stable-diffusion --v stablediffusion-stablemodel --prompts "photo edit: {photo url/base64}, {prompt}" --img 512 --noinput --init-image {photo url/base64} |
Stable Diffusion сгенерирует изображение с внесенными изменениями.
- С помощью команды --steps вы можете задать число отрисовок и выбрать наиболее понравившиеся варианты.
Как работать с промтами
Будьте максимально конкретны в своем промте. Вместо простого artistic effect, опишите, какой именно художественный эффект вы хотите получить: watercolor, impressionist, pastel. Чем больше деталей, тем лучше. Или: вместо painted effect, напишите: "impressionist painted effect with bright colours and loose brush strokes".
Используйте модификаторы very, slightly или somewhat для управления интенсивностью редактирования.
Например:
- very painted, artistic effect.
- slightly blurred background.
- somewhat faded colors.
Вы можете удалять объекты из сцены. Для этого укажите соответствующее пожелание в промте:
A photo of the same scene without the person, skillfully concealed using AI, high quality.
Соотнесите стили с цветами в сцене. Например, вот так:
- Pastel tones, colors resemble a watercolor painting.
- Colors seem flat and graphic, like a comic book illustration.
Можно передавать дополнительные параметры (например: num_inference_steps, negative_prompt). Нужно это для дальнейшей настройки генерации изображений.
Несколько советов, как добиться наилучших результатов:
Допустим, вы хотите увеличить насыщенность, резкость и яркость изображения на несколько ступеней. Просто добавьте соответствующие атрибуты внутрь промта (насыщенность --sat 2, резкость --sharp 2, яркость --brightness 1.2).
Попробуйте фильтр масляной живописи: --filter-style oilpaint, он даёт очень хорошие результаты даже со сложными промтами.
Измените погоду в сцене. Для этого прописываем слово weather, например, так: --weather cloudy, --weather rainy. Эти настройки могут кардинально изменить настроение изображения.
Добавьте объекты в сцену. Например, вам нужно добавить человека у походного костра: photo of a person sitting by a campfire at night, bright moon.
Экспериментируйте с различными стилями. Особенно хорошие результаты можно получить с фильтрами surreal, artistic, low poly, anime, hyper realistic, oil painted, watercolour, black and white и так далее. Каждый стиль даст совершенно разные результаты.
Обязательно пробуйте и различные значения шкалы наведения (от 1 до 14 ступеней). Чтобы получить максимальную детализацию используйте самые высокие значения.
Сервисы на основе Stable Diffusion, которые позволяют использовать нейросеть
Облачные сервисы обеспечивают более простой доступ к нейросети, а локальные — более гибкую ее настройку. Что выбрать?
Все зависит от условий использования, необходимого разрешения изображения и ваших технических знаний.
При выборе обратите внимание на стоимость сервиса, простоту использования, лимиты, набор функций и главное — качество изображения.
Начнём с онлайн-сервисов, которые позволяют генерировать изображение через Stable Diffusion в пару кликов.
RunwayML
Сайт: huggingface.co/runwayml/stable-diffusion-v1-5
Плюсы:
- Поддерживает загрузку изображений для редактирования в разных форматах и разрешениях.
- Интуитивно понятное управление ползунками.
- Возможность настройки контрольных точек.
Минусы:
- Ограниченное количество бесплатных попыток.
- Низкое разрешение.
- Отсутствие пользовательских моделей.
Neural.love
Сайт: neural.love/ai-art-generator/
Плюсы:
- Есть онлайн-версия.
- Мощные возможности редактирования изображений.
- Хорошее качество отрисовки даже на первых этапах.
- Дополнительная фильтрация.
Минусы:
- Только платно. Но есть бесплатные генерации с лимитами.
- Пока нет поддержки пользовательских моделей.
Writesonic.com
Сайт: writesonic.com/photosonic-ai-art-generator
Плюсы:
- Приятный пользовательский интерфейс.
Минусы:
- Бесплатное использование только в ограниченном режиме,
- Максимальное разрешение — совсем небольшое.
Automatic1111 webui
Сайт: github.com/AUTOMATIC1111/stable-diffusion-webui
Плюсы:
- Работает локально.
- Поддерживает масштабирование.
- Можно работать с пользовательскими чекпоинтами.
- Бесплатен.
- Есть на GitHub.
- Обеспечивает большую гибкость, но требует настройки
Минусы:
- Требуется локальный GPU
- Более сложная настройка.
Mage.space
Сервис, позволяющий генерировать, обрабатывать и редактировать изображения с помощью Stable Diffusion.
Сайт: mage.space/
Плюсы:
- Отсутствие очереди.
- Бесплатное использование.
- Базовые инструменты редактирования изображения: фильтры, шумоподавление, изменение разрешения.
Минусы:
- Ограниченный набор функций.
- Не очень удобный интерфейс.
Playground AI
Сочетает в себе функции генератора и социальной сети. Вы можете создавать изображения, делиться ими, ставить лайки и следить за авторами. Возможности рендеринга ограничены, но зато скорость генерации очень высокая. Интересная функция ремикс изображений. Доступны только базовые модели.
Сайт: playgroundai.com/
Плюсы:
- Бесплатное использование.
- Позволяет использовать пользовательские модификаторы и атрибуты в промтах.
Минусы:
- Иногда сервер недоступен.
- Закрытый исходный код.
- Страдает от периодических ошибок и сбоев.
Что выбрать
Каждый из вышеуказанных сервисов предоставляет доступ к возможностям Stable Diffusion, но несколько по-разному.
Чтобы получить максимальный результат от Stable Diffusion — установите её на компьютер. Да, этот вариант чуть сложнее, чем онлайн-версия нейросети. Но вы получите больше возможностей для настройки.
Онлайн-сервисы можно рекомендовать, когда отсутствует потребность обрабатывать или генерировать большое количество изображений. Например, если вы просто хотите поиграться с нейросетью.
Читайте также:
71 бесплатная нейросеть на все случаи жизни – выбор TexTerra
28 лучших нейросетей для видео: проверенный список
Нейросети увольняют дизайнеров (ну, почти): пример Tiffany и Nike