Gemini(Nano Banana)で横長(16:9)の画像が作れない?プロンプトは英語と日本語どっちがいい?

Gemini(Nano Banana)で横長(16:9)の画像が作れない?プロンプトは英語と日本語どっちがいい?

何かとAIを使う機会が増え「そろそろ課金しないと…」と思っていたところ、Google AI Proが新規年額58%OFFというキャンペーンをやっているのを見つけました。

VSCodeにGemini Code Assistのアドオンを入れて使用しているのですが、それ以外にも使い道がありそうだと感じたので思い切って申し込みをしました。せっかくなので、あれやこれやとやってみようということでNano Bananaで画像生成してみました。

目次

プロンプトは日本語と英語どちらがいい?

まず、画像を生成するにあたり、プロンプト(指示文)はどうやって書けばいいのかなどを事前知識として入れておこうと思い、色々と調べました。

画像生成をした際に使用したプロンプトを紹介している記事が結構あったので読み漁っていると日本語で構成されたプロンプトで作成したケースと英語で構成したプロンプトを使用しているケースがありました。

note内にGoogleの公式アカウントが書いていた記事「Gemini の Nano Banana を使いこなす!プロンプトのコツを紹介」を読んでみると、ゴリゴリに日本語でプロンプトが書かれていました。

ただ、他の方のブログ記事を見てみると、こっちはゴリゴリの英語でした…

結局どっちがいいのか自分では判断ができなかったので、直接Geminiに聞いてみました。するとこのような回答がありました。

画像生成AIへのプロンプトは、結論から言うと「英語」の方が精度が高くなりやすいです。

多くの画像生成モデル(Stable Diffusion、Midjourney、DALL-E 3など)は、主に英語圏のデータセットで学習されているため、言葉の細かなニュアンスや専門用語の理解度が英語の方が一段高いのが現状です。

また、英語と日本語による言語の違いによる比較もしてくれました。

項目英語プロンプト日本語プロンプト
理解度非常に高い。細かい質感や構図の指定が通りやすい。モデルによる。抽象的な表現だと意図がズレることがある。
単語の豊富さアートスタイルや照明効果などの専門用語が豊富。翻訳プロセスを挟むため、ニュアンスが削ぎ落とされる場合がある。
最新モデルDALL-E 3などは日本語も堪能だが、基本は英語ベース。近年向上しているが、複雑な指示は英語の方が確実。

基本的には日本語でも問題ないようですが、もし期待したような結果が出ない場合は英語に翻訳してという流れがいいのかなと思います。

プロンプトはYAML形式がいい?

さらにプロンプトに関して色々と調べているとYAML形式でプロンプトを書くといいという記事を見つけました。

YAMLというのは、構造化データを人間が読みやすい形式で記述するデータフォーマットで、これを画像生成のプロンプトで記述するとなると以下のようになります。

対象: 猫
状態: 眠っている
場所: 陽だまりの窓際
画風: 水彩画風
詳細: 柔らかな光, 淡い色彩

現場などでがっつりとYAMLを使っている方からすると「違う」と叱られるかもしれませんが、ざっくりと説明するとこんな感じです。これに関しても「文章ベース」と「YAML形式」のプロンプトではどちらが理解しやすいのかをGeminiに聞いてみました。

最近のAI(特に最新のモデル)は、構造化されたデータ(YAMLやJSON風の記述)を非常に好みます

文章ベースだと、AIが「どこまでが主語で、どこからが修飾語か」を解釈する際にノイズが入ることがありますが、YAML形式のように項目が分かれていると、情報の読み落としが減るからです。

「やはりYAML形式がいいのか」と思っているとさらにおすすめの方法が提案されました。

ハイブリッド形式のプロンプトとは?

「ハイブリッド形式」とはどういったプロンプトの書き方かというと「基本設計はYAML形式のように構造化し、全体的な雰囲気は短い文章で添える」といったハイブリッド形式のプロンプトです。

Character: 侍, 黒髪, 鋭い眼差し
Setting: 嵐の夜, 古い寺院
Style: 写実的, 暗めのトーン
Prompt: 激しい雨の中で刀を構える侍。稲光が彼の表情を照らしている。

構造化されているので、文章ベースに比べて、どこをどう修正したいか分かりやすくなっている印象を受けます。さらに、この流れで以下の文章ベースのプロンプトを「ハイブリッド形式」に変換してもらいました。

【文章ベース】

20代前半の日本人女性OL。雑誌モデルのような美人で親しみやすさがある。髪型はミディアムヘアで毛先が少し内巻きで軽さを感じる。仕事中のオフィスで椅子に腰かけこちらに微笑むようなイメージ。

【ハイブリッド形式】

[Character]: 20s Japanese office worker, beautiful fashion model face, friendly smile.
[Appearance]: Medium-length hair with airy inward-curled ends, light brown hair color.
[Outfit]: Professional office attire, beige blouse.
[Environment]: Modern office interior, office chair, indoor plants, soft natural lighting.
[Prompt]: オフィスで仕事の合間に、椅子に座ったままこちらを見て微笑む日本人女性のポートレート。雑誌の1ページのような、清潔感と透明感のあるライティングで撮影された高品質な写真。

先ほどの説明とは[Character]以外の項目が異なっていますが、[Prompt]以外の部分はこれまでの会話の意図を汲み取って英語に変換してくれています。このプロンプトに従って画像を生成すると以下のような画像が出来上がりました。

日本人OL

割と意図した感じの画像が生成されたかなという感じです。もし、Geminiを使っているのであれば、文章ベースのプロンプトをハイブリッド形式に変換するGemを作っておくと便利かもしれません。

横長(16:9)の画像が作れない?

「プロンプトって最初から考えて書くのって面倒だなぁ…」と思っていたのですが、文章ベースのアイデアだけ出して、あとはAIに作ってもらうという形にすれば割と画像生成の作業は進めることができるなという感じです。

そこで調子に乗って、Nano Bananaであれやこれや画像を生成しているときに、ふと気づいたことがあります。

「あれ?生成された画像ってアスペクト比が全部1:1(正方形)になってる?」といった点です。

別にInstagramやXに投稿するわけでもないので、1:1(正方形)でもいいと言えばいいのですが、せっかくなので16:9(横長)の画像生成にも挑戦してみました。まあ、挑戦と言ってもAIに「アスペクト比を16:9にして」と投げるだけではあるのですが…

ということで、早速「アスペクト比 16:9」になるようにプロンプトを修正してもらい画像生成したのですが、何をどうプロンプトを変更してもらっても1:1の画像しか生成されません。

どうすれば16:9の画像が生成できるのかGeminiに相談し、プロンプトの先頭に(cinematic wide 16:9 aspect ratio:1.5),そして、プロンプトの末尾に–ar 16:9といったワードを挿入し、さらにハイブリッド形式のプロンプトに[Aspect Ratio] 16:9を追加するといった提案があったので、その通りに生成を実行しても1:1のままでした。

挙句の果てには、プロンプトに色々と指示を盛り込みすぎたのか、以下のような画像を生成する羽目になりました。

プロンプトが上手く実行されなかった例

同じチャット内でプロンプトを修正し、どの内容に重みを持たせるか、もしくは強制させるかといったことを繰り返していると、以前の制約などに引っ張られたり、全く意図しない画像生成を行ったりしたことがノイズとなり、それが原因で画像内にテキストが混入してしまうことがあるようです。

16:9のブランク画像を参考にさせるといい?

その後もGeminiと議論をしましたが、若干お手上げな感じを醸し出してきたので、同様のケースで悩んでいる人はいないか調べてみると、ある記事がヒットしました。

【Gemini / Nano Banana】アスペクト比を強制固定する「ブランク画像」Tips#3 (無料公開)

どうもAI(特にNano Banana)は学習の初期段階で1:1(正方形)の画像を中心にトレーニングされているらしく、明示的に「16:9」と指定してもAIの本能的な部分が画像を中央に寄せたり、左右に無理やり余白を作って正方形の構図に収めようとする傾向(正方形バイアス)があるようです。

ただ、先ほど紹介した記事を読むと、この正方形バイアスを突破するために16:9や9:16の真っ白なブランク画像を添付し、その画像を参考にして描写させるということです。

実際の手順などは、先ほど紹介した記事をご覧いただくとして、まず初めに「ハイブリット形式」へのプロンプト変換を行い、それ以降に関しては、その記事と同様の手順で画像を生成を行いました。

すると、どういうわけかこのような画像が生成されました。

横長に描写されなかった画像

同じチャット内で、再度ブランク画像を参考にするプロンプトへの修正を指示して、提示されたプロンプトで作成するとこのようになりました。

横長にはなったけれど…

「横長の画像が生成された!」と喜んだのも束の間、生成された画像のアスペクト比を調べてみると7:4という非常に中途半端な比率になっていました。

真っ黒なブランク画像を使ってみる

その後、何度かプロンプトの修正をしてもらい画像を生成しましたが、中々意図した結果が得られません。そうこうしている間にふと思いついたことがありました。

「真っ黒なブランク画像にしたらどうなる?」

ということで、早速Geminiにその旨を伝えてみました。するとこのような回答が…

AIは白い部分を「明るい壁」や「白いマニュアルの紙」といった描写すべき素材として誤認し、それを中心に据えて1:1で描こうとする傾向があります。一方、真っ黒な画像はAIにとって「何もない空間(ヴォイド)」や「非表示領域」として認識されやすいため、単なるキャンバスのサイズ(16:9)を指定するテンプレートとして機能しやすくなります。

それは早く言って欲しかった…

ということで、真っ黒のブランク画像を用意し、それ用のプロンプトに修正をしてもらい生成した画像がこちらです。

プロンプトが混入した画像

なぜこのような画像になったのか聞いてみると、16:9の比率を極限まで守らせるため、非常に強く命令した結果、プロンプトのテキスト情報までも画像内に描くべき重要な視覚情報と過剰に反応したことが原因ということでした。

横長(16:9)の画像を作るための最終結論

その後、横長(16:9)の画像を生成するためにGeminiと試行錯誤してみましたが、どうも上手くいきませんでした。そして、最終的にたどり着いた答えが「参考にするブランク画像を捨て、1:1の画像上下に黒い余白部分を作り、実際に画像が描写される部分を横長にするということです。

実際に出来上がった画像がこちらです。

上下に余白を作り横長風にした画像

この状態で生成されたものをトリミング(切り抜き)をすればいいじゃない。ということでここに落ち着きました。まあ、最初からNano Banana Proを使えばいいのにとは思うのですが、1日で生成できる回数も限られているということもあり、ここで作成したものをNano Banana Proでアップスケールするという方法で作成していこうかなと思っています。

ハイブリッド形式のプロンプトを捨てる

YAML形式で構造化されたプロンプトと文章ベースを合わせた「ハイブリッド形式」のプロンプトが良いとGeminiにもお墨付きをいただいていました。

しかし、先ほどの「横長の画像の生成」でGeminiと議論していると驚くような提案がありました。

上下の余白に文字が混入されるのを防ぐために「構造化されたプロンプト」を廃止してみませんか?

いやいやいや…ハイブリット形式のプロンプトめっさ推してきましたやん…

結果的には、ブランク画像とハイブリッド形式のプロンプトを使用することなく、違う形でプロンプトを作成する方法が見つかったので、それはそれでいいのですが、なんだかねえ…といった感じではあります。

ちなみに、この記事の一番最後の画像は、ハイブリッド形式ではなく「フラットな記述のプロンプト」で生成されたものです。参考までにプロンプトを挙げておきます。

(Extreme Wide Cinematic Landscape Composition:2.5), (Rule of Thirds with subject on the far left side:2.2), A professional photorealistic photo of an elderly Japanese person's wrinkled hands, one hand holding a plastic card, the other on a laptop keyboard. (Massive empty copy space on the right 60% of the frame:2.5). High-detail skin textures. Background is a blurred, bright Japanese living room with soft morning light. The shot is an ultra-wide horizontal perspective. Pure photography, strictly no text, no labels, no characters. Focus on the spatial balance between the subject on the left and the empty space on the right. --ar 16:9

ただ、これらの内容を踏まえてプロンプト変換用のGemを作成して使っていると、状況によってはフラットな記述のプロンプトではなく、構造化されたようなプロンプトを提示してくることもあるので、その時々で使い分けているのかなと思います。

このやり方であれば絶対に横長の画像ができるというものではないのですが、Nano Bananaで横長(16:9風)の画像を作成したいという方の参考になればと切に願うばかりです。

Related posts