スポンサーリンク

【Stable Diffusion】読み取り可能なアートQRコードの作り方

Stable Diffusionを使ったアートQRコード ITライフハック
この記事は約5分で読めます。
スポンサーリンク
当ページはプロモーションが含まれています

Reddit の投稿や、Twitter で Stable Diffusion を用いて生成された画像を用いた美麗な QR コードが話題になりました。それらのQRコードはカスタム学習された ControlNet モデルで生成されていました。

しかし、Stable Diffusion のコミュニティではすぐに、カスタムモデルを使わずに Stable Diffusion でQRコードを作る方法がすぐに発表されました。

今回はこの Stable Diffusion を使った QR コードを作る作り方をまとめた以下のブログがありましたので、検証しながら、まとめ直したいと思います。

How to generate a QR code with Stable Diffusion - Stable Diffusion Art
A recent Reddit post showcased a series of artistic QR codes created with Stable Diffusion. Those QR codes were generate...
スポンサーリンク

QR コードとは

QR コード(Quick Responseコード)は、テキストや URL を2D 画像に符号化する一般的な方法です。通常、スマートフォンのカメラアプリでこのコードを読み取ることができます。

スポンサーリンク

Stable Diffusion WebUI の用意

QRコードを生成するためには、AUTOMATIC1111 版 Stable Diffusion GUI を使用します。以下の記事を参考に WebUI

をインストールして下さい。

(M1/M2/Intel)MacにStable Diffusinをインストール③AUTOMATIC1111版Stable Diffusion Web UI編
M1/M2 などのApple silicon搭載や、Intel CPU搭載のMacにStable Diffusionをインストールして使う方法をいくつか紹介します。今回は第3回、AUTOMATIC1111 版 Stable Diffusion Web UI です。
【改訂】Stable Diffusion Web UIをColabで動かす。
Google Colab上でAUTOMATIC1111版Stable Diffusion Web UIを動かす方法です。ローカルに実行環境のない方是非ご覧ください。

拡張機能の ControlNet が必要になります。以下の記事を参考にインストールして下さい。

モデルは control_v11f1e_sd15_tile.pth と control_v11f1e_sd15_tile.yaml をダウンロードして、/stable-diffusion-webui/extensions/sd-webui-controlnet/models に移動しておきましょう。

【Stable Diffusion】便利でおすすめのWebUI拡張機能②ControlNet
ControlNetはStable Diffusion WebUIの便利な拡張機能で、画像のポーズを指定して生成できます。cannyやopenposeなど複数のモデルでイラストの輪郭やポーズを抽出。自由に表現力を広げましょう。

QR コードの生成

まず、QR コードが必要です。成功率を上げるために、以下の条件を満たすようにします。

  • 高いエラー訂正レベル:H(30%)を使用する。
  • QRコードの周囲に白い余白を設ける。
  • 最も基本的な黒と白のパターンで四角を塗りつぶす
  • 黒い要素と黒い要素の間に細い白線を挿入するジェネレーターを使用しない

今回は、以下の QR コードジェネレーターページを使っています。

34QR.com - QR Code Generator
Free Online QR Code Generator to make your own QR Codes. Supports Dynamic Codes, Tracking, Analytics, Free text, image a...
  1. URL を選択し、QR コード用の URL を入力します。
  2. エラー訂正レベルを H 30% に設定します。
  3. 「Generate」を押します。
  4. QRコードをPNGファイルとしてダウンロードします。

QRコードジェネレーター

以下が今回用意した、当ブログの URL を埋め込んだ、今回使う QR コードです。

QRコード

Stable Diffusion で QRコードを生成

この QR コード作成方法は、img2img を使用してQRコードに似た画像を生成することから始まります。しかし、これだけでは有効なQRコードを生成するのに十分ではありませんので、QRコードを画像にプリントするために、サンプリング・ステップの間は ControlNet をオンにし、サンプリング・ステップの終わり近くには、画像の一貫性を高めるためにControlNetをオフします。

WebUI を起動し Img2img タブを選択しておきます。

  1. 学習モデルを選択します。ここでは同じくGhostMixを使用します。
  2. プロンプトとネガティブプロンプトを入力します。
    ※ プロンプトは成功に非常に重要です。一部のプロンプトはQRコードと自然に融合します。以下のプロンプトを使用しています。
    ポジティブプロンプト:

    Japanese painting, mountains, 1girl

    ネガティブプロンプト:

    ugly, disfigured, low quality, blurry, nsfw
  3. 先ほど作成した QR コードを img2img のキャンバスにアップロードします。
  4. 次の設定 img2img に入力します。
    Resize mode: Just resize
    Sampling method: DPM
    Sampling step: 50
    Width: 768
    Height: 768
    CFG Scale: 7
    Denoising strength: 0.75*
    *は、画像によって設定を調整してください。
  5. QRコードをControlNetの画像キャンバスにアップロードします。
  6. 以下のControlNetの設定を入力します。
    Enable: Yes
    Control Type: Tile
    Preprocessor: tile_resample
    Model: control_v11f1e_sd15_tile
    Control Weight: 1*
    Starting Control Step: 0.24*
    Ending Control Step: 0.9*
    *は、画像によって設定を調整してください。
  7. 「Generate」を押します。
  8. スマートフォン で QRコードを確認します。画面の大きさを変えて確認してください。サイズが大きいと問題が発生しやすいものもあります。

    すべての画像で、確実に読み取れる QR コードを得ることはできません。
    成功率はおよそ4つに1つです。より多くの画像を生成し、試してみてください。

    今回は、以下の QR コードを生成しました。
    iPhone で確認して、当ブログの URL が読み取れます。

    Stable Diffusionを使ったアートQRコード

    生成のヒント

    • テキストが短い QR コードは、パターンが単純なため、成功率が高いです。
    • すべての QR コードが同じように機能するわけではありません。一部は辛うじて動作し、特定の距離でしか読み取ることができません。
    • 一部のプロンプトは QR コードと自然に混ざり合います。
    • 動作するパラメータは、モデルやプロンプトによって異なる場合があります。QRコードとプロンプトを上手く混合させるために、以下のパラメータを少し調整する必要があります。
      Denoising strength:QRコードに初期構成がより従うように減少させます。しかし、減らしすぎるとQRコードしか見えなくなります。通常は0.7よりも高く設定します。
      Control Weight:プロンプトをもっと見せるために減らします。
      Starting Control Step: プロンプトをもっと見せるために増やします。
      Ending Control Step: QR コードと画像がより自然に混合するために、ControlNet を早く止めるために減らします。

    まとめ

    Stable Diffusion を使った、アートをあしらった読み取れる QR コードの作り方をご紹介しました。

    まだ正確さには難がありますが、名刺などに使ったり活用できそうだと思います。

    タイトルとURLをコピーしました