Die Stable Diffusion WebGPU-Demo ist ein praktisches Online-Tool, das Ihnen hilft, Bilder ganz einfach mit nur Ihrem Webbrowser zu generieren.
Diese Webanwendung basiert auf dem create-react-app-Framework und benötigt JavaScript, um zu funktionieren. Um loszulegen, stellen Sie sicher, dass Sie die neueste Version von Chrome verwenden und dass JavaScript aktiviert ist. Sie müssen auch ein paar experimentelle Funktionen aktivieren: "Experimentelles WebAssembly" und "Experimentelle WebAssembly JavaScript Promise Integration (JSPI)" in Ihren Browsereinstellungen.
Sobald Sie alles eingerichtet haben, generiert dieses Tool Bilder durch eine Reihe von Schritten. Jeder Schritt dauert etwa eine Minute, wobei zusätzliche 10 Sekunden benötigt werden, damit der VAE-Decoder das Bild vervollständigt. Nur ein Hinweis – wenn Sie die DevTools geöffnet haben, während Sie die Anwendung ausführen, kann dies alles etwa doppelt so stark verlangsamen!
Das UNET-Modell, das die Hauptarbeit bei der Erstellung Ihrer Bilder leistet, arbeitet auf der CPU. Diese Wahl wurde getroffen, um eine bessere Leistung und genauere Ergebnisse im Vergleich zur Ausführung auf der GPU zu erzielen. Es wird empfohlen, mindestens 20 Schritte für anständige Ergebnisse durchzuführen, aber wenn Sie es nur ausprobieren, reichen 3 Schritte aus.
Diese Anwendung bietet eine benutzerfreundliche Oberfläche, die es Ihnen ermöglicht, das Modell einfach zu laden, die Bildgenerierung zu starten und die Ergebnisse anzuzeigen. Wenn Sie beim Benutzen auf Probleme stoßen, machen Sie sich keine Sorgen; es gibt einen FAQ-Bereich mit Tipps zur Fehlersuche, die Ihnen helfen.
Bitte beachten Sie, dass, obwohl es eine GPU verwendet, die WebGPU-Implementierung in onnxruntime noch in den frühen Stadien ist. Das bedeutet, dass Sie auf einige unvollständige Operationen stoßen könnten, da Daten kontinuierlich zwischen der CPU und der GPU übertragen werden müssen, was die Leistung beeinträchtigen kann. Derzeit wird kein Multithreading unterstützt, und bestimmte Einschränkungen in WebAssembly bedeuten, dass Sie keinen 64-Bit-Speicher mit SharedArrayBuffer erstellen können.
Die gute Nachricht ist, dass der Entwickler sich dieser Probleme bewusst ist und aktiv an Lösungen durch vorgeschlagene Änderungen und Patches arbeitet. Wenn Sie daran interessiert sind, das Tool selbst auszuprobieren, ist der Quellcode auf GitHub verfügbar. Es gibt auch eine gepatchte Version von onnxruntime, die es Ihnen ermöglicht, mit großen Sprachmodellen über transformers.js zu arbeiten, obwohl die Zuverlässigkeit je nach Situation variieren kann. Außerdem plant der Entwickler, einen Pull-Request an das onnxruntime-Repository zu senden, um es weiter zu verbessern.
∞