Skip to content

ComfyUI + AMD ROCm環境構築とWAI-Illustrious導入メモ

結論

ComfyUIはUbuntu + RX7600XT(16GB) + ROCm環境で正常に動作した。最初は公式の「1.1入門」テンプレートでは問題があったが、公式の「SDXLシンプル」テンプレートを使用することで正常に画像生成できた。

WAI-Illustrious v17を導入し、1024×1024で画像生成成功。

今後はこの環境をベースにLoRAやControlNetを追加していく。


環境

PC

  • Ubuntu
  • AMD RX7600XT 16GB
  • ROCm
  • Python venv
  • ComfyUI最新版

ComfyUI起動

外部PCからアクセスする場合は

bash
python main.py --listen

Managerも有効化する場合

bash
python main.py --listen --enable-manager

注意

全角スペースが入ると

unrecognized arguments

になる。


Manager確認

起動後

カスタムノードマネージャ

が表示されれば導入成功。

ここから

  • Custom Nodes
  • Extensions

などをGUIで管理できる。


モデル導入

最初はIllustrious系を使用。

最終的に選んだモデル

WAI-Illustrious SDXL
v17.0

ファイル名

waiIllustriousSDXL_v170.safetensors

保存場所

ComfyUI/models/checkpoints/

CivitAIについて

最新版は

v17

を使用。

CivitAIはログインしないとDownload URL取得できないことがある。

NSFWと付いている理由

  • 学習データにNSFW画像も含まれる
  • モデル自体がNSFW画像しか生成できないわけではない

普通のイラストも問題なく生成可能。


ComfyUIテンプレート

最初に試した

1.1 入門

では

  • モデル読み込みエラー
  • WAIとの相性問題?

が発生。

その後

SDXLシンプル

テンプレートでは正常動作。

結論

WAIはSDXLシンプルから始めるのがおすすめ。


最初に画像生成できるまで

テンプレート

SDXLシンプル

を開く。

Checkpointを

waiIllustriousSDXL_v170.safetensors

へ変更。

実行。

1024×1024画像生成成功。


Promptの理解

最初は

masterpiece
best quality
ultra detailed
...

という長いPromptを書こうとしていた。

しかし最近のSDXL/Illustrious系は

かなり短いPromptでも十分。

例えば

1girl,
black hair,
hoodie,
city at night,
rain,
neon lights

程度でもかなり綺麗に生成できる。


Positive Prompt

1girl,
black short hair,
hoodie,
city at night,
rain,
looking at viewer,
cinematic lighting

Negative Prompt

最低限

low quality,
worst quality,
bad anatomy,
bad hands,
extra fingers,
missing fingers,
text,
watermark,
signature

程度で十分。

昔のように大量に書く必要はあまりない。


Prompt編集場所

最初に混乱したポイント。

テンプレートでは

Positive Prompt (Text)

CLIP Text Encode

という構造。

つまり

左側の

Positive Prompt (Text)

がデータ。

CLIP Text Encodeは

データを埋め込みへ変換する処理。

最初はCLIP Text Encodeを書き換えていたため

実行すると元へ戻ってしまった。

正しくは

Positive Prompt (Text)

を編集する。

Negativeも同様。


最初に画像生成できたPrompt

SDXLシンプルテンプレートでは、初期状態ではPositive/Negativeともに説明文が入っている。

最初に変更したのはPositive Promptのみ。

Positive Prompt

text
masterpiece,
best quality,

1girl,
black short hair,
hoodie,
city at night,
rain,
neon lights,
looking at viewer,

cinematic lighting,
soft lighting

Negative Promptはテンプレートの説明文のままでも問題なく画像生成できた。

text
These nodes are where you include the text for:
 - what you want in the picture (Positive Prompt, Green)
 - or what you don't want in the picture (Negative Prompt, Red)

This node type is called a "PrimitiveNode" if you are searching for the node type.

その後、Negative Promptは後から適切なタグへ変更していく予定。

この時点で学んだことは、Illustrious系では昔のStable Diffusion 1.5時代のような大量の「おまじないPrompt」は必須ではなく、比較的短いPositive Promptでも十分綺麗な画像を生成できるということ。

<img width="1024" height="1024" alt="Image" src="https://github.com/user-attachments/assets/3e4727a7-3f30-478b-9575-2cfccf2a9055" />


学んだこと

テンプレートでは

Positive Prompt (Text)

が「データ」であり、

CLIP Text Encode

は「処理」。

ComfyUIでは

「文字列を書き換える」のではなく

「データをノード間で流す」

という考え方になっている。

この考え方を理解したことで、ComfyUI全体の構造がかなり理解しやすくなった。

ComfyUIの考え方

ノードは

データ

処理

に分かれる。

データ

  • Prompt
  • Negative Prompt
  • Checkpoint

処理

  • CLIP Encode
  • KSampler
  • VAE Decode
  • Save Image

データがノード間を流れているだけ。

プログラムの関数に近い考え方。


Refinerについて

SDXLテンプレートは

Base


Refiner


VAE

という構造。

しかし

WAIには専用Refinerは存在しない。

現在は

Baseにも

Refinerにも

同じ

waiIllustriousSDXL_v170.safetensors

を設定している。

これは動作はする。

ただし画質向上効果はほぼない。


今後

Refinerを使わない場合

Base KSampler



VAE Decode



Save Image

だけにする予定。

これでワークフローがかなりシンプルになる。


解像度

最初

1024×1024

で生成成功。

RX7600XT 16GBなら

概ね

解像度目安
1024快適
1344快適
1536問題ない可能性高い
2048ギリギリ

最終的に4K画像が欲しい場合は

1024生成



Hires Fix



2048



Upscaler



4096

という流れが一般的。


GPUクラッシュ

一度

Memory access fault by GPU
Fatal Python error

でPythonごと落ちた。

原因は

ROCm側のGPUクラッシュと思われる。

Promptが直接原因というより

ROCmまたはRefiner構成が影響している可能性が高い。

復旧方法

Ctrl+C



ComfyUI再起動



必要ならPC再起動

NVIDIAとの比較

現状の印象

AMDでも十分動く。

しかし

  • CUDA優先開発
  • 情報量
  • トラブル対応
  • 新機能

はNVIDIAが圧倒的に有利。

ただし

RX7600XT 16GBでも

通常の画像生成用途には十分。

当面はこの環境を使う予定。


今後のロードマップ

① Promptを理解する

② LoRA導入

③ Hires Fix

④ ControlNet

⑤ IPAdapter


判断・感想

ComfyUIはGUIツールというより「ノードプログラミング環境」に近い。

最初は非常に分かりづらかったが、

  • データノード
  • 処理ノード

という考え方を理解すると一気に理解しやすくなった。

テンプレートを編集するよりも、

最終的には自分専用の最小構成ワークフローを作る方が理解も深まりそう。

また、SDXLシンプルテンプレートの方がWAIとの相性が良く、今後はこれをベースに育てる予定。


未検証・注意点

  • WAIでRefinerを完全に削除した最小構成ワークフローは未作成
  • GPUクラッシュ原因がROCmなのかRefinerなのかは未確定
  • LoRA追加後のVRAM使用量は未確認
  • Hires FixやControlNet追加時の安定性は未検証
  • ROCm環境固有のクラッシュ回避方法は今後調査予定

Built from Markdown with VitePress