
Nano Bananaの使い方について、また1つ学んできました。その時、初めて目にする言葉がありました。それは、「JSON形式」です。ここでは、その言葉について詳しく触れずに進めます。
プロンプトの代わりに「JSON」で入力すると曖昧さが少なくなりよりリアルな画像を生成できるようです。
参考にしたサイトでは、「Nano Banana」+「JSON形式」での使い方が示されていました。そこにある4つのプロンプトで生成した結果、すべて解説通りの画像が生成されました。ここまでなら、改めてブログで取り上げるまでもありません。ここからは、その続きになります。
この手法をSeaArt Filmで使えるか試してみました。Geminiに手伝ってもらいます。
参考サイトのプロンプトをアレンジした画像案
Subject(被写体): 人物はJ-POPアイドル風、コンサートのステージ衣装。
Character Element(キャラクター): くまもんは「巨大な3Dレンダリング」
Environment(環境): 背景はシンプルなスタジオ、ライティングは「リムライト」で輪郭を際立たせる。
これをGeminiに入力します。
Gemini
次のプロンプトを、Stable Diffusion用JSON形式に変換してください。
Subject(被写体): 人物はJ-POPアイドル風、コンサートのステージ衣装。
Character Element(キャラクター): くまもんは「巨大な3Dレンダリング」
Environment(環境): 背景はシンプルなスタジオ、ライティングは「リムライト」で輪郭を際立たせる。
出力
{ “prompt”: “masterpiece, best quality, 8k, highly detailed, 1girl, j-pop idol, cute, energetic, wearing concert stage costume, frills, shiny clothes, (kumamon:1.3), huge, 3d render, mascot, black bear, red cheeks, standing next to girl, simple studio background, dark background, rim lighting, dramatic lighting, backlight, volumetric lighting, contours, sharp focus”, “negative_prompt”: “low quality, worst quality, bad anatomy, bad hands, missing fingers, extra digits, text, watermark, signature, blurry, jpeg artifacts, cropped, ugly, distorted face, mutation, deformed”, “steps”: 30, “cfg_scale”: 7.0, “width”: 512, “height”: 768, “sampler_name”: “DPM++ 2M Karras”, “seed”: -1 }
これをFilmに入れて画像生成します。
Film

画風を変えられるという提案があったので試します。
画風をアニメに
{ “prompt”: “masterpiece, best quality, anime, anime style, cel shading, vibrant colors, 1girl, j-pop idol, cute, energetic, wearing concert stage costume, frills, sparkling clothes, (kumamon:1.3), huge, 3d render, mascot, black bear, red cheeks, standing next to girl, simple studio background, dark background, intense rim lighting, dramatic lighting, backlight, volumetric lighting, contours, sharp focus”, “negative_prompt”: “low quality, worst quality, bad anatomy, bad hands, missing fingers, extra digits, text, watermark, signature, blurry, jpeg artifacts, cropped, ugly, distorted face, mutation, deformed, photorealistic, realistic, 3d reality”, “steps”: 28, “cfg_scale”: 7.5, “width”: 512, “height”: 768, “sampler_name”: “DPM++ 2M Karras”, “seed”: -1 }

テキストが気になったので修正を依頼します。
画像に文字が入らないように修正してください。

テキストが強調されてしまいました。よく見ると、””で括られた部分の所々が文字になっています。
手動でネガティブ以下の部分を削除して生成します。
{
“prompt”: “masterpiece, best quality, anime, anime style, cel shading, vibrant colors, 1girl, j-pop idol, cute, energetic, wearing concert stage costume, frills, sparkling clothes, (kumamon:1.3), huge, 3d render, mascot, black bear, red cheeks, standing next to girl, simple studio background, dark background, intense rim lighting, dramatic lighting, backlight, volumetric lighting, contours, sharp focus”,
“steps”: 28,
“cfg_scale”: 7.5,
“width”: 512,
“height”: 768,
“sampler_name”: “DPM++ 2M Karras”,
“seed”: -1
}

完成しました。
JSON形式
詳しく見ると、画像比率、ネガティブプロンプトなど入力内容の半分以上は生きていません。無駄がとても多いと言えます。ちょうど後半半分は、SeaArt内でコントロールできる部分です。従って、削ってしまっても問題ないと思います。今回は、SeaArt以外の画像生成AIも想定したのでそのまま削らずに使用しました。
JSONには、””で括られた部分がたくさんあります。SeaArtでは、テキスト指定と誤解されるので気を付けなければなりません。しかし、完成した画像に使用したJSONにもたくさんありましたが誤解はされませんでした。キーポイントは、ネガティブプロンプトを入れないことかなと思います。
GeminiやChatGPTで、「JSON」を生成させるときは、Stable DiffusionかMidjourneyかを指定するとよいようです。
二つのものを違和感なく一体化させるには、JSON形式がとても有効なようです。極めれば「JSON」には、もっとたくさん良い使い方があるかと思いますが、能力不足のためGeminiに頼ざるを得ません。
この手法をプロンプトジェネレーターとして利用する
Geminiに生成させたJSONの「プロンプト」以下の部分は、普通の画像生成AI用プロンプトと変わりません。だから、その部分だけコピペするだけで画像生成できると思います。それなら初めから生成AIに「画像生成AI用プロンプトを作成して」と入力すればよいようです。
しかし、そう入力するとマルチモーダル化された最近のAIは画像生成を始めてしまいます。このことは、Copilot,Gemini,ChatGPTで経験済みです。画像生成後に「違う違うその画像を生成するプロンプトを教えて」と入力するはめになります。JSON指定なら一発でプロンプトが生成されます。
また、生成AIに画像生成AI用プロンプトを作成させようとしても、なかなか思い通りに作ってくれないことが多いです。例えば、GPTsを使うとプロンプトが出来上がるまでにチャットを何度か繰り返すことになります。JSONなら、条件指定するだけで違和感なく望む画像に近いものを作れるプロンプトを生成してくれます。
あとがき
JSONをJSONとして全く正しくは使っていませんが、無知のなせる技とご理解いただければ幸いです。参考サイトの4プロンプトをFilmに入れて生成しました。生成画像は、NanoBananaと比べてそんなに遜色がありませんでした。それなら、コスト170クレジットが6クレジットで済んでしまうので、とてもいいかなと思います。



コメント