Stable Diffusion NCNN
1.0.0
C ++、サポートされたTXT2IMG、IMG2IMGに基づいてNCNNフレームワークによって実装された安定した拡散!
Zhihu:https://zhuanlan.zhihu.com/p/58252276
ビデオ:https://www.bilibili.com/video/bv15g411x7hc
txt2imgパフォーマンス(It-itとramの時間)
| per-it | I7-12700(512x512) | I7-12700(256x256) | snapdragon865(256x256) |
|---|---|---|---|
| 遅い | 4.85S/5.24G(7.07g) | 1.05s/3.58g(4.02g) | 1.6S/2.2g(2.6g) |
| 速い | 2.85S/9.47G(11.29g) | 0.65s/5.76g(6.20g) |
2023-03-11:IMG2IMG Androidを追加して新しいAPKをリリースしてうれしい
2023-03-10:IMG2IMG X86を追加してうれしいです
2023-01-19:x86でスピードアップしてラムを減らし、x86で動的な形状
2023-01-12:最新のNCNNコードに更新して最適化モデルを使用し、Androidを更新し、メモリモニターの追加
2023-01-05:256x256モデルをx86プロジェクトに追加します
2023-01-04:X86でMHA OPをマージして終了し、高速GELUを有効にします


すべてのモデルとexeファイル百度网盘またはGoogleドライブまたはリリースからダウンロードできます
ncnnモデルのみが必要な場合は、硬件模型库-设备专用模型から検索できます。より速くて無料になります。
AutoencoderKL-fp16.bin, FrozenCLIPEmbedder-fp16.bin, UNetModel-MHA-fp16.bin, AutoencoderKL-encoder-512-512-fp16.binて、 assetsフォルダーに配置しますmagic.txtで構成を設定すると、各行は次のとおりです。stable-diffusion.exeを実行します注:SDモデルの要件を遵守してください。違法な目的で使用しないでください
AutoencoderKL-fp16.bin, FrozenCLIPEmbedder-fp16.bin, UNetModel-MHA-fp16.bin, AutoencoderKL-encoder-512-512-fp16.binて、 assetsフォルダーに配置します cd x86/linux
mkdir -p build && cd build
cmake ..
make -j $( nproc )AutoencoderKL-fp16.bin, FrozenCLIPEmbedder-fp16.bin, UNetModel-MHA-fp16.bin 、およびそれらをbuild/assetsフォルダーに配置します./stable-diffusion-ncnnAutoencoderKL-fp16.bin, FrozenCLIPEmbedder-fp16.bin, UNetModel-MHA-fp16.bin 、およびそれらをassetsフォルダーに配置しますStable拡散で使用される3つのONNXモデルをアップロードしました。これにより、興味深い作業を行うことができます。
上記のリンクからそれらを見つけることができます。
ncnn (input & output): token, multiplier, cond, conds
onnx (input & output): onnx::Reshape_0, 2271
z = onnx(onnx::Reshape_0=token)
origin_mean = z.mean()
z *= multiplier
new_mean = z.mean()
z *= origin_mean / new_mean
conds = torch.concat([cond,z], dim=- 2 ) ncnn (input & output): in0, in1, in2, c_in, c_out, outout
onnx (input & output): x, t, cc, out
outout = in0 + onnx(x=in0 * c_in, t=in1, cc=in2) * c_out