Демонстрація Stable Diffusion WebGPU - це зручний онлайн-інструмент, який допомагає вам легко генерувати зображення, використовуючи лише ваш веб-браузер.
Ця веб-програма побудована на фреймворку create-react-app і покладається на JavaScript для функціонування. Щоб почати, переконайтеся, що ви використовуєте останню версію Chrome і що JavaScript увімкнено. Вам також потрібно буде активувати кілька експериментальних функцій: "Експериментальний WebAssembly" та "Експериментальна інтеграція JavaScript Promise для WebAssembly (JSPI)" у налаштуваннях вашого браузера.
Коли ви все налаштували, цей інструмент генерує зображення через серію кроків. Кожен крок займає близько хвилини, з додатковими 10 секундами, необхідними для завершення зображення декодером VAE. Просто зауважте — якщо у вас відкриті DevTools під час запуску програми, це може сповільнити все приблизно вдвічі!
Модель UNET, яка виконує основну роботу зі створення ваших зображень, працює на ЦП. Цей вибір зроблений для кращої продуктивності та більш точних результатів у порівнянні з виконанням на ГП. Рекомендується пройти принаймні 20 кроків для прийнятних результатів, але якщо ви просто пробуєте, 3 кроки будуть достатніми.
Ця програма має зручний інтерфейс, який дозволяє вам легко завантажити модель, розпочати генерацію зображень і переглянути результати. Якщо ви зіткнетеся з будь-якими проблемами під час використання, не хвилюйтеся; є розділ FAQ з порадами щодо усунення неполадок, щоб допомогти вам.
Майте на увазі, що хоча вона використовує ГП, реалізація WebGPU в onnxruntime все ще на ранніх стадіях. Це означає, що ви можете зіткнутися з деякими неповними операціями, оскільки дані повинні постійно передаватися між ЦП і ГП, що може вплинути на продуктивність. Наразі багатопоточність не підтримується, а певні обмеження в WebAssembly означають, що ви не можете створити 64-бітну пам'ять, використовуючи SharedArrayBuffer.
Добра новина полягає в тому, що розробник усвідомлює ці проблеми і активно працює над рішеннями через запропоновані зміни та патчі. Якщо ви зацікавлені в експериментах з інструментом самостійно, вихідний код доступний на GitHub. Також є патчована версія onnxruntime, яка дозволяє вам працювати з великими мовними моделями через transformers.js, хоча її надійність може варіюватися в залежності від ситуації. Крім того, розробник планує подати запит на злиття до репозиторію onnxruntime, щоб допомогти покращити його далі.
∞