見出し画像

絵のようなQRコードをAIで生成する


植物のQRコード

QRコードの生成は、可能性としてはあったが、製法が謎のままだった。
香港のhayoでフォームで作成できるようになっていた。この時、元になるQRコードが添付されている。これが手掛かりになった。もし、元画像のQRコードがないと、再現性は薄くなってしまう。

androidスマートフォンで元のpng画像をダウンロードすると、プロンプトに表示されていない部分があった。そこを読んでみると、、、

best quality, masterpiece, flowers,( flower shop:1.2), trees, nature, romantic, shelf, potted plant, potted flower,
Negative prompt: nsfw, watermark, text, error, blurry, jpeg artifacts, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, artist name, (worst quality, low quality:1.4), bad anatomy
Steps: 25, Sampler: Euler a, CFG scale: 8.0, Seed: 2472364179, Size: 512x512, Model: breakdomain_M2150, Seed resize from: -1x-1, Denoising strength: 0.7, ControlNet: "preprocessor: None, model: control_v1p_sd15_qrcode_monster [a6e58995], weight: 1.45, starting/ending: (0, 1), resize mode: ResizeMode.INNER_FIT, pixel perfect: True, control mode: ControlMode.BALANCED, preprocessor params: (-1, -1, -1)", Hires upscale: 2.0, Hires upscaler: Latent, Version: v1.4.0

  • 香港のhayoは現行のgitよりバージョンが古い1.4.0(現行は1.5.1)

  • 縦と横512pxで元の画像を作ってから2倍にアップスケールしている

  • ControlNetには「control_v1p_sd15_qrcode_monster」というモデルを使っている。

とはいえ、香港のhayoのAI画像の生成のスピードは速くボタンを押すと直ぐにメールで画像が出て来る。敢えてダウングレードしたままにしているようにも見える。例えば中国のゲーミングスマートフォンのredmagic 6s proはGoogle pixelよりandroidのバージョンが古いがCPUやGPUのパフォーマンスは高い。

必要だと思われる箇所で試してみる

プロンプトがやや複雑だったので、必要な箇所をローカルで抽出して再現してみる。

best quality, masterpiece, flowers,( flower shop:1.2), trees, nature, romantic, shelf, potted plant, potted flower,
Negative prompt: nsfw, watermark, text, error, blurry, jpeg artifacts, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, artist name, (worst quality, low quality:1.4), bad anatomy
Steps: 25, Sampler: Euler a, CFG scale: 8, Seed: 2195078275, Size: 768x768, Model hash: b42b09ff12, Model: cetusMix_v4, ControlNet: "preprocessor: none, model: control_v1p_sd15_qrcode_monster [5b9eef97], weight: 1.45, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: True, control mode: Balanced, preprocessor params: (512, 1, 64)", Version: v1.5.1

  • 「control_v1p_sd15_qrcode_monster」を使用

  • weight: 1.45, starting/ending: (0, 1)に設定

  • アップスケールの代わりに縦と横のサイズを768pxに指定(これでQRコードが出るようになった)

この時に、元になったQRコードをとっておく必要がある。
ControlNetの場合は、プロンプトだけだと、元になった絵があるので、再現性が無くなってしまう。
Photoshopで元の絵と重ねてみると、、、

こんな感じになる。

植物以外の女の子で試してみる

水墨画で敢えて、QRコードと女の子の顔が被らないようにした。

1girl, black short hair, wearing white T-shirts and Jeans skirt, black pantyhose ,masterpiece, dynamic torso closeup, lora:zyd232_ChineseInkStyle_v1_0:1, soft lighting, with torch lights, white background
Negative prompt: nsfw, watermark, text, error, blurry, jpeg artifacts, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, artist name, (worst quality, low quality:1.4), bad anatomy
Steps: 25, Sampler: DPM++ 2M Karras, CFG scale: 8, Seed: 1372452343, Size: 768x768, Model hash: b42b09ff12, Model: cetusMix_v4, ControlNet: "preprocessor: none, model: control_v1p_sd15_qrcode_monster [5b9eef97], weight: 1.45, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: True, control mode: Balanced, preprocessor params: (512, 1, 64)", Lora hashes: "zyd232_ChineseInkStyle_v1_0: 96718d4b1924", Version: v1.5.1
ドレスみたいな感じになった、顔と目鼻が見えるくらいにした。

とはいえ、生成によってはQRコードに女の子が重なりすぎて読めない時もある。これはランダムな運だということになる。一度読み込めたら大丈夫。しかし、その場合は、元になるQRコードを合わせて保管している必要がある。「元になる絵が必要」という条件が紹介記事に書いていない場合が多かったので、とても再現性に悩んだ。

この画像を作成したときの設定はこちら

アナログでの試行

これは、中心部分だけに女の子をアイコンを生成して、ドットの部分はイラストレーターで整列させて作成した。確実にアイコンが中心に来るのがメリットになる。

※アイコンの生成プロンプト
1girl,black short hair, wearing black T-shirts and Jeans, chibi, in the room, with plant, 4k
Negative prompt: easyNegative
Steps: 28, Sampler: Euler a, CFG scale: 7, Seed: 3121683378, Size: 768x768, Model hash: 0c1efcbbd6, Model: QteaMix-fp16, TI hashes: "EasyNegative: c74b4e810b03", Version: v1.5.1

実際にQRコードリーダーを使ってみる。

QRコードリーダーでプレビュー画面が出るのはとても便利だ。その時にQRコードに含まれる文字列が短い方が、模様もシンプルになるので読み取りやすくなる。

これは、高解像度の時、QRコードがはっきりしている。


これはQRコードが何らかの事情で低解像度になってぼやけている時、このように条件が良くない時でも同じ文字列が出るので、AIが装飾することもできる。

この記事が気に入ったらサポートをしてみませんか?