見出し画像

AI画像生成で狙い通りの画像を生成したい

こんにちは。シーラルと申します。
AI画像生成の初心者ですが、楽しみながら実践していけたらと思います。
今回のテーマは「狙い通りの画像を生成する」です。今回もChatGPTを使用していきたいと思います。



課題の画像をAI画像生成で作成する

狙い通りの画像を生成する練習をするにあたり、課題になる画像を作成したいと思います。その課題画像に近づけるようにプロンプトを調整しながら画像生成をしていくという流れです。
課題画像の作成はDreamStudioを使用することにします。ChatGPTを使用しても良いのですが、同じツールを使用したら似たような画像を作りやすくなってしまうかも?と思ったためです。実際、学習モデルが同じだったり、プロンプトが単純だと似たような画像になりやすいということはあるのでしょうか。詳しい方がいましたらぜひご教示いただきたいです。
話しが逸れましたが、さっそくDreamStudioで画像を作成してみます。

プロンプトは以下になります。
【(hill:0.8), castle, (mountain:1.3), lake, bridge, snow】
今回のプロンプトはオブジェクトの名称を入れただけの、かなり単純な内容になっています。ちなみに0.8や1.3という数字は、プロンプトの重み付けで、オブジェクトのサイズや占有率などを調整することが可能です。試しに入れてみましたが特別な理由はありません(笑)

画像を見るとプロンプトの要素はすべて含まれていました。場合によってはうまく反映されないこともあります。
雪の要素は少し弱めに思えます。DreamStudio(Stable Diffusion)に代表される従来型の画像生成AIでは、プロンプトの順番が早い方が優先的に反映されるようですので、その影響かもしれません。
なんか、紅葉もしてますね。AIの突拍子もない感じが出ていて素晴らしいです。


ChatGPTで画像生成してみる

課題の画像が作成できたところで、さっそくChatGPTに生成してもらいます。まずは、試しにDreamStudioで使用したプロンプトをそのまま使用して画像生成してみます。

うん、なんか思った以上に結構いい感じ!
まだ私は何もしてないのに、、、
とはいえ、できる限り課題画像に近づけるというのが今回の目的です。微妙な違いを埋めていく作業をしていきます。

2枚を比較すると、課題画素に対して以下が気になりました。

  • 紅葉していない

  • 雲がない

  • 山が主張しすぎている

  • 丘が低い、岩肌が見えていない

  • お城の屋根が赤じゃなく青い

  • 橋までの距離が遠い

さっそくChatGPTに気になる点を修正してもらうようにお願いをしてみます。

ちょっと紅葉満開すぎますって!
すごくカラフルで好みの色彩ではありますが、課題画像からは遠のきました。
ただ、丘の高さや山の存在感は課題画像に近づいたように思えます。お城の屋根もしっかり赤色になっていますね。橋の位置はほとんど変化がないですが。
さてさて、どうしましょう。とりあえず、ぱっと見で一番目立ってしまっている紅葉をもう少し抑えてもらいましょう。

なんか急にすごく変わりました!
すごく嫌な予感がします。
明らかに課題画像から遠のいています。構図ががらりと変わってしまっていますが、指示の仕方が悪かったのでしょうか。
いったん、元の画像に戻したいと思い、最初のプロンプトを入れなおしてみます。

それっぽい絵に戻りました。一安心です。
次からは欲張らないで一つ一つ修正していきたいと思います。


画像を修正していく

まずは課題画像との比較からやり直していきます。

  • 紅葉していない

  • がない

  • が主張しすぎている

  • が低い、岩肌が見えていない

  • お城の屋根が赤じゃなく青い

  • までの距離が遠い

となります。橋までの距離は初期生成画像よりはよくなっていますね。たまたまですが。

さて、まずは「紅葉」を調整したいと思います。極端に紅葉しない様に、極力控えめで紅葉させてくださいと伝えます。

うーん、紅葉はいったんこれで妥協!
お次は「雲がない」ですが、まずは雲のスペースを作るために「山の高さ」を調整していきたいと思います。山を低くして、山脈にして下さいとお願いします。

まだ、山が高いですね。山を遠くして、更に低くしてもらえるようにお願いします。

なんか、山脈が迫ってきています!
なぜでしょうか、、、やはり、構図のバランスが重視されているとかあるんでしょうか。

もちろん諦めません!
それならば、空を調整して相対的に山を低くする作戦に変更します。
最初はさほど気にしていませんでしたが、だんだん鳥が目立ってきましたので、空の範囲を広くし、鳥を消すように、お願いしました。

あーもうめちゃくちゃだ!
橋は向こういっちゃったし鳥溢れてるし

鳥が怖いのでとりあえず鳥を消してもらうことにします。

、、、鳥がリアルになりました
あと、お城が天空の城みたいになりました。

天空城すごくカッコいい!次はこれ作りたい!

それにしても、また修正できない構図になってきています。
元々、初期生成画像も私が指定したわけではなく、たまたま課題画像に似た構図になっていただけです。そもそも、構図の指定ができるかどうかも確認していませんでした。

先に何ができて何ができないかを確認した方がよさそうですね。


AI画像生成の「苦手」を確認してみる

まず、オブジェクトの位置の指定ができるか確認してみます。左に一軒家、右にマンションとだけ指定をして、画像生成をしてもらいました。

4枚中3枚は指示通りの絵となりましたが、右下の画像では家とマンションの位置が逆になっています。
オブジェクトの位置指定の難易度について本人に聞いてみます。

要約すると、ちゃんとプロンプトでは指示を出しているが、実際に指示通りに画像を生成できるとは限らないとのこと。なるほど。やはり位置の指定は簡単ではありません。
細かな位置指定ができないのは画像生成に詳しい方からしたら常識なのかもしれません。

他にも何が苦手か聞いてみると以下の回答でした。

  1. 特定な人物や物の正確な再現

  2. 抽象的な概念や感情の表現

  3. 複雑な動作やポーズ

  4. 細かいテキスト

  5. 非現実テキスト、物理法則に反するシナリオ

実際に画像生成してみないとイメージがわきづらいです。それぞれに対しどれくらい苦手か試してみることにします。

・特定な人物や物の正確な再現

国民的キャラクターで試してみます。

「ピカチュウ、君に決めた!!」

あわわわわ、す、すみません。
純粋に精度の問題だけではなく、著作権の問題も含まれているんですね。これ以上はバカな私が触れてはいけない話題です、、、次の検証をしていきましょう。

・抽象的な概念や感情の表現

抽象的な概念は例えばなんですかね?
「愛」とかですか?、、、愛ですね。
感情は「楽しい」にしてみます。

ニヤニヤしちゃいました!
ちゃんと、愛と楽しいが表現されていると思います。感情については表情があれば表現しやすそうですね。愛はハートで表現できていますが、テーマによっては難しい表現もありそうに思えました。
少し意地悪するために「日本の風景」という指定を追加しました。どうやって「楽しい」を表現するのでしょうか。

すごく、楽しそう!私も混ざりたい!!
カラフルで生き物(地球にいないタイプの)も、たくさんいます。やっぱり画像生成AIは凄いです。
簡易的な検証ではありましたが、「抽象的な概念や感情の表現」については、上手に表現できていると思いました。

・複雑な動作やポーズ

複雑というのが難しいですが、画像生成AIは指が上手く生成されないという話を聞いたことがありますので、「手でハートマーク」と指定しました。

あ、こんなところにイケメンさんだ!友達になってください!
ハートマークも完璧にできていますし、指も違和感ありませんね。ハートマークは有名なポーズなので学習時の教師データにも多く含まれているかもしれません。

もう少し複雑な指示をした場合どうなるかも検証してみます。
まずはChatGPTに「カッコいいポーズをして若者」で画像を出してもらい、それを課題画像にしたいと思います。

これが今の若者のイカしたスタイルなんですね!
左右の認識が完璧ではないのは確認済みですが、一度見たままで指示を出してみます。

ということはこういうことになりますね。

「正面を向いています。足はしゃがむと屈むの間です。左足が前に出て右足は後ろです。左足のつま先は前を向いていて、右足は外向きです。右手は下ろしていて指は真っ直ぐに下に向けています。右手の位置は右足の前です。左手は画面右方向に伸ばしており、体に対して少し後ろに向けています。左の手のひらは真横に伸び、指も伸ばしています。地面に対して並行です。」

というか指示がそもそも難しい!
狙いのポーズを想像した時にどう伝えるかも重要なのかもしれません。
でも、優秀なGPT君なら私の想いが伝わってくれるはず。お願いします。

お、お〜〜?半分くらい伝わってそうな伝わっていなさそうな
指が苦手なのは噂通りですね。これはどの画像生成AIにも共通の課題です。あと、「正面を向いています」というに指示が1枚しか反映されていないのが意外でした。そこまで難しい指示だと思っていなかったのですが、足や手の指定を含めて総合的に解釈すると、正面を向けるのが難しいのかもしれません。

・細かいテキスト

これまで構図の指定や指の描写が難しいことを確認してきましたので、文字が書かれた絵を生成するのは相当な難易度と予想できます。
試しにいくつかの言語を指定して絵を生成してみました。

英語で書かれた書物
日本語の看板が立ち並ぶ繁華街
ヒエログリフが描かれた壁

ENGLISH!!!
って単語だけ判別できました。字が小さくて見えないですがローマ字は他の文字と比べて精度よくできているように思えます。段落や改行などの書物の体裁は視覚的に学習できいるためか、遠目ではほとんど違和感がありません。

日本語の看板は漢字風文字やカタカナ風文字が確認できます。外国の方が見たら日本語(中国語?)に見えるかもしれないですね。
ヒエログリフについては、お試しで描いてもらいましたが、私自身は正解がわかりません(笑)

実在する文字だと読める人からしたら違和感満載になってしまいますね。そういう意味では「細かいテキスト」は苦手なようです。
例えば、「架空の文字」と指定すればファンタジー作品などにはマッチしてくれるかもしれません。

架空の文字が描かれた石板

・非現実テキスト、物理法則に反するシナリオ

なるほど、これはとにかくあり得ないようなシチュエーションを指定すれば検証できそうです。

「地球より大きい天使の羽が生えた亀が口から火を吐いて、地球に落下している隕石を破壊して地球を救う」

をテーマに絵を生成してもらいます。

なんか地球が破壊されている気がする!!
地球よりは小さい亀さんですね。もう少し調整すれば指示通りの絵を描くことは可能かもしれませんが、一回の指示で描いてもらうのは難しそうです。隕石を落とさず火を吐かなかった場合も同様です。

亀には地表が必要ということでしょうか。「地球より大きいことが分かる&地表に配置する」の組み合わせが難しいのかもしれません。

ChatGPTの画像生成AIが苦手なことまとめ

試行回数がかなり少ないため一概に結論は出せませんが、私なりのまとめをしたいと思います。

・構図の指定
特に左右の認識をされないことが多かったです。また遠近についても同様で、最初の検証の際に橋を手前に持ってくるために何度かトライしてみましたが、ほぼ効果なしです。全体のバランスが重視されているように感じました。

・特定のオブジェクトを消す
今回は鳥が消せませんでした。画像修正時に、前の画像のプロンプトを維持したま鳥を消そうと思ったのですが、逆に増えてしまいました。そして、GPT君は鳥は消しましたって言います。なぜそうなってしまったかは分かりませんでしたが、これまでの対話履歴も反映してDALL-Eに指示を出しているため、鳥の描写に関するプロンプトが画像修正を繰り返しているうちに固定化されたとかあるのでしょうか。詳しい方がいましたら、教えていただきたいです。

・特定のポーズ
イメージしているポーズを正確に伝えようとした場合、まずは伝えるのに苦労します。これは私の言語力の問題かと思いますが。また、情報が多いうえに複雑になるためすべてを反映するのは難しそうでした。

・手や指
今回、多くの画像は載せませんでしたが、手のサイズ感や指の数は上手くいかないことが頻発します。握手のように複雑になるとなおさらです。これは他の画像生成AIでも言われていることで、技術革新を待つしかなさそうです。一方でハートポーズのような学習数が多いと思われるポーズについては正確に生成出来ていました。

・現実の文字
現実の文字は詳細で形状にも正解があります。これを正確にとらえて再現するのは技術的に難しいようです。日本語風や英語風(ローマ字ではあります)の文字を生成することはできました。また、見出しや段落、改行等の視覚的な構成については学習されていると思いますので、遠目ではそれっぽくなります。


感想

今回は最初に設定した課題をこなすことができず、不完全燃焼です。
私の認識が甘く、課題の設定が実力に見合っていませんでした。
それでも工夫しながら検討していく工程は楽しくてしかたありませんでした。
また、これまでよりほんの少しだけ画像生成AIの理解が進んだ気がします。これまでは、簡易的な指示でランダム気味に生成される絵を眺めて喜んでいましたが、今回は「画像生成AIでは何ができて何ができないのか」について、ChatGPTと楽しく会話しながら学ぶことができました。
新しく何かを学ぶのは大変なことが多いですが、楽しく学べるので全く苦ではありません。これからもChatGPTを活かしながら生成AIについて学んでいけたらと思います。
そして、「狙い通りの画像を生成する」を諦めたわけではありません!もっと他のアプローチができないか考えて、いいアイデアが浮かんだら実践していきたいと思います。

ここまで読んでいただきありがとうございます。また次回もよろしくお願いいたします。


この記事が参加している募集

#AIとやってみた

27,805件

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