Skip to content

Unable to install in Windows: Pynini and webrtcvad cannot be built #7

@Beatboxace

Description

@Beatboxace

Hi,
Thank you for trying to make this available in ComfyUI!

I am using Windows 11 64 bit and the portable version of ComfyUI installation (which means it's using python_embeded environment).

Summary

I am afraid in it's current state, it seems to be impossible to install on Windows (at least with comfy portable) because of pynini and webrtcvad 's build requirements. When opening the test workflow there are missing nodes in red (as reqs weren't able to finish I'm guessing).

Steps

I followed your instructions to install Conda, then pynini=2.1.5 through the conda-forge.
That part seems to be working, but the following command pip install -r requirements.txt result in an error to build pynini:

Errors

Pynini

Building wheel for pynini (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [49 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build\lib.win-amd64-cpython-311\pynini
      copying pynini\__init__.py -> build\lib.win-amd64-cpython-311\pynini
      creating build\lib.win-amd64-cpython-311\pywrapfst
      copying pywrapfst\__init__.py -> build\lib.win-amd64-cpython-311\pywrapfst
      creating build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\case.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\chatspeak.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\chatspeak_model.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\dates.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\g2p.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\numbers.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\plurals.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\t9.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\weather.py -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\examples\__init__.py -> build\lib.win-amd64-cpython-311\pynini\examples
      creating build\lib.win-amd64-cpython-311\pynini\export
      copying pynini\export\export.py -> build\lib.win-amd64-cpython-311\pynini\export
      copying pynini\export\grm.py -> build\lib.win-amd64-cpython-311\pynini\export
      copying pynini\export\grm_example.py -> build\lib.win-amd64-cpython-311\pynini\export
      copying pynini\export\multi_grm.py -> build\lib.win-amd64-cpython-311\pynini\export
      copying pynini\export\multi_grm_example.py -> build\lib.win-amd64-cpython-311\pynini\export
      copying pynini\export\__init__.py -> build\lib.win-amd64-cpython-311\pynini\export
      creating build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\byte.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\edit_transducer.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\features.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\paradigms.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\pynutil.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\rewrite.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\rule_cascade.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\tagger.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\utf8.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\lib\__init__.py -> build\lib.win-amd64-cpython-311\pynini\lib
      copying pynini\__init__.pyi -> build\lib.win-amd64-cpython-311\pynini
      copying pynini\py.typed -> build\lib.win-amd64-cpython-311\pynini
      copying pywrapfst\__init__.pyi -> build\lib.win-amd64-cpython-311\pywrapfst
      copying pywrapfst\py.typed -> build\lib.win-amd64-cpython-311\pywrapfst
      copying pynini\examples\py.typed -> build\lib.win-amd64-cpython-311\pynini\examples
      copying pynini\export\py.typed -> build\lib.win-amd64-cpython-311\pynini\export
      copying pynini\lib\py.typed -> build\lib.win-amd64-cpython-311\pynini\lib
      running build_ext
      building '_pywrapfst' extension
      creating build\temp.win-amd64-cpython-311\Release\extensions
      "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IC:\DEV\AI\Stablediffusion\comfyui\ComfyUI_windows_portable\python_embeded\include -IC:\DEV\AI\Stablediffusion\comfyui\ComfyUI_windows_portable\python_embeded\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /EHsc /Tpextensions/_pywrapfst.cpp /Fobuild\temp.win-amd64-cpython-311\Release\extensions/_pywrapfst.obj -std=c++17 -Wno-register -Wno-deprecated-declarations -Wno-unused-function -Wno-unused-local-typedefs -funsigned-char
      cl : Command line error D8021 : invalid numeric argument '/Wno-register'
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.41.34120\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pynini

-> Windows tools for compiling it doesnt support the /Wno-register` argument.

When trying to run the command [comfypath]\ComfyUI_windows_portable\python_embeded\python.exe -m pip install -r requirements.txt , I get the same error and another similar one but for webrtcvad

webrtcvad

As the python_embeded used by Comfyui portable is a bit lighter from what I understand, using Python.h for dev tools is not possible.

  Building wheel for webrtcvad (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [16 lines of output]
      C:\DEV\AI\Stablediffusion\comfyui\ComfyUI_windows_portable\python_embeded\Lib\site-packages\setuptools\_distutils\dist.py:261: UserWarning: Unknown distribution option: 'test_suite'
        warnings.warn(msg)
      running bdist_wheel
      running build
      running build_py
      creating build\lib.win-amd64-cpython-311
      copying webrtcvad.py -> build\lib.win-amd64-cpython-311
      running build_ext
      building '_webrtcvad' extension
      creating build\temp.win-amd64-cpython-311\Release\cbits
      creating build\temp.win-amd64-cpython-311\Release\cbits\webrtc\common_audio\signal_processing
      creating build\temp.win-amd64-cpython-311\Release\cbits\webrtc\common_audio\vad
      "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -D_WIN32 -Icbits -IC:\DEV\AI\Stablediffusion\comfyui\ComfyUI_windows_portable\python_embeded\include -IC:\DEV\AI\Stablediffusion\comfyui\ComfyUI_windows_portable\python_embeded\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /Tccbits\pywebrtcvad.c /Fobuild\temp.win-amd64-cpython-311\Release\cbits\pywebrtcvad.obj
      pywebrtcvad.c
      cbits\pywebrtcvad.c(1): fatal error C1083: Cannot open include file: 'Python.h': No such file or directory
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.41.34120\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2

I tried installing the wheel directly but was only able to find webrtcvad_wheels-2.0.14-pp310-pypy310_pp73-win_amd64.whl which isn't the same as the webrtcvad-2.0.14-pp310-pypy310_pp73-win_amd64.whl (non wheels package), because running pip show webrtcvad doesn't list it. I was unable to find the "non-wheel" version.

Other informations

While investigating, I found that the dependencies are a bit of a mess. For example, there is WeTextProcessing in the requirements.txt. When checking that librairie's dependencies, it looks like it forces a more recent version of pynini which is different than the one from your README. I also had trouble with aliyun-python-sdk-core , which only version 2.13.10 seemed to be the latest compatible. This might not be the main source of the problem tho.

When using comfy manager, there is also 2 registered custom nodes with the same name (both have the IMPORT FAILED error as the setup cannot complete)

Questions

  • Tried a lot of different things to get it to build without success. Installing on Windows seems to be quite a challenge. Were you able to install on Windows with this latest version? Any pointers?
  • I tried both and didn't work, but isn't running the command conda activate required before trying to install requirements? I feel like there is something missing that kind of tells pip install to use pynini from the conda's installation instead of trying to rebuild,

Using WSL is not an option for me now, as everything else from ComfyUI is already setup and working well. Any help would be appreciated. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions