La demo di Stable Diffusion WebGPU è uno strumento online utile che ti aiuta a generare immagini con facilità utilizzando semplicemente il tuo browser web.
Questa applicazione web è costruita sul framework create-react-app e si basa su JavaScript per funzionare. Per iniziare, assicurati di utilizzare l'ultima versione di Chrome e che JavaScript sia abilitato. Dovrai anche attivare un paio di funzionalità sperimentali: "WebAssembly Sperimentale" e "Integrazione Promessa JavaScript WebAssembly Sperimentale (JSPI)" nelle impostazioni del tuo browser.
Una volta che sei tutto pronto, questo strumento genera immagini attraverso una serie di passaggi. Ogni passaggio richiede circa un minuto, con ulteriori 10 secondi necessari per il decodificatore VAE per completare l'immagine. Solo un avviso: se hai aperti i DevTools mentre esegui l'applicazione, potrebbe rallentare tutto di circa il doppio!
Il modello UNET, che si occupa del lavoro pesante di creazione delle tue immagini, opera sulla CPU. Questa scelta è fatta per migliori prestazioni e risultati più accurati rispetto all'esecuzione sulla GPU. Si consiglia di seguire almeno 20 passaggi per risultati decenti, ma se lo stai solo provando, 3 passaggi faranno il lavoro.
Questa applicazione presenta un'interfaccia user-friendly che ti consente di caricare facilmente il modello, avviare la generazione dell'immagine e visualizzare i risultati. Se incontri qualche problema mentre la usi, non preoccuparti; c'è una sezione FAQ con suggerimenti per la risoluzione dei problemi per aiutarti.
Tieni presente che, mentre utilizza una GPU, l'implementazione WebGPU in onnxruntime è ancora nelle fasi iniziali. Questo significa che potresti incontrare alcune operazioni incomplete, poiché i dati devono essere continuamente trasferiti tra la CPU e la GPU, il che può influenzare le prestazioni. Attualmente, il multi-threading non è supportato e alcune limitazioni in WebAssembly significano che non puoi creare memoria a 64 bit utilizzando SharedArrayBuffer.
La buona notizia è che lo sviluppatore è a conoscenza di questi problemi e sta lavorando attivamente a soluzioni attraverso modifiche e patch proposte. Se sei interessato a sperimentare con lo strumento da solo, il codice sorgente è disponibile su GitHub. C'è anche una versione patchata di onnxruntime che ti consente di lavorare con modelli di linguaggio di grandi dimensioni tramite transformers.js, anche se la sua affidabilità può variare a seconda della situazione. Inoltre, lo sviluppatore prevede di inviare una richiesta di pull al repository onnxruntime per aiutare a migliorarlo ulteriormente.
∞