RadeonでkritaAIを動かす備忘録

＊＊＊ とにかくROCmでこけまくります。結局A111は入れてませんが、今なら入るかも！？ ＊＊＊

誠に申し訳ないのですが、私はプログラムが書けるわけでも、LINUXの造詣に深いわけでも無い、ただのPC好きな素人です。

Automatic1111に触れてから色々試していますが、リアルタイム生成の krita-AIを見て
「これはやって見たい！」と思い、駆け出したのは良いのですが、
PCスキルLevel 2 (1は超えてると自負してる)程度の私には非常にハードルが高かったので、
備忘録を残します。
また、やりたいことをトータルで説明しているページも無かったので、
不甲斐ない私の記録でも参考になればと思った次第です。

GPUはRX6700XT、RX6xxxは手順が一緒だと思います。
（kritaが同時に動くのでメインMemもGPUのMemも多く必要でしょうね…）

OSは　Ubuntu22.04.4（22.04.2を入れたがアップグレードでこれになった）

Ubuntuインストールは割愛、インストール時は英語（日本語化で??、今は英語でやってます）

まずUbuntuではお馴染み（らしい？）のアップデートを行います。
［Dock］ボタン（左下の9つの四角が整列してるアイコン）をクリックし
出てきた「ターミナル」アイコンをクリックします。
そして下記を貼り付けEnter

`sudo apt update`
`sudo apt upgrade`

sudoなので実行するとログイン時のパスを聞いてきます。
当然入力（一度入れればしばらく入れなくていい）

ROCmインストール、これがコケまくります。
コケる原因の中でGCCのバージョンが違うというのがあるそうです。
ですのでまず下記

`sudo apt install gcc-12`
`sudo apt install gcc`

まずバージョン12を入れます。
そのあとついでにgccをもう一回入れてますが、関係ないかも

安全のために再起動、とにかく再起動は何回かした方が良いと思ってます。（気のせい、、）
  
Radeonのドライバを入れます。
AMDのダウンロードページ：
https://rocm.docs.amd.com/en/latest/
から
https://rocm.docs.amd.com/projects/install-on-linux/en/latest/tutorial/quick-start.html
に移動し
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/890992b2-1eec-bd09-1b17-4ccfd5ecb594.png)

このページの22.04のコマンドをすべてそのままターミナルに張り付け実行

ここでエラーが出るとその後システムがアップデートもできなくなり詰みます。。
  `Errors were encountered while processing:`
  `amdgpu-dkms`
  `E: Sub-process /usr/bin/dpkg returned an error code (1)`
  ↑これが出たらOUT。。 ⇒　素人なのでOS再インストールから何回もやりました。。
  
その後再起動

ターミナルで
`rocminfo`
を実行するとPCの詳細が表示されればまずはOK

---ここまでROCm---

次に、ComfyUIを入れるのですが、GithubのComfyUIのサイトと
インストールにピッタリのサイトを見て実行します。

https://github.com/comfyanonymous/ComfyUI
https://github.com/mesa-git/ComfyUI-AMD-6750-XT-Ubuntu

`sudo apt update && sudo apt install -y git python3.11 python3-pip python3-venv python3-dev libstdc++-12-dev rocminfo torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.6`

まずこれをターミナルで実行
次にComfyUIのページにある

`pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7`

を実行

ROCmとGPUの設定は終わってるので

AMD-6750のページから飛んだ先のテストを実行してみてください。
https://gist.github.com/damico/484f7b0a148a0c5f707054cf9c0a0533
このページのtest-rocm.pyを実行するのですが、
なんかダウンロードできないので、TextEditorに張り付けて拡張子"py"で保存したら

`python3 test-rocm.py`

で、AMD-6750のページのように表示されればOK

ComfyUIのクローンを行います。
ターミナルでGithubからクローン
GUIでHomeフォルダを開いて
そのフォルダの中の何もないところで右クリック、
「ターミナルを開く」メニューを選び
`git clone https://github.com/comfyanonymous/ComfyUI.git`
を貼り付けEnter

次にAMD-6750のページにあるように
まずComfyUIフォルダ内でターミナルを開いて

`pip install -r requirements.txt`

を実行します。

その後起動は
`HSA_OVERRIDE_GFX_VERSION=10.3.0 python3 main.py`
とターミナルに打つと起動します。


コントロールボタンを押しながら表示された指定URLをクリックして
ブラウザでComfyUIを表示させます。

無事起動（するはず‥）したら、Queue promptでガラス瓶を出しましょう。
　Model（Checkpoint）は自分でDLしてきて /models/checkpoints/ の中に入れましょう
 （モデルの使用の仕方はComfyUIの説明WEBとか参照してください）

ComfyUI Managerは入れる必要あります。
まずブラウザとターミナルを閉じて
/Confyui/custom_nodes/ のフォルダーでターミナルを開き
`git clone https://github.com/ltdrdata/ComfyUI-Manager.git`
ふたたびComfyuiを起動させます。
![Screenshot from 2024-03-02 08-24-29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/2aacfe48-c773-8daa-5e46-b348d8252313.png)
「Manager」が表示されます。


さて、Krita-AIの実行にはComfyUI側にいろいろ必要なものがあります。
　GithubのAclyさんのkrita-ai-diffusionを見てください。
［Optional: Custom ComfyUI Server］の所にリンクがあります。
`https://github.com/Acly/krita-ai-diffusion/wiki/ComfyUI-Setup`
このページに飛んで必要なものをDLし指定場所に入れていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/41ebbe41-f46e-cbf4-7072-62c18f7424e2.png)
ここは各ページに飛んでそれぞれDLしていきますが、
［ComfyUI Manager］で指定してインストールできます。
　　＊作者名でサーチしてインストールすると楽


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/0d6c337d-7e87-cb22-59c2-cc7ba472a9ed.png)
こうなっている場合［Clip‐Vision] をクリックして
「model.safetensors」というファイルをDLし
ComfyUIフォルダのModels/clip_Visio/SD1.5/フォルダに入れます。
フォルダが無い場合自分でフォルダを作成して入れてください。
（ターミナルでなくGUIで行えばファイル移動とかも楽ですよね）

ページにあるものをすべて入れたらKritaのダウンロード
`https://krita.org/jp/download-jp/krita-desktop-jp/#`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/6456edce-0dbf-675e-2bd0-f55bfa16ceae.png)
これの［Linux64ビット版」をクリックしてDLします。

krita-5.2.2-X86_64　　このバージョンでした。

フォルダを作ってDLしたファイル「krita-5.2.2-X86_64.appimage」を入れときましょう。
（意味は無いです。直下よりはフォルダ分けした方がいいかな？ぐらいの話しです。

で、appimageが開けません。
直下のターミナルを開いて、
`sudo apt install libfuse2`
をEnterするとappimageが使えるようになります。

起動前にAcryさんのkrita-ai-diffusionで
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/b47b91d4-2781-e35d-2fdf-900ffb592753.png)
移動したWEBページの先でZipをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/153c50de-87e2-e7d3-4675-0d3c5d177145.png)


kritaの入ったホルダのターミナルを開き
`./krita-5.2.2-x86_64.appimage`
をEnter,Kritaを起動させます。　←　なぜか動かない、以前は動いたのに、、

でも、GUI上でKritaのアイコンをダブルクリックで開くようになしました。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/5ff39f86-5901-4965-590f-90aa03994249.png)
これで先ほどDLしたZipファイルを指定
![Screenshot from 2024-03-02 10-36-58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/a4b21cf7-48b8-f449-9cc2-f362afed33cb.png)

設定からPythonプラグインマネージャーで［krita-ai-diffusion］を有効にし
![Screenshot from 2024-03-02 10-38-29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/0c0e4670-e4fa-a48f-2877-6a18dfe8da53.png)
![Screenshot from 2024-03-02 10-39-49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/0476d23d-2358-78bc-e4b9-1c226cdd1aba.png)

Kritaを再起動、一度閉じて
ターミナルに`./krita-5.2.2-x86_64.appimage`なのですが、
先ほどのComfyUIが起動していないといけません。

必ず　［ComfyUI］→［krita］の順で起動しましょう。

新規ファイルを512x512で作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/9ea1ccae-639b-aa1f-1914-5e6ed19d6391.png)
ドッキングパネルの一番上にAIの項目があるのでチェックを入れると
AIのパネルが開きます。

歯車マークで設定していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/17ac5104-8643-05c4-79a6-4716d38c9230.png)
ここでポイントは
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3695495/4f8c65a5-4254-8062-844c-46fba5248a20.png)
こちらにチェックを入れ、先ほどの［ComfyUI] のブラウザアドレスを指定すること
成功すると緑でConnectが出ます。

赤文字のエラーなら表示されてる内容を一つずつWebで調べ
対応していくことに…


その他の設定は他のYoutubeを参考にしてください。
ローカルComfyUIとのコネクトが成功していたらあとは簡単。
LCMが動いてるのでRX6700Xtで512x512リアルタイム画像反映は体感2秒といったところです。