[Feature]: 使用AutoSAM报错
siwangdeweixiao opened this issue · 18 comments
- 请自行安装pycocotools-windows, 之后的版本会尝试解决这个问题
- 只需要下载模型
- 请自行安装pycocotools-windows, 之后的版本会尝试解决这个问题
- 只需要下载模型
谢谢回复,辛苦了~
- 请自行安装pycocotools-windows, 之后的版本会尝试解决这个问题
- 只需要下载模型
emmmm....尝试安装pycocotools-windows,还是出现了问题,大佬帮忙看一下,我已经尽可能的独自想办法解决了,但依然无法解决。以下是我的处理过程和相应步骤出现的问题:
1.使用 pip install pycocotools-windows 指令安装,出现错误如下图
搜索解决办法,采用本地安装法,首先安装VC++:visualcppbuildtools_full.exe , 然后使用指令 pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI 安装 pycocotools 在Windows的编译支持。最后在清华源里找到 pycocotools_windows-2.0.0.2-cp38-cp38-win_amd64.whl 下载,并用 pip install pycocotools_windows-2.0.0.2-cp38-cp38-win_amd64.whl 指令进行本地安装,
安装失败,错误信息为 is not a supported wheel on this platform
搜索原因为python版本与pycocotools的版本不匹配,输入指令 pip debug --verbose 列出支持包的名字,把pycocotools_windows-2.0.0.2-cp38-cp38-win_amd64.whl 重命名为 pycocotools_windows-2.0.0.2-cp39-cp39-win_amd64.whl 再次使用 pip install 指令安装,安装成功。
重启sdweb-ui,重新使用AUTOSAM功能,仍旧提示 No module named 'pycocotools‘,搜索文件发现pycocotools装在 C:\Users\admin\Anaconda3\Lib\site-packages 这个路径里,但AUTOSAM调用的路径是C:\sd-webui-aki-v4.1\python\Lib\site-packages 这个路径。于是把 Anaconda3\Lib\site-packages 里的 pycocotools 文件夹和 pycocotools_windows-2.0.0.2.dist-info 文件夹复制到 sd-webui-aki-v4.1\python\Lib\site-packages 里。
重启sdweb-ui,重新使用AUTOSAM功能,发现新的报错:
搜索文件发现 C:\sd-webui-aki-v4.1\extensions\sd-webui-controlnet\annotator\oneformer\ 里也有 pycocotools文件夹,将里面的 mask.py 文件复制到 C:\sd-webui-aki-v4.1\python\Lib\site-packages\pycocotools 里覆盖原 mask.py 文件。
重启sdweb-ui,重新使用AUTOSAM功能,发现新的报错:
至此我不知道下一个该怎么解决了,只能求助大佬
@siwangdeweixiao 请使用管理员模式打开一次webui并使用AutoSAM功能,之后不必再使用管理员模式打开。
第一张图的问题仍然是网络问题。可以选择暂时关闭终端代理或者是使用其他pip镜像
@siwangdeweixiao 请使用管理员模式打开一次webui并使用AutoSAM功能,之后不必再使用管理员模式打开。
第一张图的问题仍然是网络问题。可以选择暂时关闭终端代理或者是使用其他pip镜像
你还是重新安装pycocotools吧
先切换到webui的环境,再完全卸载pycocotools
把你那网络问题解决掉,可以把代理暂时关掉,然后使用清华镜像重新pip
pip install pycocotools-windows
另外你这个terminal是在linux里面,Linux是直接pip install pycocotools
先activate你的webui虚拟环境,例如在cmd输入${venv}\Scripts\activate.bat,${venv}是你的虚拟环境路径,在webui整合包内应该有个venv目录
国内镜像会禁止部分代理IP,你要关闭代理才能从国内镜像下载。如果从代理软件关闭代理没有用就退出代理软件。
先activate你的webui虚拟环境,例如在cmd输入${venv}\Scripts\activate.bat,${venv}是你的虚拟环境路径,在webui整合包内应该有个venv目录
国内镜像会禁止部分代理IP,你要关闭代理才能从国内镜像下载。如果从代理软件关闭代理没有用就退出代理软件。
我的web虚拟环境路径是C:\sd-webui-aki-v4.1\python\Lib\venv
我关掉代理后,重启电脑,不开代理软件。
然后我分别试了几条相似的命令都无法使用成功:
$C:\sd-webui-aki-v4.1\python\Lib\venv\Scripts\activate.bat
$ C:\sd-webui-aki-v4.1\python\Lib\venv\Scripts\activate.bat
$C:\sd-webui-aki-v4.1\python\Lib\venv\Scripts\nt\activate.bat
C:\sd-webui-aki-v4.1\python\Lib\venv\Scripts\activate.bat
$C:\sd-webui-aki-v4.1\python\Lib\venv\Scripts\activate
$C:\sd-webui-aki-v4.1\python\Lib\venv\Scripts\common\activate
然后使用 pip install pycocotools-windows 还是会出现相同的结果
在插件requirements.txt加一行pycocotools-windows然后重启webui。如果这样都不行,建议去查一下你是不是配过终端代理,另外如果这样都不行我就帮不到你了,这说明你的环境已经烂掉了,什么第三方库都下不了。
在插件requirements.txt加一行pycocotools-windows然后重启webui。如果这样都不行,建议去查一下你是不是配过终端代理,另外如果这样都不行我就帮不到你了,这说明你的环境已经烂掉了,什么第三方库都下不了。
直接用 pip install pycocotools 安装还是能安装成功的,但这个安装的肯定不适用与windows。
我在想,既然 pycocotools 安装的是在 python\Lib\site-packages 里的两个名字带 pycocotools 的文件夹,这点从用卸载指令的时候显示的信息也能看出来,那会不会我只需要把能够正常使用AUTOSAM功能的人,他这两个文件夹复制过来,就可以正常运行了呢?
所以我想试试用大佬的这两个文件夹,如果大佬您愿意上传 sd-webui-aki-v4.1\python\Lib\site-packages 这个路径里那两个文件夹的话
如果你能直接安装pycocotools成功,你可以试试能不能用pycocotools,如果能用就直接用吧。你的终端网络问题你最好想点别的办法解决掉,不然后患无穷。
另外,我既不用windows也不用整合包,所以我无法上传这两个文件夹为你所用。
我用windows装pycocotools装成功了,你这样理论上也可以成功。
我用windows装pycocotools装成功了,你这样理论上也可以成功。
我终于找到问题所在,并且解决了!以下是解决历程的简述:
导致出现我这些问题的首要原因,是因为使用了秋叶大佬的整合包,秋叶大佬的整合包很好很方便,但他是在自己电脑上配置好python环境,再把它连带webui一起打包给我们的。的确整合包解压即用,但因为省去了配置python环境的过程,pip的指向路径依然是自己电脑的老python环境,而没配置python环境的人更是没法用pip指令安装资源。
这意味着如果要在新的webui环境安装其他的软件包,例如用pip指令安装,修改的却是老环境的venv软件包而不是wbui的环境。
解决办法就是像大佬您说的,激活webui的虚拟环境,但激活前还需要几个步骤。
1.将C:\sd-webui-aki-v4.1\python\Lib\venv\scripts 里的activate和activate.bat里的 VIRTUAL_ENV 指向新的venv路径,也就是webui里的venv路径。
2.在 C:\sd-webui-aki-v4.1\python\Lib\venv\scripts\nt 创建名为 pyvenv.cfg 的文件,在里面写入以下内容:
home = <location-of-python-exe>
include-system-site-packages = false
version = <version>
是python.exe所在的文件夹位于用于创建 python 虚拟环境的位置。是python的版本,可以通过运行 python.exe 来检查它。
3.激活新venv环境,也就是webui的虚拟环境。在cmd输入{venv}\Scripts\activate.bat,{venv}是你的虚拟环境路径,不用带$,这个应该是Linux的命令需要,windows不用。
如果成功激活webui的虚拟环境,使用where python
和where pip
这两个指令返回的应该都是webui里的虚拟环境路径,用pip --verion
返回的也应该是webui里的版本。
这样以后用pip指令就是直接在webui环境里进行修改和安装了。
我的问题的另一个点在于,我的老环境是python3.9.6,而webui的环境是3.10.11,用pip install pycocotools
安装的是3.9.6版本适配的pycocotools,该版本的代码内容不适配webui的使用要求,所以会出现各种各样的 no module named , module has no attribute 问题。
所以该问题还可以省略以上的解决步骤,用更简单的方式解决,直接把老环境的版本同步升级为和webui环境版本,用 pip 指令安装pycocotools后,到老环境的 site-packages 文件夹里,复制安装好的pycocotools两个文件夹到webui的 site-packages 文件夹里。
但用该简略方法用隐患,需要知道 pip 指令安装和修改的文件夹是哪些,漏复制了任何一个文件都会导致安装失败,无法使用。
pip install pycocotools-windows
这个指令不需要也不能用了,它安装的是2020年的老版本,现在已经不满足部分依赖库的要求,也无法满足webui的调用要求,这可能也是国内的镜像源不提供它的原因。
所以现在只需要pip install pycocotools
指令,并安装好编译环境MS VC https://visualstudio.microsoft.com/zh-hans/downloads/ 。MSVC的安装可参考 https://zhuanlan.zhihu.com/p/165008313 和 https://www.bilibili.com/video/BV1tf4y1t7ru/?p=2&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=da50e5dbba3f8869f60a3cdd0097affa
我的问题应该也会让很多使用整合包的人遇到,可以借此参考解决。
再次感谢大佬您这几天的在解决问题的过程中给予的支持,即使不用windows也因为我的问题去装了pycocotools,感动~
最后附上成功使用AUTOSAM的截图
我用windows安装pycocotools安装成功了,你这样理论上也可以成功。
我终于找到问题所在,并且解决了!以下是解决过程的简述: 导致出现我这些问题的原因,是因为使用了秋叶大佬的整合包,秋叶大佬的整合包很好很方便,但是他是在自己电脑上配置好python环境,然后把它连带webui一起压缩给我们的。确实整合包解压即用,但是因为省去了配置python环境的过程,pip的指向路径依然是自己电脑的老python环境,而没有配置python环境的人不可能用pip指令安装资源。 这意味着如果要在新的webui环境修改安装其他的资源,例如用pip指令安装,却是老环境的venv不是wbui的环境。
解决办法就是像大佬你说的,激活webui的虚拟环境,但是激活前还需要几个步骤。 1.将 C:\sd-webui-aki-v4.1\python\Lib\venv\scripts里的activate和activate.bat里的VIRTUAL_ENV指向新的venv路径,或者webui里的venv路径。 2.在C:\sd-webui-aki-v4.1\python\Lib\venv\scripts\nt创建名为pyvenv.cfg 的文件,在里面写入以下内容:
home = <location-of-python-exe>
include-system-site-packages = false
version = <version>
是python.exe所在的文件夹位于用于创建python虚拟环境的位置。是python的版本,可以通过运行python.exe来检查它。 3.激活 新venv环境,是webui的虚拟环境。在cmd输入{venv}\Scripts\activate.bat,{venv}是你的虚拟环境路径,不用带$,这个应该是Linux的命令需要,windows不用。如果成功激活webui的虚拟环境,使用
where python
和where pip
这两个指令返回的都应该是webui里的虚拟环境路径,用pip --verion
返回的也应该是修改webui里的版本。 这样以后用pip指令就是直接在webui环境里进行和安装了。我的问题的另一点是,我的旧环境是python3.9.6,而webui的环境是3.10.11,使用安装的是3.9.6版本
pip install pycocotools
的pycocotools,该版本的代码内容不支持webui的使用要求,所以会出现各种的 no module named , module has no attribute 问题。 所以该问题还可以省略以上的解决步骤,用更简单的方式解决,直接把老环境的版本同步升级为和webui版本环境,用 pip 指令安装 pycocotools 后,到旧环境的 site-packages 文件夹里,复制安装好的 pycocotools 两个文件夹到 webui 的 site-packages 文件夹里。但用该简略方法用前景,需要 知道pip 指令安装和修改的文件夹是哪些,漏复制了任何一个文件都会导致安装失败,无法使用。
pip install pycocotools-windows
这个指令不需要也不能用了,它安装的是2020年的老版本,现在已经不能满足部分依赖库的要求,也无法满足webui的调用要求,这可能也是内部的镜像源不提供它的原因。 所以现在只需要pip install pycocotools
指令,并安装好编译环境MS VC https://visualstudio.microsoft.com/zh-hans/downloads/。MSVC的安装可参考https://zhuanlan.zhihu.com/p/165008313和https ://www.bilibili.com/video/BV1tf4y1t7ru/?p=2&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=da50e5dbba3f8869f60a3cdd0097affa我的问题也应该让很多使用整合包的人遇到,可以解决解决问题。 再次感谢大佬您这几天在解决问题的过程中给予支持,即使不用Windows也因为我的问题去安装了pycocotools,感动~ 最后附上成功使用AUTOSAM的截图