LykosAI / StabilityMatrix

Multi-Platform Package Manager for Stable Diffusion
https://lykos.ai
GNU Affero General Public License v3.0
4.83k stars 311 forks source link

It seems the Python installed by StabilityMatrix is an incomplete installation, and it lacks distutils #954

Open shivshankar11 opened 1 month ago

shivshankar11 commented 1 month ago

Package

Python

When did the issue occur?

Installing the Package

What GPU / hardware type are you using?

4090

What happened?

https://github.com/woct0rdho/triton-windows/issues/1 It seems the Python installed by StabilityMatrix is an incomplete installation, and it lacks distutils. Please ask the authors of StabilityMatrix to fix that.

Console output

est fails in my case (Python 3.10 in venv, didn't add "include_libs")

Traceback (most recent call last): File "d:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\test.py", line 2, in import triton File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton__init.py", line 8, in from .runtime import ( File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\runtime__init.py", line 1, in from .autotuner import (Autotuner, Config, Heuristics, autotune, heuristics) File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\runtime\autotuner.py", line 9, in from ..testing import do_bench, do_bench_cudagraph File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\testing.py", line 7, in from . import language as tl File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\language__init.py", line 4, in from . import math File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\language\math.py", line 1, in from . import core File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\language\core.py", line 10, in from ..runtime.jit import jit File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\runtime\jit.py", line 12, in from ..runtime.driver import driver File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\runtime\driver.py", line 1, in from ..backends import backends File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\backends__init.py", line 50, in backends = _discover_backends() File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\backends\init.py", line 44, in _discover_backends driver = _load_module(name, os.path.join(root, name, 'driver.py')) File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\backends\init.py", line 12, in _load_module spec.loader.exec_module(module) File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\backends\amd\driver.py", line 7, in from triton.runtime.build import _build File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\triton\runtime\build.py", line 8, in import setuptools File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\setuptools\init.py", line 7, in import _distutils_hack.override # noqa: F401 File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages_distutils_hack\override.py", line 1, in import__('_distutils_hack').do_override() File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages_distutils_hack\init__.py", line 77, in do_override ensure_local_distutils() File "D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages_distutils_hack\init__.py", line 64, in ensure_local_distutils assert '_distutils' in core.file, core.file__ AssertionError: D:\Soft\StableDiffusion-StabilityMatrix\Data\Packages\ComfyUI\venv\Scripts\python310.zip\distutils\core.py

Version

latest i guess

What Operating System are you using?

Windows

shivshankar11 commented 1 month ago

feature request- force stablixtymatrix to use existing venv, why it must replace venv. very annoying. i want to use complete python 3.11/3.12. not incomplete python environments.

kimnzl commented 1 month ago

If you set the environment variable SETUPTOOLS_USE_DISTUTILS=stdlib you should be past that distutil error.

I used:

Install requirements VS and CUDA
C&P Python 3.10 include and libs folders into one of the paths listed in the error - in the venv for me. I have attached them in a zip.
I c&p include and libs folders into:
Data\Packages\ComfyUI\venv and Data\Packages\ComfyUI\venv\Scripts

run cmd.exe

set SETUPTOOLS_USE_DISTUTILS=stdlib
cd /d <StabilityMatrixFolder>\Data\Packages\ComfyUI

:: Pick one of the following
:: VS2022 build tools
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\VsDevCmd.bat"
:: VS2022 Community
call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"

call venv\Scripts\activate.bat

pip install --upgrade setuptools

pip install <path to where downloaded>\triton-3.1.0-cp310-cp310-win_amd64.whl

Python310_includes_libs.zip

scruffynerf commented 1 month ago
source venv/bin/activate
export SETUPTOOLS_USE_DISTUTILS=stdlib
StabilityMatrix/Data/Packages/ComfyUI/venv/bin/python3 StabilityMatrix/Data/Packages/ComfyUI/main.py (args as needed)

With this, you can remotely restart ComfyUI, when it's crashed, and only way to reset it is via SM (which isn't accessibly remotely)

thiagojramos commented 2 weeks ago

feature request- force stablixtymatrix to use existing venv, why it must replace venv. very annoying. i want to use complete python 3.11/3.12. not incomplete python environments.

I've tried several times to request features like this to use newer versions of python, and I've even seen several requests around here, but the devs ignore them and the posts end up being closed due to inactivity for so many days... 🤷🏼‍♂️