雑記 生成AI遊び その2 ComfyUI-Zluda

日常AMD,animagine-xl-v31,ComfyUI,ComfyUI-Zluda,Radeon

コメント関係

ACEさんスパム判定受けてました;返信しておきましたのでよろしくです。

DirectMLベースの限界からComfyUI-Zludaへ

前回のRadeonでも動作する方法ではdirectmlでの動作になるので
だんだん凝ったことをすると、遅くてストレスがマッハになりまして
具体的に言うと20~40s/itでやってられないとなりました。

高速化を求めてComfyUI-Zludaというフォークを使いました。



ZludaというNvidiaのCUDAで作られたコードを
RadeonのROCm/HIPSでそれなりに動作させるプログラムがありまして

これをComfyUIに組み込んだ、フォークビルドになります。

もっと細かくやりたい人はこちらを参照するとよいと思います。


a1111や他のUIも導入できるようです
しかしHIPSドライバーがVer.6からRX6800足切りとか切ない。

インストール

トップページに記載があるので、指示通りに進めていけば問題ありません
英語が読めない場合は日本語翻訳でいけると思います。

事前準備でVisual C++のランタイム
HIPSドライバーVer 5.7を入れ、Pythonをインストールすれば問題なく進みます
ただ、バージョン3.12をインストーラーが探すようになっていました。
あえて3.11だけにして置いたら、Miniconda内部の3.12を選んでました;(動作問題なし)

AMDがROCm/HIPSに正式対応させていないGPUでは
ROCmLibs のコピーが別途に必要なので注意です。(RX6800以下)

事前準備を済ませたらリポジトリをクローンするなり
Zipダウンロードから解凍してinstall.batで全自動インストールされます(お手軽)
事前にモデルやLoRAなどをフォルダーに入れておくと、初回起動からテストできるので楽です。
相応に時間かかるので、別の作業なり放置なりしておきましょう。

注意点

初回起動は動作含めて超重いです、これはZludaの変換作業があるからとのこと。
ハングアップを疑うくらいに遅いですが、慣らし運転かけて
サーバー再起動繰り返せば安定していきます。


RX6800で動作中

調子よくいけばDirectMLの30倍前後(!)速いです
とはいえ本家RTX4090は全体処理で数秒らしいですが(怖
ただ高解像度を攻めるとVRAM不足エラー吹きます。

RX6800ではSDXLは1枚の処理が安全ラインとおもってます
逆にSDなら640×640で6枚同時に出せました。2パスやるなら2枚まで。

自分の環境では、VAEを外部読込するとDirectMLよりも遅くなりました;
ついでに妖怪VRAM足りないが出まくって大変でした。
そのためAOM3a1bからanimagine-xl-v31(SDXL)に切り替えてみました。

LoRAを1つ読み込んでも速度へは軽微な影響でした
これなら速度も悪くないのでまぁ許容できるかなと。

出力サンプル

SDXLモデルなので最初から高解像度なのは楽ですね!
速度も許容できる位にはなったので遊ぶなら十分かと。


AOM3のプロンプトのままで出したら、某ジーナかよ!
めちゃくちゃキレてるよ!(筋肉的な意味で)ってなりました;


推奨かつシンプルにいれてみました
髪型を指定しないと、ショート固定でこの子が大量生産される感じです。
Zludaのせいなのかモデルの癖なのかは判別ついてません。



背景が斜め45度になるの写真やってる人間にはつらい。

プロンプトにPOVを入れてみた1枚目
なぜかハグしてくる数秒前みたいな。



正面かつ地面水平がいいな、とおもって
プロンプトにPOVを入れたら2枚目。抱き着かれるという。



どうにかこうにか。お気づきかと思いますが色指定しないと
青い海って書いたんで、装備品や瞳が青に染まりますね(´・ω・`)、

AOM3とちがって髪型指定しないと、もれなくショートで同一前髪になります
アングル指定しても無視されるし、なかなか思い通りにいかなくて苦戦してます。
逆にAOM3では破綻が多かったのがanimagineではほとんど遭遇しません。

AOM3はプロンプト無視してくるところがあったんで
それを見越してランダムグラビア風みたいな楽ができたんですけど

animagineはプロンプトに厳格な感じで
自分で思い通りに作りこんでいくって印象ですね。

しめ

現状はこれ以上だとROCmをWSL2で動かすか
ubuntuのデュアルブートでROCmでしょうか。

WSL2はAndroidエミュレーターとhyperVが衝突するので
使うのに毎回オフにするのが苦痛で使えないんですよねぃ;

まぁそんな感じです。
AMD Radeonで手軽に生成AIやりたい人には参考になれば幸いかなと。

日常

Posted by Richard Roe