CUIが好きなようだ

CUIの方が好きなようだ

1. Git版 ComfyUI with ROCm7.2を使う理由

デスクトップ版のComfyUIも正式にROCm7.2に対応しているのにもかかわらず、敢えてGit版のComfyUIを使っているのは、単にCUIが好きだからっていうのもあるけど、デスクトップ版にはElectronが組み込まれて居るらしいけれどGPUアクセラレーションを無効にできないので、GPUアクセラレーションを使用しないGoogle Chromeと連携できること、ComfyUIの起動オプションや環境変数を細かく設定できること、outputフォルダを日付で作成して分類できることなどが理由です。

2. 設定しているバッチファイル

1_ComfyUI_update.bat

D:
cd D:\ComfyUI
git pull
pip install -r requirements.txt

2_ComfyUI_date.bat

@echo off
setlocal

rem PowerShellを使って確実に yyyyMMdd を取得(ロケールに左右されません)
for /f "usebackq" %%i in (`powershell -NoProfile -Command "Get-Date -Format 'yyyyMMdd'"`) do set yyyymmdd=%%i

rem Get the Output path
set parentPath=H:\output

rem Create the folder with the name yyyymmdd
set outpath=%parentPath%\%yyyymmdd%

:: システムのPythonやライブラリを無視させる
set PYTHONNOUSERSITE=1
set PYTHONPATH=
:: このアプリ専用のPythonとROCmのパスを最優先にする
set PATH=%~dp0python_embeded;%~dp0python_embeded\Scripts;%PATH%

rem --- ROCm / PyTorch 最適化設定 ---
SET PYTORCH_HIP_ALLOC_CONF=garbage_collection_threshold:0.6
SET PYTORCH_HIP_ALLOC_CONF=expandable_segments:True
SET ROCM_ENABLE_PREFETCH=1

rem フォルダが存在しない場合のみ作成
if not exist "%outpath%" mkdir "%outpath%"

echo Target path: %outpath%

D:
cd D:\ComfyUI

python main.py --output-directory %outpath% --preview-method none --reserve-vram 0.0 --cache-lru 8 --use-pytorch-cross-attention
endlocal

Google Chrome ショートカットファイル

リンク先:

"C:\Program Files\Google\Chrome\Application\chrome.exe" --app=http://127.0.0.1:8188 --user-data-dir="D:\ChromeData\App8188" --disable-gpu --disable-software-rasterizer --disk-cache-size=1 --media-cache-size=1

作業フォルダー:

"C:\Program Files\Google\Chrome\Application"
オプション説明
–app=http://127.0.0.1:8188http://127.0.0.1:8188 をWebアプリとして開く。
–user-data-dir=“D:\ChromeData\App8188”上記のWebアプリとして開いた場合にユーザーデータを指定の"D:\ChromeData\App8188" フォルダに保存する。通常のブラウザの状態には影響しない。このオプションだけ指定してワークフローのJSONのダウンロード先を一度設定しておいてから、再びすべてのオプションを設定する。
–disable-gpuGPUアクセラレーションを使用しない。
–disable-software-rasterizerソフトウェアラスタライザーを使用しない。
–disk-cache-size=1ディスクキャッシュサイズを1にする。
–media-cache-size=1メディアキャッシュサイズを1にする。

ギリギリまでGPUリソースを削って、ComfyUIの動作を優先させる設定を施しているわけです。

3. 使いやすく出来ないか?

とは言え毎回コマンドプロンプトからコマンドを入力しているわけではありません。上記のバッチファイルに必要な必要な事項を記述して、それのショートカットをデスクトップに置いてダブルクリックして実行しているのです。しかし、バッチファイルがデスクトップに散らかるのも嫌だし、他にバックアップコマンドやGitPageの更新コマンドなども増えてきたので、整理することにしました。

DocumentフォルダにCommandフォルダを作成して、これまで作ったいくつものバッチファイルを保存しました。すべて絶対パスを記述しているので、どこから実行しても必ず起動できます。ショートカットをいくつもクリックしていくのも間違えやすいのでバッチファイルで起動メニューを作ってみました。

menu_For_ComfyUI.bat

@echo off
REM ----- ComfyUI Menu Batch
 
:TOP
 
echo *****************************************************************
echo * ComfyUI                                                       *
echo *                                                               *
echo *   1:Update                                                    *
echo *   2:Start_with_Output_Date_Folder                             *
echo *     with Google Chrome http://127.0.0.1:8188                  *
echo *   9:Exit                                                      *
echo *                                                               *
echo *****************************************************************
 
:MENUSTART
 
set USR_INPUT_STR=
set /P USR_INPUT_STR="Input Number => "
 
if %USR_INPUT_STR%==1 (
  goto EXECUTE_1
) else if %USR_INPUT_STR%==2 (
  goto EXECUTE_2
) else if %USR_INPUT_STR%==9 (
  goto EXITTRAP
) else (
  echo Not Exist Number!
  echo.
  goto MENUSTART
)
 
REM ComfyUI Update
:EXECUTE_1
call E:\Document\Command\1_ComfyUI\1_ComfyUI_update.bat
cls
goto TOP
 
REM ComfyUI Start
:EXECUTE_2
start E:\Document\Command\1_ComfyUI\2_ComfyUI_date.bat
timeout /t 10 /nobreak
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" --app=http://127.0.0.1:8188 --user-data-dir="D:\ChromeData\App8188" --disable-gpu --disable-software-rasterizer --disk-cache-size=1 --media-cache-size=1

cls
goto TOP
 
:EXITTRAP
echo.
echo Exit

上記のバッチファイルを起動するショートカットをデスクトップに作成して起動すると下のようなコマンド画面が表示されます。とてもシンプルなメニュー画面が出来ました。肝は:EXECUTE_2で記述してある部分で、ComfyUIを起動させてサーバーが立ち上がるくらい待ってからGoogle Chromeを起動しているところでしょうか。callとstartの使い方はGeminiに教わりました。

*****************************************************************
* ComfyUI                                                       *
*                                                               *
*   1:Update                                                    *
*   2:Start_with_Output_Date_Folder                             *
*     with Google Chrome http://127.0.0.1:8188                  *
*   9:Exit                                                      *
*                                                               *
*****************************************************************
Input Number => 

最後に

コンピューターを使っているって感じがあって、こんなシンプルなCUIの画面の方が好きなみたいだwww