Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When uploading SDXL LoRA merged by sd-scripts on CivitAI, they reports "hash corrected" #1722

Closed
JujoHotaru opened this issue Oct 25, 2024 · 7 comments

Comments

@JujoHotaru
Copy link

JujoHotaru commented Oct 25, 2024

sd-scriptsを使ってSDXL用LoRAを開発・配布させていただいております。いつもお世話になっております。

svd_merge_loraでマージして作成したSDXL用LoRAについて、動作には問題ないのですが、このたびこれらをCivitAIで公開するためアップロードしたところ、システム通知で以下のような報告が上がり、ファイルに変更が加えられていました。
これまで10個以上アップしているのですが、全件でこれが発生しております。

I have no problem with the operation of LoRAs for SDXL created by merging with svd_merge_lora, but when I have uploaded these for publication on CivitAI, the following report was raised in the system notification and changes were made to the LoRA files.
I have uploaded more than 10 so far and this has occurred in all cases.

The hash in the metadata of your resource "(LoRA Name)" has been corrected. Please redownload it to ensure that your images report the correct hash going forward.

実際の表示:

image

どうも、アップしたLoRAファイルのメタデータに記録されているハッシュ値が、CivitAI側が独自に計算したハッシュと適合しないことから、CivitAIがメタデータを書き換えたよ、ということのようです。

こちらの現象、sd-scriptsが生成時にメタデータに書き込んでいるハッシュが実際に間違っているのか、あるいはCivitAI側に何か問題があるのかが判別できず、念のため報告させていただきます。

It seems that the hash value recorded in the metadata of the uploaded LoRA file does not match the hash that CivitAI has calculated on its own, and that CivitAI has rewritten the metadata.

I can't determine whether the hash that sd-scripts writes to the metadata at the time of generation is actually wrong or whether there is some problem on the CivitAI side. I reported this just in case.

@JujoHotaru
Copy link
Author

JujoHotaru commented Oct 25, 2024

参考までに、実際のLoRAファイルがこちらになります。

メタデータを取り出して比較してみたところ、sshs_model_hashの値だけ変わっていました。(それ以外は一致)

@JujoHotaru
Copy link
Author

関係性はよくわかっておりませんが、似た問題?の報告がありました。
ostris/ai-toolkit#130

@kohya-ss
Copy link
Owner

ご報告ありがとうございます。svd_merge_loraで処理後にハッシュ値計算しているのですが、さらにそのあとで指定された精度に変換してから保存しているため、save_precisionprecisionが異なる場合に、ハッシュ値の不一致が発生しているのではないかと思います。早めに確認、修正いたします。

Thank you for reporting this. The hash value is calculated after processing with svd_merge_lora, but then it is converted to the specified precision before being actually saved. Therefore, if save_precision and precision are different, I think a hash value mismatch occurs. I will check and fix it as soon as possible.

@kohya-ss
Copy link
Owner

mainおよびdevブランチ等で対応いたしました。ご確認いただければ幸いです。

@JujoHotaru
Copy link
Author

ご対応ありがとうございました。
最新版svd_merge_loraでマージしたLoRAをCivitAIにアップしたところ、ハッシュ警告が出ることなくチェック完了となりました。問題なさそうです。

余談ながら、今後CivitAIにアップ予定となっていた、すでに手元にできあがっているLoRAを、以下のコマンドラインで単体合成することでハッシュだけ差し替えしようとしたのですが…

python sdxl_merge_lora.py --save_precision fp16 --no_metadata --save_to "hashfix.safetensors" --models "source.safetensors" --ratios 1.0

結果を確認したところ、CivitAIが修正したものとハッシュ値は一致するものの、以下のように先頭JSON部のパラメータが変化します。こちらは動作上は問題なさそうでしょうか。

  • "ss_network_dim": "16""ss_network_alpha": "16"が、"ss_network_dim": "Dynamic""ss_network_alpha": "Dynamic"に変化している
  • "ss_network_args": "{\"conv_dim\": 8, \"conv_alpha\": 8}",が無くなっている

@kohya-ss
Copy link
Owner

ハッシュ値が一致したとのこと、幸いです。

結果を確認したところ、CivitAIが修正したものとハッシュ値は一致するものの、以下のように先頭JSON部のパラメータが変化します。こちらは動作上は問題なさそうでしょうか。

  • "ss_network_dim": "16""ss_network_alpha": "16"が、"ss_network_dim": "Dynamic""ss_network_alpha": "Dynamic"に変化している
  • "ss_network_args": "{\"conv_dim\": 8, \"conv_alpha\": 8}",が無くなっている

メタデータ上だけの問題ですので、LoRAの動作には問題ないと思います。

こちらが異なる原因ですが、dim/alphaが混在しているとDynamicになりますが、sdxl_merge_lora.py内でLinearとConv2dの区別をしていないため、混在扱いになっているのが理由のようです。対応可能ですが、やや手間が掛かりそうですので、時間でき次第の対応とさせていただければ幸いです。もしメタデータの扱いで不都合が出るようなことがありましたらご連絡ください。

@JujoHotaru
Copy link
Author

ご確認いただきましてありがとうございました。それではこちらで運用させていただきます。

もし何かありましたら別途ご報告いたします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants