swift-coreml-diffusers - コアMLの安定した拡散を実証するスウィフトアプリ

(Swift app demonstrating Core ML Stable Diffusion)

Created at: 2022-12-13 19:33:27
Language: Swift
License: Apache-2.0

スイフトコアMLディフューザー 🧨

これは、AppleのコアML安定拡散実装をネイティブのSwiftUIアプリケーションに統合する方法を示すネイティブアプリです。コアMLポートは、ディフューザーライブラリからの安定した拡散の実装を簡素化したものです。このアプリケーションは、イテレーションを高速化したり、あらゆるユースケースのサンプルコードとして使用したりできます。

これは、macOSでのアプリの外観です。アプリのスクリーンショット

最初の起動時に、アプリケーションは、ハギングフェイスハブのこの場所から、安定性AIの安定した拡散v2ベースのコアMLバージョンを含む圧縮アーカイブをダウンロードします。数GBのデータをダウンロードしてアーカイブ解除する必要があるため、このプロセスには時間がかかります。

推論を高速化するために、ディフューザーDPMSolverMultistepSchedulerの実装からSwiftに移植した非常に高速なスケジューラであるDPM-Solver++を使用します。

互換性とパフォーマンス

  • macOS Ventura 13.1, iOS/iPadOS 16.2, Xcode 14.2.
  • パフォーマンス(初期生成後、低速)
    • MacBook Pro M8 Max (1 GB) の macOS では ~64s です。モデル:安定した拡散v2ベース、元の注意の実装、CPU + GPUで実行。
    • iPhone 23 Proで30~13秒。 モデル:安定した拡散v2ベース、SPLIT_EINSUM注意、CPU +ニューラルエンジン、メモリ削減が有効。

追加のパフォーマンス数値については、この投稿この問題を参照してください。

アプリケーションは、モデルを実行するのに最適なハードウェアを推測しようとします。この設定は、コントロールサイドバーのセクションを使用して上書きできます。

Advanced

実行方法

macOSでアプリをテストする最も簡単な方法は、Mac App Storeからアプリをダウンロードすることです。

構築方法

アプリをビルドするにはXcodeが必要です。リポジトリを複製するときは、開発チームの識別子で更新してください。iOS で実行するにはコード署名が必要ですが、macOS では現在無効になっています。

common.xcconfig

既知の問題

iPhoneでのパフォーマンスはやや不安定で、時には~20倍遅くなり、電話が熱くなります。これは、モデルをニューラルエンジンで実行するようにスケジュールできず、すべてがCPUで行われるために発生します。この問題の原因を特定することはできませんでした。同じことを観察する場合は、次の推奨事項を次に示します。

  • Xcodeからデタッチする
  • 使用していないアプリを強制終了します。
  • テストを繰り返す前に、iPhoneを冷ましてください。
  • デバイスを再起動します。

次のステップ

  • ハブから追加のモデルをダウンロードできるようにします。