はーい、みゅみゅです。
唐突ですが、こちらの試みがとても面白いと思いました。
真夜ヰなちさんのTwittre → https://twitter.com/MAYOINACHI
ただAIでイラストを書くとなると、すごい高価なビデオカードが必要でなおかつすごいPCが必要そして、AIの知識や手順が複雑で難しくて選ばれた民しかできないイメージがあります。
そこで、AIとか全然よくわかってない私が、特にお金をかけずにへっぽこPCで誰でもファンアートが作れる環境を手軽に簡単に作っていこうかと思います。
※お金の代わりに時間をたくさん使ってしまいますのでご注意を!
使用するのは Google Colaboratory(Colab) を使います。
これにより、リモート環境で機械学習を行うのでローカルPCは性能(ビデオカード)がなくてもイラストが作成できます。
Google Colaboratoryとは
Google Colaboratory(グーグル・コラボレイトリーもしくはコラボラトリー)とは、Googleが機械学習の教育及び研究用に提供しているインストール不要かつ、すぐにPythonや機械学習・深層学習の環境を整えることが出来る無料のサービスです。Colab(コラボ)とも呼ばれます。無料で利用する事が出来ますが、Googleアカウントが必要になります。またCPU及びGPU(1回12時間)の環境が利用可能です。
※こちらより引用
使用しているコードはこちらのコードを参考に改変致しました ありがとうございます。
https://github.com/nolanaatama/sd-1click-colab
1. LoRAファイルのダウンロード&展開
配布しているLoRAファイルをダウンロードして展開しておきます。
すぐには使わないですが、途中で必要になるので展開して準備しておきます。
配布場所は以下のURLです。
2. Google Colabを開く
Googleアカウントがなければ作成します。
Googleアカウントでログインして以下のURLにアクセスを行います。
3. ノートブックの新規作成
コードを実行するノートブックを新規作成します。
Google Colabのページにアクセスすると下記のウィンドウが開くと思いますので、右下の 【ノートブックを新規作成】 をクリックします。
新規作成後、コードを入れるのですが念のため割り当てられたノートブック(仮想環境)を確認します。
(GPUがないと失敗しまします)
編集 → ノートブックの設定を開きます。
4. コードを入れて実行する
下記のような画面になってるかと思います。
三角の横がテキスト入力できるところになってます。
そこに下記のコードをコピペで入力します。
!curl -Lo memfix.zip https://github.com/nolanaatama/sd-webui/raw/main/memfix.zip
!unzip /content/memfix.zip
!apt install -qq libunwind8-dev
!dpkg -i *.deb
%env LD_PRELOAD=libtcmalloc.so
!rm *
!pip install --upgrade fastapi==0.90.1
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
!git clone https://github.com/nolanaatama/sd-webui-tunnels /content/stable-diffusion-webui/extensions/sd-webui-tunnels
!git clone https://github.com/Mikubill/sd-webui-controlnet /content/stable-diffusion-webui/extensions/sd-webui-controlnet
!git clone https://github.com/fkunn1326/openpose-editor /content/stable-diffusion-webui/extensions/openpose-editor
!git clone https://github.com/yfszzx/stable-diffusion-webui-images-browser /content/stable-diffusion-webui/extensions/stable-diffusion-webui-images-browser
!git clone https://github.com/DominikDoom/a1111-sd-webui-tagcomplete /content/stable-diffusion-webui/extensions/a1111-sd-webui-tagcomplete
!git clone https://github.com/hnmr293/sd-webui-cutoff /content/stable-diffusion-webui/extensions/sd-webui-cutoff
!git clone https://github.com/kohya-ss/sd-webui-additional-networks /content/stable-diffusion-webui/extensions/sd-webui-additional-networks
!curl -Lo /content/stable-diffusion-webui/models/Stable-diffusion/dreamlike-anime-1.0.safetensors https://huggingface.co/dreamlike-art/dreamlike-anime-1.0/resolve/main/dreamlike-anime-1.0.safetensors
!curl -Lo /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_canny.safetensors https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_canny-fp16.safetensors
!curl -Lo /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_depth.safetensors https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors
!curl -Lo /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_hed-fp16.safetensors https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_hed-fp16.safetensors
!curl -Lo /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_mlsd-fp16.safetensors https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_mlsd-fp16.safetensors
!curl -Lo /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_normal-fp16.safetensors https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_normal-fp16.safetensors
!curl -Lo /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_openpose-fp16.safetensors https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors
!curl -Lo /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_scribble-fp16.safetensors https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors
!curl -Lo /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_seg-fp16.safetensors https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_seg-fp16.safetensors
import shutil
shutil.rmtree('/content/stable-diffusion-webui/embeddings')
%cd /content/stable-diffusion-webui
!git checkout 0cc0ee1
!git clone https://huggingface.co/nolanaatama/embeddings
# Web UI tunnel
!COMMANDLINE_ARGS="--share --disable-safe-unpickle --no-half-vae --xformers --reinstall-xformers --enable-insecure-extension- --gradio-queue --remotemoe" REQS_FILE="requirements.txt" python launch.py
次に、再度実行するためのWebUIのみ立ち上げるコードをコピペします。
左上の【コード】をクリックすると、下に入力欄が増えますので、
下記のコードを1行入力します。
!COMMANDLINE_ARGS="--share --disable-safe-unpickle --no-half-vae --xformers --reinstall-xformers --enable-insecure-extension- --gradio-queue --remotemoe" REQS_FILE="requirements.txt" python launch.py
左上の三角を押してコードを実行します。
しばーらく時間がかかるのでコーヒーでも飲んでゆっくりと。。。。
コードが最後までいったらコンソールにURLが3行ほど出たら実行完了です。
URL3行が表示されたら、
一度実行を止めるのでので、三角ボタンを押して実行を止めます
※ここ、重要です。
5. LoRAファイルをmodelsフォルダに入れる
【1.】で展開した真夜ヰなちさんのLoRAファイルをmodelディレクトリに入れます。
一番左側のフォルダのアイコンをクリックするとフォルダが展開されます。
フォルダで、[stable-deffusion-webui] → [models] → [Lora] フォルダを探して展開します。
そのフォルダにカーソルをあわせて、右側の点々が3つあるところをクリックして【アップロード】を選択します。
※アップロード時にこのような警告が出るかもしれませんが、OKで
6. LoRAファイルがアップロード終わるまでしばらく待ちます
アップロードを行うと、フォルダが表示されてる下側に下記のような表示になるかと思います
よくみると右側になにか青いゴミみたいなのがあるかと思います。
これはアップロードの進行度合いを示すものなので、これが円になるまでしばらく待ちます。
(LoRAファイル、、、githubとかに置いてくれないかなぁ。。。遠い目)
・・・時間はかかりますがちょっとずつ増えていきます。
青い円が一周して表示が消えるまで待ちます。
※たまにタイムアウトすることもありますが、辛抱強く再度トライです。。。無料なので。。。
6. WebUIを起動してLoRAを有効にする
WebUIのみ立ち上げるので、2つ目のコード(1行のみコピペしたもの)を実行します。
コードが実行され、最後にURL3行表示されますので
【Running on public URL (recommended):】と出てるURLをクリックします。
そうすると、WebUIが表示されます。
これでファンアート作成の準備OKです。
7. 実際にAIさんにファンアートを作ってもらう
WebUIは実際下記のような画面と思いますので、
Promptに書きたい絵を英文で、
Negative promptに書いてほしくないことを書いて、【Generate】ボタンを押すと、絵を実際に書いてくれます。
ただし、Promptには設定したLoRAを有効にするため
<lora:mayoi_nachi_v1.0:0.8>
(最後の0.8は重みの数字なので好きな数字でOK)
こちらの呪文を必要になります。
それではサンプルで何個か作ってみましょう
Negative promptは下記を入れてます
simple background, duplicate, retro style, low quality, lowest quality, 1980s, 1990s, 2000s, 2005 2006 2007 2008 2009 2010 2011 2012 2013, bad anatomy, bad proportions, extra digits, lowres, username, artist name, error, duplicate, watermark, signature, text, extra digit, fewer digits, worst quality, jpeg artifacts, blurry,
Prompt
anime, masterpiece, high quality, absurdres.
<lora:mayoi_nachi_v1.0:0.6>,
1girl, pink hair, twintails, maid,, with eyepatch,
(anime, tone mapped), masterpiece, best quality, finel detailed, colorful, cinematic,
Prompt
anime, masterpiece, high quality, absurdres.
<lora:mayoi_nachi_v1.0:0.6>,
1girl, pink hair, twintails, maid,, with eyepatch,
happy,looking at viewer, on back, breast grab,
(anime, tone mapped), masterpiece, best quality, finel detailed, colorful, cinematic,
Prompt
anime, masterpiece, high quality, absurdres.
<lora:mayoi_nachi_v1.0:0.6>,
happy,looking at viewer, on back, breast grab, city, walking, full body, action, bikini,huge breasts, cleavage,
(anime, tone mapped), masterpiece, best quality, finel detailed, colorful, cinematic,
promptについては解説しているサイトがたくさんあると思いますのでそちらを参考、すてきなファンアートを描いてみてください。
ツイッターのハッシュタグは「#にゃっちー図」です。
みなさん楽しみましょう!
余談
今回使用したコードには色々なextentionが入ってますので、自分で好きなポーズを取らせたり、ほかのLoRAと掛け合わせたりといろんなことができます。
ぜひみなさん、調べて色々試してみてくださいね。
※openposeを使った例