在加载模型时,stable-diffusion-webui会计算模型的hash。最近,我注意到我经常使用的一个模型的hash发生了变化,这让我怀疑模型文件本身是否发生了改变。
经过一番研究,我发现原因是在1月份的一次更新中,stable-diffusion-webui更换了hash的计算方法,从之前的方法转为了sha256。因此,同一个模型在两种方法下计算出的hash不同。
下面是一些模型的hash以及从源码中找到的计算老hash的方法:
模型名字 | sha256 | 老hash |
---|---|---|
animefull-final-pruned.ckpt | 89d59c3dde | 925997e9 |
Anything-V3.0-pruned.ckpt | 543bcbc212 | 2700c435 |
Anything-V3.0.ckpt | 8712e20a5d | 6569e224 |
下面是从源码中翻出来的计算老hash的方法:
python
<span>def</span> <span>model_hash</span>(<span>filename</span>):
<span>try</span>:
<span>with</span> <span>open</span>(filename, <span>"rb"</span>) <span>as</span> file:
<span>import</span> hashlib
m = hashlib.sha256()
file.seek(<span>0x100000</span>)
m.update(file.read(<span>0x10000</span>))
<span>return</span> m.hexdigest()[<span>0</span>:<span>8</span>]
<span>except</span> FileNotFoundError:
<span>return</span> <span>'NOFILE'</span>
<span>print</span>(model_hash(<span>"Anything-V3.0.ckpt"</span>)) <span># -> 6569e224</span>
通过以上方法,我们可以计算出模型的老hash。如果你注意到模型的hash发生了变化,那可能是因为stable-diffusion-webui更新了hash的计算方法。这对于模型的版本控制和验证非常重要。
请确保在使用模型时,使用正确的hash进行验证,以确保模型文件的完整性和一致性。
结论
Stable Diffusion攻略的stable-diffusion-webui模型在加载模型时会计算模型的hash。最近的更新导致hash的计算方法从之前的方法转为了sha256,因此同一个模型在两种方法下计算出的hash不同。通过使用给出的计算老hash的方法,我们可以获得模型的老hash。确保使用正确的hash进行验证以保证模型文件的完整性和一致性。
2、本站所有文章、图片、资源等如果未标明原创,均为收集自互联网公开资源;分享的图片、资源、视频等,出镜模特均为成年女性正常写真内容,版权归原作者所有,仅作为个人学习、研究以及欣赏!如有涉及下载请24小时内删除;
3、如果您发现本站上有侵犯您的权益的作品,请与我们取得联系,我们会及时修改、删除并致以最深的歉意。邮箱: i-hu#(#换@)foxmail.com