Найти в Дзене

Нейросеть Fooocus: ловкость рук и никакого мошенничества

Оглавление

Возникает из ниоткуда и исчезает в никуда

"Фооокусник", Fooocus, экран, пиксели, 2024. Фрагмент
"Фооокусник", Fooocus, экран, пиксели, 2024. Фрагмент

Сколько нейросетевых моделей вы можете назвать навскидку? Я говорю не о матриархах вроде Stable Diffusion, а о дочерних вариациях. Так сколько — пять, десять, пятнадцать? Сколько бы их ни было, можете быть уверены, что на самом деле это число намного больше. Это как айсберг, надводная часть которого видна всем, но есть ещё и подводная, в несколько раз массивнее.

Делать нейросети открытыми для использования онлайн — значит делать серьёзные финансовые вложения, в первую очередь в мощное оборудование. Не все энтузиасты, да даже и профессиональные разработчики, могут себе это позволить. Поэтому на сегодня большинство существующих моделей — оффлайновые. Они предлагаются всем желающим для скачивания и установки на личные компьютеры, где эти программы по полной будут использовать локальные ресурсы, главным образом графический процессор (GPU).

Проблема только в том, что это опять же должны быть мощные компьютеры — то есть очень дорогие, которые есть далеко не у всех. Поэтому некоторые разработчики применяют хитрое решение: они делают нейросеть доступной онлайн публично, но не на собственных серверах, а на облачных серверах Гугла. Одна из таких нейросетей называется Fooocus. Разработчики поселили её в Google Colaboratory, браузерном блокноте для программирования на языке Python. Здесь можно писать и, что важнее, запускать написанные программы, чем они (разработчики) и воспользовались.

Добираться до Fooocus чуть сложнее и дольше, чем до моделей с веб-интерфейсом. Чтобы вы сразу решили для себя, стоит вам терпеть некоторые неудобства или нет, посмотрите на несколько её картинок:

Если вы решили, что всё-таки стоит, давайте продолжать. Пусть вас не пугает начало работы: следуйте инструкциям, и всё получится.

Подключаемся

Для начала нужно попасть в Google Colaboratory и найти там Fooocus. С гугл-аккаунтом достаточно сделать это один раз. При каждом следующем заходе в Google Colaboratory вы будете получать напоминание о прошлых сессиях со ссылками, ведущими на них.

Можно провести поиск по словам google colab fooocus и перейти по первой же ссылке в выдаче, а можно перейти по ссылке прямо отсюда. Должен открыться вот такой простой блокнот:

Подключение, шаг 1
Подключение, шаг 1

Нажмите на кнопку "Подключиться" и немного подождите. При успешном подключении кнопка сменится зелёной галочкой; такая же галочка с текстом "Подключение к среде выполнения..." отобразится и в нижней строке. Теперь запускайте выполнение кода кнопкой 2:

Подключение, шаг 2
Подключение, шаг 2

Гугл предупредит вас, что не несёт никакой ответственности за всё, что может произойти дальше, поскольку это не его код. Согласно кивайте и жмите на "выполнить".

Теперь можете пойти заварить себе чашку чая или кофе, потому что этап запуска займёт некоторое время. Придётся дождаться полной загрузки всех объектов.

Пожалуйста, оставайтесь на линии. Ваш звонок очень важен для нас.
Пожалуйста, оставайтесь на линии. Ваш звонок очень важен для нас.

По завершении загрузки найдите адрес URL, по которому для вас временно будет находиться интерфейс модели. Адрес появится в блокноте дважды: в строке Running on public URL и в самой последней строке, которая начинается словами App started successful, "приложение успешно запущено".

Подключение, шаг 3
Подключение, шаг 3

Адрес имеет вид {набор цифр и букв}.gradio.live. Переходите по этой ссылке; новое окно должно открыться в новой вкладке. Интерфейс может загрузиться не сразу, это нормально. Если ничего не происходит, закройте вкладку с ним, подождите минуту и попробуйте ещё раз перейти по ссылке из fooocus_colab.

В течение всей сессии не закрывайте вкладку fooocus_colab с блокнотом. Если вы это сделаете, подключение прервётся. Ссылка перестанет работать, и вам придётся начинать всё сначала.

Осматриваемся

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

Ничего лишнего.
Ничего лишнего.

Чтобы увидеть настройки, поставьте галочку напротив пункта Advanced. В правой части экрана появится панель с четырьмя вкладками и огромным количеством настроек:

-8

Для удобства я поставлю все четыре вкладки рядом и пронумерую их. Кликните по картинке, чтобы увеличить, если захотите что-то на ней прочитать:

-9

1. Настройки (Setting)

Здесь вы можете выбрать скорость (Speed) и качество (Quality) генерации (выбрать можно, как водится, либо одно, либо другое). Ниже следуют 26 (!) вариантов пропорций изображения; ползунок настройки количества создаваемых картинок; поле Negative prompt для отрицательного запроса и поле для ввода числа зерна (или выбора случайного).

2. Стили (Style)

Если хотите, посчитайте сами, сколько их там. Мне считать надоело после первой сотни. Здесь можно найти классические жанры живописи, имитацию различных художественных техник, логотипы, оригами, наклейки, концепт-арт и много чего ещё. Будто этого недостаточно, стили можно ещё и комбинировать: вы выбираете несколько понравившихся, а нейросеть смешивает их — правда, в одной ей известных пропорциях.

При наведении курсора на каждое название стиля появляется визуальная подсказка, которая помогает понять, что примерно представляет из себя этот стиль и как будет выглядеть результат. Объясняют, по древней традиции, на котиках.

Если вы посмотрите на выполнение кода во вкладке fooocus_colab во время или после генерации, то увидите, что каждый выбранный стиль добавляет к вашей текстовой подсказке набор уточнений, например: cinematic, dynamic, detailed, strong, full, coherent, symmetry, intricate, cool, sharp, ambient и так далее.

3. Модель (Model)

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

4. Продвинутые (Advanced)

Собственно продвинутые настройки в этой группе предназначены для разработчиков и открываются только при отмеченном пункте Developer Debug Mode, а парой ползунков, расположенных повыше него, могут пользоваться и любители:

- Guidance Scale здесь определяет, насколько явно будет выражен выбранный вами художественный стиль,

- Image Sharpness отвечает за резкость изображения.

Теперь пора переходить к самому интересному.

Работаем

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

Котик здесь вылез для иллюстрации стиля SAI Cinematic
Котик здесь вылез для иллюстрации стиля SAI Cinematic

Для примера я создаю портрет благородного английского джентльмена в цилиндре и смокинге (очевидная нейрофальшивка: настоящий джентльмен никогда не наденет цилиндр со смокингом. Его носят с фраком). После некоторого ожидания получаю четыре очень достойных портрета:

-11

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

Вот джентльмены в полном размере:

По-моему, неплохой результат. Мелкие детали вроде неправильной формы радужки и зрачка и освещения на лице, не соответствующего обстановке, всё ещё выдают в них ненастоящих людей, но в целом выглядит реалистично.

***

На сегодня я, пожалуй, закончу. Используя этот материал, вы уже можете уверенно начинать генерировать картинки. Но это не вся история о Fooocus: говорят, за её созданием стоит не кто-нибудь, а человек, разработавший модель ControlNet. Это та самая штука, которая лежит в основе метода генерации "картинка по картинке", и она же позволяет "пересаживать" лица и позы людей с одного персонажа на другого. Так что у Fooocus ещё много интересных талантов, но о них поговорим в другой раз.

Важное дополнение 1

Код программы запускается каждый раз заново с нуля, у неё нет постоянного URL и, следовательно, здесь нет личного кабинета. То есть изображения нигде не сохраняются, а потому, если вам понравился результат генерации, скачивайте его сразу. При следующей генерации все предыдущие картинки будут удалены навсегда.

Важное дополнение 2

Время, выделенное каждому пользователю на работу в fooocus_colab, не безгранично. Желающих очень много, а мощности даже у Гугла ограниченны. Никто не может вам сказать точно, когда прервётся ваша сессия, поскольку это зависит от разных факторов. Поэтому лучше собраться с мыслями заранее и использовать доступное время работы с максимальной пользой. Рано или поздно вы можете увидеть сообщение об ошибке, которое будет означать, что связь прервана. Попробуйте подключиться ещё раз на странице fooocus_colab и заново перейти по ссылке ...gradio.live, а если это не поможет — подождите полчаса-час и попытайтесь ещё раз.

Важное дополнение 3

Пока что Гугл терпит нахального нахлебника, но нет гарантии, что однажды ему не надоест и код Fooocus не будет удалён из Colab. Подобные вещи уже случались. Если такое произойдёт, а мощность вашего компьютера позволяет работать с нейросетевыми моделями локально, вы можете скачать модель по ссылке и пользоваться ей сколько угодно. Если ваш компьютер слабоват — ничего не поделаешь. Не Фооокусом единым живы, в конце концов.