Як працює Stable Diffusion — нейромережа для створення зображень з відкритим кодом
Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!
Моє знайомство з нейромережами для створення зображень почалося з DALL-E. Після заповнення анкети на сайті я отримав шаблонну відповідь про те, що тестувати їхню нейромережу — велика честь! А якщо серйозно — запит доданий до списку очікування, щоб забезпечити відповідальне використання та відмінний досвід :-)
З Midjourney було простіше — одразу затвердили безкоштовний акаунт з прив’язкою до e-mail та можливістю генерувати зображення у чат-боті з обмеженням на 25 команд.
І, нарешті, зовсім недавно (22 серпня 2022 року) вийшла у відкритий доступ Stable Diffusion — це означає, що будь-хто може встановити її на власний комп’ютер і, за наявності достатньо потужної відеокарти (бажана NVIDIA з 6+ GB), генерувати зображення за будь-якими запитами, в промислових кількостях.
До речі, ентузіасти вже створюють на гітхабі свої форки оригінальної версії, що дозволяють обходити апаратні обмеження — наприклад, ділять дані на шматки, і по черзі поміщають у відеопам’ять або адаптують під AMD Radeon і тому подібне.
1. Як це працює
Перш ніж витрачати час на налаштування локальної версії, раджу потестувати на відкритому ресурсі, раптом не сподобається. Наприклад, ось тут можна спробувати.
У ’Enter your prompt’ вводимо опис зображення, наприклад про кота в незвичних обставинах:
Commissioned artwork of a black-and-white cat sunbathing on the beach, painted todd lockwood, jeff easley, greg rutkowski, james gurney, artgerm, digital art, trending on artstation
Натискаємо кнопку ’Generate image’. Результат:
4 зображення (за дефолтом) створюються за
Іноді проскакує помилка ’This application is too busy! Try again soon.’ — ось ще один привід, щоб запустити нейромережу локально і не залежати від напливу відвідувачів на сайті. Коли я запускав її у себе, використовуючи відеокарту GeForce RTX 3080 10 ГБ, 4 зображення генерувалися менше ніж за пів хвилини.
2. Як запустити локально
Для себе я випробував різні модифікації і поки що зупинився на суміщенні цих двох:
1) Main (forked from CompVis/stable-diffusion);
2) Stable Diffusion web UI.
У вас повинні бути встановлені Python (тестував з версією Python 3.9.12) і Anaconda або Miniconda. Також потрібно завантажити та скомпонувати головну та UI гiлки stable-diffusion з гiтхаба, ваги (остання версія — sd-v1-4.ckpt => model.ckpt ~4 Gb, звідси та додаткові моделі, наприклад, GFPGANv1.3.pth для корекції обличчя.
Для зручності я зібрав усі файли в загальний архів і виклав на OneDrive.
Коротка інструкція:
1. Завантажити архів stable-diffusion_files.zip з OneDrive.
2. Розпакувати.
3. Встановити Miniconda для всіх користувачів: Miniconda3-latest-Windows-x86_64.exe (я встановив в C:\ProgramData\Miniconda3).
Під час інсталяції не ставте галочку «Register Miniconda as the system Python 3.9», якщо вона вам не потрібна.
4. Скопіювати теку stable-diffusion зі збереженням файлової структури на свій жорсткий диск (я помістив її в корінь C:\).
5. Запустити webui.cmd.
Дочекайтеся закінчення Installing pip dependencies, це може зайняти
Якщо все пройде вдало, після повного завантаження скрипту ви повинні побачити повідомлення про локально запущений сервер:
Running on local URL: localhost:7860
6. Закрийте консоль.
7. Скопіюйте моделі з stable-diffusion(models)\src в C:\stable-diffusion\src.
8. Знову запустіть webui.cmd.
Тепер завантаження піде швидше і в консолі мають з’явитися повідомлення про завантаження моделей:
Found GFPGAN
Found RealESRGAN
Після появи Running on local URL: localhost:7860 — залиште консоль відкритою та перейдiть за лінком у будь-якому браузері (я тестував у Chrome):
3. Як генерувати зображення
Тепер спробуємо намалювати янгола. Вводимо опис:
Angel, perfectly-centered-painting of christina hendricks, sweaty, dynamic action pose, insane, intricate, highly detailed, digital painting, artstation, concept art, smooth, sharp focus, illustration, unreal engine 5, 8k, art by artgerm and greg rutkowski and alphonse mucha
Натискаємо ’Generate’. Готово:
Наведіть курсор на зображення і виберіть його лівою кнопкою миші. Правим кліком можна зберегти зображення янгола, але її очі лякають!
Спробуємо це виправити. Натисніть кнопку ’Send to lab’. Після переходу на вкладку ’Image Lab’ виберіть ’Fix Faces’:
Натисніть ’Process’ і дочекайтеся появи покращеного зображення. Ну, ось, зовсім інша річ:
Маємо ще таку вкрай цікаву опцію створення зображення на базi іншого зображення, навіть за спрощеним контуром.
Перейдіть на вкладку ’Image-to-Image Unified’. Тут завантажено приклад контуру ландшафту. Задайте опис:
A fantasy landscape, trending on artstation.
Натисніть ’Generate’. Результат:
Пам’ятаєте такий популярний мем: намалювати сову дуже просто?
Нейромережа зробила цей жарт реальністю:
An owl perched on a branch, high-quality, Pixiv, Greg Rutkowski, ArtStation, Oil on canvas
4. Недоліки
Адикція
Колись давно читав у журналі «Всесвiт» фантастичне оповідання про книгу з нескінченними сторінками. Мова, якою вона написана, була неземною і неперекладною, але, на щастя, траплялися малюнки. Чоловік, який володів нею, потрапив у залежність — гортав та гортав cторінки, копіюючи кожне нове зображення. Він навіть хотів спалити книгу, але побоювався, що нескінченна книга і горіти буде вічно і заповнить димом всю планету. Тоді він зібрався з духом і підкинув книгу до крамниці букініста.
Так от, нескінченні малюнки від нейромережі викликають залежність, гіршу за цю ;-)
Моторошна долина
«Моторошна долина», «неприродна долина» — гіпотеза, згідно з якою людиноподібні роботи викликають відразу, якщо вони виглядають і поводяться дуже схоже на людину.
Деякі зображення, які генерує нейромережа настільки зламані і дивні, що можуть викликати неприємні почуття, схожі на ефект «моторошної долини». Приклад:
Але, як жартують деякі користувачі, той, хто дивився в дитинстві мультфільми студії «Арменфільм» не підвладний цьому страху ;-)
5. Висновок
Незважаючи на вищезгадані проблеми, у нейромереж — захопливе майбутнє та цікаве сьогодення, тож раджу ознайомитися з прикладами запитів та згенерованих зображень, представлених на цьому сайті:
34 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів