背景
辅助做一个实验,前置条件是先能够使用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=K3ESJI6DHPFC7https://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博客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 · GitHubhttps://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博客
然后出现了原文中的一个错误
照着修改就可以了
终于正常运行了。
总结
环境最好还是自己动手配置,别人配置的话不好排查错误。以及对文件哪些部分进行了改动,这些东西都要留档,方便回滚,要养成好习惯。
总结
**文章总结**本文记录了作者在Ubuntu系统上尝试运行Stable Diffusion v1.4模型时遇到的一系列问题及解决过程。
**背景**
为了在实验中使用Stable Diffusion生成图像,作者需要在Ubuntu系统上安装并运行Stable Diffusion v1.4模型。
**问题及解决方案**
1. **问题1:缺失必要的`open_clip_pytorch_model.bin`文件**
- **问题描述**:模型加载时因未找到必要的`bin`文件而报错。
- **解决方案**:更换下载链接至镜像网站(如`cdn-lfs.hf-mirror.com`),手动下载`open_clip_pytorch_model.bin`文件,并按照相关教程放置于正确的文件路径中并修改文件夹结构,通过对github相关讨论及博客的查阅,成功解决文件缺失问题。
2. **问题2:下载并配置`bin`文件后仍报错**
- **问题描述**:在配置了`bin`文件后,程序依然报错,表现为代码中其他部分的错误或数据类型不匹配。
- **解决方案**:通过不断尝试和问题溯源发现,问题源头在于模型版本与配置文件、代码版本不匹配。原系统中使用的是稳定的v2版本相关配置文件,而实际需要的是v1版本的模型,导致张量维度等问题。通过更换配置文件为v1版本的`yaml`文件,并修复了CUDA与PyTorch版本不兼容的问题,最终解决了所有错误。
**额外挑战**
- **CUDA与PyTorch版本不兼容**:由于服务器端CUDA版本较高(12+),而默认PyTorch版本可能仅兼容CUDA 11,需要单独安装或指定支持CUDA 12的PyTorch版本。
- **手动修复PyTorch错误**:在解决PyTorch相关报错时,需要参照CSDN等社区提供的解决方案进行手动修改。
**总结与教训**
1. **自主配置环境**:建议亲自配置实验环境,确保版本匹配和文件完整,以减少因环境配置不当导致的错误。
2. **记录改动与日志**:对环境配置中的每一步改动进行记录,并保留错误日志,便于问题定位和排查。
3. **注意配置文件版本**:不同版本的模型及建议使用相应的配置文件,避免因版本不匹配导致的张量维度错误等问题。