抽象#
事情の起因はこうです。私たちの xlog にはまだアイコンがないので、Stable Diffusion
を使って生成することを考えました。しかし、私たちはStable Diffusion
のPrompt
やNegative Prompt
の使い方があまりわからないので、GPT4
を使ってこれらのPrompt
を生成しようと思いました。私たちは GPT4 がこの分野に関する知識をあまり持っていないと思ったので、Prompt
を構築してGPT4
にStable Diffusion
のPrompt
を生成する方法を教えなければなりませんでした。
しかし、テストを行った結果、GPT4 はStable Diffusion
のPrompt
について少し知識があることがわかりましたが、あまり多くはありませんでした。
GPT4
が私に与えたPrompt
=
Generate a 512x512 avatar with elements of technology, AI, and Touhou Project. Make sure it has clear lines and distinct color contrast.
実際に私が使用したPrompt
=
masterpiece, 1 girl, cute face, white hair, red eyes, Generate a 512x512 avatar with elements of technology, AI, and Touhou Project. Make sure it has clear lines and distinct color contrast.
Stable Diffusion
のプラットフォームを見つけました https://civitai.com/、多くの素晴らしいモデルがあるようです。ブロックされて、大量の情報が見つかり、脳が処理しきれませんでした。civitai
のようなプラットフォームは確かに大量の関連情報を集めており、さらに多くのポルノコンテンツもあり、私はとても興奮しています!! 地元で試してみたいです。
stable-diffusion-webui と NovelAI のモデルをインストールして試す#
stable-diffusion-webui のインストール中にエラーが発生しました。
Python 3.11.3 (main, Apr 14 2023, 23:30:17) [Clang 15.0.7 ]
Commit hash: 22bcc7be428c94e9408f589966c2040187245d81
Installing torch and torchvision
Looking in indexes: https://mirrors.ustc.edu.cn/pypi/web/simple, https://download.pytorch.org/whl/cu117
Collecting torch==1.13.1+cu117
Using cached https://download.pytorch.org/whl/cu117/torch-1.13.1%2Bcu117-cp311-cp311-linux_x86_64.whl (1801.8 MB)
ERROR: Could not find a version that satisfies the requirement torchvision==0.14.1+cu117 (from versions: 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.2.0, 0.2.1, 0.2.2, 0.2.2.post2, 0.2.2.post3, 0.15.0, 0.15.0+cu117, 0.15.1, 0.15.1+cu117)
ERROR: No matching distribution found for torchvision==0.14.1+cu117
検索の結果、重要な情報を見つけました https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/8093#discussioncomment-5111761
以下の内容をパッチした後、PASS しました。
:100644 100644 bfa53cb7 00000000 M webui-user.sh
diff --git a/webui-user.sh b/webui-user.sh
index bfa53cb7..1f628616 100644
--- a/webui-user.sh
+++ b/webui-user.sh
@@ -12,6 +12,8 @@
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
#export COMMANDLINE_ARGS=""
+export COMMAND_LINE_ARGS="-ckpt nai.ckpt"
+
# python3 executable
#python_cmd="python3"
@@ -26,6 +28,7 @@
# install command for torch
#export TORCH_COMMAND="pip install torch==1.12.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113"
+export TORCH_COMMAND="pip install torch torchvision"
# Requirements file to use for stable-diffusion-webui
#export REQS_FILE="requirements_versions.txt"
再びエラーに遭遇しました。
stderr: Running command git clone --filter=blob:none --quiet https://github.com/TencentARC/GFPGAN.git /tmp/pip-req-build-z10jlql1
Running command git rev-parse -q --verify 'sha^8d2447a2d918f8eba5a4a01463fd48e45126a379'
Running command git fetch -q https://github.com/TencentARC/GFPGAN.git 8d2447a2d918f8eba5a4a01463fd48e45126a379
Running command git checkout -q 8d2447a2d918f8eba5a4a01463fd48e45126a379
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [8 lines of output]
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/tmp/pip-install-or16ihw5/numba_9ca0f34767be492594e54fc49a1246fa/setup.py", line 51, in <module>
_guard_py_ver()
File "/tmp/pip-install-or16ihw5/numba_9ca0f34767be492594e54fc49a1246fa/setup.py", line 48, in _guard_py_ver
raise RuntimeError(msg.format(cur_py, min_py, max_py))
RuntimeError: Cannot install on Python version 3.11.3; only versions >=3.7,<3.11 are supported.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
明らかに、Python (>=3.7,<3.11) のみがサポートされていると伝えています。これまでにこれだけの Python バージョンをインストールしたことを考えると、少し残念です。
λ pyenv versions
system
2.7.18
3.8.16
3.9.16
3.10.11
* 3.11.3 (set by /home/aya/.pyenv/version)
pyenv を使用して Python バージョンを3.10
に切り替え、stable-diffusion-webui
ディレクトリ内のvenv
フォルダを削除し、./webui.sh
を再実行しました。最終的に、PASS しました!
RTX3070 8G を使用して、数秒で画像が生成されるようです。
悲しいことに、VRAM が危機的な状況です。
コピーしたPrompt
を使っても同じ品質の画像が生成できないことに気づきました。ここから、The definitive Stable Diffusion experience ™#Testing accuracy とhttps://imgur.com/a/DCYJCSXを参照すると、
-Settings タブで、Ignore last layers of CLIP model to 2に変更し、適用します。
このステップは未完了ですが、しばらく探してもこのパラメータが見つかりませんでした。おそらく新しいバージョンで名前が変更されたか、直接削除されたためだと思います。検索エンジンを使ってこのスレッドを見つけました https://www.reddit.com/r/StableDiffusion/comments/zekch3/stop_at_last_layers_of_clip_model_not_showing_up/。現在のバージョンでは、SettingsタブのStable Diffusionセクションの下にあるパラメータClip skipを見つけることができます。
これを 2 に変更すると、ほぼ完全に同じHello Asuka
を生成できるようになりました(python: 3.10.11 ・ torch: 2.0.0+cu117 ・ xformers: N/A ・ gradio: 3.23.0 ・ commit: 22bcc7be ・ checkpoint: 89d59c3dde)
(.ckpt
, pt
) と.safetensors
はそれぞれ何ですか? どのような関係がありますか?#
https://rentry.org/voldy#-ti-hypernetworks-and-loras-に説明と使用方法があります。
LoRAs(Low Rank Adaptation):簡単にトレーニングできる高度なネットワークです。.safetensor
ファイル形式で提供されます。
LoRA 試用#
最初に見た素晴らしい色の画像で使用されていたモデルはAbyssOrangeMix2 - Hardcore
でしたが、彼らがhuggingface/AbyssOrangeMix3に AbyssOrangeMix3 を持っていることに気づきましたので、もちろん 3 を試してみることにしました!
Abyss
-> ” 深淵 “ いい名前です!
メインモデル「AOM3(AbyssOrangeMix3)」は、前のバージョン「AOM2」の問題を改善した純粋にアップグレードされたモデルです。「AOM3」は非常にリアルなテクスチャのイラストを生成でき、さまざまなコンテンツを生成できます。また、AOM3 に基づいて調整された 3 つのバリアントモデルがあり、独自のイラストスタイルを持っています。これらのモデルは、アイデアをより明確に表現するのに役立ちます。
さて、私が間違えたことに気づきました。私はすべての.safetensor
ファイルが LoRA だと思っていましたが、実際にはそうではありません。AOM3 はモデルであり、models/Stable-diffusion/
に直接置いて、チェックポイントを選択すれば使用できます。
https://civitai.com/の各リソースにはDetail/Type
があり、リソースのタイプが示されています。使用方法についてはHow-to-use-modelsを参照できます。
しかし、同じ Prompt を使用しても似たような画像が生成できる一方で、サンプルのいくつかの画像と比較すると大きく異なることに気づきました。
(私が勝手に使用した AOM3 のモデルのせいでしょうか?)やはり、これは AbyssOrangeMix2_hard を使用した出力であり、提供されたsamplesともほぼ完全に一致しました。
END アバター生成。最初の目的を忘れそうになりました しかし、私は GPT4 が Prompt をあまり理解していないと感じています。おそらく、トレーニングデータに含まれていないからでしょう。時間があれば、VisualGPT が改名された? TaskMatrixがどのように行っているかを見てみることができます。
アバター(Prompt にはあまり労力をかけていませんでした):
masterpiece, Touhou Project, 1girl, sex, Reisen
Negative prompt: (worst quality:1.25), (low quality:1.25), (lowres:1.1), (monochrome:1.1), (greyscale), multiple views, comic, sketch, (blurry:1.05),
Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2320689785, Size: 512x512, Model hash: dce28483f1, Model: OrangeMixs_Models_AbyssOrangeMix2_Pruned_AbyssOrangeMix2_nsfw_pruned_fp16_with_VAE
Cloudflare argo tunnel で提供する#
私がstable-diffusion-webui
にドメイン経由でアクセスしようとしたとき、Cloudflare argo tunnel を使用することを考えましたが、いくつかの問題に直面しました。
Cloudflare argo tunnel を正常にデプロイし、ドメインを介して HTML などのリソースにアクセスできるようになりましたが、ページが読み込まれませんでした。ブラウザの開発者ツールを使用すると、すべてのリソースが正常に読み込まれていることがわかりましたが、一部のコンソールの LOG 情報が正常に動作していないことを警告しています。
待補充(大意:<Link>はpreloadのリソースにas属性が設定されていない)
しかし、実際には SD-webui には拡張機能sd-webui-tunnels
があり、またはcloudflared tunnel --url http://127.0.0.1:7860
というコマンドを使用して、トンネルを開いて一時的なドメインを取得することもでき、これらの 2 つの方法でstable-diffusion-webui
に正常にアクセスできるため、なぜ私が手動で設定したトンネルが機能しないのか疑問です。
実際、私のドメインまたは Cloudflare の設定に問題があることがわかります。実際、私はずっと考えていたプロセスを書きたかったのですが、問題解決の思考過程を残したいだけでなく、結果だけでは不十分だと思いましたが、うまくいかないようです。
私のドメインへのアクセスとcloudflared tunnel --url http://127.0.0.1:7860
が提供する一時的なドメインから得られるリソースを観察すると、いくつかの違いが見つかります。
私のドメイン:
- HTML には CF が挿入したリソースがいくつか追加されており、
https://static.cloudflareinsights.com/beacon.min.js
やRocket Loader™
が含まれています。 - 同時に、私のすべての JS と CS の
script
がコメントアウトされ、下に同じリソースが挿入されますが、<script>
が<link preload as=?>
に変わります。 - 開発者ツール / ネットワークの元の HTML をさらに観察すると、が存在しないことがわかります。
のせいである可能性が高いことがわかります。私は <domain>/speed/optimization/**Rocket Loader™をオフにしようとしましたが、まだそこにありました。/rules/configuration-rules で自分が設定したいくつかのページルールを見つけ、その中にRocket Loader™** を設定したものがあり、それをオフにしたところ、正常に戻りました。
アップスケーラーを追加#
追加のアップスケーラーをmodels/ESRGAN
に追加します。
- https://www.reddit.com/r/StableDiffusion/comments/zih4bz/is_there_a_way_to_add_an_extra_upscaler_to/
- https://upscale.wiki/wiki/Model_Database#ESRGAN_.28.22old_Architecture.22.29_Models