Генератори зображень на сучасному етапі єоднією з найцікавіших можливостей використання штучного інтелекту. Однак існують деякі проблеми з існуючими рішеннями: деякі є дорогими (наприклад, Midjourney), інші обмежені у функціональності (як, наприклад, Bing), або мають складний інтерфейс (як, наприклад, Stable Diffusion). Тут на сцену виходить Fooocus!
Хочу одразу зауважити, що я користуюсь Fooocus всього кілька днів і ще багато в чому не розібрався повністю. Тому це не буде детальний гайд абсолютно по всіх можливостях ШІ. Буду розповідати й показувати те, з чим вже встиг попрацювати.
Що таке Fooocus та як його встановити
Fooocus, на відміну від Midjourney та інших схожих генераторів зображень, функціонально ідентичний, проте відзначається кількома перевагами, які роблять його більш універсальним і зручним у використанні. Краще продемонструвати ці переваги на конкретних прикладах, ніж просто перераховувати їх.
Найголовніше: Fooocus повністю безкоштовний, безлімітний та працює офлайн, використовуючи виключно ресурси вашого комп’ютера. Ложка дьогтю в тому, що генерація зображень — процес вимогливий до ресурсів ПК. Мою 4060 ТІ завантажує на 100%. Для відносно швидкої генерації рекомендовані відеокарти 30хх чи 40хх від Nvidia. Слабші карти, гадаю, теж впораються, але зображення генеруватимуться відчутно довше. В моєму випадку на базових налаштуваннях процес триває 20-40 секунд в залежності від складності промпту.
Інсталяція Fooocus
Я описуватиму встановлення на Windows. Для macOS та Linux процес може відрізнятися (не цікавився). Все максимально просто:
- Йдемо на GitHub і завантажуємо найновішу версію Fooocus (ось тут). Наразі це V2.
- Отримуємо архів, який потрібно розпакувати куди-небудь на комп’ютер. Переконайтесь, що у вас достатньо вільної пам’яті на диску. Сам архів «важить» менш як 2 ГБ, однак пізніше все це добро розростеться в рази (у мене Fooocus вже з’їв 35 ГБ).
- Після розархівації у вас з’являється відповідна папка, у якій нас цікавлять лише три файли:
- run;
- run_anime (якщо вам подобається аніме);
- run_realistic.
- Вам залишається запустити будь-який з цих файлів. Fooocus активує консоль і почне самостійно завантажувати потрібні йому моделі для генерації зображень. Вже не пам’ятаю, чи потрібно було тиснути Y + Enter для підтвердження. Здається, навіть це не знадобилося. Тобто все максимально автоматизовано.
- Коли завантаження завершиться, у вашому браузері відкриється вкладка Fooocus. Все готово, можна переходити до найцікавішого. Головне — не закривати консоль поки ви працюєте з Fooocus, інакше нічого працювати не буде.
Інтерфейс Fooocus може здатися аж занадто мінімалістичним, однак почекайте, далі розберемося, що тут до чого.
Перш ніж перейти до генерації, скажу кілька речей. Після перезапуску Fooocus всі ваші попередні налаштування скидаються (і це насправді добре, щоб нічого не зламати). Запускати Fooocus завжди потрібно через зазначені вище файли (run чи інший). Одразу автоматично запускається консоль, а вже потім відкривається вкладка. Іноді це відбувається практично моментально, іноді «думає» якийсь час. Потрібно просто почекати.
Генеруємо!
У більшості аналогів процес аналогічний: введення текстового запиту англійською мовою, натискання кнопки Generate та очікування результату. Зазвичай я запускаю Fooocus через run_realistic для отримання більш реалістичних зображень. Однак різні творчі стилі можуть не завжди працювати так, як потрібно. Тому для більшої гнучкості можна скористатися опцією run.
Пропоную почати з якогось відносно простого промпта: «20-річна дівчина в капелюсі на соняшниковому полі» (англійською).
За замовчуванням, Fooocus генерує два варіанти зображення (кількість можна змінити, активувавши чекбокс Advanced). Я відкрив те, яке мені сподобалося більше:
Річ у тім, що в Fooocus, якщо я все вірно зрозумів, вже завантажена мовна модель GPT-2, яка аналізує ваші промпти та логічно їх доповнює. І, маю сказати, це зручно.
Тепер давайте активуємо чекбокс Advanced і подивимось, що в нас тут є.
- По-перше, налаштування якості генерації: Швидкість, Якість та Екстремальна швидкість (останню не рекомендую).
- По-друге, співвідношення сторін та роздільна здатність зображення. Дуже зручно, бо не треба це прописувати в промпті.
- По-третє, кількість згенерованих зображень за раз (за замовчуванням 2).
- По-четверте, «негативні промпти», тобто чого не повинно бути на зображенні (Fooocus генерує їх самостійно, але можете змінити).
- По-п’яте, чекбокс Random. Якщо він активований, ШІ наступного разу згенерує повністю нове зображення з цим же промптом, якщо вимкнений — намагатиметься відтворити максимально схожу картинку (але не завжди).
Тепер давайте перейдемо на вкладку Style. Ось тут починається ще більше магії. У Fooocus вже є десятки стилів, які вам просто потрібно активувати, щоб отримати бажаний результат. При виборі стилів можуть дозавантажуватися додаткові файли (дивіться консоль).
Зверніть увагу! В залежності від того, через який файл ви запускали Fooocus, за замовчуванням будуть активовані різні стилі. Додаткові, які ви активуєте вручну, можуть «конфліктувати» з ними чи між собою. В моєму випадку активовані «реалістичні» стилі, тому якщо я додатково виберу якесь «аніме», зображення все одно буде реалістичним. Для експериментів можете вимикати всі зайві стилі й залишати лише ті, які вам зараз потрібні.
Давайте просто для прикладу пограємось з деякими стилями й подивимось, що з цього вийде (промпт я не змінюю).
На цьому етапі я зрозумів, що трохи затупив і використав run_realistic, через що всякі «креативні» штуки не заводились як слід. Тому далі перемкнувся на run, вимкнув усі стилі за замовчуванням і вмикав по одному ті, які мені потрібні.
Стилів тут дофіга і трошки. Експериментуйте, комбінуйте, робіть що завгодно. Можете взагалі вимкнути всі стилі й просто прописати все, що вам потрібно, текстом — Fooocus вас зрозуміє.
Поруч із вкладкою Стилі є ще дві — Model та Adanced. Я лише трохи цікавився, що там можна змінювати. Але поки що не експериментував, залишаю вам для досліджень. Бо є набагато цікавіші речі в Fooocus.
Ускладнюємо задачу, «ремонтуємо» руки та очі
Fooocus впевнено створює вражаючі портрети зблизька, не допускаючи серйозних дефектів. Проте, коли модель генерує повнорозмірні або тілесні зображення, виникають певні труднощі, особливо з обличчям. Зазвичай обличчя може виглядати не так, як треба, а руки часто виглядають, ніби переплетені сосиски. Однак розробники здійснили справжню магію.
Тож, давайте згенеруємо зображення дівчини, де обличчя не займає весь екран (a girl in an evening dress walking down the street of the old city). Отримуємо такий результат:
Руки ШІ вирішив сам обрізати, бо знає, що може бути «шляпа», а от обличчя, хочеш не хочеш, а генерити треба. І тут ми вже бачимо проблеми з очима.
Що ж робити в такій ситуації?
Елементарно! Активуємо під фотографією чекбокс Input Image і бачимо декілька вкладок. Нас цікавить Inpaint or Outpaint. Активуємо вкладку — нам пропонують додати зображення. Просто «беремо» згенеровану картинку зверху і перетягуємо мишкою в це поле.
Під фото є пункт Method. Клікаємо і вибираємо Improve Detail (face, hand, eyes, etc.). Тепер ви можете пензликом виділити проблемну частину зображення (в нашому випадку це очі, але може бути все обличчя) і вибрати поруч пункт beautiful eyes.
Тепер просто знову натискаємо Generate, і Fooocus перегенеровує виключно очі у більш високій якості. Аналогічно можна робити з руками та іншими проблемними деталями.
Ми отримуємо абсолютно те саме зображення, але з класними очима! Я спеціально обрізав фото, щоб видно було різницю:
З руками зазвичай складніше, а от обличчя виправляє дуже пристойно. Не лише жіночі, а й чоловічі. Ось, наприклад, дідусь, якому мені теж довелося фіксити очі:
І на цьому моменті, можливо, ви вже здогадуєтесь, в чому наступна дуже крута фішка Fooocus. Так, ви можете додавати що завгодно на згенеровані зображення чи справжні фото. Все це також робиться через Inpaint or Outpaint.
Залишимо нашу дівчину в спокої, трохи попрацюємо над дідом. Для початку я хочу трохи розширити це зображення. Для цього я на вкладку Inpaint or Outpaint закидаю цю картинку, обираю пункт Inpaint or Outpaint в Method і клікаю чекбокси Left, Right, Top та Bottom. Можна обирати те, що вам потрібно, а от вказати, на скільки розширити зображення, не вийде. Але можете просто повторювати процедуру декілька разів поспіль: збільшили, перетягнули згенероване зображення в Inpaint or Outpaint, ще раз збільшили і т. д. Жодних промптів при цьому прописувати не потрібно.
Кайф! Але якщо придивитися, можна побачити «стики». А складний фон типу лісу Fooocus часом взагалі домальовує криво. Але Firefly від Adobe з цим також часто не справляється. В нашому випадку проблемні місця можна пофіксити в Фотошопі або ж спробувати перегенерувати прямо тут. Я обрав саме другий варіант — виділив «шви» щіточкою і жмякнув Generate. Ідеально!
Ну що ж, тепер пропоную перевдягнути діда в стильний фрак. Картинка залишається в Inpaint or Outpaint, а в пункті Method обираємо Modify Content і зліва пишемо «stylish tailcoat, b/w» (ч/б, тому що може почати генерувати в кольорі). Тепер щіточкою виділяємо вбрання діда і тиснемо Generate.
Залишилось надіти циліндр і можна йти на побачення.
Як бачите, додані окремо елементи все ж трохи виділяються. Але це працює, і працює прям дуже непогано! Таким чином можна додавати на зображення майже що заманеться. До повного абсурду:
Але це ще не все!
Можливо, ви вже знаєте про рожевоволосу дівчину, на ім’я Aitana Lopes. У неї 242 тис. підписників в Інстаграм і вона створена ШІ. І це цікаво для нас. Більшість генераторів зображень можуть створювати людей зі схожою, але все ж доволі різною зовнішністю. А у Aitana Lopes обличчя прям дуже схоже на різних фото.
Ви все правильно зрозуміли. Fooocus це також вміє. Тому відправляємо нашого діда кататися на мотоциклі! Для цього вибираємо вкладку Image Prompt (зліва від Inpaint or Outpaint), завантажуємо в перше ж вікно нашого діда і, важливо, скролимо вниз і активуємо чекбокс Advanced. Під фото з’являється кілька налаштувань і бігунки:
- Stop At — скільки кроків ШІ зробить, дублюючи оригінал, перш ніж почати генерувати щось своє.
- Weight — наскільки сильно буде загалом повторений оригінал.
Може, я тут трохи помиляюсь з поясненнями, але в будь-якому разі треба експериментувати з бігунками — збільшувати Stop At, щоб зберігати зовнішність, тягати Weight, щоб отримати потрібний результат. І не забудьте вимкнути Random на вкладці Setting з правого боку.
І йошкі-матрьошкі, це ж точно наш дід! Їде не байку до своєї молодиці через соняшникове поле.
Тепер залишається «пролікувати» йому очі й розширити зображення для епічності і хоч зараз в кіно зніматись!
Або можемо відправити його в спортзал, наприклад (тут і далі очі й руки не фіксив).
А краще — на риболовлю!
Коротше, можете створити власного діда-інфлюєнсера й влаштувати йому яскраве життя, якого у вас самих немає.
Чи можна робити так само з власними фото? Не дуже. Перегенерувати своє обличчя, щоб воно було схожим на вас, складно. Навіть функція FaceSwap не особливо добре працює. Можливо, в наступних оновленнях стане краще. Але поки що результати дуже посередні.
Дрібниці, про які я ще не сказав
Тут буквально тезисно:
- Як і в Midjourney, можна зробити варіації готових зображень, а також апскейл зображення. Працює добре!
- Голих дівчат генерувати можна
- На вкладці Setting, якщо проскролити вниз, можна клікнути History Log — відкриється вкладка з раніше згенерованими зображеннями та їхніми промптами. Але, схоже, сюди не додаються зображення, після дообробки (очі, руки, розширення тощо).
- Якщо десь щось не те наклацали в налаштуваннях чи заплутались, можна перезавантажити вкладку і все скинеться до дефолтних налаштувань.
- Для перекладу промптів з української на англійську я рекомендую DeepL (якщо ваш інгліш, як і мій, не дуже).
- Якщо не вдається отримати зображення в потрібному вигляді, перевіряйте, чи не активовані стилі, які можуть конфліктувати між особою.
- Можна завантажувати в Fooocus декілька фото одночасно і «змішувати» їх. Я поки особливо не пробував, але наче працює.
А загалом — експериментуйте! Безлім же.
Висновки
Як і будь-який генератор зображень, Fooocus місцями працює не супер-коректно. Він не завжди генерує такі якісні зображення, як той же Midjourney, зате дає змогу працювати з готовими картинками «напильником», а не перегенеровувати їх заново й експериментувати з промптами, щоб отримати те, що потрібно.
Я навіть не став робити особливий акцент на якихось відносно простих зображеннях. З ними у Fooocus взагалі все чудово! Самі дивіться (зображення без додаткового апскейлу, їх ще можна деталізувати).
Як бачите, можна створювати абсолютно різні зображення. Головне — щоб вистачило вашої фантазії та потужностей ПК. Особисто я в захваті. Навіть попри деякі проблемні моменти, Fooocus дуже кайфовий. Рекомендую!
На YouTube вже є доволі детальні відео про Fooocus. Я ж дізнався про нього завдяки каналу Діми Малєєва (відео).