LykosAI / StabilityMatrix

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

StabilityMatrix installed broken ComfyUI environment (numpy incompatible with torch) #691

Closed Ark-kun closed 3 months ago

Ark-kun commented 3 months ago
  1. Installed StabilityMatrix.
  2. Installed ComfyUI.
  3. Generation fails with "Numpy is not available"

I've checked and the numpy package is installed in the Data\Packages\ComfyUI\venv\Lib\site-packages\numpy\

{
  "prompt_id": "d4d859bb-20cf-496a-b67a-7bb3991576d5",
  "node_id": "Sampler",
  "node_type": "KSampler",
  "executed": [
    "EmptyLatentImage",
    "NegativeCLIP_Base",
    "PositiveCLIP_Base",
    "CheckpointLoader_Base"
  ],
  "exception_message": "Numpy is not available",
  "exception_type": "RuntimeError",
  "traceback": [
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\execution.py\u0022, line 151, in recursive_execute\n    output_data, output_ui = get_output_data(obj, input_data_all)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\execution.py\u0022, line 81, in get_output_data\n    return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\execution.py\u0022, line 74, in map_node_over_list\n    results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\nodes.py\u0022, line 1371, in sample\n    return common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, denoise=denoise)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\nodes.py\u0022, line 1341, in common_ksampler\n    samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image,\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\comfy\\sample.py\u0022, line 43, in sample\n    samples = sampler.sample(noise, positive, negative, cfg=cfg, latent_image=latent_image, start_step=start_step, last_step=last_step, force_full_denoise=force_full_denoise, denoise_mask=noise_mask, sigmas=sigmas, callback=callback, disable_pbar=disable_pbar, seed=seed)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\comfy\\samplers.py\u0022, line 794, in sample\n    return sample(self.model, noise, positive, negative, cfg, self.device, sampler, sigmas, self.model_options, latent_image=latent_image, denoise_mask=denoise_mask, callback=callback, disable_pbar=disable_pbar, seed=seed)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\comfy\\samplers.py\u0022, line 696, in sample\n    return cfg_guider.sample(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\comfy\\samplers.py\u0022, line 683, in sample\n    output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\comfy\\samplers.py\u0022, line 662, in inner_sample\n    samples = sampler.sample(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\comfy\\samplers.py\u0022, line 567, in sample\n    samples = self.sampler_function(model_k, noise, sigmas, extra_args=extra_args, callback=k_callback, disable=disable_pbar, **self.extra_options)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\venv\\lib\\site-packages\\torch\\utils\\_contextlib.py\u0022, line 115, in decorate_context\n    return func(*args, **kwargs)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\comfy\\k_diffusion\\sampling.py\u0022, line 162, in sample_euler_ancestral\n    callback({\u0027x\u0027: x, \u0027i\u0027: i, \u0027sigma\u0027: sigmas[i], \u0027sigma_hat\u0027: sigmas[i], \u0027denoised\u0027: denoised})\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\comfy\\samplers.py\u0022, line 565, in \u003Clambda\u003E\n    k_callback = lambda x: callback(x[\u0022i\u0022], x[\u0022denoised\u0022], x[\u0022x\u0022], total_steps)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\latent_preview.py\u0022, line 91, in callback\n    preview_bytes = previewer.decode_latent_to_preview_image(preview_format, x0)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\latent_preview.py\u0022, line 26, in decode_latent_to_preview_image\n    preview_image = self.decode_latent_to_preview(x0)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\latent_preview.py\u0022, line 45, in decode_latent_to_preview\n    return preview_to_image(latent_image)\n",
    "  File \u0022C:\\StabilityMatrix\\Data\\Packages\\ComfyUI\\latent_preview.py\u0022, line 19, in preview_to_image\n    return Image.fromarray(latents_ubyte.numpy())\n"
  ],
  "current_inputs": {
    "model": [
      "\u003Ccomfy.model_patcher.ModelPatcher object at 0x0000020C0BB22890\u003E"
    ],
    "seed": [
      0
    ],
    "steps": [
      20
    ],
    "cfg": [
      7.0
    ],
    "sampler_name": [
      "euler_ancestral"
    ],
    "scheduler": [
      "normal"
    ],
    "positive": [
      "[[tensor([[[-8.2814e-01, -8.9976e-01, -2.4925e-01,  ..., -3.8840e-01,\n          -2.9705e-01, -8.5038e-02],\n         [-1.2139e-01, -1.0980e-01, -3.2487e-02,  ...,  7.3705e-02,\n           9.2842e-02, -8.5870e-02],\n         [ 1.0202e\u002B00,  6.8447e-01,  1.8854e-01,  ...,  1.9235e-01,\n           8.4884e-02,  8.5213e-02],\n         ...,\n         [ 1.2294e-01,  1.2755e-02, -8.0040e-02,  ...,  8.6942e-01,\n           2.1672e-02,  2.2241e-01],\n         [ 1.4329e-01,  3.2061e-04, -1.0664e-01,  ...,  1.8975e-01,\n          -4.3233e-01,  1.9960e-01],\n         [ 7.3076e-02,  7.4461e-02, -4.6137e-02,  ...,  1.0335e\u002B00,\n           2.0393e-02,  2.2820e-01]]]), {\u0027pooled_output\u0027: tensor([[ 0.1993,  0.1413, -0.0337,  ..., -0.1045, -0.0736,  0.0261]])}]]"
    ],
    "negative": [
      "[[tensor([[[-8.2814e-01, -8.9976e-01, -2.4925e-01,  ..., -3.8840e-01,\n          -2.9705e-01, -8.5038e-02],\n         [-1.4006e-02, -5.4712e-02, -1.8800e-01,  ...,  9.8290e-02,\n           3.3537e-02, -4.6822e-02],\n         [ 1.4914e-03, -4.9538e-02,  7.5683e-02,  ...,  1.6066e-01,\n           5.9424e-02, -3.8710e-01],\n         ...,\n         [ 1.2805e-01,  1.5385e-02, -7.4367e-02,  ...,  1.1515e\u002B00,\n           3.8562e-02,  3.0370e-01],\n         [ 1.4866e-01,  3.1546e-04, -9.8462e-02,  ...,  2.7417e-01,\n          -4.0273e-01,  2.8136e-01],\n         [ 7.7070e-02,  8.0774e-02, -4.3993e-02,  ...,  1.1467e\u002B00,\n          -3.1456e-02,  3.1949e-01]]]), {\u0027pooled_output\u0027: tensor([[ 0.1843,  0.2113,  0.0099,  ..., -0.0744, -0.0775, -0.0063]])}]]"
    ],
    "latent_image": [
      "{\u0027samples\u0027: tensor([[[[0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          ...,\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.]],\n\n         [[0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          ...,\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.]],\n\n         [[0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          ...,\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.]],\n\n         [[0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          ...,\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.]]]])}"
    ],
    "denoise": [
      1.0
    ]
  },
  "current_outputs": {
    "CheckpointLoader_Base": [
      [
        "\u003Ccomfy.model_patcher.ModelPatcher object at 0x0000020C0BB22890\u003E"
      ],
      [
        "\u003Ccomfy.sd.CLIP object at 0x0000020C0B3CB5E0\u003E"
      ],
      [
        "\u003Ccomfy.sd.VAE object at 0x0000020C0B8FBFD0\u003E"
      ]
    ],
    "PositiveCLIP_Base": [
      [
        "[[tensor([[[-8.2814e-01, -8.9976e-01, -2.4925e-01,  ..., -3.8840e-01,\n          -2.9705e-01, -8.5038e-02],\n         [-1.2139e-01, -1.0980e-01, -3.2487e-02,  ...,  7.3705e-02,\n           9.2842e-02, -8.5870e-02],\n         [ 1.0202e\u002B00,  6.8447e-01,  1.8854e-01,  ...,  1.9235e-01,\n           8.4884e-02,  8.5213e-02],\n         ...,\n         [ 1.2294e-01,  1.2755e-02, -8.0040e-02,  ...,  8.6942e-01,\n           2.1672e-02,  2.2241e-01],\n         [ 1.4329e-01,  3.2061e-04, -1.0664e-01,  ...,  1.8975e-01,\n          -4.3233e-01,  1.9960e-01],\n         [ 7.3076e-02,  7.4461e-02, -4.6137e-02,  ...,  1.0335e\u002B00,\n           2.0393e-02,  2.2820e-01]]]), {\u0027pooled_output\u0027: tensor([[ 0.1993,  0.1413, -0.0337,  ..., -0.1045, -0.0736,  0.0261]])}]]"
      ]
    ],
    "NegativeCLIP_Base": [
      [
        "[[tensor([[[-8.2814e-01, -8.9976e-01, -2.4925e-01,  ..., -3.8840e-01,\n          -2.9705e-01, -8.5038e-02],\n         [-1.4006e-02, -5.4712e-02, -1.8800e-01,  ...,  9.8290e-02,\n           3.3537e-02, -4.6822e-02],\n         [ 1.4914e-03, -4.9538e-02,  7.5683e-02,  ...,  1.6066e-01,\n           5.9424e-02, -3.8710e-01],\n         ...,\n         [ 1.2805e-01,  1.5385e-02, -7.4367e-02,  ...,  1.1515e\u002B00,\n           3.8562e-02,  3.0370e-01],\n         [ 1.4866e-01,  3.1546e-04, -9.8462e-02,  ...,  2.7417e-01,\n          -4.0273e-01,  2.8136e-01],\n         [ 7.7070e-02,  8.0774e-02, -4.3993e-02,  ...,  1.1467e\u002B00,\n          -3.1456e-02,  3.1949e-01]]]), {\u0027pooled_output\u0027: tensor([[ 0.1843,  0.2113,  0.0099,  ..., -0.0744, -0.0775, -0.0063]])}]]"
      ]
    ],
    "EmptyLatentImage": [
      [
        "{\u0027samples\u0027: tensor([[[[0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          ...,\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.]],\n\n         [[0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          ...,\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.]],\n\n         [[0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          ...,\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.]],\n\n         [[0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          ...,\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.],\n          [0., 0., 0.,  ..., 0., 0., 0.]]]])}"
      ]
    ]
  }
}

Package:

    {
      "Id": "00ece08c-21c7-4512-8c3d-ea1849b6ed99",
      "DisplayName": "ComfyUI",
      "PackageName": "ComfyUI",
      "Version": {
        "InstalledBranch": "master",
        "InstalledCommitSha": "6425252c4f2f6acd8f4ad59a2135f5bdae3452e4",
        "IsPrerelease": false
      },
      "LibraryPath": "Packages\\ComfyUI",
      "LaunchCommand": "main.py",
      "LaunchArgs": [
        {
          "Name": "--preview-method auto",
          "Type": "Bool",
          "OptionValue": true
        },
        {
          "Name": "--directml",
          "Type": "Bool",
          "OptionValue": false
        },
        {
          "Name": "--cpu",
          "Type": "Bool",
          "OptionValue": false
        },
        {
          "Name": "--disable-xformers",
          "Type": "Bool",
          "OptionValue": false
        }
      ],
      "LastUpdateCheck": "2024-06-17T01:19:18.5630415-07:00",
      "UpdateAvailable": false,
      "PreferredTorchVersion": "Cuda",
      "PreferredSharedFolderMethod": "Configuration",
      "UseSharedOutputFolder": true
    }

I looked at the ComfyUI logs and saw this error:

Total VRAM 24575 MB, total RAM 130997 MB
pytorch version: 2.3.1+cu121
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 3090 : cudaMallocAsync

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.0 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "C:\StabilityMatrix\Data\Packages\ComfyUI\main.py", line 76, in <module>
    import execution
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\execution.py", line 11, in <module>
    import nodes
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\nodes.py", line 21, in <module>
    import comfy.diffusers_load
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\comfy\diffusers_load.py", line 3, in <module>
    import comfy.sd
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\comfy\sd.py", line 8, in <module>
    from .ldm.cascade.stage_c_coder import StageC_coder
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\comfy\ldm\cascade\stage_c_coder.py", line 19, in <module>
    import torchvision
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torchvision\__init__.py", line 6, in <module>
    from torchvision import _meta_registrations, datasets, io, models, ops, transforms, utils
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torchvision\models\__init__.py", line 2, in <module>
    from .convnext import *
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torchvision\models\convnext.py", line 8, in <module>
    from ..ops.misc import Conv2dNormActivation, Permute
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torchvision\ops\__init__.py", line 23, in <module>
    from .poolers import MultiScaleRoIAlign
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torchvision\ops\poolers.py", line 10, in <module>
    from .roi_align import roi_align
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torchvision\ops\roi_align.py", line 4, in <module>
    import torch._dynamo
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\__init__.py", line 64, in <module>
    torch.manual_seed = disable(torch.manual_seed)
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\decorators.py", line 50, in disable
    return DisableContext()(fn)
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\eval_frame.py", line 410, in __call__
    (filename is None or trace_rules.check(fn))
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\trace_rules.py", line 3378, in check
    return check_verbose(obj, is_inlined_call).skipped
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\trace_rules.py", line 3361, in check_verbose
    rule = torch._dynamo.trace_rules.lookup_inner(
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\trace_rules.py", line 3442, in lookup_inner
    rule = get_torch_obj_rule_map().get(obj, None)
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\trace_rules.py", line 2782, in get_torch_obj_rule_map
    obj = load_object(k)
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\trace_rules.py", line 2811, in load_object
    val = _load_obj_from_str(x[0])
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\_dynamo\trace_rules.py", line 2795, in _load_obj_from_str
    return getattr(importlib.import_module(module), obj_name)
  File "importlib\__init__.py", line 126, in import_module
  File "C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nested\_internal\nested_tensor.py", line 417, in <module>
    values=torch.randn(3, 3, device="meta"),
C:\StabilityMatrix\Data\Packages\ComfyUI\venv\lib\site-packages\torch\nested\_internal\nested_tensor.py:417: UserWarning: Failed to initialize NumPy: _ARRAY_API not found (Triggered internally at ..\torch\csrc\utils\tensor_numpy.cpp:84.)
  values=torch.randn(3, 3, device="meta"),

I have verified that when manually installing torch, a correct numpy version is installed:

>pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
Looking in indexes: https://download.pytorch.org/whl/cu121
Collecting torch
  Downloading https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp310-cp310-win_amd64.whl (2423.5 MB)
     |████████████████████████████████| 2423.5 MB 8.9 kB/s
Collecting torchvision
  Downloading https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp310-cp310-win_amd64.whl (5.7 MB)
     |████████████████████████████████| 5.7 MB 6.8 MB/s
Collecting torchaudio
  Downloading https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp310-cp310-win_amd64.whl (4.1 MB)
     |████████████████████████████████| 4.1 MB 6.8 MB/s
Collecting jinja2
  Downloading https://download.pytorch.org/whl/Jinja2-3.1.3-py3-none-any.whl (133 kB)
     |████████████████████████████████| 133 kB 6.4 MB/s
Collecting networkx
  Downloading https://download.pytorch.org/whl/networkx-3.2.1-py3-none-any.whl (1.6 MB)
     |████████████████████████████████| 1.6 MB 6.4 MB/s
Collecting typing-extensions>=4.8.0
  Downloading https://download.pytorch.org/whl/typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Collecting mkl<=2021.4.0,>=2021.1.1
  Downloading https://download.pytorch.org/whl/mkl-2021.4.0-py2.py3-none-win_amd64.whl (228.5 MB)
     |████████████████████████████████| 228.5 MB 135 kB/s
Collecting sympy
  Using cached https://download.pytorch.org/whl/sympy-1.12-py3-none-any.whl (5.7 MB)
Collecting filelock
  Downloading https://download.pytorch.org/whl/filelock-3.13.1-py3-none-any.whl (11 kB)
Collecting fsspec
  Downloading https://download.pytorch.org/whl/fsspec-2024.2.0-py3-none-any.whl (170 kB)
     |████████████████████████████████| 170 kB ...
Collecting pillow!=8.3.*,>=5.3.0
  Downloading https://download.pytorch.org/whl/pillow-10.2.0-cp310-cp310-win_amd64.whl (2.6 MB)
     |████████████████████████████████| 2.6 MB 6.4 MB/s
Collecting numpy
  Downloading https://download.pytorch.org/whl/numpy-1.26.3-cp310-cp310-win_amd64.whl (15.8 MB)
     |████████████████████████████████| 15.8 MB 6.4 MB/s
Collecting tbb==2021.*
  Downloading https://download.pytorch.org/whl/tbb-2021.11.0-py3-none-win_amd64.whl (298 kB)
     |████████████████████████████████| 298 kB 6.4 MB/s
Collecting intel-openmp==2021.*
  Downloading https://download.pytorch.org/whl/intel_openmp-2021.4.0-py2.py3-none-win_amd64.whl (3.5 MB)
     |████████████████████████████████| 3.5 MB 6.8 MB/s
Collecting MarkupSafe>=2.0
  Downloading https://download.pytorch.org/whl/MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl (17 kB)
Collecting mpmath>=0.19
  Using cached https://download.pytorch.org/whl/mpmath-1.3.0-py3-none-any.whl (536 kB)
Installing collected packages: tbb, mpmath, MarkupSafe, intel-openmp, typing-extensions, sympy, networkx, mkl, jinja2, fsspec, filelock, torch, pillow, numpy, torchvision, torchaudio

And here is the install log from Stability Matrix:

Unpacking resources
Unpacking resources
Download Complete
created virtual environment CPython3.10.11.final.0-64 in 12045ms
  creator CPython3Windows(dest=E:\_All+My.Creativity.2024.AI-Art\Data\Packages\ComfyUI2\venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\Ark\AppData\Local\pypa\virtualenv)
    added seed packages: pip==24.0, setuptools==69.5.1, wheel==0.43.0
  activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Requirement already satisfied: pip in e:\_all+my.creativity.2024.ai-art\data\packages\comfyui2\venv\lib\site-packages (24.0)
Requirement already satisfied: wheel in e:\_all+my.creativity.2024.ai-art\data\packages\comfyui2\venv\lib\site-packages (0.43.0)
Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cu121
Collecting torch
  Using cached https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp310-cp310-win_amd64.whl (2423.5 MB)
Collecting torchvision
  Using cached https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp310-cp310-win_amd64.whl (5.7 MB)
Collecting torchsde
  Using cached torchsde-0.2.6-py3-none-any.whl.metadata (5.3 kB)
Collecting torchaudio
  Using cached https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp310-cp310-win_amd64.whl (4.1 MB)
Collecting einops
  Using cached einops-0.8.0-py3-none-any.whl.metadata (12 kB)
Collecting transformers>=4.25.1
  Using cached transformers-4.41.2-py3-none-any.whl.metadata (43 kB)
Collecting safetensors>=0.4.2
  Using cached safetensors-0.4.3-cp310-none-win_amd64.whl.metadata (3.9 kB)
Collecting aiohttp
  Using cached aiohttp-3.9.5-cp310-cp310-win_amd64.whl.metadata (7.7 kB)
Collecting pyyaml
  Using cached PyYAML-6.0.1-cp310-cp310-win_amd64.whl.metadata (2.1 kB)
Collecting Pillow
  Using cached pillow-10.3.0-cp310-cp310-win_amd64.whl.metadata (9.4 kB)
Collecting scipy
  Using cached scipy-1.13.1-cp310-cp310-win_amd64.whl.metadata (60 kB)
Collecting tqdm
  Using cached tqdm-4.66.4-py3-none-any.whl.metadata (57 kB)
Collecting psutil
  Using cached psutil-5.9.8-cp37-abi3-win_amd64.whl.metadata (22 kB)
Collecting kornia>=0.7.1
  Using cached kornia-0.7.2-py2.py3-none-any.whl.metadata (12 kB)
Collecting spandrel
  Using cached spandrel-0.3.4-py3-none-any.whl.metadata (14 kB)
Collecting filelock (from torch)
  Using cached filelock-3.15.1-py3-none-any.whl.metadata (2.8 kB)
Collecting typing-extensions>=4.8.0 (from torch)
  Using cached typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting sympy (from torch)
  Using cached sympy-1.12.1-py3-none-any.whl.metadata (12 kB)
Collecting networkx (from torch)
  Using cached networkx-3.3-py3-none-any.whl.metadata (5.1 kB)
Collecting jinja2 (from torch)
  Using cached jinja2-3.1.4-py3-none-any.whl.metadata (2.6 kB)
Collecting fsspec (from torch)
  Using cached fsspec-2024.6.0-py3-none-any.whl.metadata (11 kB)
Collecting mkl<=2021.4.0,>=2021.1.1 (from torch)
  Using cached https://download.pytorch.org/whl/mkl-2021.4.0-py2.py3-none-win_amd64.whl (228.5 MB)
Collecting numpy (from torchvision)
  Using cached numpy-2.0.0-cp310-cp310-win_amd64.whl.metadata (60 kB)
Collecting trampoline>=0.1.2 (from torchsde)
  Using cached trampoline-0.1.2-py3-none-any.whl.metadata (10 kB)
Collecting huggingface-hub<1.0,>=0.23.0 (from transformers>=4.25.1)
  Using cached huggingface_hub-0.23.4-py3-none-any.whl.metadata (12 kB)
Collecting packaging>=20.0 (from transformers>=4.25.1)
  Using cached packaging-24.1-py3-none-any.whl.metadata (3.2 kB)
Collecting regex!=2019.12.17 (from transformers>=4.25.1)
  Using cached regex-2024.5.15-cp310-cp310-win_amd64.whl.metadata (41 kB)
Collecting requests (from transformers>=4.25.1)
  Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting tokenizers<0.20,>=0.19 (from transformers>=4.25.1)
  Using cached tokenizers-0.19.1-cp310-none-win_amd64.whl.metadata (6.9 kB)
Collecting aiosignal>=1.1.2 (from aiohttp)
  Using cached aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
Collecting attrs>=17.3.0 (from aiohttp)
  Using cached attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB)
Collecting frozenlist>=1.1.1 (from aiohttp)
  Using cached frozenlist-1.4.1-cp310-cp310-win_amd64.whl.metadata (12 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp)
  Using cached multidict-6.0.5-cp310-cp310-win_amd64.whl.metadata (4.3 kB)
Collecting yarl<2.0,>=1.0 (from aiohttp)
  Using cached yarl-1.9.4-cp310-cp310-win_amd64.whl.metadata (32 kB)
Collecting async-timeout<5.0,>=4.0 (from aiohttp)
  Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB)
Collecting colorama (from tqdm)
  Using cached https://download.pytorch.org/whl/colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting kornia-rs>=0.1.0 (from kornia>=0.7.1)
  Using cached kornia_rs-0.1.3-cp310-none-win_amd64.whl.metadata (8.9 kB)
Collecting intel-openmp==2021.* (from mkl<=2021.4.0,>=2021.1.1->torch)
  Using cached https://download.pytorch.org/whl/intel_openmp-2021.4.0-py2.py3-none-win_amd64.whl (3.5 MB)
Collecting tbb==2021.* (from mkl<=2021.4.0,>=2021.1.1->torch)
  Using cached tbb-2021.12.0-py3-none-win_amd64.whl.metadata (1.1 kB)
Collecting idna>=2.0 (from yarl<2.0,>=1.0->aiohttp)
  Using cached idna-3.7-py3-none-any.whl.metadata (9.9 kB)
Collecting MarkupSafe>=2.0 (from jinja2->torch)
  Using cached https://download.pytorch.org/whl/MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl (17 kB)
Collecting charset-normalizer<4,>=2 (from requests->transformers>=4.25.1)
  Using cached charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl.metadata (34 kB)
Collecting urllib3<3,>=1.21.1 (from requests->transformers>=4.25.1)
  Using cached urllib3-2.2.1-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests->transformers>=4.25.1)
  Using cached certifi-2024.6.2-py3-none-any.whl.metadata (2.2 kB)
Collecting mpmath<1.4.0,>=1.1.0 (from sympy->torch)
  Using cached https://download.pytorch.org/whl/mpmath-1.3.0-py3-none-any.whl (536 kB)
Using cached torchsde-0.2.6-py3-none-any.whl (61 kB)
Using cached einops-0.8.0-py3-none-any.whl (43 kB)
Using cached transformers-4.41.2-py3-none-any.whl (9.1 MB)
Using cached safetensors-0.4.3-cp310-none-win_amd64.whl (287 kB)
Using cached aiohttp-3.9.5-cp310-cp310-win_amd64.whl (370 kB)
Using cached PyYAML-6.0.1-cp310-cp310-win_amd64.whl (145 kB)
Using cached pillow-10.3.0-cp310-cp310-win_amd64.whl (2.5 MB)
Using cached scipy-1.13.1-cp310-cp310-win_amd64.whl (46.2 MB)
Using cached tqdm-4.66.4-py3-none-any.whl (78 kB)
Using cached psutil-5.9.8-cp37-abi3-win_amd64.whl (255 kB)
Using cached kornia-0.7.2-py2.py3-none-any.whl (825 kB)
Using cached spandrel-0.3.4-py3-none-any.whl (268 kB)
Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Using cached attrs-23.2.0-py3-none-any.whl (60 kB)
Using cached frozenlist-1.4.1-cp310-cp310-win_amd64.whl (50 kB)
Using cached huggingface_hub-0.23.4-py3-none-any.whl (402 kB)
Using cached fsspec-2024.6.0-py3-none-any.whl (176 kB)
Using cached kornia_rs-0.1.3-cp310-none-win_amd64.whl (1.2 MB)
Using cached tbb-2021.12.0-py3-none-win_amd64.whl (286 kB)
Using cached multidict-6.0.5-cp310-cp310-win_amd64.whl (28 kB)
Using cached numpy-2.0.0-cp310-cp310-win_amd64.whl (16.5 MB)
Using cached packaging-24.1-py3-none-any.whl (53 kB)
Using cached regex-2024.5.15-cp310-cp310-win_amd64.whl (268 kB)
Using cached tokenizers-0.19.1-cp310-none-win_amd64.whl (2.2 MB)
Using cached trampoline-0.1.2-py3-none-any.whl (5.2 kB)
Using cached typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Using cached yarl-1.9.4-cp310-cp310-win_amd64.whl (76 kB)
Using cached filelock-3.15.1-py3-none-any.whl (15 kB)
Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)
Using cached networkx-3.3-py3-none-any.whl (1.7 MB)
Using cached requests-2.32.3-py3-none-any.whl (64 kB)
Using cached sympy-1.12.1-py3-none-any.whl (5.7 MB)
Using cached certifi-2024.6.2-py3-none-any.whl (164 kB)
Using cached charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl (100 kB)
Using cached idna-3.7-py3-none-any.whl (66 kB)
Using cached urllib3-2.2.1-py3-none-any.whl (121 kB)
Installing collected packages: trampoline, tbb, mpmath, intel-openmp, urllib3, typing-extensions, sympy, safetensors, regex, pyyaml, psutil, Pillow, packaging, numpy, networkx, multidict, mkl, MarkupSafe, kornia-rs, idna, fsspec, frozenlist, filelock, einops, colorama, charset-normalizer, certifi, attrs, async-timeout, yarl, tqdm, scipy, requests, jinja2, aiosignal, torch, huggingface-hub, aiohttp, torchvision, torchsde, torchaudio, tokenizers, kornia, transformers, spandrel

The same issue happens when installing everything in a single pip call:

pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu121 einops "transformers>=4.25.1" "safetensors>=0.4.2" aiohttp pyyaml Pillow scipy tqdm psutil "kornia>=0.7.1" spandrel
alexberd commented 3 months ago

I have got a very similar "RuntimeError: Numpy is not available" error

Koitenshin commented 3 months ago

What you both need to do is to click on the "3 dots stacked on top of each other" on the ComfyUI card and click Python Packages. In the Search box type in Numpy, then click on Numpy. Click on the version number, then click on 1.26.4 Click on the new box with an arrow on it that points down right. That's the downgrade box. You'll go back to numpy 1.26.4 and things should work again.

Nickdev7 commented 3 months ago

shit im reinstalling comfy, thx man for the comment saved me from pulling my hair out

ionite34 commented 3 months ago

Should be fixed in https://github.com/LykosAI/StabilityMatrix/releases/tag/v2.11.1 for new installs and updates.

Please try the instructions suggested by Koitenshin https://github.com/LykosAI/StabilityMatrix/issues/691#issuecomment-2176554468 to downgrade numpy to 1.26.4 for existing installs.

Ark-kun commented 3 months ago

@ionite34 I did some investigations. The root issue is likely on Torch's side (they do not seem to require numpy<2).

And ComfyUI might be somewhat careless to not limit most packages.

But here is what StabilityMatrix does differently leading to the issue:

There are two correct invocations:

Installing Torch with Cuda support (from Torch's package index).

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

This installs numpy 1.x.

Installing Torch and ComfyUI prerequisites from PyPI.

pip install torch torchvision torch einops "transformers>=4.25.1" "safetensors>=0.4.2" aiohttp pyyaml Pillow scipy tqdm psutil "kornia>=0.7.1" spandrel

This installs numpy 2.x.

And here is what StabilityMatrix runs:

pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu121 einops "transformers>=4.25.1" "safetensors>=0.4.2" aiohttp pyyaml Pillow scipy tqdm psutil "kornia>=0.7.1" spandrel

As you see, StabilityMatrix enables the PyPI repository with torch repo being an extra. I do not yet understand why this affects the numpy version.

One solution would be to first install Torch using Torch's official method, then install ComfyUI's requirements.txt with a second pip install command.