fudan-generative-vision / hallo

Hallo: Hierarchical Audio-Driven Visual Synthesis for Portrait Image Animation
https://fudan-generative-vision.github.io/hallo/
MIT License
9.15k stars 1.25k forks source link

Could not build wheels for insightface (on Windows) #25

Closed bingoyesbingoyes closed 2 months ago

bingoyesbingoyes commented 3 months ago

When I tried to command in windows:

pip install insightface==0.7.3

I meet the problem below:

Processing d:\bingoyes\hallo\insightface-0.7.3.tar.gz
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (1.26.4)
Requirement already satisfied: onnx in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (1.16.1)
Requirement already satisfied: tqdm in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (4.66.4)
Requirement already satisfied: requests in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (2.32.3)
Requirement already satisfied: matplotlib in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (3.9.0)
Requirement already satisfied: Pillow in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (10.3.0)
Requirement already satisfied: scipy in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (1.13.1)
Requirement already satisfied: scikit-learn in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (1.5.0)
Requirement already satisfied: scikit-image in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (0.23.2)
Requirement already satisfied: easydict in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (1.13)
Requirement already satisfied: cython in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from insightface==0.7.3) (3.0.10)
Collecting albumentations (from insightface==0.7.3)
  Using cached albumentations-1.4.8-py3-none-any.whl.metadata (37 kB)     
Collecting prettytable (from insightface==0.7.3)
  Using cached prettytable-3.10.0-py3-none-any.whl.metadata (30 kB)       
Requirement already satisfied: PyYAML in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from albumentations->insightface==0.7.3) (6.0.1)    
Requirement already satisfied: typing-extensions>=4.9.0 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from albumentations->insightface==0.7.3) (4.12.2)
Collecting pydantic>=2.7.0 (from albumentations->insightface==0.7.3)
  Using cached pydantic-2.7.4-py3-none-any.whl.metadata (109 kB)
Collecting albucore>=0.0.4 (from albumentations->insightface==0.7.3)
  Using cached albucore-0.0.10-py3-none-any.whl.metadata (3.1 kB)
Requirement already satisfied: opencv-python-headless>=4.9.0.80 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from albumentations->insightface==0.7.3) (4.9.0.80)
Requirement already satisfied: networkx>=2.8 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from scikit-image->insightface==0.7.3) (3.3) 
Requirement already satisfied: imageio>=2.33 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from scikit-image->insightface==0.7.3) (2.34.1)
Requirement already satisfied: tifffile>=2022.8.12 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from scikit-image->insightface==0.7.3) (2024.5.22)
Requirement already satisfied: packaging>=21 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from scikit-image->insightface==0.7.3) (24.1)
Requirement already satisfied: lazy-loader>=0.4 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from scikit-image->insightface==0.7.3) (0.4)
Requirement already satisfied: joblib>=1.2.0 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from scikit-learn->insightface==0.7.3) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from scikit-learn->insightface==0.7.3) (3.5.0)
Requirement already satisfied: contourpy>=1.0.1 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from matplotlib->insightface==0.7.3) (1.2.1)
Requirement already satisfied: cycler>=0.10 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from matplotlib->insightface==0.7.3) (0.12.1) 
Requirement already satisfied: fonttools>=4.22.0 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from matplotlib->insightface==0.7.3) (4.53.0)
Requirement already satisfied: kiwisolver>=1.3.1 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from matplotlib->insightface==0.7.3) (1.4.5)
Requirement already satisfied: pyparsing>=2.3.1 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from matplotlib->insightface==0.7.3) (3.1.2)
Requirement already satisfied: python-dateutil>=2.7 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from matplotlib->insightface==0.7.3) (2.9.0.post0)
Requirement already satisfied: protobuf>=3.20.2 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from onnx->insightface==0.7.3) (4.25.3)   
Collecting wcwidth (from prettytable->insightface==0.7.3)
  Using cached wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)       
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from requests->insightface==0.7.3) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from requests->insightface==0.7.3) (3.7)      
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from requests->insightface==0.7.3) (2.2.1)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from requests->insightface==0.7.3) (2024.6.2)
Requirement already satisfied: colorama in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from tqdm->insightface==0.7.3) (0.4.6)
Requirement already satisfied: tomli>=2.0.1 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from albucore>=0.0.4->albumentations->insightface==0.7.3) (2.0.1)
Collecting annotated-types>=0.4.0 (from pydantic>=2.7.0->albumentations->insightface==0.7.3)
  Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)    
Collecting pydantic-core==2.18.4 (from pydantic>=2.7.0->albumentations->insightface==0.7.3)
  Using cached pydantic_core-2.18.4-cp310-none-win_amd64.whl.metadata (6.7 kB)
Requirement already satisfied: six>=1.5 in c:\users\bingoyes\.conda\envs\hallo\lib\site-packages (from python-dateutil>=2.7->matplotlib->insightface==0.7.3) (1.16.0)
Using cached albumentations-1.4.8-py3-none-any.whl (156 kB)
Using cached prettytable-3.10.0-py3-none-any.whl (28 kB)
Using cached albucore-0.0.10-py3-none-any.whl (8.4 kB)
Using cached pydantic-2.7.4-py3-none-any.whl (409 kB)
Using cached pydantic_core-2.18.4-cp310-none-win_amd64.whl (1.9 MB)       
Using cached wcwidth-0.2.13-py2.py3-none-any.whl (34 kB)
Using cached annotated_types-0.7.0-py3-none-any.whl (13 kB)
Building wheels for collected packages: insightface
  Building wheel for insightface (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for insightface (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [215 lines of output]
      WARNING: pandoc not enabled
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-310
      creating build\lib.win-amd64-cpython-310\insightface
      copying insightface\__init__.py -> build\lib.win-amd64-cpython-310\insightface
      creating build\lib.win-amd64-cpython-310\insightface\app
      copying insightface\app\common.py -> build\lib.win-amd64-cpython-310\insightface\app
      copying insightface\app\face_analysis.py -> build\lib.win-amd64-cpython-310\insightface\app
      copying insightface\app\mask_renderer.py -> build\lib.win-amd64-cpython-310\insightface\app
      copying insightface\app\__init__.py -> build\lib.win-amd64-cpython-310\insightface\app
      creating build\lib.win-amd64-cpython-310\insightface\commands       
      copying insightface\commands\insightface_cli.py -> build\lib.win-amd64-cpython-310\insightface\commands
      copying insightface\commands\model_download.py -> build\lib.win-amd64-cpython-310\insightface\commands
      copying insightface\commands\rec_add_mask_param.py -> build\lib.win-amd64-cpython-310\insightface\commands
      copying insightface\commands\__init__.py -> build\lib.win-amd64-cpython-310\insightface\commands
      creating build\lib.win-amd64-cpython-310\insightface\data
      copying insightface\data\image.py -> build\lib.win-amd64-cpython-310\insightface\data
      copying insightface\data\pickle_object.py -> build\lib.win-amd64-cpython-310\insightface\data
      copying insightface\data\rec_builder.py -> build\lib.win-amd64-cpython-310\insightface\data
      copying insightface\data\__init__.py -> build\lib.win-amd64-cpython-310\insightface\data
      creating build\lib.win-amd64-cpython-310\insightface\model_zoo      
      copying insightface\model_zoo\arcface_onnx.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      copying insightface\model_zoo\attribute.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      copying insightface\model_zoo\inswapper.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      copying insightface\model_zoo\landmark.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      copying insightface\model_zoo\model_store.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      copying insightface\model_zoo\model_zoo.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      copying insightface\model_zoo\retinaface.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      copying insightface\model_zoo\scrfd.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      copying insightface\model_zoo\__init__.py -> build\lib.win-amd64-cpython-310\insightface\model_zoo
      creating build\lib.win-amd64-cpython-310\insightface\thirdparty     
      copying insightface\thirdparty\__init__.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty
      creating build\lib.win-amd64-cpython-310\insightface\utils
      copying insightface\utils\constant.py -> build\lib.win-amd64-cpython-310\insightface\utils
      copying insightface\utils\download.py -> build\lib.win-amd64-cpython-310\insightface\utils
      copying insightface\utils\face_align.py -> build\lib.win-amd64-cpython-310\insightface\utils
      copying insightface\utils\filesystem.py -> build\lib.win-amd64-cpython-310\insightface\utils
      copying insightface\utils\storage.py -> build\lib.win-amd64-cpython-310\insightface\utils
      copying insightface\utils\transform.py -> build\lib.win-amd64-cpython-310\insightface\utils
      copying insightface\utils\__init__.py -> build\lib.win-amd64-cpython-310\insightface\utils
      creating build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d
      copying insightface\thirdparty\face3d\__init__.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d
      creating build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh
      copying insightface\thirdparty\face3d\mesh\io.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh
      copying insightface\thirdparty\face3d\mesh\light.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh
      copying insightface\thirdparty\face3d\mesh\render.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh
      copying insightface\thirdparty\face3d\mesh\transform.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh
      copying insightface\thirdparty\face3d\mesh\vis.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh
      copying insightface\thirdparty\face3d\mesh\__init__.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh
      creating build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh_numpy
      copying insightface\thirdparty\face3d\mesh_numpy\io.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh_numpy
      copying insightface\thirdparty\face3d\mesh_numpy\light.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh_numpy
      copying insightface\thirdparty\face3d\mesh_numpy\render.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh_numpy        
      copying insightface\thirdparty\face3d\mesh_numpy\transform.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh_numpy     
      copying insightface\thirdparty\face3d\mesh_numpy\vis.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh_numpy
      copying insightface\thirdparty\face3d\mesh_numpy\__init__.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh_numpy      
      creating build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\morphable_model
      copying insightface\thirdparty\face3d\morphable_model\fit.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\morphable_model 
      copying insightface\thirdparty\face3d\morphable_model\load.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\morphable_model
      copying insightface\thirdparty\face3d\morphable_model\morphabel_model.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\morphable_model
      copying insightface\thirdparty\face3d\morphable_model\__init__.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\morphable_model
      running egg_info
      writing insightface.egg-info\PKG-INFO
      writing dependency_links to insightface.egg-info\dependency_links.txt
      writing entry points to insightface.egg-info\entry_points.txt       
      writing requirements to insightface.egg-info\requires.txt
      writing top-level names to insightface.egg-info\top_level.txt       
      reading manifest file 'insightface.egg-info\SOURCES.txt'
      writing manifest file 'insightface.egg-info\SOURCES.txt'
      C:\Users\bingoyes\AppData\Local\Temp\pip-build-env-ibn8tcr3\overlay\Lib\site-packages\setuptools\command\build_py.py:207: _Warning: Package 'insightface.thirdparty.face3d.mesh.cython' is absent from the `packages` configuration.
      !!

              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'insightface.thirdparty.face3d.mesh.cython' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration. 

              This leads to an ambiguous overall configuration. If you want to distribute this
              package, please make sure that 'insightface.thirdparty.face3d.mesh.cython' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery methods
              (for example by using `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'insightface.thirdparty.face3d.mesh.cython' to be distributed and are
              already explicitly excluding 'insightface.thirdparty.face3d.mesh.cython' via
              `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or `include-package-data=False` in
              combination with a more fine grained `package-data` configuration.

              You can read more about "package data files" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html

              [^1]: For Python, any directory (with suitable naming) can be imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of package data
                    directory, all directories are treated like packages. 
              ********************************************************************************

      !!
        check.warn(importable)
      C:\Users\bingoyes\AppData\Local\Temp\pip-build-env-ibn8tcr3\overlay\Lib\site-packages\setuptools\command\build_py.py:207: _Warning: Package 'insightface.data.images' is absent from the `packages` configuration.      
      !!

              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'insightface.data.images' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration. 

              This leads to an ambiguous overall configuration. If you want to distribute this
              package, please make sure that 'insightface.data.images' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery methods
              (for example by using `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'insightface.data.images' to be distributed and are
              already explicitly excluding 'insightface.data.images' via  
              `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or `include-package-data=False` in
              combination with a more fine grained `package-data` configuration.

              You can read more about "package data files" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html

              [^1]: For Python, any directory (with suitable naming) can be imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of package data
                    directory, all directories are treated like packages. 
              ********************************************************************************

      !!
        check.warn(importable)
      C:\Users\bingoyes\AppData\Local\Temp\pip-build-env-ibn8tcr3\overlay\Lib\site-packages\setuptools\command\build_py.py:207: _Warning: Package 'insightface.data.objects' is absent from the `packages` configuration.     
      !!

              ********************************************************************************
              ############################
              # Package would be ignored #
              ############################
              Python recognizes 'insightface.data.objects' as an importable package[^1],
              but it is absent from setuptools' `packages` configuration. 

              This leads to an ambiguous overall configuration. If you want to distribute this
              package, please make sure that 'insightface.data.objects' is explicitly added
              to the `packages` configuration field.

              Alternatively, you can also rely on setuptools' discovery methods
              (for example by using `find_namespace_packages(...)`/`find_namespace:`
              instead of `find_packages(...)`/`find:`).

              You can read more about "package discovery" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

              If you don't want 'insightface.data.objects' to be distributed and are
              already explicitly excluding 'insightface.data.objects' via 
              `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
              you can try to use `exclude_package_data`, or `include-package-data=False` in
              combination with a more fine grained `package-data` configuration.

              You can read more about "package data files" on setuptools documentation page:

              - https://setuptools.pypa.io/en/latest/userguide/datafiles.html

              [^1]: For Python, any directory (with suitable naming) can be imported,
                    even if it does not contain any `.py` files.
                    On the other hand, currently there is no concept of package data
                    directory, all directories are treated like packages. 
              ********************************************************************************

pp -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh\cython
      creating build\lib.win-amd64-cpython-310\insightface\data\images
      copying insightface\data\images\Tom_Hanks_54745.png -> build\lib.win-amd64-cpython-310\insightface\data\images
      copying insightface\data\images\mask_black.jpg -> build\lib.win-amd64-cpython-310\insightface\data\images
      copying insightface\data\images\mask_blue.jpg -> build\lib.win-amd64-cpython-310\insightface\data\images
      copying insightface\data\images\mask_green.jpg -> build\lib.win-amd64-cpython-310\insightface\data\images
      copying insightface\data\images\mask_white.jpg -> build\lib.win-amd64-cpython-310\insightface\data\images
      copying insightface\data\images\t1.jpg -> build\lib.win-amd64-cpython-310\insightface\data\images

      creating build\lib.win-amd64-cpython-310\insightface\data\objects
      copying insightface\data\objects\meanshape_68.pkl -> build\lib.win-amd64-cpython-310\insightface\data\objects
      copying insightface\thirdparty\face3d\mesh\cython\mesh_core_cython.c -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh\cython
      copying insightface\thirdparty\face3d\mesh\cython\mesh_core_cython.cpp -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh\cython
      copying insightface\thirdparty\face3d\mesh\cython\mesh_core_cython.pyx -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh\cython
      copying insightface\thirdparty\face3d\mesh\cython\setup.py -> build\lib.win-amd64-cpython-310\insightface\thirdparty\face3d\mesh\cython
      running build_ext
      building 'insightface.thirdparty.face3d.mesh.cython.mesh_core_cython' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for insightface
Failed to build insightface
ERROR: Could not build wheels for insightface, which is required to install pyproject.toml-based projects
Inferencer commented 3 months ago

You need Microsoft visual studio community installed with the additional windows c++ build tools selected in the app to be installed

AricGamma commented 2 months ago

Since there has been no further feedback, this issue will be closed. If needed, please reopen it.