【Radeon】ComfyUIを高速化する4つの最適化設定とベンチマーク

※当サイトはアフィリエイト広告(Amazonアソシエイト含む)を利用しています。

プログラミング

前回の記事では、Windows環境におけるComfyUIの導入手順を解説した。

環境構築を終えて実際に使い始めると、次に直面するのが画像生成の速度やVRAM消費の課題である。特にAMD Radeon環境の場合、デフォルト設定のままではGPUのポテンシャルを十分に発揮できないケースが多い。

そこで今回は、Radeon環境におけるComfyUIの高速化・最適化の手法を紹介する。

MIOpenの有効化

生成速度が15%から20%向上する、最も手軽で効果的な設定である。

ComfyUIの起動用バッチファイル(.bat)に以下の環境変数を追記するだけで有効になる。

set COMFYUI_ENABLE_MIOPEN=1
set MIOPEN_FIND_MODE=FAST

VAE_KL_MEM_RATIOの最適化

VAE処理時のVRAM使用予測量を調整し、VRAMからメインRAMへの無駄なデータ退避(スワップ)を防ぐことで時間ロスをなくす手法。

AMD環境での初期値は見積もりが過剰のため、1.0 ~ 2.0の間に調整すると良い。

comfy/sd.pyを開き、以下の部分を書き換える。

変更前

        if model_management.is_amd():
            VAE_KL_MEM_RATIO = 2.73
        else:
            VAE_KL_MEM_RATIO = 1.0

変更後

        if model_management.is_amd():
            VAE_KL_MEM_RATIO = float(os.getenv("VAE_KL_MEM_RATIO", "2.73"))
        else:
            VAE_KL_MEM_RATIO = 1.0

起動用バッチファイルに追記して値を指定する。(例として2.0に設定する場合)

set VAE_KL_MEM_RATIO=2.0

VAEのPytorch Attention有効化

AMD環境では強制的に無効化されているVAE処理におけるPytorch Attentionを有効化する。これにより、VRAMを効率よく使えるようになり消費量が減るほか、生成速度の向上や、大きな画像生成時のVRAM溢れを防ぐ効果がある。

comfy/model_management.pyを開き、以下の部分を2行削除する。

変更前

def pytorch_attention_enabled_vae():
    if is_amd():
        return False  # enabling pytorch attention on AMD currently causes crash when doing high res
    return pytorch_attention_enabled()

変更後

def pytorch_attention_enabled_vae():
    return pytorch_attention_enabled()

起動オプションの最適化

2026年6月現在は--use-pytorch-cross-attentionが十分高速で安定しているため、基本的にこれを指定する。

VRAMに余裕がある場合は--highvramを指定することで常にVRAM上にモデルが展開されるため高速化される。指定した場合は起動時のコンソールにSet vram state to: HIGH_VRAMと表示される。

--force-fp16--fp16-vaeなどはVRAM使用量を減らせるが、使用するモデルによっては真っ黒な画像が生成されることもある。相性が悪い場合は外そう。

参考として、以下に筆者が使っている起動バッチファイルの全文を示す。

@echo off

set HIP_VISIBLE_DEVICES=0

set PYTHON="%~dp0/venv/Scripts/python.exe"
set VENV_DIR=./venv

set COMFYUI_ENABLE_MIOPEN=1
set MIOPEN_FIND_MODE=FAST

set VAE_KL_MEM_RATIO=2.0

set COMMANDLINE_ARGS=--use-pytorch-cross-attention --auto-launch --preview-method auto

%PYTHON% main.py %COMMANDLINE_ARGS%
pause

Radeon RX 9070 XT環境でのベンチマーク結果

今回行った高速化の結果を検証する。環境や条件を以下に示す。

項目スペック/バージョン
GPURadeon RX 9070 XT 16GB
CPURyzen 9 7900X
RAMDDR5 64GB
OSWindows 11 24H2
AMD Software26.1.1
ComfyUI0.22.0
  • バッチカウントで8回測定し、初回と最大値、最小値を除いた5回の平均値をとる。
  • シード値は「1234567890」からインクリメント
  • 以下の2つのモデルを比較
モデルモデル名解像度サンプラーステップバッチサイズ
SD1.5v1-5-pruned-emaonly-fp16512 x 512Euler208
SDXLjuggernautXL_ragnarokBy1024 x 1024Euler301

今回の結果をグラフにまとめると以下のようになった。

繰り返しになるが、--fp16-vaeは使用するモデルによって相性問題がある。今回の検証で使ったモデルでは有効だったが、それぞれの環境で使用の可否を確かめてほしい。

参考文献

今回参考にした記事は以下の通り。特に、1番目の記事では今回行った設定の背景も解説されている。

[ RX9070XT ] ComfyUI高速化 その1/3 cuDNN/MIOpen有効化 [ AMD Radeon ]|LP
AMD Radeon RX9070XTでwindowsにてComfyUIを使っているのなら、今回の その1/3, その2/3, その3/3 の3つの改変を全ておこなうと、SDXLで1024×1024 20steps Euler_a生成だと4…
[ RX9070XT ] ComfyUI高速化 その2/3 VAE_KL_MEM_RATIO [ AMD Radeon ]|LP
VAE_KL_MEM_RATIOの値が過剰なので、適切な値に調整する。 が、その前に、 ComfyUI起動時に、コンソール画面に Set vram state to: NORMAL_VRAM の文字がある場合は、まずはComfyUIの起動オ…
[ RX9070XT ] ComfyUI高速化 その3/3 VAE pytorch_attention_enabled_vae Flash Attention [ AMD Radeon ]|LP
VAEの処理にFlash Attentionを使うようにする。 対象ファイル comfy/model_management.py 場所はこのあたり。 ここにVAEの処理にてpytorch_attention_enabled_vaeを使うか否…
ComfyUI のコード解説と高速化省メモリ化技術のまとめ – Qiita
ComfyUI のコード解説と高速化省メモリ技術のまとめ 生成 AI 技術の発展に伴いモデルのサイズは非常に大きくなりました。市販の GPU では VRAM サイズを大幅に超えていたり、処理能力が不足しているため、生成に非常に時間がかかるよ…

コメント

タイトルとURLをコピーしました