Статьи

Установка ComfyUI в Linux на компьютере с видеокартами Nvidia

Генерировать различный контент с помощью искусственного интеллекта в настоящее время можно даже на относительно старых компьютерах. Для работы с текстовыми ИИ-моделями хорошо подходят такие программы, как ollama, LM Studio и другие. Чтобы создавать картинки и видео на своем оборудовании и с помощью облачных сервисов, удобно использовать ComfyUI.

ComfyUI является модульной оболочкой с удобным гибко настраиваемым под нужды пользователя графическим интерфейсом, позволяющим работать с AI-моделями генерации и обработки изображений/видео с помощью системы нод (узлов). Это своего рода конструктор, где можно самостоятельно собирать различные комбинации модулей/программ для работы с AI-мультимедиа.

ComfyUI можно установить и использовать как в Windows, так и в Linux. Для генерации картинок и видео желательно иметь видеокарту с большим объемом видеопамяти, которая будет использоваться для загрузки ИИ-моделей. При наличии большого количества оперативной памяти можно обойтись и одним многоядерным CPU, но скорость работы в этом случае будет очень невысокой.

В данной статье описывается процедура установки ComfyUI в gentoo с интегрированной видеокартой Intel, использующейся для вывода изображения на монтир плюс GPU Nvidia Tesla V100 для работы с AI-приложениями. основанная на личном опыте автора. Она подходит и для других операционных систем на ядре Linux, так как работа с программой проводится в специально создаваемом виртуальном окружении, что обеспечивает высокую совместимость и позволяет быстро менять программную конфигурацию, не ломая зависимостей операционной системы.

В статье могут быть неточности и ошибки, если читатель обнаружит таковые, просьба не судить строго и оставить комментарий по сути проблемы…

Как установить ComfyUI в Linux?

Установка ComfyUI в Linux производится в терминале.

На компьютере с видеокартами Nvidia может понадобиться установить CUDA Runtime. В gentoo это делается командой:

sudo emerge --ask dev-libs/cudnn --autounmask

Сначала нужно скачать исходные коды ComfyUI с репозитория github и перейти в каталог с ними:

  git clone https://github.com/comfyanonymous/ComfyUI.git && cd ComfyUI

Затем нужно создать виртуальное окружение, в котором будет производиться дальнейшая установка ComfyUI:

  python3 -m venv venv && source venv/bin/activate

Далее работа будет производиться в изолированном виртуальном окружении venv, созданном исключительно для работы с ComfyUI.

Устанавливаем окружение ComfyUI:

  pip install -r requirements.txt

В процессе установки будут загружены минимально необходимые программные пакеты и модули:

Обновляем pip командой:

  python3 -m pip install --upgrade pip

Кроме того, до запуска comfyui, желательно установить плагин ComfyUI-Manager командой:

  pip install -r manager_requirements.txt

Теперь можно запускать comfyui командой:

  python main.py --enable-manager

Если изолированное окружение python еще не создано (например, после перезагрузки компьютера), дальнейшая работа требует запуска виртуального окружения и лишь потом программы comfyui:

  python3 -m venv venv && source venv/bin/activate
  python main.py --enable-manager

В любом браузере нужно перейти по адресу 127.0.0.1:8188, после чего загрузится страничка с workflow comfyui:

Чтобы оно заработало, нужно скачать и поместить в папку ComfyUI/models/checkpoints/ файл v1-5-pruned-emaonly-fp16.safetensors (это можно сделать на сайте huggingface), либо использовать другую модель/рабочий процесс.

Это уже устаревшая модель Stable Diffusion версии 1.5, которую можно использовать на начальном этапе для изучения особенностей окружения comfyui.

После загрузки модели нужно обновить страничку comfyui в браузере (адрес 127.0.0.1:8188/). Ошибка Missing Models исчезнет, можно приступать к генерации изображений в Stable Diffusion версии 1.5, либо работать с другими моделями и модулями. Для этого в интернете нужно скачать желаемые модели искусственного интеллекта (например, Flux, Stable Diffusion, Z-Image и другие), поместить их в каталог diffusion models (или checkpoints), доставить вспомогательные модули (например, rgthreeс помощью ComfyUI-Manager и/или вручную).

Теперь можно баловаться с генерацией изображений и, при наличии видеокарты с большим объемом памяти, видео:

Если все ноды workflow установлены, но после запуска генерации возникает ошибка, скорее всего используется несовместимая с видеокартой версия torch, а также Nvidia Cuda Toolkit.

Как выбрать подходящую версию torch и CUDA для своей видеокарты Nvidia при работе с comfyui?

Если на компьютере используется старая видеокарта Nvidia, прежде всего следует внимательно изучить ее технические характеристики, чтобы понять, какой релиз CUDA Toolkit следует использовать.

Если установить самую новую версию torch и CUDA на старое оборудование, Comfy UI запустится, выдавая в консоли предупреждение:

ComfyUI/venv/lib/python3.13/site-packages/torch/cuda/__init__.py:371: UserWarning: Found GPU0 Tesla V100-SXM2-16GB which is of compute capability (CC) 7.0.

The following list shows the CCs this version of PyTorch was built for and the hardware CCs it supports:

— 7.5 which supports hardware CC >=7.5,<8.0

— 8.0 which supports hardware CC >=8.0,<9.0 except {8.7}

— 8.6 which supports hardware CC >=8.6,<9.0 except {8.7}

— 9.0 which supports hardware CC >=9.0,<10.0

— 10.0 which supports hardware CC >=10.0,<11.0 except {10.1}

— 12.0 which supports hardware CC >=12.0,<13.0

Please follow the instructions at https://pytorch.org/get-started/locally/ to install a PyTorch release that supports one of these CUDA versions: 12.6, 12.8

_warn_unsupported_code(d, device_cc, code_ccs)

comfyui сообщает, что адаптер Tesla V100-SXM2-16GB не совместим с с текущей версией PyTorch и предлагает установить CUDA версий 12.6 или 12.8.

Окружение comfyui при этом запускается, но при попытке запустить генерацию возникает ошибка:

  torch.AcceleratorError: CUDA error: no kernel image is available for execution on the device

В консоли запуска comfyui при этом можно увидеть следующую информацию:

torch.AcceleratorError: CUDA error: no kernel image is available for execution on the device

Search for `cudaErrorNoKernelImageForDevice’ in https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html for more information.

CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.

For debugging consider passing CUDA_LAUNCH_BLOCKING=1

Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

Ошибку можно побороть, установив совместимые torch и CUDA. Для этого удаляем неподходяшие torch, torchvision и torchaudio командой:

  pip uninstall torch torchvision torchaudio -y

Инсталляция командой:

  pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

горю не поможет, так как все равно установиться torch самой новой версии (на момент написания статьи — 2.11.0), а он не совместим с Compute Capability 7.0. В браузер ошибка может и не появиться, но в консоли после попытки запустить генерацию снова возникнет сообщение:

torch.AcceleratorError: CUDA error: no kernel image is available for execution on the device

Search for `cudaErrorNoKernelImageForDevice’ in https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__TYPES.html for more information.

CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.

For debugging consider passing CUDA_LAUNCH_BLOCKING=1

Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

Нужно снова удалить несовместимые версии pytorch, подобрать подходящие видеокарте torch и CUDA, а затем установить их (для Nvidia Tesla V100) командой с указанием нужных версий программ.

Версию CUDA Toolkit следует выбирать в соответствии с характеристиками использующейся видеокарты Nvidia, ориентируясь на ее compute capability (cc). Для тех адаптеров, которые официально поддерживаются компанией Nvidia теоретически лучше устанавливать самую последнюю версию CUDA.

Например, видеокарта Nvidia Tesla V100 (поколение Volta) обеспечивает работу с командами cc 7.0. Старые добрые Nvidia Ge Force 1000-й серии имеют Compute Capability версии 6.1:

Последняя версия nvidia-cuda-runtime, в которой официально сохранена поддержка архитектуры Nvidia Volta (а также Pascal и Maxwell) — 12.9.1:

Учитывая информацию с сайта pytorch о совместимых версиях cuda runtime, вероятно лучше использовать CUDA 12.8, это поможет избежать ошибок. Для установки torch и torchaudio версий 2.10.0, torchvision 0.25.0 и CUDA 12.8 используется команда:

  pip install torch==2.10.0 torchvision==0.25.0 torchaudio==2.10.0 --index-url https://download.pytorch.org/whl/cu128

После этого comfyui успешно работает, при запуске в консоли виртуального окружения ошибок нет.

При настройке comfyui нужно добиться, чтобы устанавливаемые комбинации программ и Nvidia CUDA Runtime были совместимы друг с другом, а также с compute capability видеокарты.

Полная информация о соответствии разных версий драйверов и CUDA Toolkit есть на сайте Nvidia.

Подробная информация о самом новом релизе программы torch есть на сайте pypi:

К сожалению, последняя версия torch поддерживает работу только с видеокартами с compute capability 7.5 и выше.

Информация о совместимости torch с программами torchvision и torchaudio есть на github в репозитории pytorch/pytorch/wiki/PyTorch-Versions:

В разделе Installing previous versions of PyTorch сайта pytorch есть примеры команд для устанавливаемой комбинации программ:

P.S. При использовании команды


pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

устанавливается Legacy CUDA версия pytorch 2.11.0+cu126.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *