前回の記事では、Windows環境におけるComfyUIの導入手順を解説した。
環境構築を終えて実際に使い始めると、次に直面するのが画像生成の速度やVRAM消費の課題である。特にAMD Radeon環境の場合、デフォルト設定のままではGPUのポテンシャルを十分に発揮できないケースが多い。
「Radeonだから遅い」と諦める前に、設定だけで済む余地がまだ残っている。 実際、この記事で紹介する設定のうち最も手軽なMIOpenの有効化だけで、生成速度は15〜20%変わる(ROCm 7.1)。ROCm 10 では31〜38%で、効きはさらに大きい。
測り直しの全データはこちら。
そこで今回は、Radeon環境におけるComfyUIの高速化・軽量化の手法を紹介する。
【まず設定する】起動用バッチファイルだけで済む2つ
設定は大きく2種類ある。起動用バッチファイル(.bat)に書くだけで済むものと、
ComfyUI本体のソースを書き換えるものである。前者から順に説明する。
| 設定 | 書く場所 | 何をするか | 効果 | 注意 |
|---|---|---|---|---|
COMFYUI_ENABLE_MIOPEN=1 | .bat(環境変数) | MIOpenを有効化する | 15〜20%向上(ROCm 7.1)/31〜38%(ROCm 10) | 最も手軽で効果が大きい |
MIOPEN_FIND_MODE=FAST | .bat(環境変数) | MIOpenのカーネル探索モードを指定する | 初回の1枚が半分になる(42秒→21秒)。2回目以降の速度は変わらない | COMFYUI_ENABLE_MIOPEN とセットで使う |
--use-pytorch-cross-attention | 起動オプション | PyTorchのcross-attentionを使う | 高速かつ安定。ROCm 7 以降の RX 9060/9070 では既定で有効なので、書かなくてよい | 特になし |
--highvram | 起動オプション | 常にVRAM上にモデルを展開する | VRAMに余裕があれば高速化 | 起動時に Set vram state to: HIGH_VRAM が出れば有効 |
--force-fp16 | 起動オプション | 重みをfp16で扱う | VRAM使用量が減る | モデルによっては真っ黒な画像になる |
--fp16-vae | 起動オプション | VAEをfp16で動かす | VRAM使用量が減る | 同上。相性問題あり |
VAE_KL_MEM_RATIO | ソース改変+.bat | VAEのVRAM見積もりを調整する | 無駄なスワップを防ぐ(ROCm 7.1)。ROCm 10 では FLUX.1 が7%遅くなる | sd.py の書き換えが要る。AMD既定の2.73は過剰。更新で消える |
VAEのPytorch Attention | ソース改変 | AMDで無効化されている処理を有効にする | 同左(ROCm 7.1)。ROCm 10 では SDXL +17%・FLUX.1 +28% 遅くなる。当てないこと | model_management.py の2行を削除。更新で消える |
MIOpenの有効化
生成速度が15%から20%向上する、最も手軽で効果的な設定である。ROCm 10 では31〜38%(SD1.5 7.62→4.72秒、SDXL 8.20→5.67秒)。そしてROCm 10 では、効く設定はこれだけになった。
ComfyUIの起動用バッチファイル(.bat)に以下の環境変数を追記するだけで有効になる。
set COMFYUI_ENABLE_MIOPEN=1
set MIOPEN_FIND_MODE=FAST起動オプションの最適化
2026年6月現在は--use-pytorch-cross-attentionが十分高速で安定しているため、基本的にこれを指定する。ROCm 7 以降の RX 9060/9070 系では ComfyUI が既定で有効にするので、指定しても変わらない(起動ログに Using pytorch attention と出ていれば有効)。
VRAMに余裕がある場合は--highvramを指定することで常にVRAM上にモデルが展開されるため高速化される。指定した場合は起動時のコンソールにSet vram state to: HIGH_VRAMと表示される。
--force-fp16や--fp16-vaeなどはVRAM使用量を減らせるが、使用するモデルによっては真っ黒な画像が生成されることもある。相性が悪い場合は外そう。
ここまでの2つを反映した .bat はこうなる。この時点でも十分に速くなっているので、
ソースを書き換えたくない場合はここで止めてよい。
@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 COMMANDLINE_ARGS=--use-pytorch-cross-attention --auto-launch --preview-method auto
%PYTHON% main.py %COMMANDLINE_ARGS%
pause【さらに詰める】ComfyUI本体のソースを書き換える
ここから先は、ComfyUI本体のPythonファイルを直接書き換える。効果は大きいが、
上の2つとは性質が違う。
ComfyUIをアップデートすると、この章の変更はすべて消える。git pull で公式のファイルに上書きされるためで、いつか必ず起きる。
「設定したのに、ある日また遅くなった」という場合は、まずここを疑う。
対策は2つ。
- 書き換えた行をメモしておく(この記事をブックマークしておけば済む)
- 更新前に該当ファイルをコピーしておく(
sd.pyとmodel_management.pyの2つだけ)
なお書き換えるのはどちらも数行なので、戻すのも消えるのも一瞬である。
元に戻したいときは、公式の状態に戻すだけでよい。
そして ROCm 10 に上げたとき、消えたほうが速かった。環境が変わったら、改変は一度全部外して測り直すこと。
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.0VAEの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()以上をすべて反映した .bat の全文が、筆者が実際に使っているものである。
@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%
pauseRadeon RX 9070 XT環境でのベンチマーク結果
今回行った高速化の結果を検証する。環境や条件を以下に示す。この数字は ROCm 7.1 / ComfyUI 0.22 のもので、ROCm 10 での測り直しは別記事にある。
| 項目 | スペック/バージョン |
|---|---|
| GPU | Radeon RX 9070 XT 16GB |
| CPU | Ryzen 9 7900X |
| RAM | DDR5 64GB |
| OS | Windows 11 24H2 |
| AMD Software | 26.1.1 |
| ComfyUI | 0.22.0 |
- バッチカウントで8回測定し、初回と最大値、最小値を除いた5回の平均値をとる。
- シード値は「1234567890」からインクリメント
- 以下の2つのモデルを比較
| モデル | モデル名 | 解像度 | サンプラー | ステップ | バッチサイズ |
|---|---|---|---|---|---|
| SD1.5 | v1-5-pruned-emaonly-fp16 | 512 x 512 | Euler | 20 | 8 |
| SDXL | juggernautXL_ragnarokBy | 1024 x 1024 | Euler | 30 | 1 |
今回の結果をグラフにまとめると以下のようになった。


繰り返しになるが、--fp16-vaeは使用するモデルによって相性問題がある。今回の検証で使ったモデルでは有効だったが、それぞれの環境で使用の可否を確かめてほしい。
【最後に】設定で限界が来たら、ハードで解決する
ここまで紹介した4つはソフト側の最適化だが、突き詰めるとAI画像生成の快適さはメインメモリとVRAMで決まる。特にメモリ32GB環境でモデルの切り替えが遅い場合、64GBへの増設は設定いじりより体感効果が大きい。
PCごと新調するならBTOのサイコム、そもそもローカル構築をやめてブラウザで済ませたいならConoHa AI Canvasという手もある。


なお、Radeonで画像生成とローカルLLMを動かす話は、全体を1本にまとめた記事がある。ROCmとVulkanの使い分けや、16GBで何ができて何ができないかを横断でまとめてあるので、次に何を読むか迷ったらそちらから辿ってほしい。
参考文献
今回参考にした記事は以下の通り。特に、1番目の記事では今回行った設定の背景も解説されている。









コメント