dskjal
広告
広告

ComfyUI のスタックトレースを取得する

カテゴリ:deeplearning

viztracer

ComfyUI にスタックトレースを表示する機能はないので、viztracer を使う。

./venv/Script/activate
pip install viztrace

実行

./venv/Script/activate
viztrace --ignore_frozen main.py

終了は Ctrl + C

結果の表示

viztrace result.json

1回生成しただけで 150MB のログデータになった。

結果の一部

結果の一部

debugpy

VSCode 上でステップ実行したいなら debugpy を使う。

./venv/Script/activate
pip install debugpy

ComfyUI 側の準備(デバッグ用コードの挿入)

__init__.py 等に以下のコードを追加。

import debugpy
try:
    # 5678ポートで接続を待機。すでに起動している場合はスキップ
    debugpy.listen(("127.0.0.1", 5678))
    print("Wait for debugger attach...")
    # debugpy.wait_for_client() # デバッガが接続されるまで起動を止めたい場合は有効にする
except Exception as e:
    pass

VS Code の設定 (launch.json)

プロジェクトに .vscode/launch.json を配置。

launch.json ファイルの内容

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: ComfyUI Attach",
            "type": "debugpy",
            "request": "attach",
            "connect": {
                "host": "127.0.0.1",
                "port": 5678
            },
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "."
                }
            ]
        }
    ]
}

デバッグの開始とステップ実行

  1. ComfyUI を通常通り起動(コンソールに Wait for debugger attach... と表示される)
  2. VS Code で F5キー を押し、「Python: ComfyUI Attach」を開始
  3. 解析したいコードの行番号の左側をクリックして、ブレークポイント を付ける
  4. ブラウザから ComfyUI のプロンプトを実行(Queue Prompt)

操作

外部リンク

launch.json を活用して VS Code デバッグ環境を最適化

VSCodeでリモートデバッグできる環境を整える


広告
広告

カテゴリ