AMD RadeonでAIイラスト Stable diffusionが出来ない?ComfyUIでやる方法と高速化

はじめましての方ははじめまして。
当ブログ管理人のDAsanです。

AMD RadeonでStable diffusionをやろうと思ったときに、「簡単にできる」と紹介されているブログや動画通りにやっても出来ませんでした。そこでいろいろと調べて、普通にStable diffusionを楽しめるような状態に出来たので、インストール手順や、高速化について書いてみたいと思います。

※投稿日時点2024年2月の段階でできていた方法の紹介です。
様々なバージョンアップの影響により現状できない可能性があります。

スポンサーリンク

Stable diffusion WebUIは簡単にインストールして使えない。

いろんなブログや、動画でStable diffusion WebUIを簡単にインストールして使う方法が紹介されています。

その方法は、

  1. Gitをインストール
  2. Pythonをインストール
  3. Gitでgit clone https://github.com/lshqqytiger/stable-diffusion-webui-directml.gitを実行
  4. 出来たフォルダ内のwebui.batを実行してインストール完了

どこでも紹介されているのはだいたいこの手順です。

しかし、これではインストール出来ません。

AMD Radeonでは、エラーが出るので、対策が必要です。

webui_user.batを編集して、エラー対策してインストールすることは出来ます。

インストールが出来て、いざ動作テストをしても、GPUが稼働しません。

CPUで生成されるのでめちゃくちゃ時間がかかって、話になりません。

ということで、現状は「簡単に・・・」と書かれている方法では、AMD RadeonでStable diffusionを使うのは出来ませんでした。

AMD公式が紹介するStable diffusionを動作する方法。

[UPDATED HOW-TO] Running Optimized Automatic1111 Stable Diffusion WebUI on AMD GPUs
: The Automatic1111-directML branch now supports Microsoft Olive under the Automatic1111 WebUI interface, which allows f...

AMDの公式でStable diffusionを利用する方法が公開されています。

この方法も試してみました。

確かにこの方法だと、ちゃんとGPUでAIイラストを作成することが出来ました。

しかし、良く使われている、配布されているモデルデータをそのまま使うことが出来ません。

この方法でStable diffusionは使えても、他の人が使えているようなモデルが使えないというのはかなり厳しい制限だと思って、この方法も実質的には使えないと思いました。

WebUIを諦めて、ComfyUIでStable diffusionを使う。

今までの操作画面はWebUIというソフトでStable diffusionを動かしていたわけですが、いろいろと探していたところ、ComfyUIというソフトもあるということで、試してみました。

この動画を参考にしてインストールしました。

これがComfyUIの操作画面です。

インストール手順と基本的な操作方法を書いていきたいと思います。

Stable diffusion ComfyUIのインストール手順

上で紹介した動画の手順通りに進めればインストール出来ますが、コマンドをコピペできるように手順を書いていきます。

1,Gitをインストール

Stable diffusion WebUIをインストールしようと試みた人はすでにインストール済みかと思います。

Git - Downloading Package

最新のWindowsを使っているのなら殆どの場合は64-bit Git for Windows Setupをダウンロードして、ダウンロードして手順に沿ってインストールすれば問題ありません。

2、Pythonをインストール(注意点あり)

こちらもすでにStable diffusion WebUIのインストールを試みた人ならPython3.10.6をすでにインストールしていると思います。

まだインストールしていない場合はPythonをインストールしてください。

WebUIをインストールする場合はPython3.10.6とバージョンの指定があるのですが、ComfyUIを使う場合は、特にバージョンの指定はありません。

最初にインストール成功したときはPython3.11.7でも問題なく動作しました。

Python Releases for Windows
The official home of the Python Programming Language

こちらからPythonのバージョンを選んでダウンロードします。

ただし、インストールするときに注意点があります。

Pythonをインストールする流れの中で、この画面が出てきます。

このときに赤枠内のチェックを必ず入れてインストールしてください。

また、インストールしたバージョンは覚えておきましょう。

3、Anaconda Minicondaのインストール(注意点あり)

ここからComfyuiならではの手順になります。

Anaconda Minicondaという環境構築するソフトをインストールします。

Miniconda — Anaconda documentation

こちらからダウンロードできます。

こちらのMinicondaもインストールするときに注意点があります。

Pythonと同じように、赤枠にチェックを入れてインストールしてください。

4、ComfyUIをインストールする

ここからComfyUIをインストールしていきます。

4-1、フォルダを作ってコマンドを起動

Stable diffusion ComfyUIをインストールしたいフォルダを作ります。

Cドライブはデータを圧迫するとWindows自体が遅くなったりするので、Cドライブ以外にフォルダを作るといいと思います。

作ったフォルダを開いて、上のアドレスバーに「cmd」と入力してエンターを押します。

cmd

すると、Windowsのコマンド画面が表示されます。

今回はF:/testというフォルダを作ってそこでComfyUIを使えるようにしていますが、フォルダ名は日本語でなければなんでもいいです。

4-2、ComfyUIのインストール

次に用意したフォルダ内にComfyUIに必要なデータをインストールします。

git clone https://github.com/comfyanonymous/ComfyUI.git

こちらのコマンドを入れてエンターを押すとインストールが始まります。

この画面になったらOKです。

作ったフォルダ内に「ComfyUI」というフォルダが出来ているはずです。

4-3、ComfyUIフォルダに移動

次に、作られたComfyUIフォルダで作業するために移動します。

cd comfyui

こちらのコマンドを入れてエンターを押します。

このように作業フォルダが作ったフォルダから、ComfyUIフォルダに移動します。

4-4、AnacondaでComfyUI環境を作る

次に、Anaconda MinicondaでComfyUIを動かす環境を作ります。

conda create -n comfyui python=3.10.6

スクショでは「comfyui2」としていますが、投稿主はすでに「comfyui」という環境でComfyUIを使えるようにしているので、今回は説明用に「comfyui2」として作りましたが、初めてこの作業をするのなら、「comfyui」でいいですし、自分がわかるなら任意の名前でも大丈夫です。

最後のPythonのバージョンは自分がインストールしたバージョンを入力してください。

これを入力したらエンターを押します。

すると実行するか聞かれるので、「y」をいれてエンターを押します。

この画面になればComfyUI用の環境が完成です。

4-5、作ったComfyUI環境に入る

次は、作ったComfyUI環境に入ります。

conda activate comfyui

最後の名前は作ったComfyUI環境の名前を入れて、エンターを押します。

すると、コマンドの頭に(comfyui2)と環境の名前が付きます。

4-5、必要ファイルのインストール

次は、Stable diffusion ComfyUIに必要なファイルをインストールします。

pip install torch-directml

こちらのコマンドを入れてエンターを押して実行します。

完了するとこの画面になります。

pip install -r requirements.txt

次は、このコマンドを入力してエンターを押して実行します。

これでComfyUIのインストールは完了です。

5、起動batファイル作りと終了方法

インストールしたStable diffusion ComfyUIの起動方法は作った環境でコマンドを入力します。

python main.py --directml

このコマンドを入力してエンターを押すと起動します。

この画面になったら起動完了です。

(http://127.0.0.1:8188)を、「CTRL」を押したままクリックするとブラウザでComfyUIの画面が開きます。

使い方は後ほど説明します。

毎回コマンドを入れて起動するのは面倒なのでComfyUIを起動するためのbatファイルを作ります。

とりあえず開いたブラウザの画面はそのまま閉じます。

コマンドの画面では「CTRL」+「C」を押すと「Sropped server」と表示され終了されます。

そしたらコマンドの画面も閉じてOKです。

起動用のbatファイルを作っていきます。

「ComfyUI」フォルダ内で新しいテキストドキュメントを作ってメモ帳などで開きます。

call conda activate comfyui

python main.py --directml --auto-launch --lowvram --disable-smart-memory

このように入力します。

内容を説明します。

1行目は、ComfyUI用に作った環境に入るコマンドです。名前は自分が作った環境の名前を入れてください。

2行目はComfyUI起動コマンドです。

緑部分は追加のコマンドです。

  • –auto-launch 自動でブラウザにComfyUI画面を表示する
  • –lowvram 8GB以下の少ないグラフィックメモリーのグラボの場合は入れたほうがいいです。
  • –disable-smart-memory グラフィックメモリーが少ない場合に通常のメモリーも使用するコマンド

ComfyUIに使える起動コマンドはこちらで紹介されているので、自分の環境にあったものを試してみてください。

このコマンドを入力したら保存をしてください。

保存したテキストドキュメントの名前を「Comfyui_start.bat」など自分がわかりやすい名前をつけて「.bat」の拡張子にして変更してください。

これで、このbatファイルを起動すればコマンドを入力せずにStable diffusion ComfyUIを起動できます。

ただし、終了時はコマンドの画面で「CTRL」+「C」を押して「y」で終了してください。

6、モデル「Checkpoint」を入れる

次にAIイラストを作る上で必要なモデルデータを入れます。

様々なものが配布されていますが、今回は「chilled_remix_v2」というモデルを使います。

sazyou-roukaku/chilled_remix at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

この中から「chilled_remix_v2.safetensors」というファイルをダウンロードします。

ComfyUIフォルダ内の「models」を開き、

「checkpoints」を開きます。

この中に、ダウンロードした「chilled_remix_v2.safetensors」を入れます。

いろんなモデルを使いたい場合はこのフォルダに入れておくとComfyUIで選択して使用できます。

これでStable diffusion ComfyUIを使う準備は整いました。

Stable diffusion ComfyUIの基本的な使い方と実行

Stable diffusion ComfyUIを起動すると最初に表示される画面がこちらです。

よく使われているWebUIとは違うので戸惑うと思いますが、とりあえずAIイラストを作る基本的な使い方を説明します。

Load Checkpoint

ComfyUI/models/checkpointsに
格納したモデルデータを選択します。

CLIP Text Encode(Prompt)

デフォルトの配置では上がPositiveで下がNegativeになっています。

ここにはプロンプトや呪文と言われる描画したい内容、したくない内容を書き込んでいきます。

Positiveには描画したい内容を書きます。

Negativeには描画したくない内容を書きます。

Empty Latent Image

生成するイラストのサイズを指定します。
512×512がデフォルトで、
大きくすると生成時間が多くかかり、
小さくすると生成時間が少なくなります。
基本はデフォルトでいいと思います。

KSampler

ここの設定項目は多いですが、ここでは基本的な赤枠の2箇所だけ説明します。

steps - 描画の試行回数のようなものです。
多くするとよりはっきりとしたイラストになりますが、
より時間がかかります。
少なくするとぼんやりしたイラストになりますが、
時間は少なくすみます。

cfg - プロンプトへの忠実度の設定です。
上げるとプロンプトにより忠実になりますが、上げすぎると破綻します。
使いながら調整しましょう。

それでは、このデフォルトの設定で、ポジティブプロンプトを「1girl」、ネガティブプロンプトを無しにして描画してみます。

このようにしばらくしたらイラストが生成され「Save Image」に表示されます。

作られたイラストデータはComfyUIフォルダ内の「output」フォルダ内に作られます。

これが作られたイラストデータです。

AMD Radeon RX7600での生成時間と高速化

先程のイラストを生成するのにかかった時間はこのコマンド画面の赤枠です。

モデルを選んで最初の生成はモデルデータの読込み時間があるので、かなり時間がかかります。

2回目の実行はモデルデータの読み込みは入らないので早くなります。

使用しているAMD Radeon RX7600ではこのデフォルトの設定だと一枚あたり20秒位かかります。

20秒でイラストが出来るのはすごいことですが、AIイラストは求めるイラストが出来るまでプロンプトの書き換えや設定を詰めたりするので、何度も何度も描画することになるので、毎回20秒待つのは結構つらいです。

そこでLCM LoRAというのを使います。

LCM-LoRA Weights - Stable Diffusion Acceleration Module - LCM for SDXL (Latest) | Stable Diffusion LoRA | Civitai
LCM-LoRA - Acceleration Module! Tested with ComfyUI, although I hear it's working with Auto1111 now! Step 1) Download Lo...

CIVITAIというモデルデータを配布しているサイトです。

ダウンロードするにはユーザー登録の必要がありますが、Stable diffusionを使ううで必要なモデルデータの配布場所としていちばん有名なサイトでもありますので、登録して損は無いと思います。

このLCM LoRAの配布をしているページの赤枠のボタンをクリックして、青枠をクリックするとダウンロード出来ます。

ダウンロードしたファイルは、「ComfyUI/models/」の中の「loras」の中に入れます。

こんな感じです。スクショは2つありますが、「LCM_LoRA_Weights_SD15.safetensors」があればとりあえずOKです。

LoRAというのは、追加のモデルデータだと思ってもらえればOKです。

ComfyUIの画面に「Refresh」というボタンがあるのでクリックします。

これで入れたLCM LoRAをComfyUIで使えるようにしていきます。

ComfyUIの空いたところで「右クリック」して、

Add Node > loaders > Load LoRA

この順にクリックしていきます。

すると、「Load LoRA」というウィンドウが追加されます。

これを「Load Checkpoint」の直後に入れます。

それぞれをつなぐ線はクリックで簡単につけ外し出来ます。

つなぎ方

  • Load Checkpoint MODEL → MODEL Load LoRA
  • Load Checkpoint CLIP → CLIP Load LoRA
  • Load LoRA MODEL → model KSampler
  • Load LoRA CLIP → CLIP Text Encode(Prompt) Positive
  • Load LoRA CLIP → CLIP Text Encode(Prompt) Negative

次は、KSamplerの設定です。

  • steps 2~8
  • cfg 1~2
  • sampler_name lcm
  • scheduler sgm_uniform

これがLoad LoRAを使う場合のKSamplerの設定です。

stepがデフォルトの20と比べてもかなり少なくてすむので、その分高速化につながるということです。

これでPositive「1girl」Negativeなしで生成してみます。

問題なく生成されればOKです。

生成にかかった時間は、4.9秒と、Load LoRAなしのデフォルトの状態で23.72秒だったのに比べると圧倒的に速くなっています。

何度か繰り返し生成してみました。

このようにLoad LoRAを使うとおおよそ4秒で生成されるようになりました。

生成されるイラストがこちらです。

stepを大幅に減らしてもクオリティが落ちず、むしろ上がっているようにも思います。

リアル系だけでなく、アニメ系のモデルでも使用することが出来ます。

AMD Radeonでも4秒でStable diffusionでAIイラストが出来た。

ということで、Stable diffusion WebUIを諦めて、ComfyUIを使うことでAMD RadeonでもStable diffusionを使えるようになり、Load LoRAを使うことで、4秒でイラストが出来るようになりました。

AMD RadeonでのちゃんとStable diffusionが動作する方法を紹介しているのは少ないと思うので、参考にしてもらえればと思います。

ComfyUIの使い方については「ComfyUI」を入れてで検索したら結構出てくるのでそちらも参考にするといいと思います。

それではまた次の記事でお会いしましょう^^

 

【ブログ投稿主DAsanのプロフィール】
https://da-romtell.com/profile/

【ブログ外で投稿主のやってること】
ギターブースター製作 D.A-project
https://daprojecteffector.com/
ゲームレビューブログ げむれびゅ
https://da-romtell.com/game-review/
ニコニコ動画投稿
https://www.nicovideo.jp/user/17005243
Youtube動画投稿
https://www.youtube.com/channel/UCAj8wqPqMZdAxpURAT_rSxg
小説投稿 pixiv
https://www.pixiv.net/novel/show.php?id=15570584

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