Найти в Дзене

Разбор BAT-файла установки ComfyUI через UV

Произведем разбор команд для установки и запуска ComfyUI с глубоким использованием особенностей менеджера UV: ==================== Сделаем текущим каталог запуска bat-файла @echo off && cd /D %CD% Сообщение на экран echo Installing "UV+ComfyUI" Строка установки UV в систему (антивирус может ругаться на нее!) powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" На всякий случай установим питона (были ошибки!) uv python install 3.12 Чтобы не зависеть от наличия Git в системе, просто скачиваем ZIP-файл с архивом последней версии ComfyUI powershell -c "Invoke-WebRequest 'https://github.com/comfyanonymous/ComfyUI/archive/refs/heads/master.zip' -OutFile 'ComfyUI.zip'" Разархивируем ее powershell -c "Expand-Archive -Force 'ComfyUI.zip' '%CD%'" Переименуем имя папки в стандвртное "ComfyUI", потому что в ZIP-архиве с Git оно другое и удалим архивы ren ComfyUI-master ComfyUI && if exist "ComfyUI.zip" del /f /q "ComfyUI.zip" Скачаем ZIP-архив менеджера ComfyUI чтобы

Произведем разбор команд для установки и запуска ComfyUI с глубоким использованием особенностей менеджера UV:

====================

Сделаем текущим каталог запуска bat-файла

@echo off && cd /D %CD%

Сообщение на экран

echo Installing "UV+ComfyUI"

Строка установки UV в систему (антивирус может ругаться на нее!)

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

На всякий случай установим питона (были ошибки!)

uv python install 3.12

Чтобы не зависеть от наличия Git в системе, просто скачиваем ZIP-файл с архивом последней версии ComfyUI

powershell -c "Invoke-WebRequest 'https://github.com/comfyanonymous/ComfyUI/archive/refs/heads/master.zip' -OutFile 'ComfyUI.zip'"

Разархивируем ее

powershell -c "Expand-Archive -Force 'ComfyUI.zip' '%CD%'"

Переименуем имя папки в стандвртное "ComfyUI", потому что в ZIP-архиве с Git оно другое и удалим архивы

ren ComfyUI-master ComfyUI && if exist "ComfyUI.zip" del /f /q "ComfyUI.zip"

Скачаем ZIP-архив менеджера ComfyUI чтобы не зависеть от наличия GIt в системе

powershell -c "Invoke-WebRequest 'https://github.com/ltdrdata/ComfyUI-Manager/archive/refs/heads/main.zip' -OutFile '%CD%\ComfyUI\custom_nodes\ComfyManager.zip'"

Разархивируем менеджера по известному стандартному его пути

powershell -c "Expand-Archive -Force '%CD%\ComfyUI\custom_nodes\ComfyManager.zip' '%CD%\ComfyUI\custom_nodes'"

Объединим в одну строку команды перехода в каталог, переименования каталога менеджера (после разархивации он с другим именем) в стандартное, и сделаем опять текущим прежний, корневой каталог

cd "%CD%\ComfyUI\custom_nodes" && ren ComfyUI-Manager-main ComfyUI-Manager && if exist "ComfyManager.zip" del /f /q "ComfyManager.zip" && cd "..\..\"

Скачаем заготовленный pyproject.toml файл с внесенными в него именами пакетов для стандартной установки

powershell -c "Invoke-WebRequest 'https://github.com/Nestorchik/UV/releases/download/uv/ComfyUI_pyproject.zip' -OutFile 'ComfyUI_pyproject.zip'"

Разархивируем его

powershell -c "Expand-Archive -Force 'ComfyUI_pyproject.zip' '%CD%'"

Удалим файл архива

if exist "ComfyUI_pyproject.zip" del /f /q "ComfyUI_pyproject.zip"

Создадим run.bat файл для последующего запуска комфи с текущими путями, куда прошла установка

echo cd "%CD%" >run.bat && echo uv run "%CD%\ComfyUI\main.py" --windows-standalone-build --front-end-version Comfy-Org/ComfyUI_frontend@latest >>run.bat && echo pause >>run.bat

Команда запуска только что установленного интерфейса

uv run "%CD%\ComfyUI\main.py" --windows-standalone-build --front-end-version Comfy-Org/ComfyUI_frontend@latest

Пауза, чтобы окно сразу не закрылось, и можно было бы прочитать лог установки, если в нем были ошибки

pause

====================

Пояснения

В коде нигде нет команд установки питона, сосздания виртуального окружения и установки пакетов.

Дело в том, что UV в них не нужджается, все нужные ему данные для установки о возьмет в скачанном и помещенном в корневой каталог прокта файле:

  • pyproject.toml
Примечание
Помните, что перед использованием ComfyUI этот файл надо удалить, т.к. UV восстанавливает все пакеты питона из него перед стартом ComfyUI и любые новые пакеты будут удалены.

Все.

Ресурсы:

Адрес bat-файла для скачивания: https://github.com/Nestorchik/UV/releases/download/uv/install_ComfyUI_with_UV_V3.bat

Адрес toml-файла для скачивания:
https://github.com/Nestorchik/UV/releases/download/uv/comfyUI_pyproject.toml

Git репозиторий файлов:
https://github.com/Nestorchik/UV/releases/tag/uv

Обложка статьи
Обложка статьи