見出し画像

ChatGPTとStable Diffusionでキリンを美しく描く

話題の画像生成AIのStable Diffusionを使って美しい画像を生成させてみたいのですが、なかなかうまく行きません。そこで、ChatGPTの力を借りて、画像生成プロンプトを作ってもらうことにしました。

なぜ改めてStable Diffusion?

先日、マイナビのPython連載(こちら)で、Stable Diffusion(以下SD)を使う方法を解説させていただきました。画像生成AIについて調査する中で、誰でも手軽に画像が生成できるのに驚きました。しかし、なかなか良い画像が生成できないのも事実。ChatGPTの力を借りて試行錯誤してみようと思います。

なお、今回のお題は、「美しいキリン」にしました。果たしてうまくいくでしょうか?!

作成手順

今回は、次のような手順で作成します。

(1) ChatGPTにStable Diffusion用のプロンプトを作成してもらう
(2) Stable Diffusionに与えて描画してもらう
(3) 人間が作成された画像を見て評価
(4) 評価に応じてプロンプトを修正してもらって、(1)に戻る

STEP1 - 普通にChatGPTにプロンプトを作ってもらう

今回は次のようなプロンプトを考えました。

美しいキリンが人工的なスイミングプールで泳いでる画像をStable Diffusionで作成したいです。プロンプトを作ってください。

ChatGPTに与えたプロンプト

すると、次のような美しい応答を返しました。

"美しいキリンがクリアな水の中を優雅に泳いでいる様子を想像してください。キリンの首は長く、すらりとしており、体の模様は美しく、独特の斑点が光沢を持っている。周囲は人工的なスイミングプールで、プールのエッジはタイルで覆われ、水はキリンの動きに応じてゆっくりと波打っています。プールの背後には、青空と白い雲が広がっています。キリンは自由で幸せそうに見え、その目は驚きと喜びでいっぱいです。"

ChatGPT モデルGPT-4の応答

とても良い感じがします。上記を英訳してもらったら、SDのプロンプトを与えて作成開始です。そして、完成したのが以下の画像です。モデルは、Stable Diffusion v1.4を使いました。

美しいキリン001 - スイミングプール

なかなか良い感じですが。
ただ、もっと美しいキリンが描けるはず!!

STEP2 - プロンプトを工夫する

そこで、次に、以下のプロンプトをChatGPTに与えてみました。

次の条件でStable Diffusionのプロンプトを作ってください。
- タイトル: 美しいキリン
- 背景: 南国のスイミングプールで
- 補足: キリンを美しく見せるように

南国のスイミングプールという条件を与えてみた

すると、次のような応答を返してくれました。

スイミングプールに映る、日中の太陽の輝きが美しい。そのプールの周囲には、南国特有の植物が生い茂り、独特の花々の香りが漂っています。その中に突如として、一頭の美しいキリンが現れます。普通ならば、このキリンが南国のスイミングプールで何をしているのか疑問に思うでしょう。しかし、このキリンは何も異常なことを感じていない様子で、ゆったりとプールサイドを歩き回っています。
このキリンの特徴を詳しく描写してみてください。その長い首、細長い脚、体全体に散りばめられた美しい斑点、そして気高く聡明な表情まで。キリンが水辺に反射する太陽の光の中でどのように輝いているのか、また南国のスイミングプールの環境がキリンの美しさをどのように引き立てているのか、丁寧に表現してみてください。

ChatGPTの応答

なんだか良さそうです。これを、英語にしてもらって、SDに与えてみました。

美しいキリン002 - スイミングプール

良いです!さっきよりも、南国のスイミングプールらしい感じが出ています。南国のリゾートで泳いでいたら「キリンが迷い込んできて、びっくり」的な感じが出ました。

なお、同じプロンプトで描いた以下のキリンも気に入ったので張っておきます。

美しいキリン003 - スイミングプール

STEP3 - 南極の雪山に立たせてみる

南国のスイミングプールに限界を感じたので、次に、南極の雪山を背景にしてみます。プロンプトは次のようにしてみました。

次の条件でStable Diffusionのプロンプトを作ってください。
- 美しいキリン1匹を中心に描いてください
- 背景は南極の雪山にしてください
- キリンが美しく見せるよう工夫してください
- ただし、300文字程度にしてください。
最初に、日本語で出力し、その後、英語に翻訳してください。

南極にキリンを立たせるプロンプトをChatGPTに与える

すると、次のような応答を返しました。

日本語のプロンプト:
南極の雪山を背景に、美しいキリンが立っている。寒い中でも彼は逞しく、驚くほど美しく映えている。キリンの長い首と細い足が雪の上で優雅に映え、その斑点のパターンが一層美しさを引き立てている。キリンの瞳は勇敢さと知恵を誇示し、無限の天空を見つめる。雪の白さが彼の体色を際立たせ、美しくも力強い存在感を放つ。静かな南極の風景とキリンの姿が調和し、息をのむほどの風景を作り出している。

英語のプロンプト:
〜省略〜

ChatGPTの応答

以下が生成された画像です。どうでしょうか?

美しいキリン004 - 南極
美しいキリン005 - 南極

それなりにかっこ良いのですが、とても寒そうですね😿

STEP4 - やっぱりキリンはアフリカでしょう!

次に、南極は寒そうだったので、普通のアフリカにいるキリンを描画させようと思いました。

次の条件でStable Diffusionのプロンプトを作ってください。
- 美しいキリン1匹を中心に描いてください
- 背景は美しいアフリカの大地にしてください
- キリンが美しく見せるよう工夫してください
- ただし、300文字程度にしてください。
最初に、日本語で出力し、その後、英語に翻訳してください。

ChatGPTにアフリカの大地にキリンを配置するよう指示してみた

すると次のプロンプトを生成しました。

日本語:
太陽が西へと傾く美しいアフリカの大地。その空は朱色に輝き、大地と一体となります。その風景の中に、一頭の壮大なキリンが優雅に立っています。その長い首を伸ばし、静寂の中に輝く星を見つめています。金色の毛皮は夕日によって照らされ、生命の力強さを語りかけてきます。そのキリンの目は穏やかで、大地への敬意と愛情を感じさせます。ここには、調和と平穏、そして生命の美しさが凝縮されています。
英語:
〜省略〜

ChatGPTの応答

良さそうです。以下の画像を生成してくれました。

美しいキリン006 - アフリカ
美しいキリン007 - アフリカ

やはり、アフリカにいるキリンは、自然な感じがします。

まとめ - いずれも理想には届かず、次回また挑戦

個人的には、今回試した中では、以下の南極のキリンが、風変わりで良かったかな?と感じています。

美しいキリン004 - 南極

ただし、今回はいずれの画像も自分の中の理想には届きませんでした。残念でした。キリがないのでこの辺りで、止めてますが、時間ができたら、是非とも続きを試してみたいところです。

また、もう少しSDのプロンプトについて学ばないと、良い画像が生成できない気がしていますので、次回試すときは、既存のSDのテクニックを織り交ぜたプロンプトを試してみようと思います。

そして、続編かきました!(2023/07/22)
https://note.com/kujirahand/n/nef43080c0aef



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