何故かQRコードとして読み込めてしまうAI画像を生成する方法

2023/06/15に公開

QRコードじゃないのにQRコードとして読み込めてしまう画像

QRコードは(株)デンソーウェーブの登録商標です。そして、この記事で生成する画像は、QRコードとは全く関係ありません。何故か偶然QRコードとして読み込めてしまうだけです。

何故そんなことが起こるかと言うと、QRコードの誤り訂正機能が強力すぎるがゆえです。QRコードは工場等で使われることを想定しているので、もともと多少汚しても読み取れてしまうのです。その機能に赤子のように甘えた画像がちまたで話題のAI画像です(QRコードではない)。

QRコードの開発秘話などは、以下動画が楽しいです。特に松下電工に技術を盗みに行くところ。

https://youtu.be/Zu3DUeKNHec

仕組みに関しては、中日新聞の気合入った以下サイトが詳しいです。

https://static.chunichi.co.jp/chunichi/pages/feature/science/galois_field_in_auto_factory.html

何故かQRコードとして読めてしまう画像の作り方

何をやっているかというと、ベースとなる画像とQRコードを、QRコードが読めるギリギリまでいい感じに混ぜています。つまりたまたま読めているだけのしろものです(多分)。

作り方は以下記事参考にしましたが、複雑だったのとそのままのパラメータだとQRコードとして読み取れなかったので、単純化してパラメータを調整しました。
https://learn.thinkdiffusion.com/creating-qr-codes-with-controlnet/

Stable DiffusionのControlNetのTileという高解像度化する拡張機能を使います。Stable DiffusionとControlNetのセットアップは以下記事参照ください。

https://zenn.dev/karaage0703/articles/2866e23dd4fcd1

モデルとしては、以下をダウンロードして、モデルを置くディレクトリ(上記記事参照)に格納しておいてください。

https://huggingface.co/lllyasviel/ControlNet-v1-1/blob/main/control_v11f1e_sd15_tile.pth

ControlNetのTileがセットアップできたら、以下の通りに設定して、好きなプロンプトを入力してGenerate(画像生成)するだけです。

きもは、Control WeightとStarting Control Stepです。Control Weightは、値が大きいほど、Starting Control Stepは小さいほど画像がQRコードに近くなります。

あんまりQRコードに近いと面白くないので、QRが読み取れるギリギリまで値を調整しましょう。

生成したサンプルです。QRコードとして読み取れるかチャレンジしてみてください。

まとめ

何故かQRコードとして読み込めてしまうAI画像を生成する方法を書きました。しつこいですが、あくまでたまたまQRコードとして読み込めてしまうだけで、QRコードとは全く関係ない画像です。

デンソーWAVEさんは、フレームQR®という自由なデザインが入れられる次世代コードも開発していますので、ビジネスに使うならこちらを使うのが良いのかもしれません。

怒られが発生しませんように。

参考リンク

https://learn.thinkdiffusion.com/creating-qr-codes-with-controlnet/

Discussion