А АWednesday, 30 August 2023

ROOP и ComfyUI.

Всем привет.

Существует определенная проблемка с популярным расширением 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 находится в трех местах:

  1. \SDComfyUI\ComfyUI\web\insightface\thirdparty\face3d\mesh\cython
  2. \SDComfyUI\python_embeded\insightface\thirdparty\face3d\mesh\cython
  3. \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-гуру, посему выше скорее отчет о моих мытарствах чем рецепт счастья.

Удачи.


4 comments:

Anonymous said...


По ходу ROOP проект больше не обновляется, переходим на ReActor.

Anonymous said...

А здесь ни слова https://github.com/s0md3v/sd-webui-roop

Nyukers said...

Я ROOP ставил через ComfyUI Manager, после игрался с ним так же как с FaceSwap((. Но автор ROOPa проект закрыл на верcии 0.0.2, так что далее только наше везение.

Anonymous said...

Ручное решение для А1111:
set 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

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное