Примеры изображений из Fooocus
Не будем никого томить, с места в карьер! Ниже представлены синтетические изображения, полученные с помощью нейросети Fooocus на тематику "отдых в тропиках". Разве не сказка?
Что такое Fooocus?
Fooocus — это мощный инструмент для генерации изображений, который функционирует на основе архитектуры Stable Diffusion XL. Он был разработан автором ControlNet и предлагает пользователям возможность создавать высококачественные визуальные материалы с помощью текстовых подсказок.
В отличие от облачных сервисов, таких как Midjourney или Dalle-E, Fooocus может работать локально на компьютере пользователя, что позволяет избежать задержек и необходимости в подписках. Основные характеристики Fooocus включают в себя гибкий интерфейс ( может быть минималистичным, а может напоминать кабину пилота самолёта в режиме Advanced). Программа предоставляет пользователям возможность вводить текстовые запросы, которые затем могут обрабатываться с использованием встроенного GPT-движка для улучшения качества генерируемых изображений. Это делает Fooocus особенно привлекательным для дизайнеров и контент-креаторов, желающих быстро и эффективно получать результаты. Fooocus поддерживает различные режимы генерации и стили, включая реалистичные и аниме-изображения. Пользователи могут настраивать параметры генерации, такие как разрешение и количество создаваемых изображений, а также использовать уникальные идентификаторы (seed) для воспроизводимости результатов. Важной особенностью является возможность использования изображений в качестве входных данных, что позволяет комбинировать элементы из различных источников. Программа также включает функции для отслеживания истории генераций и управления стилями, что значительно расширяет возможности творчества. Fooocus ориентирован на максимальную доступность и простоту использования, что делает его идеальным выбором как для начинающих, так и для опытных пользователей в области генеративного искусства.
Хотелось бы выделить основные плюсы:
- Бесплатно
- Явно выделенные серверная и клиентская части
- Отсутствие какой-либо цензуры и запретов
- Уверенная поддержка негативных запросов
- Роскошный интерфейс
Серверная часть может быть запущена на локальном копьютере, на сервере или в Google Colab
Но есть и минусы:
- Не всегда получается добиться желаемой резкости
- Очень похожие лица людей
- При всём многообразии стилей, получить заранее заданный стиль иногда тяжело или невозможно (попробуйте добиться стиля картинок как в советском мультике про Винни Пуха).
Поддержка русского языка
Fooocus принимает запросы на русском языке. Для этого необходимо активировать опцию "Translate Prompts" в настройках программы. Эта функция автоматически переводит введенные пользователем запросы с русского на английский, что позволяет использовать русские промпты для генерации изображений. Пользователи могут писать как положительные, так и негативные запросы на русском, и система будет обрабатывать их корректно. Однако стоит отметить, что, несмотря на возможность использования русского языка, некоторые пользователи предпочитают писать запросы на английском, чтобы избежать возможных проблем с переводом и контролем над результатом.
Во всех моих проектах я пишу запросы только на английском языке, так нейросеть понимает гораздо лучше. В самых крайих случаях можно перевести автоматическим переводчиком (например, Яндекс сейчас стал переводить ну очень хорошо!) и уже с переведённым запросом идти в Fooocus.
Архитектура
Архитектура Fooocus основана на нейросети Stable Diffusion, использующей модель SDXL, что позволяет ей генерировать высококачественные изображения на основе текстовых запросов. Эта архитектура включает в себя несколько ключевых компонентов, которые обеспечивают ее функциональность и гибкость. Во-первых, Fooocus использует алгоритмы машинного обучения, обученные на обширных наборах данных, что позволяет создавать разнообразные визуальные материалы — от фотографий до иллюстраций в различных стилях. Основной механизм генерации изображений основывается на преобразовании текстовых подсказок в визуальные элементы, что достигается через сложные нейронные сети. Во-вторых, интерфейс Fooocus разработан с акцентом на простоту использования. Пользователи могут вводить запросы на любом языке, включая русский, благодаря встроенной функции автоматического перевода. Это делает его доступным для широкой аудитории, не требуя глубоких технических знаний. Кроме того, архитектура включает поддержку различных режимов генерации и возможность использования изображений в качестве входных данных. Пользователи могут изменять параметры генерации, такие как разрешение и стиль, а также управлять весом влияния загруженных изображений на конечный результат. Это позволяет находить баланс между креативностью нейросети и точностью воспроизведения заданного стиля или композиции. Fooocus также предлагает возможность интеграции с другими моделями Stable Diffusion и поддерживает расширенные настройки через интерфейсы, такие как Google Colab. Это делает его мощным инструментом для дизайнеров и художников, желающих экспериментировать с генерацией изображений и создавать уникальный контент.
Запуск Fooocus
Моя методика запуска немного отличается от стандартной. Во-первых, удобство и скорость Colab явно перевешивают, чтобы запускать серверную часть в нём. Свой компьютер как-то жалко подвергать таким серьёзным нагрузкам (особенно видеокарту).
Во-вторых, непосредственно запуск лучше разделить минимум на три ячейки кода. Сначала выполняем самые простые шаги:
!pip install torchsde
!apt-get install neofetch -y
!neofetch
!uname -a
!ip a
Мне очень нравится смотреть информацию о железе, которую показывает neofetch - сразу понятно, с чем мы будем иметь дело. Например, сейчас Colab выводит такую информацию:
OS: Ubuntu 22.04.3 LTS x86_64
Host: Google Compute Engine
Kernel: 6.1.85+
Uptime: 3 mins
Packages: 1306 (dpkg)
Shell: bash 5.1.16
Terminal: jupyter notebook
CPU: Intel Xeon (2) @ 2.000GHz
GPU: NVIDIA Tesla T4
Memory: 982MiB / 12978MiB
В следующей ячейке разворачиваем Fooocus, но не запускаем его. На этом шаге удобно подгрузить набор LORA, которыми мы часто пользуемся, удобно подгружать с внешнего (собственного) сервера:
!pip install pygit2==1.12.2
%cd /content
!git clone https://github.com/lllyasviel/Fooocus.git
%mkdir -p /content/Fooocus/models/loras/
%cd /content/Fooocus/models/loras/
# На этом шаге можно загрузить LoRa из URL
!wget drach.pro/SDXL_Fog_Sa_May_V2.safetensors
#Загрузили ТУМАН
В данной точке появляется возможность загрузить LoRA или другие файлы вручную, через интерфейс Colab.
Например, загрузить файл LoRa необходимо в созданную директорию /content/Fooocus/models/loras/
.
И уже затем запускаем непосредственно серверную часть (для ускорения передаем пресет как параметр командной строки):
%cd /content/Fooocus
#!python entry_with_update.py --share
#!python entry_with_update.py --always-high-vram --preset anime --share
!python entry_with_update.py --always-high-vram --preset realistic --share
В последней строчке желательно "вручную" прямо сразу передать пресет, потому что в графическом режиме не всегда удаётся переключиться, если загрузка превышает 60 секунд (проверено!). Кроме того, можно добавить к последней строчке ключик --always-high-vram чтобы переместить ресурсы из RAM в VRAM.
Эта ячейка достаточно долго разворачивает серверную часть (Colab отчитывается, что 40 секунд, но на практике это примерно 4 минуты), в выводе нам покажут строчку с ссылкой на клиентскую часть, которую можно будет открыть в браузере.
Что-то вроде:
App started successful. Use the app with http://127.0.0.1:7865/ or 127.0.0.1:7865 or https://48e55747b0b82db270.grаdio.live
Остановка выполнения кода в этой ячейке, естественно, остановит серверную часть. Поэтому она должна "крутиться" всё время работы с Fooocus.
Сохранение результатов
Результаты можно сохранять совершенно разными способами, в разных ситуациях по-разному.
1. Очевидный способ: сохранение вручную каждой картинки прямо из браузера в клиентской части.
2. Сохранение на гуглодиск. Это очень удобно, когда генерируются картинки в промышленных масштабах.
Для этого я держу отдельную ячейчку с кодом:
from google.colab import drive
drive.mount('/content/gdrive')
folder_to_copy = '/content/Fooocus/outputs'
# Replace 'your_destination_folder' with the name of the destination folder on Google Drive
destination_folder = '/content/gdrive/My\ Drive/Fooocus'
# Copy the folder
!cp -r {folder_to_copy} {destination_folder}
3. Скачивание одним файлом. Можно собрать все результирующие файлы в один архив на севере и затем скачать на локальный компьютер средствами Colab.
Для этого я тоже держу отдельную ячейчку с кодом:
!cd /content/Fooocus/
!tar -cvf ../arch.tar ./outputs
Отзывы
Написал Денис
Опубликовано в: Настройка модуля HC-06Написал deman696
Опубликовано в: Настройка модуля HC-06Написал Борис
Опубликовано в: Сравнение современных СУБДНаписал Den
Опубликовано в: Редактирование сейвов Mass Effect 1Написал Артём
Опубликовано в: Запрет обновлений Google Chrome