hako-mikan / sd-webui-supermerger

model merge extention for stable diffusion web ui
GNU Affero General Public License v3.0
753 stars 112 forks source link

pruneでファイルサイズが減らない? #276

Closed JujoHotaru closed 1 year ago

JujoHotaru commented 1 year ago

毎度お世話になっております。

このたびデータモデルをリリースしたのですが、SuperMergerのpruned・fp16オプションをオンにして最終出力品を作って公開したところ、ファイルサイズが3.75GBになっており、ユーザーさんより「本来は1.99GBでは?」というコメント問い合わせを受けました。

いろいろ調べてみた結果、WebUIの拡張機能である「model toolkit」を使い、データを読み込んでみたところ、数GBのgarbageデータがあると表示され、そのツールで再出力したところ1.99GBになりました。

そもそも何故元のモデルにそんなに余計なデータが入ってしまっていたのかはよくわからないのですが、数ヶ月いろいろなモデルをいろいろなバージョンのマージツールで合成してきた結果なので、途中でおかしなデータが入ってしまったのかもしれません。

そこでIssue内容なのですが、このような現象(prunedをオンにしてもファイルサイズが減らなかった)についてはSuperMergerの不具合ではなく動作上の仕様になりますでしょうか。また、SuperMergerでpruneをオンにした場合、model toolkitのように不要データを削減した出力をするようにすることは可能でしょうか。

当該データモデルはこちらになります。 https://civitai.com/models/191357/

hako-mikan commented 1 year ago

修正しました。これは余計なデータではなく、LoRAをマージした際に倍精度(64bit)でのマージが行われ、モデルの一部がで倍精度で保存されていたためです。fp16オプションの計算では単精度(32bit)を検知して半精度(16bit)に変換していたため、倍精度は無視されていました。今回の更新ですべての精度を検知して半精度に変換するよう更新しています。

JujoHotaru commented 1 year ago

ご対応ありがとうございました!SuperMergerでもファイルサイズ削減が動作することを確認しました。