【排错记录】在Ubuntu上部署stable diffusion(非webui)

0x211 2024-10-19 17:03:01 阅读 75

背景

辅助做一个实验,前置条件是先能够使用stable diffusion进行输出图像,因此有了这个小任务。

过程

在Ubuntu上仿照Stable Diffusion 跑通总结_sd-v1-4.ckpt 下载-CSDN博客的过程想要运行stable diffusion v1.4,但是出现了错误

问题1:缺失必要的bin文件

错误在这里,model,_,_ = 这个语句

因为网络原因,一直都是在别的地方下载好东西再拷贝进去,这次是真的没辙了

解决:【秒解决!!huggingface_hub.utils._errors.LocalEntryNotFoundError】_an error happened while trying to locate the file -CSDN博客

修改为镜像网站

需要下载的是open_clip_pytorch_model.bin,大小3.94G,下载链接:https://cdn-lfs.hf-mirror.com/repos/a4/00/a400d3407dcb6ba1378f2783695f545ab7ba55b1b8bbea86f0eb7ab8793c3a98/9a78ef8e8c73fd0df621682e7a8e8eb36c6916cb3c16b291a082ecd52ab79cc4?response-content-disposition=inline%3B+filename*%3DUTF-8%27%27open_clip_pytorch_model.bin%3B+filename%3D%22open_clip_pytorch_model.bin%22%3B&response-content-type=application%2Foctet-stream&Expires=1726110919&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNjExMDkxOX19LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2RuLWxmcy5odWdnaW5nZmFjZS5jby9yZXBvcy9hNC8wMC9hNDAwZDM0MDdkY2I2YmExMzc4ZjI3ODM2OTVmNTQ1YWI3YmE1NWIxYjhiYmVhODZmMGViN2FiODc5M2MzYTk4LzlhNzhlZjhlOGM3M2ZkMGRmNjIxNjgyZTdhOGU4ZWIzNmM2OTE2Y2IzYzE2YjI5MWEwODJlY2Q1MmFiNzljYzQ%7EcmVzcG9uc2UtY29udGVudC1kaXNwb3NpdGlvbj0qJnJlc3BvbnNlLWNvbnRlbnQtdHlwZT0qIn1dfQ__&Signature=feYYg%7EWG2qhfuo9yLfop4Vs9jAJpMEq2Y7CfFtwUl3MIzH-FabWfL8qelqo7odAHTV-jyzIy83AfVfnsOo8SVpx-49q8tE8eTszcHZEoQca%7Eg9Igf-HMzWjIcsAJVBpSbuOHZGE7BbhOSKO3D2o98-umweNv9HadJAZSA60JBlqhPpNRh2shfIi942uBRE1EYE2Sky9EGzUKaNEL984YQs1hLwqrEZmlNyID6XfSf8hdCHRE-q0a8lRcnSb8wUn9L-Km%7EcesrNEB%7EyeHLgxrTrI6qlN9XQ-7HYcpubhbm1WRlxmcfrPaJrjsTQ75ouvX86sDwyX-slVmqi60bRRHDg__&Key-Pair-Id=K3ESJI6DHPFC7

icon-default.png?t=O83A

https://cdn-lfs.hf-mirror.com/repos/a4/00/a400d3407dcb6ba1378f2783695f545ab7ba55b1b8bbea86f0eb7ab8793c3a98/9a78ef8e8c73fd0df621682e7a8e8eb36c6916cb3c16b291a082ecd52ab79cc4?response-content-disposition=inline%3B+filename*%3DUTF-8%27%27open_clip_pytorch_model.bin%3B+filename%3D%22open_clip_pytorch_model.bin%22%3B&response-content-type=application%2Foctet-stream&Expires=1726110919&Policy=eyJTdGF0ZW1lbnQiOlt7IkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTcyNjExMDkxOX19LCJSZXNvdXJjZSI6Imh0dHBzOi8vY2RuLWxmcy5odWdnaW5nZmFjZS5jby9yZXBvcy9hNC8wMC9hNDAwZDM0MDdkY2I2YmExMzc4ZjI3ODM2OTVmNTQ1YWI3YmE1NWIxYjhiYmVhODZmMGViN2FiODc5M2MzYTk4LzlhNzhlZjhlOGM3M2ZkMGRmNjIxNjgyZTdhOGU4ZWIzNmM2OTE2Y2IzYzE2YjI5MWEwODJlY2Q1MmFiNzljYzQ~cmVzcG9uc2UtY29udGVudC1kaXNwb3NpdGlvbj0qJnJlc3BvbnNlLWNvbnRlbnQtdHlwZT0qIn1dfQ__&Signature=feYYg~WG2qhfuo9yLfop4Vs9jAJpMEq2Y7CfFtwUl3MIzH-FabWfL8qelqo7odAHTV-jyzIy83AfVfnsOo8SVpx-49q8tE8eTszcHZEoQca~g9Igf-HMzWjIcsAJVBpSbuOHZGE7BbhOSKO3D2o98-umweNv9HadJAZSA60JBlqhPpNRh2shfIi942uBRE1EYE2Sky9EGzUKaNEL984YQs1hLwqrEZmlNyID6XfSf8hdCHRE-q0a8lRcnSb8wUn9L-Km~cesrNEB~yeHLgxrTrI6qlN9XQ-7HYcpubhbm1WRlxmcfrPaJrjsTQ75ouvX86sDwyX-slVmqi60bRRHDg__&Key-Pair-Id=K3ESJI6DHPFC7

下载之后参考这篇open_clip.create_model_and_transforms 加载本地模型_clip 加载本地bin或pt-CSDN博客

icon-default.png?t=O83A

https://blog.csdn.net/zengNLP/article/details/135644453

在github上也有人遇到了这些问题,暂时存个档,不过他们的是webui部署出错:TimeoutError: The read operation timed out when loading 2.0 model · AUTOMATIC1111/stable-diffusion-webui · Discussion #5108 · GitHub

icon-default.png?t=O83A

https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/5108

github上的解决方案:

Download the file open_clip_pytorch_model.bin from https://huggingface.co/laion/CLIP-ViT-H-14-laion2B-s32B-b79K/tree/main

Find your cache folder..i.e for Windows 10

 **C:\Users\USERNAME\.cache\**

The files are installed to

C:\Users\USERNAME\.cache\huggingface\hub\models--laion--CLIP-ViT-H-14-laion2B-s32B-b79K

You need to create the huggingface\hub\models--laion--CLIP-ViT-H-14-laion2B-s32B-b79K folders if needed,

You need to have the following folders ...

blobs

refs

snapshots

in blobs, you simply rename the open_clip_pytorch_model.bin to

9a78ef8e8c73fd0df621682e7a8e8eb36c6916cb3c16b291a082ecd52ab79cc4

in refs, create a txt file called main and paste this into it

58a1e03a7acfacbe6b95ebc24ae0394eda6a14fc

then save and remame the file, deleted the .txt file extention

in snapshots, create a folder called

58a1e03a7acfacbe6b95ebc24ae0394eda6a14fc

in there create a symlink called open_clip_pytorch_model.bin to the file you renamed 9a78.... in the blobs folder.

It should now work, I tested it and got my install working through the above steps. Technically it should only need the first file and should automate the rest as it seems there is something wierd causing the timeout errors when installing files from certian repo's like HF

翻译为在ubuntu上的操作:

问题2:bin文件配置后报错

实际上在这样配置之后还是报错了(截取一部分)

再找解决方法:

导入huggingface中的models--laion--CLIP-ViT-H-14-laion2B-s32B-b79K - 知乎 (zhihu.com)

按照里面的说法,更改ldm/modules/encoders里面的modiles.py文件的源码之后的新型报错:

改成绝对路径试试

ok,我把所有的修改都给复原,更换域名使得可以下载。

然后刚下载一点就把手动下载的bin弄进去然后重命名,删掉.uncomplete,别的不管,再尝试运行:

真给我搞无语了。怎么处处出错啊

(本段补充于实验完成之后:在浏览完毕别人的同类型错误后【功能请求】:加载稳定扩散 v2 时出现大小不匹配错误 (2.0) ·问题 #5173 ·AUTOMATIC1111/stable-diffusion-webui ·GitHub的 --- [Feature Request]: size mismatch errors when loading stable diffusion v2 (2.0) · Issue #5173 · AUTOMATIC1111/stable-diffusion-webui · GitHub里面的评论让我很在意,大家一直都在强调yaml文件的重要之处,然后我就去github上面查看了源代码,发现实际上在服务器上部署的和github上面的不一样啊,内容完全不一样。之前版本的txt2img.py里面导向的是v2-interface.yaml,而源文件里面实际需要的是v1的,这也是导致上面的张量维度不匹配的问题的原因啊,就不是一个版本的模型)

2024年9月11日,把所有的改动复原,使用更改下载链接的方式重新下载,报错类型:数据类型不匹配

查阅资料:【功能请求】:加载稳定扩散 v2 时出现大小不匹配错误 (2.0) ·问题 #5173 ·AUTOMATIC1111/stable-diffusion-webui ·GitHub的 --- [Feature Request]: size mismatch errors when loading stable diffusion v2 (2.0) · Issue #5173 · AUTOMATIC1111/stable-diffusion-webui · GitHub

大概率问题发生在yaml文件

我是↑↓,看了半天源文件都没有想过去比较比较,原来下载的stablediffusion都不一样,东西也不一样。原有的版本是v2的,调用的yaml都是v2-interface.yaml

实际上我需要的v1版本的

真给我气笑了,这个原初错误硬生生卡了我好几天,一直在想着怎么解决别的小bug,没想到地基都有问题。

重新配置之后尝试生成图像,结果:

错误的原因是pytorch版本不适配,服务器上的CUDA版本是12+的,默认pytorch下载是适配CUDA11版本的。

解决方案:Pytorch部分报错问题_version libnvjitlink.so.12-CSDN博客

然后出现了原文中的一个错误

照着修改就可以了

终于正常运行了。

总结

环境最好还是自己动手配置,别人配置的话不好排查错误。以及对文件哪些部分进行了改动,这些东西都要留档,方便回滚,要养成好习惯。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。