AI描画ソフト「Stable Diffusion」はWeb制作の役に立つか?

最近AIによる描画ソフトがかなり盛り上がっており、その中でも特に「Stable Diffusion」はWeb制作者にとってもインパクトが大きく、使い方によっては制作の役に立つかもしれないと思っています。

まずはStable Diffusionで制作した画像をご覧ください。

これらの画像は写真のように見えるかもしれませんが、どれもAI描画ソフトから出力されたものです。出力後に一切補正はしていません。
「こういう画像が欲しい」と頭で考えてから出力が完了するまでの時間は、約30分程度です。

以下のような、自分でつくるのはちょっと面倒なアイソメトリック風イラストや3DCG風の画像も制作できます。

建築イメージのような画像も制作できます。

自分で作るのは面倒な、タイリング画像(縦横に繰り返し表示できる画像)も制作できます。さらに合わせ技として、「アイソメトリック風のタイリング画像」の制作もできます。

以下はタイリング用画像です。

以下はタイリングさせたところです。中央の青い枠がタイリング用画像1つ分です。

さらに、PNGだけでなくSVGやPDFなどのベクター形式で書き出すこともできます。

言うまでもなく油絵、浮世絵、アニメ風イラストなども制作できますが、今回の記事ではそちらには触れません。

Stable Diffusionとは何か

AI描画ソフト(お絵かきAIソフト)にはDALL·E 2、Midjourney、Novel AIなどさまざまなものがありますが、その多くはサービス型となっており、プログラム本体をダウンロードして自分でカスタマイズといったことは難しいです。

しかし、Stable Diffusionはオープンソースであるため、自分のPCにインストールしたりGoogle Colabと呼ばれるWebブラウザーで動くPython実行環境などで動かすことができます。

そして何より、この記事を書いている間にもものすごいスピードで進化し続けており、毎日のようにさまざまな機能が追加されたり、さまざまな亜種が登場し続けています。

どれくらいの時間で描画できるのか

この記事の冒頭で紹介した画像の場合、Google Colabで長辺704ピクセル・短辺512ピクセルで出力しています。

一枚の画像の生成にかかる時間は20秒~30秒程度で、私の場合は「こんな画像が欲しい」と頭の中でイメージしてから試行錯誤し、実際に狙い通りの画像が出力されるまでにかかる時間はだいたい30分程度です。

その他のパラメーター

細かいパラメーターは以下の通りです。この記事に書かれたプロンプトであれば、この通りにしなくても似た画像が出力されると思います。

model: sd-v1-4.ckpt
width: 512
height: 704
sampler: ddim
steps: 50
scale: 7
ddim_eta: 0.0
Webコーディングスクール 体験レッスン受付中

この記事で触れること: AIに画像を描画させるのに必要なプロンプト(呪文)の解説

Stable DiffusionなどのAi描画ソフトで画像を出力する場合、「どのような画像を出力してほしいか」を伝える必要があります。

1つは「txt2img」と呼ばれる文字列で伝える方法、もう1つは「img2img」と呼ばれる画像で伝える方法があります。

この記事では、前者のtxt2imgに絞って「どのようなテキストで伝えれば狙い通りの画像を描画してもらえるか」ということについて解説します。

プロンプトの解説

たとえば以下の画像の場合、その画像の下に書いたプロンプトを使用しています。

Photographic portrait of Japanese idol, cute face, cute eyes, sweater, skirt, SIGMA 85mm F1.4 DG DN Art, golden hour, forest, by Daniel F Gerhartz

プロンプトの単語を簡単に解説すると、以下のような感じです。

「どうしてこんなに複雑なのだろう?たとえば日本人女性のポートレートであれば “Photo of Japanese girl”(若い日本人女性の写真)程度ではだめなのだろうか?」と思う方もいらっしゃるかもしれません。

そこで、この記事では「プロンプトを自分で考えるための基礎知識」についてお話しします。
この記事の内容が理解できれば、記事の冒頭で紹介した写真風の画像と同じクオリティのものを自分で生成できるようになるはずです。

Stable DiffusionはどんなAIなのか考える

はじめにご注意ですが、以下の解説は私がStable Diffusionのソースコードを解析したわけではなく、さまざまなプロンプトを試していて「Stable Diffusionはこのような傾向がある」と感じているものです。

私はStable Diffusionに以下のようなイメージを持っています。

  1. 英語圏で生まれたばかりのAI
  2. 一般常識はない
  3. 画像の生成を頼まれると英語でGoogle画像検索し、出てきた画像を参考に絵を描いたり写真を撮影する
  4. 和服やお寺が好き、「日本人には和服を着せなきゃ」「日本といえば背景はお寺」と思い込んでいる

※このイラストはStable Diffusionのイメージです。このイラストもStable Diffusionに描いてもらったものです。

上記1から4を頭に入れておくと、この後うまく画像が生成できなかった時に「どうして失敗したのか」がわかりやすくなります。

日本人女性のポートレート写真を生成する

ここではプロンプトを考える例として「日本人女性のポートレート写真」を取り上げたいと思います。
完成イメージとしては以下のような感じです。
森の中で背景がぼけていることにご注目ください。

まずは「若い日本人女性の写真」を英語に直訳して “Photo of Japanese girl” で画像を生成してみます。

するとこのような古めかしい白黒写真が次々に出力されました。
先ほどの完成イメージとはあまりにも程遠いです。

まずは現代的な写真にする

プロンプトの考え方として、「Stable DiffusionはGoogle画像検索して出てきた画像を参考に写真を撮影している」という考え方を紹介しました。

ということは、Google画像検索で「現代の写真」に絞り込む追加の検索ワードを考えてみます。

たとえば2010年以降の写真であれば “2010” などストレートな検索キーワードを追加することも考えられます。
しかし、2010年以降に撮影された写真といえば、iPhoneをはじめとしたスマートフォンで素人の方が撮影した写真が大量に出てくるはずです。

Stable Diffusionがあなたの撮影助手だとして、「Google画像検索で出てきた、素人がスマホで撮影した写真を参考に仕事の写真を撮影してきます!」と言ったらどう思うでしょうか?私だったら止めたくなります。
そして、「Google画像検索でたまたま出てきた写真じゃなくて、プロが撮影した写真を参考にしてくれ」と言いたくなります。

そこで、2010年以降に登場した「ちょっとお高めの新しいカメラ」で絞り込み検索するのはどうでしょう?
ここでは、SONYのα7(カメラの名前)を追加し、以下のプロンプトで画像を生成してみます。

Photo of Japanese girl, Sony α7

すると以下のように、写真に色が付きました。

しかし、まだまだ求めるクオリティにはほど遠い、素人の方が撮影した写真のように見えます。
もっと写真としてのクオリティを上げたいのと、背景を大きくぼかしたいです。

そこで、プロの方がポートレート写真を撮影するときにどんなレンズを使うのか考えてみます。

一般的にポートレート撮影では背景をぼかすことが多いので、明るい(F値が小さい)レンズを使用するはずです。
また、被写体の顔が歪まないように、被写体からやや離れた場所から中望遠(焦点距離70mm~135mm程度)のレンズを使用する方が多いと思います。

したがって、以下に当てはまるレンズをピックアップします。

  • 焦点距離70mm以上、135mm以下
  • F値が1.4や1.8など明るい(背景がぼかしやすい)
  • 日本人のポートレート撮影で使われてそう
  • ちょっとお高め(写真のクオリティアップのため)
  • そこそこ普及している(Google画像検索した時にある程度の枚数が出てくる、つまり参考にできる写真が多い)

今回は上記に当てはまりそうなレンズとして、SIGMA(日本のレンズメーカー)の「85mm F1.4 DG DN Art」を選ぶことにします。
このレンズ名をプロンプトに追加します。

Photo of Japanese girl, Sony α7, SIGMA 85mm F1.4 DG DN Art

これは10枚ほど出力した中の1枚で、比較的上手くいったものです。
背景はボケており、ポートレート写真といっても良いものになりました。

しかし、目の周囲が黒すぎたり、上唇の形がおかしかったりと、微妙に破綻しています。
そこで次のステップとして、顔の部分の破綻をなるべく抑える方法について考えます。

画像の破綻を抑えるために: フォーマットを統一する

Stable Diffusionに関するツイートを見ていたら、「ねんどろいどの画像を作成するのがやたら上手い」というツイートを何度も見ました。
「ねんどろいど」というのは以下のようなフィギュアで、フォーマットがしっかりと統一されており、異なるキャラクターであってもパーツを取り替えて相互運用できます。

たとえばStable Diffusionに “Nendoroid, Einstein”(ねんどろいど、アインシュタイン博士)というわずか2単語のプロンプトを与えてみます。
すると、なんと一発で以下のような画像が作成されました。

細かいことを言えば後ろ髪の一部が肌色になっていますが、Photoshopなどでササッと修正できる範囲内だと思います。

ここから言えることは、「Stable Diffusionはフォーマットがきちんと決まっているものであれば得意」ということです。
もう少し詳しく言うと、「Google画像検索した時に同じような画像ばかり出てくるようなものを主題にした場合、うまく行きやすい」と言えます。

では逆に「フォーマットがきちんと決まっていないもの」について考えてみます。
たとえば[日本人]というキーワードでGoogle画像検索した時、老若男女さまざまな方の写真が出てくるはずです。

頂いて先ほどのプロンプトを振り返ってみます。

Photo of Japanese girl, Sony α7, SIGMA 85mm F1.4 DG DN Art

[Japanese girl]というキーワードでGoogle画像検索したらどういう結果になるでしょうか?
特定の年代だけでなく、意外と幅広い年代、さまざまな職業の人物の写真が出てくるはずです。
これは「フォーマットが統一されていない」と言えます。

Stable Diffusionは「フォーマットが統一されていない、さまざまな方の写真を参考に画像を描画した結果、顔が破綻してしまった」と考えることができます。

ということは、プロンプトに変更を加えて、「Google画像検索した時に似たような顔の方が出てくるようにすれば良い」と考えることができます。

そこで、プロンプトの “Japanese girl” を “Japanese idol”(日本のアイドル)に置き換えてみます。

Photo of Japanese idol, Sony α7, SIGMA 85mm F1.4 DG DN Art

すると以下のような画像になりました。

…完全にアイドルの集合写真ですね。
どうやら、Stable Diffusionは “Japanese idol” を人物単体ではなく、「アイドルの集合写真」と思っているようです。
それに、当然ですが服もアイドルっぽくなっています(ピンク系統の服が出力されることが多いです)。

そこで、「集合写真ではなく1人の写真だ」ということを伝えるため、プロンプトの先頭の “Photo” を “Portrait photography”(ポートレート写真)に変更します。
そして、アイドル服ではないということを伝えるために “sweater”(セーター)と “skirt”(スカート)のように服装を指定するプロンプトを追加します。

プロンプト全体は以下のようになりました。

Portrait photography of Japanese idol, sweater, skirt, Sony α7, SIGMA 85mm F1.4 DG DN Art

さらに顔立ちや目についてもフォーマットを統一するため、以下のいずれかを追加します。

  • 美形の顔立ちにしたい場合: beautiful face, feautiful eyes
  • かわいい系の顔立ちにしたい場合: cute face, cute eyes

eyes(目)のみ複数形なのでご注意ください。

特に目の部分はわずかでも破綻すると違和感が強い画像になってしまうので、フォーマットはなるべく統一しておきたいです。
このようなプロンプトを追加したからといって「絶対に顔が破綻しない」というわけではありませんが、追加する前に比べると、顔が破綻する確率は明らかに下がります。

今回は “cute face, cute eyes” を追加し、プロンプト全体は以下のようになりました。

Portrait photography of Japanese idol, cute face, cute eyes, sweater, skirt, Sony α7, SIGMA 85mm F1.4 DG DN Art

さらなるクオリティアップのために

ここまででとりあえず「日本人女性のポートレート」らしき写真風の画像を生成することができました。
しかし、完成とするにはまだクオリティが足りない感じがします。

まず、”Japanese idol” の影響でスカートの色がピンク色になるなど、アイドル感が残っています。
そして背景やポーズなど、ポートレート写真としてのクオリティが足りていない感じがします。

そこで、他の方はクオリティをアップするためにどのようなフレーバーテキストを追加しているのかについて調べてみます。

以下の記事を見ると、クオリティの高いポートレート写真を描画するために、以下のようなプロンプトを使用しているそうです。

Photographic portrait of beautiful women, Sony α7, 35mm Lens, f1.8, golden hour, by Daniel F Gerhartz

リンク: 【公開】Stable Diffusionで美しい女性のポートレートを描くprompt(呪文)を公開するチュートリアル🚀【入門編】

以下の部分は参考になりそうです。

  • Portrait photography ofではなくPhotographic portrait of にする
  • golden hour(美しい夕焼けの時間帯)にする
  • 最後に入ってる画家の名前(Daniel F Gerhartz)は、被写体のポーズや全体の雰囲気と関連がありそう

これを参考に、プロンプトを以下のように書き換え出力しました。

Photographic portrait of Japanese idol, cute face, cute eyes, sweater, skirt, SIGMA 85mm F1.4 DG DN Art, golden hour, by Daniel F Gerhartz

※SONY α7 は削除してもクオリティが落ちなかったため、削除しています。

背景を指定する

これで完成としても良い気もしますが、せっかくなので背景も指定したいと思います。

たとえば、背景を森にする場合は「forest」をプロンプトに追加します。

Photographic portrait of Japanese idol, cute face, cute eyes, sweater, skirt, SIGMA 85mm F1.4 DG DN Art, golden hour, forest, by Daniel F Gerhartz

これで、以下の画像が出力できました。

seedの数値をランダムにした場合、画像の内容は毎回替わります。この記事の冒頭にある毛糸の帽子を被った女性の写真も、同じプロンプトから生成されました。

  • Stable Diffusionは「英語でGoogle画像検索して、出てきた画像を参考に絵を描いたり写真を撮影している」と考える
  • Stable Diffusionにクオリティの高い写真のような画像を描画してほしい場合、「クオリティの高い写真を絞り込み検索するにはどのような英単語を追加(または置換)すれば良いか」を考える
  • フォーマットが統一されている画像をGoogle画像検索できるようなプロンプトを使用すれば、破綻のない画像を安定して出力できる
  • 背景をお寺にしないために、具体的に背景を指定する
  • さらにクオリティを上げるために、他の方のプロンプトを参考にフレーバーテキストを追加する

応用例: スーツを着て屋内スタジオで撮影する

ここまで読まれた方は「毎回こんなに手間をかけてプロンプトを考えるのは面倒」と思われたかもしれません。
しかし、1度プロンプトが完成してしまえば、その応用でまったく別の画像を出力できます。

今回は、応用例として「スーツを着て屋内スタジオで撮影した写真」を出力したいと思います。

屋内スタジオで撮影した写真であることを指定するためにプロンプトに “studio portrait” を入れ、ライティングの再現のために “volumetric studio lighting” を入れます。

今回は被写体にきちんとピントが合っている写真にしたいので、プロンプトに “sharp focus” を追加し、背景は白や灰色1色などシンプルなものにしたいので “light colored ambient background” を追加します。
ここまでで、プロンプトは以下のようになります。

Portrait photography of beautiful Japanese idol, studio portrait, standing, wearing dark colored business suit, volumetric studio lighting, medium shot, sharp focus, light colored ambient background, Sony α7, SIGMA 85mm F1.4 DG DN Art

しかしこれで画像生成したところ、スタジオ撮影ではなく屋外の写真が多いなど、どうにも指定通りにならないことが多かったです。
指定通りにならない場合は “scale” というパラメーターの数値を増やす方法もありますが、この記事ではパラメーターに頼らずプロンプトで対処する方法について解説します。

この記事では、カメラの機種やレンズの型番を指定することで画像のクオリティを上げてきました。
そこで、ライティング機材の型番をプロンプトに追加してみます。
今回は、GodoxというメーカーのAD200という、所有者の多そうなライティング機材を追加します。

Portrait photography of beautiful Japanese idol, studio portrait, standing, wearing dark colored business suit, volumetric studio lighting by Godox AD200, medium shot, sharp focus, light colored ambient background, Sony α7, SIGMA 85mm F1.4 DG DN Art

これで、いかにもスタジオ撮影した写真になりました。
“dark colored business suit”, “light colored ambient background” という色指定が守られていませんが、Stable Diffusionは現状、他の部分に指定した色を取り違えてしまうことがよくあります。
この場合、”dark colored” が背景に、”light colored” をスーツの色に取り違えています。

余談ですが、このプロンプトにネクタイ(tie)を追加すると、約半分くらいの確立で男性の画像が生成されます。
Japanese idolには男性もいますし、スーツにネクタイの画像は男性が多いからかもしれません。

Portrait photography of beautiful Japanese idol, studio portrait, standing, wearing dark colored business suit with tie, volumetric studio lighting, medium shot, sharp focus, light colored ambient background, Sony α7, SIGMA 85mm F1.4 DG DN Art

おわりに: デザインとAIの今後

私は描画AIを今最もアツい技術だと思っています。
私はこれまでにWordPressやBlenderなどのオープンソースソフトウェアの開発を支援していましたが、Stable Diffusionは爆発的にユーザーも開発者も増加しており、追いかけるのが大変な速度になっています。

どれくらい開発速度が速いかというと、たとえばWebブラウザーでStable Diffusionを操作するためのWebUIの1つである「Stable Diffusion WebUI(automatic1111)」のアップデートはほぼ毎日ですが、その1日あたりのアップデート内容が、PC版Photoshopでいうと2ヶ月に1度のアップデートで追加される機能と同じくらいの量です。

さらにそのWebUIとは別にStable Diffusion本体や関連ソフト、ライバルソフトなども毎日のようにアップデートされているため、「数時間目を離すと常識が塗り替わっていた」ということが頻繁に起きています。

※厳密には、TPU版は1枚ずつではなく1度に8枚ずつ生成するため「8枚生成するのに約8秒かかる」という表現が正しいです。

この速度で世界が変わり続けたら、数ヶ月後にはどうなっているでしょうか。

この記事では写真風の画像に絞ってプロンプトを解説しましたが、好評であればアイコン制作やSVG書き出しといった話もできればと思っています。
ご興味ある方は、この記事をSNS等でシェアして頂ければ幸いです。

「描画AIはリスクがあるので使わない」という方へ

デザイナーの中には「描画AIはリスクがあるので使わない」という方もいらっしゃるようです。
しかし知っておいて頂きたいのですが、Adobe Stockをはじめとしたストックフォトサイトに最近登録された画像は、Stable Diffusionなどの描画AIで生成されたと思われる画像が混ざっています。

「描画AIはリスクがあるので使わない」と考える方は当然ストックフォトサイトに登録されている描画AIで生成された画像も利用しないと思いますので、描画AIで生成された画像の独特のクセを見抜けるように自分で使ってみた方が良いと思います。

追記: Adobe StockはAIで生成した画像の投稿が可能になったそうです。
英文記事: 人間の創造性を増幅する:Adobe Stock は、ジェネレーティブ AI で作成されたコンテンツの新しいガイドラインを定義します

また、新しいデザインツールである「Microsoft Designer」はAIによるデザイン支援機能が組み込まれていますので、AIを拒絶していると新しいデザインツールを仕事に取り入れることもできなくなります。

以下の記事によると、Microsoft Designerは画像生成だけでなく、”素人が作成したグラフィックスは挿入したテキストのの大きさや間隔、配置が不揃いになることも多いが、それもAIが整えてくれる” とのことです。

リンク: 画像生成AI「DALL-E 2」組み込んだグラフィックスデザインアプリ「Microsoft Designer」が発表 – 窓の杜

今後、デザイナーとAIは切っても切り離せなくなっていくのでは、と私は考えています。

最近の記事

Web制作関連動画

メルマガ会員向けの「コーダーにも役立つ補完AI『Codeium』の使い方」の動画を期間限定で公開しています。
CodeiumはGitHub Copilotと似ていますが、CSSなども補完できて、今登録すれば無料で使えます。

メルマガでは、Web制作者のためのAI活用やWordPress関連の動画など、さまざまな特典があります。ご興味ある方は、ぜひメルマガにご登録ください。
Index