画像生成AI「Stable Diffusion」で画像とQRコードを融合する方法 初級
こんにちは🐾
BashDAOを運営しているあどにゃーです🐾
今回はStable Diffusionで話題のQRコードと画像の生成を記載したいと思います。
成果物
下記の画像レベルのQRが作れるようになります。
スマホで読めます!
話題になったciaochaos氏のQRとは程遠いですが、かんたんな設定変更で実現できる初級編ということで。
これ以上崩してQRとして成り立つ方法は私も勉強していきます。
では早速やり方を説明していきましょう。
前提
Stable Diffusionがすでにインストールされた環境
CPU + グラボの構成で768x768の画像生成ができる環境
Stable Diffusion Web UIがインストールされた環境
ControlNetを導入
Extentions(拡張機能)のURLに下記リンクを入れてInstallをクリック
https://github.com/Mikubill/sd-webui-controlnet.git
インストール完了後、installedタブに移動
Disable all extensions: noneにチェック
Apply and restart UIでStable Diffusionを再起動
ControlNetのDownload
ControlNetは画像生成の際に特定の条件を付与できる制御モデルです。
今回はQRのデータ情報の特徴を残したいので利用します。
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
上記URLからControlNetをDownloadします。
ControlNetにも大量に種類があります。
今回使用するのはTileなので下記Tileを落としてください。
Tile:control_v11f1e_sd15_tile.pth
画像の特徴をのこして高精細化するためのネットワークです。
今回はこれを使用します。
※番外
Canny: control_v11p_sd15_canny.pth
輪郭の特徴を残すキャニー法もあります。
試してないですがこちらももしかしたらQRと相性は良いかもです。
models/ControlNetに置く
control_v11f1e_sd15_tile.pthを下記フォルダに置きます。
これでControlNetを使用する準備完了です。
QRコードを作成する
誤り訂正率も変更できるサイトのほうが良いですが、
画像サイズが大きいところがよかったので下記で生成しました
https://qr.quel.jp/url.php
・誤り訂正率は30%の最大設定(上記サイトは設定できません)
・背景色は透明ではなく白
・画像の形はスクエア(のほうが認識されやすい)
・URLは短いものが良い(情報が多いと画像化で壊れやすいため)
Stable Diffusion画像の生成
img2imgタブを選択
checkpointはお好みで選んでください
promptやLoraもお好みで設定いただいてOKです
img2imgのところに先程作ったQRコードを添付
Stable Diffusionの設定
Resize modeはjust resize
Sampling methodは任意でOK
Sampling stepsも任意でOK
Sizeは768x768
Denoising strengthは0.8~1.0 ※ポイント1
値が大きいほど元画像(QR)がpromptの内容に近づく変化をします。
変化させすぎるとQRが読めなくなるし、変化させなさすぎるとただのQRになります。
ControlNetの設定
ControlNetを開く
Enable, Pixel Perfect, Allow Previewにチェック
imageとProcessor PreviewにQR画像を挿入
Control TypeでTileを選択
Processorでtile_resampleを選択
Modelで先程DLしたcontrol_v11fle_sd15_tileを選択
Control Weight: 0.8~1.0 ※ポイント2
ControlNetに入れた画像の特徴をどれだけ重視するかの指標です。値を大きくしすぎると変化が小さくなるので0.9くらいが良さそうです。Starting Control Step: 0.1~0.2 ※ポイント3
コントロールを全体生成のどの段階から適用するかの値です。早すぎると変化が小さくただのQRになるし、おそすぎると変化しすぎてQRを保てなくなります。Ending Control Step: 1
Control Mode: controlNet is more important
まとめ
以上で設定完了です。
あとは生成をすればQRコードとpromptに合わせた絵が出てきます。
スマホで読んでみてQRとして読めれば成功、読めなければ失敗です。
今回は手探りで実現したのでもっと良い方法があればぜひ教えてください。
ポイント変数は3つ
Denoising strength:0.8~1.0
Control Weight: 0.8~1.0
Starting Control Step: 0.1~0.2
ここをうまく調整することで良さげな絵になる設定を探ります
だいたい、QRが読める画像ができる成功率は1~2割程度でした。
ボツ画像
変化しなさすぎた例:QR読めるけど面白くない
変化させすぎた例:QR読めない
QRの背面を白でなく透明にした例:かっこいいけどQR読めない
さいごに
AI画像に吹き出しをつけたり、絵本化したりできる投稿さいと
BashDAOをやっています。
よかったらのぞいてみてください
この記事が気に入ったらサポートをしてみませんか?