Главная

Friday, 13 September 2024

Интерфейс Comfy CLI


Всем привет.

Хорошая новость - существует кросс-платформенный интерфейс управления ComfyUI в режиме командной строки Comfy, т.е. CLI.

Для обычного пользователя ComfyUI он может быть и не нужен, но это пока. Пока пользователь справляется со своими эмоциями от паутинок(workflow) ComfyUI мы попробуем ComfyUI CLI. Поскольку ниже я пересказываю примеры одного гуру (источник), то все примеры кода и его расположения выбраны им, хотя как по мне, он слишком глубоко копнул эту тему. Фанат одним словом.

Ok, тогда пойдем дальше. Все примеры ниже приведены исходя из того, что Python находится по пути "c:\p311" (версия 3.11), а устанавливать Comfy мы будем в папку "d:\3".

Для начала создадим виртуальное окружение Python-а "venv" (замечание: обычно ComfyUI из коробки не использует модуль venv, но работать с ним может):

    c:\p311\python -m venv d:\3\venv

Если мы все правильно сделали, то у нас по адресу "d:\3"появится папка "venv". Запомним, что вызывать Python из этой установки нам надо командой:

    d:\3\venv\Scripts\python.exe

и все обращения к Python мы будем производить именно этой командой, с указанием полного пути к нему. Итак, у нас установлен "чистый" Python, т.е. без всяких пакетов. 


Варианты установки Comfy CLI

1. Устанавливаем Comfy CLI как инструмент командной строки для ComfyUI:

    d:\3\venv\Scripts\python -m pip install comfy-cli

Теперь выполним такую команду:

    d:\3\venv\Scripts\Comfy

и получим справку по управлению Comfy из режима командной строки. 

Самое святое это запросить номер версии Comfy CLI:


Теперь управление ComfyUI можно производить отсюда. Выполняем команды:

    d:\3\venv\Scripts\comfy install

начнется установка ComfyUI в папку "Документы\comfy\ComfyUI" (%DocumentsFolder%\comfy\ComfyUI) текущего пользователя. Меня это не совсем устраивает, мне не нравится место, куда он мне разместил ComfyUI, поэтому я делаю так:

xcopy /V /D /S /E /H c:\Users\ИМЯ_АККАУНТА\Documents\comfy\ComfyUI d:\3\ComfyUI\

rd /s /q  c:\Users\ИМЯ_АККАУНТА\Documents\comfy\ComfyUI

Это переместит все, что установилось в папку "d:\3" где у нас уже находится папка "venv". После того, как мы переместили комфи, дадим следующую команду:

    d:\3\venv\Scripts\comfy set-default d:\3\ComfyUI

Эта команда установит указанную нами папку с ComfyUI на "папка по умолчанию".

Примечание: в качестве "Default ComfyUI workspace" выбирать уже существующую на диске ComfyUI, если она скачана с git. Надо установить "pip install comfy_cli" в питон уже существующей ComfyUI, далее командой "comfy set-default path" где path - путь к существующему ComfyUI, то получим интерфейс командой строки для управления, запуска, обновления, установки пакетов, нод, модулей и т.п. через интерфейс командной строки.

Выполним команду:

    d:\3\venv\Scripts\comfy env

и получим окно с текущими настройками Comfy:


Следующая команда запускает собственно ComfyUI:

    d:\3\venv\Scripts\comfy launch

Запускаем браузер:

    http://127.0.0.1:8188

и увидим знакомый интерфейс СomfyUI.


2. Установка Сomfy СLI для "дурачка"

Собственно говоря, весь путь от установки самого Comfy СLI и до запуска ComfyUI можно пройти следующими командами, только первая из которых устанавливает сам пакет "comfy_cli":

    \venv\Scripts\python -m pip install comfy_cli

Дальше мы уже не имеем дело с самим Python, а все управление ComfyUI производится EXE-шником с именем "comfy.exe", который инсталлируется в папку скриптов (если это venv), вызывается оттуда и ему в качестве аргументов дается указание что именно сделать:

    \venv\Scripts\comfy install

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

    \venv\Scripts\comfy launch -- --auto-launch

Собственно и все, что нужно для установки и запуска ComfyUI. Дальше можно пользоваться всем спектром команд пакета comfy_cli:

\venv\Scripts\comfy update comfy

\venv\Scripts\comfy update all

\venv\Scripts\comfy node show installed

\venv\Scripts\comfy node show all

и т.п., смотрите документацию на https://github.com/Comfy-Org/comfy-cli


3. Установка Сomfy СLI в рабочую версию ComfyUI

Множественные эксперименты с инсталляцией/деинсталляцией comfy_cli могут привести к непоняткам, т.к. файл параметров comfy_cli остается "вне поля зрения", имеется в единственном экземпляре, и расположен по пути:

\Users\USER_NAME\AppData\Local\comfy-cli\config.ini

Соответственно, если у вас несколько копий питона, и в каждый вы установили по экземпляру comfy_cli, все они будут брать информацию о настройках из одного файла. что может привести к непониманию "Я же удалил! Откуда он все это берет?!".

Замечание: это у автора несколько копий Python для экспериментов, если нашего пользователя ComfyUI интересует сам ComfyUI врядли он будет держать на своем ПК такой зоопарк "ползучих гадов".

Поэтому помните, что "для сброса" всех параметров вам надо удалить еще и папку с этим файлом! Заодно проверьте папку "Documents\comfy", куда он "по умолчанию" ставит ComfyUI после установки.

Итак, идем в виртуальное окружение "venv", папка "Scripts", и первым делом установим comfy_cli:

    venv\Srcipts\pyhton -m pip install comfy_cli

Потом мы уже просто вызываем по полному пути файл "comfy.exe" и в качестве аргументов командной строки передаем ему параметры и команды:

    venv\Scripts\comfy launch -- --auto-launch

Если до установки comfy_cli в питоне вы удалили файл конфигурации "\Users\USER_NAME\AppData\Local\comfy-cli\config.ini", то comfy_cli настроится автоматически на тот экземпляр ComfyUI, который работает на этом venv, и все команды управления comfy будут направлены именно этому экземпляру ComfyUI.

Таким образом мы получаем "интерфейс командной строки для управления ComfyUI" без вмешательства в код и работу самого ComfyUI.

Собственно и все. 

Ставьте и изучайте команды терминала Comfy CLI. Если раньше всем в ComfyUI можно было руководить командами питона, то теперь появился менеджер командной строки Comfy CLI. Как файл "command.com" является интерпретатором командной строки, там теперь файл "comfy.exe" является интерпретатором командной строки ComfyUI. 

Оригинал документации: https://github.com/Comfy-Org/comfy-cli

Замечание: код ComfyUI тем и хорош что он не бинарный и можно все проверить и настроить под себя. А когда у меня портабельная версия и все в одном месте то я имею комфорт два в одном: и Управляемость и Мобильность. С другой стороны если Comfy CLI будет развиваться, то возможно в будущем я найду ему применение.

Успехов.

2 comments:

  1. In portable version via update_comfyui.bat run once command: ..\python_embeded\python.exe -m pip install comfy_cli

    ReplyDelete
  2. Кстати, по моему только ComfyCLI покажет версию самой ComfyUI.)

    ReplyDelete

А что вы думаете по этому поводу?