continue-revolution / sd-webui-segment-anything

Segment Anything for Stable Diffusion WebUI
3.39k stars 206 forks source link

[Feature]: 使用AutoSAM报错 #137

Open siwangdeweixiao opened 1 year ago

siwangdeweixiao commented 1 year ago

Expected behavior

大佬感谢您做出的贡献!我这里有几个问题求解答~ 使用 AutoSAM 报错 微信截图_20230626161952

微信截图_20230626162331 另外,是不是因为我还没放好 automatic_mask_generator.py 这个文件的位置导致的错误,但我没在您的教程里找到它该放在哪

想要使用 EditAnything ,要下载它所有的文件扔到 extensions 里吗?还是只需要按照您教程里的,放好 control_v11p_sd21_sam_v0_4.pth 和 control_v11p_sd21_sam_v0_4.yaml 这两个文件就行了

continue-revolution commented 1 year ago
  1. 请自行安装pycocotools-windows, 之后的版本会尝试解决这个问题
  2. 只需要下载模型
siwangdeweixiao commented 1 year ago
  1. 请自行安装pycocotools-windows, 之后的版本会尝试解决这个问题
  2. 只需要下载模型

谢谢回复,辛苦了~

siwangdeweixiao commented 1 year ago
  1. 请自行安装pycocotools-windows, 之后的版本会尝试解决这个问题
  2. 只需要下载模型

emmmm....尝试安装pycocotools-windows,还是出现了问题,大佬帮忙看一下,我已经尽可能的独自想办法解决了,但依然无法解决。以下是我的处理过程和相应步骤出现的问题:

1.使用 pip install pycocotools-windows 指令安装,出现错误如下图 pip install pycocotools-windows安装失败1 pip install pycocotools-windows安装失败2

搜索解决办法,采用本地安装法,首先安装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 安装cp38失败

搜索原因为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功能,发现新的报错: 复制cp38的进去

搜索文件发现 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功能,发现新的报错: 复制mask py文件覆盖

至此我不知道下一个该怎么解决了,只能求助大佬

continue-revolution commented 1 year ago

@siwangdeweixiao 请使用管理员模式打开一次webui并使用AutoSAM功能,之后不必再使用管理员模式打开。

第一张图的问题仍然是网络问题。可以选择暂时关闭终端代理或者是使用其他pip镜像

siwangdeweixiao commented 1 year ago

@siwangdeweixiao 请使用管理员模式打开一次webui并使用AutoSAM功能,之后不必再使用管理员模式打开。

第一张图的问题仍然是网络问题。可以选择暂时关闭终端代理或者是使用其他pip镜像

我使用管理员模式打开启动器.exe,并使用AutoSAM功能后,出现了新的错误: 管理员模式打开webui

continue-revolution commented 1 year ago

你还是重新安装pycocotools吧

先切换到webui的环境,再完全卸载pycocotools

把你那网络问题解决掉,可以把代理暂时关掉,然后使用清华镜像重新pip

siwangdeweixiao commented 1 year ago

你还是重新安装pycocotools吧

先切换到webui的环境,再完全卸载pycocotools

把你那网络问题解决掉,可以把代理暂时关掉,然后使用清华镜像重新pip

网络问题解决不了了,我把代理关掉后,用了7个国内完全度最高的镜像,清华,阿里,网易,百度,豆瓣,中科大,华为云,结果全都是找不到对应 pycocotools-windows 的资源,我哭了 7ge 大佬,用空的时候能否上传 sd-webui-aki-v4.1\python\Lib\site-packages\ 里面的两个名字为 pycocotools 开头的文件夹,感激不尽,已在支付宝上为您赞助了一杯星巴克咖啡,辛苦了!

continue-revolution commented 1 year ago

pip install pycocotools-windows

另外你这个terminal是在linux里面,Linux是直接pip install pycocotools

siwangdeweixiao commented 1 year ago

pip install pycocotools-windows

另外你这个terminal是在linux里面,Linux是直接pip install pycocotools

不是,我用的还是windows的,这个是我用git bash键入命令的,因为用cmd的效果是一样的,但git bash里处理速度快一点,就索性用git bash了。用cmd的结果如下图: 微信截图_20230628121107

continue-revolution commented 1 year ago

先activate你的webui虚拟环境,例如在cmd输入${venv}\Scripts\activate.bat,${venv}是你的虚拟环境路径,在webui整合包内应该有个venv目录

国内镜像会禁止部分代理IP,你要关闭代理才能从国内镜像下载。如果从代理软件关闭代理没有用就退出代理软件。

siwangdeweixiao commented 1 year ago

先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 还是会出现相同的结果 微信截图_20230628132532

continue-revolution commented 1 year ago

在插件requirements.txt加一行pycocotools-windows然后重启webui。如果这样都不行,建议去查一下你是不是配过终端代理,另外如果这样都不行我就帮不到你了,这说明你的环境已经烂掉了,什么第三方库都下不了。

siwangdeweixiao commented 1 year ago

在插件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 这个路径里那两个文件夹的话 微信截图_20230628160317

continue-revolution commented 1 year ago

如果你能直接安装pycocotools成功,你可以试试能不能用pycocotools,如果能用就直接用吧。你的终端网络问题你最好想点别的办法解决掉,不然后患无穷。

另外,我既不用windows也不用整合包,所以我无法上传这两个文件夹为你所用。

continue-revolution commented 1 year ago

我用windows装pycocotools装成功了,你这样理论上也可以成功。

siwangdeweixiao commented 1 year ago

我用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/](url) 。MSVC的安装可参考 [https://zhuanlan.zhihu.com/p/165008313](url) 和 [https://www.bilibili.com/video/BV1tf4y1t7ru/?p=2&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=da50e5dbba3f8869f60a3cdd0097affa](url) 我的问题应该也会让很多使用整合包的人遇到,可以借此参考解决。 再次感谢大佬您这几天的在解决问题的过程中给予的支持,即使不用windows也因为我的问题去装了pycocotools,感动~ 最后附上成功使用AUTOSAM的截图 ![微信图片_20230629222446](https://github.com/continue-revolution/sd-webui-segment-anything/assets/131261520/ab72ceb9-1e4c-47cd-8cf3-f98bf16e6503)
dongshaojia commented 1 year ago

我用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 pythonwhere 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/165008313https ://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的截图 微信图片_20230629222446

想问一下您的中文插件是哪个,我的ui界面只有上面是中文,ControlNet下面有的是中文有的是英文。 捕获

siwangdeweixiao commented 1 year ago

@dongshaojia https://gitcode.net/ranting8323/stable-diffusion-webui-localization-zh_CN https://gitcode.net/overbill1683/stable-diffusion-webui-localization-zh_Hans 这两个