- 投稿日:
最近流行りということもあり、サクッと使い方とか、使ってみた所感を書いてみます。
Stable Diffusion を使うプラットフォームはどこがいいか?
ローカル
ご自宅のマシンです。お金稼ぐなら多分こっち。
ベンチスコアを見る限り最低でもRTX 4070 Tiがあるといいと思います。
勿論、A100があるならそれに越したことはないですが、270万円するのでまず検討外でしょう。
- メリット
- 既に環境があれば電気代しか掛かりません
- 何をしても怒られません
- 一回セットアップすれば使い回せます
- ローカルなので細かい融通が利きやすいと思います
- デメリット
- RTX 4090を持ってしてもクラウドにパフォーマンスは劣ると思います
- 環境構築に非常にお金がかかります。グラボ交換だけで考えてもRTX 4070Ti単体で13万ほどするのでAI絵で利益を出せないと厳しいでしょう
クラウド(Google Colab)
- メリット
- 取り敢えず試したいというときにお手頃な価格で始められます
- Colab Proでも1,200円ほど積めば取り敢えず使えます。無料で使うのは微妙
- 電気代はタダ同然
- 圧倒的パフォーマンス
- 512x512の作画であれば1秒程度。ベンチスコアを見る限りRTX 4090でもここまで短くならないはず
- Golab Proを使った感じだと基本A100が引けました
- 取り敢えず試したいというときにお手頃な価格で始められます
- デメリット
- 長時間使うと金額が膨らみます
- AIイラストを売って稼ぐには不向きかもしれません
- ここは軌道に乗ってきたらローカル環境を組むのを考えてもいいかもしれないですね
- 毎回セットアップが必要になりがちで面倒
- Google Driveに全部突っ込んでおけば不要ですが、容量問題が…
- ファイルのアップロードやColab自体の設定変更などの操作がローカルよりやりづらいです(他人のシステムの上にあるので仕方がない)
- 生成内容によってはBANされる可能性がある
- 私はされたことがないですが、稀にされるというのは聞きます
- 長時間使うと金額が膨らみます
モデルについて
あんまり良くわかってないけど主に次の三種類があるっぽい。拡張子のパターンは他にもあるかもしれないけど把握できてないです。
- モデル
- 拡張子は
.safetensors
,.ckpt
- 絵柄がこれで決まる
- 格納先
/stable-diffusion-webui/models/Stable-diffusion
- 拡張子は
- VAE
- モデルに内包されている絵柄を決定する要素?
- 拡張子は
.vae.pt
- 格納先
/stable-diffusion-webui/VAE/Stable-diffusion
- LoRA
- 個人が作成した追加学習モデル
- 既にあるモデルに絵柄やポーズ、シチュエーションを追加できる?
- 拡張子は
.safetensors
- 格納先
/stable-diffusion-webui/Lora/Stable-diffusion
Google ColabでStable Diffusionを使う方法
以下のファイルをColabに取り込み、後述する使い方の通りにやれば動くはずです。
https://gist.github.com/Lycolia/cb432ad1b1ce083482b5487c131b5d12
使い方
以下はGoogle Colab Proの利用を想定して書いています。1,179円ほど払うと数時間は使えるのでオススメです。
- ipynbファイルを落としてGoogle Colabにインポート
- 編集>ノートブックの設定からGPUクラスをプレミアムに変更
- Setupセクションの
## model
以下のコメントを参考に好きなモデルを突っ込む - Setupを実行
- Launch web UIを実行
- コンソールに以下のリンクが出てくるのでアクセスするとWebUIが開く
https://xxxxxxxx.gradio.live
モデルがある場所
この先のリンクには性的表現が含まれる可能性があります。周囲に注意して開いてください。
- Civitai
- かなり豊富なモデルがありますが、知財的に問題があるものも少なくないと思われます
- stablediffusion WebUI モデル一覧
- 日本語で色々なモデルがまとめられています
- 7th_anime_v3
- アニメ系イラストの定番らしいですが使ったことはないです
- AbyssOrangeMix
- 見た感じ結構クオリティが高いものを出力できる
トラブルシューティング
カーネルエラーが出る
FATAL: kernel fmha_cutlassF_f16_aligned_64x64_rf_sm80
is for sm80-sm90, but was built for sm75
もし以下のようにxformersをインストールしている箇所があれば消すと直る
!pip install -q https://github.com/camenduru/stable-diffusion-webui-colab/releases/download/0.0.15/xformers-0.0.15+e163309.d20230103-cp38-cp38-linux_x86_64.whl
PyTorch と torchvision のバージョンの整合性があっていないエラーが出る
RuntimeError: Detected that PyTorch and torchvision were compiled with different CUDA versions. PyTorch has CUDA Version=11.7 and torchvision has CUDA Version=11.8. Please reinstall the torchvision that matches your PyTorch install.
web UIを起動する前にバージョン指定でコンポーネントをインストールする
!pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchtext==0.14.1 torchaudio==0.13.1 torchdata==0.5.1 --extra-index-url https://download.pytorch.org/whl/cu117
モデルや画面とかいろんなロードが終わらない
30秒以上かかる場合は異常なので画面をリロードすると直ることがある
画面動かない系は基本リロードで直る。多分Colab側の負荷で詰まってる
VAE を設定する方法
Quicksettings list
にsd_vae
をカンマ区切りで追加- 画面リロード
- モデル選択の横にVAEの選択メニューが生えてくる
参考出力作品
プロンプトを深く捏ねてないのでクオリティは微妙ですが、取り敢えずこんなのが出せますというサンプル。
モデルはAbyssOrangeMix3、VAEはkl-f8-anime2を使ってます。
- 投稿日:
確認環境
Windows
あらかじめgpgのパスをPATHに通しておくと良い
参考値:C:\Program Files (x86)\GnuPG\bin
Env | Ver |
---|---|
Windows 10 Pro | Build 19042.804 |
git | 2.30.0.windows.1 |
VSCode | 1.53.2 |
Kleopatra | Gpg4win-3.1.15 |
Linux
Windows側からVSCodeのRemote - SSHで接続
Env | Ver |
---|---|
Ubuntu Desktop | 20.04.2 |
git | 2.25.1 |
gpg | 2.2.19 |
手順
Windows
- Kleopatoraを起動
- ファイル> New Pair Key
- 個人用のOpenPGP鍵ペアを生成
- 期限なし、パスフレーズは適当に
- Exportから
-----BEGIN PGP PUBLIC KEY BLOCK-----
の中身を全部GitHubのGPG keys/ Add new
に貼り付ける - 追加後にでてきた
Key ID
をgit config --global user.signingkey KeyID
としてcmd
に流す - 以下を流す(
gpg.program
はなくても動くが、あったほうが問題が起きない)
```bat
git config --global commit.gpgsign true
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
``` - 管理者権限で
cmd
を起動し次のシンボリックリンクを作成mklink /D %USERPROFILE%.gnupg %AppData%\GnuPG
- VSCodeで適当なリポジトリを作成
- なんか適当にコミットする
- GitHubに投げる
- GitHubのコミット履歴にverified signatureがついてたら成功
Linux
- Windows側のKleopatoraから公開鍵と秘密鍵をエクスポートして持ってくる
gpg --import FooBarpublic.asc
で公開鍵をインポートgpg -k
でインポートされていることを確認し、下記XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
相当の部分をコピペ
pub rsa3072 2021-01-17 [SC]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
uid [ 不明 ] Foo Bar <foobar@example.com>
sub rsa3072 2021-01-17 [E]
gpg --edit-key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
trust
5
を選ぶquit
gpg -k
で信用度が[ 究極 ]
になっていることを確認gpg --import FooBarSECRET.asc
で秘密鍵をインポート- SSHで繋いでいる時でタイムアウトする場合、GUIプロンプトからの入力になっている可能性があるので、どうにかして入力
- XRDP経由なら
pkill gnome-session
を叩くと入れる
- Windowsの時と同様に次のコマンドを流す
git config --global user.signingkey KeyID
git config --global commit.gpgsign true
- VSCodeで適当なリポジトリを作成
- 何か適当にコミットする
- コミットがコケたらXRDPから入力する
- GitHubに投げる
- GitHubのコミット履歴にverified signatureがついてたら成功
CLIからやる場合でパスフレーズを何度も打ちたくないケース
以下の手順が参考になる
トラブルシュート
Key ID
を確認したい
以下のコマンドで確認可能
gpg --list-signatures