Thanks to visit codestin.com
Credit goes to github.com

Skip to content

ideamans/nanobanana-banner-variations

Repository files navigation

Nano Banana Proはバナーリサイズの夢を見るか

Nano Banana Pro (Gemini 3) の画像生成能力を使って、バナー広告のリサイズ作業をAIで代行できるか検証した実験プロジェクトです。

背景

Webデザインの現場では、1つのオリジナルバナーから様々なアスペクト比のバリエーションを作成する「リサイズ作業」が頻繁に発生します。同じコンテンツ(ロゴ、キャッチコピー、商品画像、価格など)を、160x600、300x250、728x90といった異なるサイズに展開する作業です。

Nano Banana Proで画像生成能力が格段に改善されたと聞き、この定型作業をAIで自動化できないか試してみました。

実験のコンセプト

以下の3つの素材を入力として与え、指定サイズのバナー画像を生成させます:

  1. 背景画像 - バナーのベースとなる画像
  2. 仕様書(YAML) - ブランド名、キャッチコピー、価格、デザインガイドラインなど
  3. クリエイティブ作例 - 完成形のイメージを示す参考バナー

入力素材

システムプロンプト

Nano Banana Proに以下のシステムプロンプトを与えています:

ユーザーの指示した解像度のバナー画像を作成してください。
**バナー画像であるため、解像度の順守は最重要ポイントです。必ず守ってください**

アスペクト比の順守を強調していますが、後述の通り横長バナーではこの指示が守られませんでした。

背景画像

背景画像

クリエイティブ作例

クリエイティブ作例

仕様書(spec.yml)

campaign_info:
  brand_name: "ESSENCE (エッセンス)"
  product_name: "S1 Oven"
  target_audience: "本質的な価値とデザインを追求する富裕層"
  brand_tone: "Sophisticated, Minimalist, Architectural, Innovative"

content_assets:
  # ブランド・製品ID:最優先表示
  identity:
    brand_logo_text:
      text: "ESSENCE"
      priority: "high"
    product_name:
      text: "S1 Oven"
      priority: "high"

  # キャッチコピー:製品の世界観を決定づける言葉
  copywriting:
    main_catch:
      text: "キッチンに、彫刻を。"
      priority: "high"
      note: "家電を超えた存在感を表現"
    sub_catch:
      text: "気配を消したテクノロジーが、完璧な火入れを実現する。"
      priority: "mid"
      note: "革新的な機能(見えないインターフェースとAI調理)を示唆"

  # 価格情報:重要度を上げ、分かりやすい税込表示に変更
  pricing:
    price_display:
      text: "¥207,900(税込)"
      priority: "high"
      note: "本体価格¥189,000+消費税"

  # 特徴:具体的な革新性を示す要素
  features:
    - item:
        text: "Invisible Touch Interface(隠された操作盤)"
        priority: "mid"
    - item:
        text: "AI Chef Engine搭載による自律調理"
        priority: "mid"
    - item:
        text: "継ぎ目のないモノリス一体成型ボディ"
        priority: "low"

  # デザイン指定(メタデータ)
  design_guidelines:
    font_family: "Futura, Avenir, Noto Sans JP, sans-serif"
    text_color: "#FFFFFF"
    background_image_tone: "Dark, Moody, Premium"
    layout_note: "余白を贅沢に使い、美術館の展示品のように見せること。価格は明確に伝える。"

生成結果

300x250(ミディアムレクタングル)

300x250

正方形に近いアスペクト比のため、比較的良好な結果。レイアウトのバランスも取れています。

300x600(ハーフページ)

300x600

縦長フォーマット。要素の配置が適切で、読みやすいレイアウトになっています。

160x600(ワイドスカイスクレイパー)

160x600

極端な縦長でも、コンテンツを縦に並べて対応できています。

1200x628(Facebook/OGP向け)

1200x628

横長ですが比率が緩やかなため、まずまずの結果。

728x90(リーダーボード)

728x90

問題発生: 極端な横長アスペクト比(約8:1)に対応できず、生成された画像は指定よりも縦長になりました。後処理でクロップしているため、上下が切れた状態になっています。

320x50(モバイルバナー)

320x50

問題発生: 728x90と同様、極端な横長(約6.4:1)に対応できていません。

実行ログ

6種類のバナーを生成した際の実行結果です。

要求サイズ AI出力 アスペクト比差 最終サイズ ファイル 時間
160x600 528x2000 -0.003 160x600 23KB 24.22s
300x250 1136x944 +0.003 300x250 21KB 22.13s
728x90 1024x1024 -7.09 728x90 11KB 49.96s
320x50 1024x1024 -5.40 320x50 4KB 29.37s
300x600 720x1456 -0.005 300x600 44KB 22.66s
1200x628 1424x752 -0.017 1200x628 123KB 23.88s
要求サイズ プロンプトトークン 出力トークン 合計トークン
160x600 1,107 1,381 3,151
300x250 1,107 1,350 2,569
728x90 1,106 1,843 3,268
320x50 1,106 1,296 2,883
300x600 1,107 1,364 2,674
1200x628 1,108 1,376 3,077
合計 6,641 8,610 17,622

実行時間について

  • 合計: 約172秒(約2分52秒)
  • 平均: 1バナーあたり約29秒
  • 最速: 300x250(22.13秒)
  • 最遅: 728x90(49.96秒)

横長バナー(728x90)の生成に最も時間がかかっています。これはアスペクト比の制約を満たせず、モデルが試行錯誤している可能性があります。結果的に1024x1024の正方形が出力されており、指示に従えなかったことがわかります。

トークン消費について

  • 入力トークン: 約1,100で一定(同じ素材を使用しているため)
  • 出力トークン: 1,296〜1,843で変動
  • 合計: 6バナーで約17,600トークン

興味深いことに、横長バナー(728x90)では出力トークンが最大(1,843)となっていますが、結果は1024x1024の正方形でした。トークンを多く消費しても、モデルの苦手なアスペクト比を克服できないことを示しています。

結論

うまくいったケース

  • 正方形に近いアスペクト比(300x250など): 良好
  • 縦長フォーマット(160x600、300x600): 良好
  • 緩やかな横長(1200x628): 概ね良好

課題が見つかったケース

  • 極端な横長フォーマット(728x90、320x50): アスペクト比を守れない
  • フォントの安定性: バナーによってフォントにバラつきが見られる
  • 再現性がない: 生成AIのため、実行するたびに結果が異なる

Nano Banana Proは、極端に横長の画像を生成することが苦手なようです。システムプロンプトで「解像度の順守は最重要」と強調しても、生成される画像は正方形に近づいてしまいます。

また、フォントの選択やレンダリングがバナーごとに微妙に異なり、クリエイティブとして厳しい観点から見ると統一感に欠けます。

さらに、生成AIである以上、決定論的に毎回同じ結果が出るわけではありません。同じ入力でも実行ごとに結果がばらつくため、品質の安定した出力を得るには複数回生成して選別する必要があります。この点も実用化に向けた課題と言えます。

可能性を感じた点

一方で、明示的に指示していないにもかかわらず、AIが自律的に対応してくれた点もありました:

  • テキストの配置: サイズに応じて要素を適切に再配置
  • カラーの調整: 背景色に合わせた文字色や装飾の調整
  • 画像の延長(アウトペインティング): 背景画像の存在しない領域を自然に補完・延長

キッチンシンクがやたら小さくなるなど、よく見ると違和感はあるものの、こうした「気の利いた処理」を自動でやってくれるのは大きな可能性を感じます。

今後の可能性

  • プロンプトエンジニアリングでの改善
  • 横長バナーは複数回生成して選別
  • 後処理(リサイズ・クロップ)との組み合わせ最適化
  • 他のモデルとの比較

この実験は一つの検証結果であり、工夫次第で改善できる可能性はあります。

開発・実験の再現

実験を再現したい場合や、別の素材で試したい場合は DEVELOPMENT.md を参照してください。

  • 環境構築(Go、APIキー設定)
  • 素材の差し替え方法
  • spec.yml の書き方
  • 内部実装の解説

About

Generates banner ad variations using Gemini AI. Resizes and crops to exact dimensions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •