Всем привет.
Существует определенная проблемка с популярным расширением ROOP как для A1111 так и для ComfyUI. Особенности его установки заключаются в том что оно требует предварительной, хотя и одноразовой, компиляции своих пакетов с MS VС++. Не могу сказать почему автор не задейстовал его с МS VC++ Redistributable, но реальность такова что для его нормальной работы необходимо доустанавливать как минимум Visual Studio Build Tools.
Вот один любитель Stable Diffusion посвятил этому отдельное видео.
В принципе эти проблемы из-за пакета insightface, который даже можно доинсталировать вручную, как советует автор ролика, но и это не решает проблему которая обычно выглядит вот так:
### ComfyUI-FaceSwap: Check basic models
Traceback (most recent call last):
File "C:\SDComfyUI\ComfyUI\nodes.py", line 1693, in load_custom_node module_spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\SDComfyUI\ComfyUI\custom_nodes\ComfyUI-FaceSwap\__init__.py", line 4, in <module> from .FaceSwapNode import FaceSwapNode
File "C:\SDComfyUI\ComfyUI\custom_nodes\ComfyUI-FaceSwap\FaceSwapNode.py", line 1, in <module> import insightface
File "C:\SDComfyUI\python_embeded\lib\site-packages\insightface\__init__.py", line 18, in <module> from . import app
File "C:\SDComfyUI\python_embeded\lib\site-packages\insightface\app\__init__.py", line 2, in <module> from .mask_renderer import *
File "C:\SDComfyUI\python_embeded\lib\site-packages\insightface\app\mask_renderer.py", line 8, in <module> from ..thirdparty import face3d
File "C:\SDComfyUI\python_embeded\lib\site-packages\insightface\thirdparty\face3d\__init__.py", line 3, in <module> from . import mesh
File "C:\SDComfyUI\python_embeded\lib\site-packages\insightface\thirdparty\face3d\mesh\__init__.py", line 9, in <module> from .cython import mesh_core_cython
ImportError: DLL load failed while importing mesh_core_cython: The specified module could not be found.
Что интересно что перед тем как прикручивать его в ComfyUI я точно также использовал его с A1111 на той же Windows. И успешно.
Интернет пестрит советами что следует выполнить сборку insightface поочередно:
c:\SDComfyUI\python_embeded\python.exe setup.py build_ext --inplace
c:\SDComfyUI\python_embeded\python.exe setup.py easy_install
И если вы не получите ошибок тогда ваш ROOP заработает. Нет, не заработает.
Я копнул глубже и обнаружил что пакет insightface у меня в СomfyUI находится в трех местах:
- \SDComfyUI\ComfyUI\web\insightface\thirdparty\face3d\mesh\cython
- \SDComfyUI\python_embeded\insightface\thirdparty\face3d\mesh\cython
- \SDComfyUI\python_embeded\Lib\site-packages\insightface\thirdparty\face3d\mesh\cython
Красота. Я добился безошибочной сборки по всем трем точкам, но даже это не дало положительного результата. Допускаю что это изьяны портабельной сборки СomfyUI. С другой стороны таких проблем с портабельной А1111 точно у меня не было.
Ну что ж, тогда решение пришло само - я просто скопировал ВСЕ файлы из \StableDiffusion\python_embeded\Lib\site-packages\insightface\thirdparty\face3d\mesh\cython в
\SDComfyUI\python_embeded\Lib\site-packages\insightface\thirdparty\face3d\mesh\cython.
Все, и это работает!
Не судите строго, я не являюсь Python-гуру, посему выше скорее отчет о моих мытарствах чем рецепт счастья.
Удачи.
ReplyDeleteПо ходу ROOP проект больше не обновляется, переходим на ReActor.
А здесь ни слова https://github.com/s0md3v/sd-webui-roop
ReplyDeleteЯ ROOP ставил через ComfyUI Manager, после игрался с ним так же как с FaceSwap((. Но автор ROOPa проект закрыл на верcии 0.0.2, так что далее только наше везение.
ReplyDeleteРучное решение для А1111:
ReplyDeleteset appdata=tmp
set userprofile=tmp
set temp=tmp
set path=git\cmd;python;venv\scripts
call venv\scripts\activate.bat
pip install insightface-0.7.3-cp310-cp310-win_amd64.whl