【SNSで話題】Stable DiffusionでQRコードのアートを作成する方法

今回はStable Diffusionを使って実際に使えるQRコードのアートの作り方をご紹介します。Stable Diffusion の拡張機能(extention)「controlnet」を使用するので、その導入方法も含めて解説していきます。

①:QRコードを用意する

まずはサイトやサービスのQRコードを用意します。持っていない方はこちらをご利用ください。この記事ではPROMPTYの ホームページURLを使用します。

まずは「Free QR Code generator 」にアクセスし、①でURLを選択してQR化したいURLをペーストします。

②の「generate」をクリックし、生成されたものを③の「PNG」をクリックしダウンロードします。

これでURLのQRコード化の完了です。この記事では下のQRコードをもとに生成していきます。

②:拡張機能を実装する

今回QRコードをもとに作成するにあたって「AUTOMATIC1111」「controlnet」の2つのextensionを導入する必要があります。

どちらもやり方は同じなので「AUTOMATIC1111」を手本に解説します。

まず、こちらのサイトの「Code」からURLをコピーします。

AUTOMATIC1111:https://github.com/AUTOMATIC1111/stable-diffusion-webui
ControlNet:https://github.com/Mikubill/sd-webui-controlnet

コピーしたURLをStable Diffusion の「Extension」→「Install from URL」→「URL from extension’s git repository」にペーストし、「install」をクリックします。

Install ボタンの下にInstalled と表示されたら、「Extension」→「Installed」の一覧にインストールしたExtensionを確認し、「Apply and restart UI」をクリックします。

下の図のように「img2img」の下の方にExtensionが追加されていれば成功です。

これで導入完了です。反映されていない場合はStable Diffusionを再度立ち上げてみてください。

③:Control net 用のモデルのインストール

次にcontrolnetで使うモデルをインストールします。このモデルはStable Diffusion checkpointとは違い、controlnetで使うモデルなので別途用意が必要です。

Hugging Faceから「control_v11f1e_sd15_tile」をダウンロードします。「LFS」ボタンではなく、下矢印マークをクリックしてください。

保存先は『stable-diffusion-webui』→『extensions』→『sd-webui-controlnet』→『models』です。

これで事前準備終わりです。

④:Stable Diffusionの設定

いよいよQRコードを生成していきます。QRコード化するのはかなり曖昧で、プロンプトによっては千分の一単位までの数値調整が必要なのでかなり根気が必要です。この記事では、かなりの確率で成功した設定とプロンプトをご紹介します。

①:img2imgの設定

まず先ほど生成したQRコードをアップロードし、下記の設定を行ないます。

Resize mode:Just resize
Sampling method :DPM++2M Karras
Sampling steps:50
Denoising strength:0.75

②:controlnetの設定

先ほど追加した「controlnet」の欄の設定をします。

ここでも「img2img」で行なったようにQRコードをアップロードし、下記の項目を設定してください。

Enable
Control Tipe:Tile
自動的に「prosesser」「model」の欄が埋まります。
Control weight:1.65
Starting Control step:0.23
Ending Control Step:0.9

こちらで完了です。プロンプトやモデルによって数値が変わるのでそこの値を微調整していく必要があります。

⑤:プロンプトを設定して書き出す

いよいよ書き出していきます。同じ工程を踏みたい方はこの記事で使用するモデル「ghostmix」をダウンロードしてください。

モデル:

ghostmix_v20Bakedvae.safetensors [e3edb8a26f]

プロンプト:

masterpiece, best quality, 1girl, (colorful),(delicate eyes and face), volumatic light, ray tracing, bust shot ,extremely detailed CG unity 8k wallpaper,solo,smile,intricate skirt,((flying petal)),(Flowery meadow) sky, cloudy_sky, moonlight, moon, night, (dark theme:1.3), light, fantasy, windy, magic sparks, dark castle,white hair

ネガティブプロンプト:

paintings, sketches, fingers, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (outdoor:1.6), backlight,(ugly:1.331), (duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331), (more than 2 nipples:1.331), (missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051), (unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit, (futa:1.1),bad hands, missing fingers, bad-hands-5

引用元:civitai

生成画像:

このようにアートとQRコードが混じり合った画像が生成されました。QRコードがかなり乱れているようにも見えますが、しっかりと読み込むことができます。さまざまなモデルや、プロンプトを使用して生成してみてください。

⑦:うまくいかない場合の変更ポイント

アートとしてのクオリティーとしっかりと読み込めるQRコードを作るという絶妙な値を見つけ出す必要があります。かなりシビアな調整なので今期のいる作業です。

数値としては「Control weight」「Denoising strength」の2つを生成します。

どちらも下絵の割合を調整する項目で、アップロードしたQRコードとプロンプトの割合を設定ます。「Control weight」では数値が高いほどQRコード寄りの画像が生成され、「Denoising strength」では数値が低いほどQRコードが強く反映されます。千分の一単位で調整し最適な値を探してみてください。

~Stable Diffusionで素早く画像生成するには~

Stable Diffusionの画像生成スピードや画像サイズは、グラフィックボード(GPU)の性能によって大きく変わります。

このため、より効率的かつ快適な画像生成を望むユーザーにとって、最適なグラフィックボードの選択が重要となります。

推論処理やLoRAなどの追加学習処理といった大量の計算を効率よく行うためには、12GB以上のVRAMを持つグラフィックボードを選ぶことを強くおすすめします。

2GBや4GBのVRAMを持つグラフィックボードでは、学習プロセスや高解像度の画像生成に支障が出る可能性が高いです。

コスパを重視する方は、RTX 3060を選ぶと良いでしょう。

このグラフィックボードを使えば、Stable Diffusionの画像生成機能を最大限に活用することが可能となります。