AMD GPU での ComfyUI:ROCm を使ったインストールを順を 追って解説

AMD カードで ComfyUI を動かすことは、もはや Linux 限定の手探り作業ではありません。AMD と Comfy.org は現在、Linux でのソースからの従来の方法に加えて、Windows での ROCm を使ったインストールも文書化しています。この ComfyUI AMD ガイドでは、実用的な三つの方法(ComfyUI Desktop、手動インストール、Docker)、Radeon が実際に演算していることを証明する確認方法、そして最もよく遭遇するドライバーやメモリのエラーについて説明します。速度の測定結果は一切含まれていません。手順、その制約、参照すべき情報源のみを掲載しています。
#ComfyUI AMD:どのインストール方法を選ぶか
ComfyUI は PyTorch をベースにしています。NVIDIA のカードでは PyTorch は CUDA を経由し、Radeon では AMD の演算スタックである ROCm を経由します。ROCm の HIP レイヤーは、意図的に CUDA に近いインターフェースを提供しています。そのため、AMD カードでも ComfyUI には「cuda」と表示されます。PyTorch はメーカーにかかわらず、デバイスにこの名前を使い続けるからです。したがって作業の要点は、ROCm 向けにコンパイルされた PyTorch と、それが GPU にアクセスできるドライバーを用意することに尽きます。
- Windows、最近の Radeon
- ROCm 対応の ComfyUI Desktop は、AMD が説明し Comfy.org が発表した公式の方法です。インストーラーが Python、PyTorch、依存関係を管理するため、最も簡単です。
- Linux
- Python の仮想環境と PyTorch ROCm の wheel を使ってソースからインストールする方法です。最も歴史が長く、ドキュメントも最も充実しており、リストにないモデル向けの回避策も含めて、最も多くのカードに対応できる方法です。
- Linux、サーバーまたは共有マシン
- AMD が提供する ROCm イメージを使った Docker です。ComfyUI をシステムのほかの部分から隔離でき、環境が壊れた場合もゼロからやり直せるので便利です。
- Windows、旧世代の Radeon
- 公式の ROCm による方法はありません。代替手段(DirectML、または Linux への移行)はトラブルシューティングのセクションで紹介しています。
ComfyUI を初めて使う方は、初心者向けのインストールガイドも手元に置いておいてください。インターフェース、ノード、モデルの配置は AMD でも NVIDIA でも同じです。異なるのはハードウェア層だけで、本ガイドではその部分を扱います。
#前提条件と対応カード
私たちの経験とガイド付きルートを活かして、ツールを使いこなし、ローカルで画像を作りましょう。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 30日間返金対応
ROCm が対応する GPU の一覧はバージョンごとに変わり、Windows と Linux でも異なります。フォーラムや古いチュートリアルを当てにせず、インストール時に「ROCm on Radeon and Ryzen」ドキュメントの互換性マトリックスを開き、現行バージョンの表でお使いのカードとシステムを確認してください。
- アーキテクチャ
- 公式の手順は、まず Radeon RDNA 3(RX 7000)と RDNA 4(RX 9000)、および内蔵グラフィックス搭載の一部の Ryzen AI プロセッサーを対象としています。RDNA 2(RX 6000)も Linux では引き続き使用できますが、多くの場合、回避用の変数が必要です。お使いの正確なモデルをマトリックスで確認してください。
- Windows ドライバー
- AMD Software Adrenalin Edition(AMD のインストールページに記載された最小バージョン以上)。Windows で失敗する最大の原因は、バージョンが古すぎることです。
- Linux ドライバー
- 最新のディストリビューションに含まれる amdgpu カーネルドライバーと、/dev/kfd および /dev/dri デバイスへのアクセス権が必要です。PyTorch ROCm の wheel には必要な計算ライブラリが同梱されていますが、rocminfo などの診断ツールを使うために ROCm 一式をインストールしておくと引き続き便利です。
- Python
- 手動インストールの場合は、選択した PyTorch の wheel が対応している Python のバージョン。pytorch.org のセレクターで確認できます。
- ディスク
- PyTorch ROCm だけで数ギガバイトが必要で、さらに画像モデルのサイズが加わります。画像モデルは一つあたり数ギガバイトから十ギガバイト超まであります。
- ビデオメモリ
- NVIDIA と同様に、使用できるモデルはこれによって決まります。内蔵グラフィックス搭載の Ryzen プロセッサーでは、GPU に割り当てるメモリ量を BIOS または AMD のソフトウェアで設定します。
#Windows:ROCm を使った ComfyUI Desktop
ComfyUI Desktop は Comfy.org の公式インストーラーアプリです。サポート対象の AMD カードでは、pip のインデックスを操作しなくても、ROCm 対応の PyTorch をインストールしてくれます。参照すべきなのは、Windows への ComfyUI のインストールに関する AMD のページと、AMD ROCm の公式サポートに関する Comfy.org の発表の二つです。本ガイドと食い違いがある場合は、これらが優先されます。
- 01ドライバーを更新するAMD のドキュメントで指定されているバージョンの AMD Software Adrenalin Edition をインストールし、再起動してください。バージョンによっては、Adrenalin のインストーラーがオプションの AI コンポーネントも提示しますが、本ガイドを進めるうえでは必要ありません。
- 02ComfyUI Desktop をダウンロードするWindows 用インストーラーは comfy.org のダウンロードページから入手し、ミラーサイトからは決して入手しないでください。普段お使いのユーザーアカウントで実行してください。
- 03AMD GPU を選択するハードウェアの選択画面で AMD オプションを選択してください。表示されない、またはグレーアウトしたままの場合は、お使いのインストーラーのバージョンまたはカードがサポートされていません。先に進む前に互換性マトリックスを確認してください。
- 04データの保存場所を選ぶ空き容量のあるディスク上のフォルダーを指定してください。モデル、出力、カスタムノードはすぐに溜まっていきます。すでに ComfyUI をインストールしていた場合は、ウィザードでそのモデルを引き継ぐことができます。
- 05インストールの完了を待つ初回起動時には Python、PyTorch、および依存関係がダウンロードされます。時間がかかりデータ量も大きいですが、これは正常です。インターフェースが表示されるまでウィンドウを閉じないでください。
- 06ログを確認するアプリケーションのメニューからログを開き、「Device」の行を探してください。お使いの Radeon の名前が表示されているはずです。プロセッサーが表示されている場合は、PyTorch が GPU を検出できていません。トラブルシューティングのセクションを参照してください。
インストーラー不要のポータブル版を使う場合は、ComfyUI の GitHub リポジトリのリリースページを確認してください。現行バージョンに AMD カード向けのアーカイブがあるかを確かめ、付属の手順に従ってください。NVIDIA 向けのアーカイブを AMD カードで使わないでください。そのアーカイブには CUDA 版の PyTorch が含まれており、お使いの Radeon を認識することは決してありません。
#Linux:ComfyUI をソースから AMD 向けにインストールする
Linux では、手動インストールが依然として最も柔軟な方法です。原則は三つのポイントにまとめられます。ユーザーに GPU へのアクセス権を付与すること、仮想環境に PyTorch ROCm をインストールすること、そしてその PyTorch を上書きせずに ComfyUI をインストールすることです。
- 01GPU へのアクセスを許可するユーザーを render グループと video グループに追加し、セッションを終了して再ログインしてください。これを行わないと、PyTorch は /dev/kfd を開けず、GPU を一切認識しません。
- 02システムがカードを認識しているか確認するROCm がインストールされていれば、rocminfo に gfx 識別子を持つ GPU タイプのエージェントが表示されるはずです(たとえば RX 7900 XTX なら gfx1100、RX 9070 XT なら gfx1201)。この識別子はトラブルシューティングに使うので、控えておいてください。
- 03Python環境を作成するComfyUI をクローンし、そのフォルダ内に仮想環境を作成して有効化します。作業を始めるときは毎回、この有効化から行うことになります。
- 04PyTorch ROCm を最初にインストールするpytorch.org の Get Started ページで、Linux、Pip、Python、ROCm を選択してください。正確なコマンドと現時点の ROCm バージョンが表示されます。ほかの依存関係より先に、この PyTorch をインストールしてください。
- 05ComfyUI をインストールして起動するComfyUI の依存関係をインストールしてから、main.py を実行してください。インターフェースはデフォルトで http://127.0.0.1:8188 で応答します。
ComfyUI の README には、Windows と Linux で、一部の RDNA 3、3.5、4 アーキテクチャ向けに AMD が公開している PyTorch の wheel を使う実験的な方法も記載されています。この方法は急速に変化しています。試す場合は、チュートリアルからではなく README の AMD セクションから直接コマンドをコピーしてください。インデックスのアドレスはお使いのカードのアーキテクチャによって異なるためです。
#ROCm イメージを使った Docker
AMD は Docker Hub で、ROCm とそれ向けにコンパイル済みの PyTorch を含む rocm/pytorch イメージを公開しています。私たちの知る限り、AMD 向けの公式 ComfyUI イメージは存在しません。最もクリーンな方法は、AMD のイメージをベースにして ComfyUI をインストールすることです。ホストには amdgpu ドライバーさえあれば十分で、コンテナーには /dev/kfd と /dev/dri デバイスを通じて GPU へのアクセスが与えられます。
- イメージタグ
- latest は ROCm のバージョンごとに変わります。再現したいインストールでは、使用した正確なタグを控えておき、お使いのカードに対応していることを確認したうえで、そのタグを再利用してください。
- 量
- /workspace にマウントしたフォルダーには、コンテナーを削除しても ComfyUI、そのモデル、出力が残ります。これがないと、すべてが最初からやり直しになります。
- Exposition
- ポートは 127.0.0.1 で公開されるため、インターフェースにアクセスできるのはホストマシンのみです。ComfyUI をオープンなネットワークに公開しないでください。デフォルトでは認証がなく、カスタムノードはコードを実行します。
- Relance
- docker start -ai comfyui-rocm rouvre le même conteneur, sans réinstaller.
手動インストールの場合と同じ注意が当てはまります。pip install の後で、コンテナ内の PyTorch が引き続き AMD 版であることを確認してください。
#AMD GPU が実際に処理しているか確認する
起動したからといって、インストールが成功したとは限りません。ComfyUI は CPU にフォールバックできるからです。確認は二つで十分です。一つ目は、ComfyUI が動作している環境で PyTorch に直接問い合わせる方法です。
- torch.version.hip
- バージョン番号が表示されるはずです。None は、この PyTorch が ROCm 向けにコンパイルされていないことを意味します。ほとんどの場合、CUDA 版または CPU 版の PyTorch が誤ってインストールされています。
- torch.cuda.is_available()
- True と表示されるはずです。AMD で cuda という語が出てくるのは正常です。PyTorch は HIP 向けにこのインターフェースを流用しています。
- get_device_name(0)
- お使いの Radeon の名前が表示されるはずです。プロセッサーの内蔵グラフィックスが表示される場合は、トラブルシューティングのセクションにある「誤った GPU」の項目を参照してください。
二つ目の確認はレンダリング中に行います。Linux では rocm-smi または amd-smi で GPU の使用率と使用メモリを表示できます。Windows ではタスクマネージャーまたは Adrenalin ソフトウェアでカードの負荷を確認できます。GPU がアイドル状態のままプロセッサーが 100 % に達している場合、演算は Radeon で行われていません。
#よくあるドライバーおよび検出のエラー
- 「hipErrorNoBinaryForGpu」または「Unable to find code object」
- インストールされている PyTorch に、お使いのカードのアーキテクチャ向けのコードが含まれていません。Linux では、サポート対象のアーキテクチャに近いカードについて、ComfyUI の README が変数 HSA_OVERRIDE_GFX_VERSION を案内しています。RX 6700 や 6600 などの RDNA 2 では 10.3.0、RX 7600 などの RDNA 3 では 11.0.0 です。これは AMD が保証しない回避策です。
- Linux で GPU が検出されない
- 再ログイン後に render グループと video グループに所属しているか(groups コマンド)を確認し、次に /dev/kfd が存在するかを確認してください。Docker の場合は、--device オプションが正しく渡されているかを確認してください。
- 誤った GPU が選択されている
- AMD の内蔵グラフィックスと Radeon の両方を搭載したマシンでは、PyTorch が二つのデバイスを認識することがあります。rocminfo に表示される順序を参考にしながら、HIP_VISIBLE_DEVICES で専用カードだけに制限してください。
- ComfyUI Desktop に AMD のオプションが表示されない
- ドライバーが古すぎる、インストーラーのバージョンが ROCm 対応以前のものである、またはカードが互換性マトリックスに含まれていない、のいずれかです。Adrenalin とインストーラーを更新し、互換性を再確認してください。
- ノードの追加後に ComfyUI が CPU で動作する
- あるノードが torch を再インストールしています。pytorch.org のコマンドで PyTorch ROCm を再インストールし、torch.version.hip を確認してください。
- Windows 上の旧世代 Radeon
- ComfyUI は torch-directml パッケージと組み合わせて --directml オプションを使用できます。README ではサポートが限定的とされているため、トラブルシューティング用にとどめてください。RX 6000 で日常的に使用するなら、Linux が依然として最も確実な方法です。
#ビデオメモリ不足:役立つ設定
AMD では、メモリ不足は「CUDA out of memory」ではなく「HIP out of memory」のようなエラーとして現れます。対処法は NVIDIA の場合と同じで、まず ComfyUI の起動オプションを見直し、次にモデルと解像度の選択を見直します。
- --lowvram
- モデルを分割し、部分ごとに読み込みます。速度は落ちますが、より大きなモデルを収められるようになります。
- --novram
- --lowvram でも足りない場合に、さらに踏み込んだ削減を行います。
- --reserve-vram
- ComfyUI が使用しないメモリ量をギガバイト単位で確保します。ディスプレイ、ブラウザー、その他のプログラムが同じカードを共有している場合に便利です。
- --cpu-vae
- VAE デコードをプロセッサーに移します。VAE Decode (Tiled) ノードも別の解決策で、こちらはタイル単位で GPU 上に処理を残します。
- 解像度とバッチ
- モデルを変更する前に、画像サイズまたはバッチあたりの画像数を減らしてください。デコード中に消費されるメモリはこれらに応じて増加します。
- 量子化モデル
- いくつかの大規模な画像モデルには、軽量版(FP8、専用ノード経由の GGUF)が存在します。それを当てにする前に、その形式がお使いの PyTorch ROCm のバージョンでサポートされているか確認してください。
- PYTORCH_HIP_ALLOC_CONF
- PYTORCH_CUDA_ALLOC_CONF に相当する AMD 用の設定です。値を expandable_segments:True にするとメモリの断片化を抑えられる場合がありますが、効果は PyTorch のバージョンによって異なります。
ComfyUI の README には、一部の AMD カードでメモリ効率の高いアテンションを有効にするために、--use-pytorch-cross-attention と組み合わせて使う変数 TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 も記載されています。これは実験的な機能です。エラーが発生する場合は、ほかの原因を探す前にまずこの変数を外してください。
#本ガイドで保証しないこと
このガイドのために速度テストは実施しておらず、レンダリング時間や NVIDIA カードとの比較も掲載していません。AMD 上での ComfyUI のパフォーマンスは、カード、ROCm のバージョン、PyTorch のバージョン、モデル、Attention のオプションによって変わります。これらの情報を伴わない単独の数値からは、何もわかりません。上記のコマンドは AMD と PyTorch のドキュメント、および ComfyUI の README に従っています。ただし、バージョン番号はガイドよりも早く変わるため、あえて記載せず、これらの情報源で確認していただくようにしています。
また、カスタムノードの多くは CUDA 向けに書かれていることにも留意してください。一部のノードは NVIDIA 固有のライブラリを呼び出すため、ComfyUI 自体が動作していても Radeon では失敗します。複雑なワークフローをインストールする前に、各ノードのリポジトリで ROCm または AMD への言及があるか確認してください。
#さらに詳しく
Radeon で ComfyUI が動作するようになったら、以下のガイドでさらに先へ進めます。インターフェースの基本操作、LLM も動かしたい場合の Ollama 向けの同様の ROCm 設定、そして代表的な AMD カードの詳細ページです。
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。