4K 多画幅批量出图:用 Nano Banana 2 API 搭建一套适配电商/短视频/官网的素材管线

4K 多画幅批量出图:用 Nano Banana 2 API 搭建一套适配电商/短视频/官网的素材管线

做过内容运营的人都清楚,同一张图要出好几个版本:公众号封面要 2.35:1,抖音封面要 9:16,淘宝主图要 1:1,官网 Banner 要 16:9。以前的做法是设计师出一张大图,再裁切成各种尺寸。每次改需求都要返工。

Nano Banana 2(Gemini 3.1 Flash Image)原生支持 10 种画幅比例和从 512px 到 4K 的分辨率选择。这意味着可以用同一个 Prompt 直接生成不同尺寸的图,而不是靠后期裁切。

这篇文章记录的是我用 Nano Banana 2 API 搭建一套批量出图管线的过程,包括遇到的构图漂移问题和对应的解决办法。

支持的规格矩阵

先列一下 Nano Banana 2 目前支持的全部画幅和分辨率:

画幅比例(10 种): 1:1 / 16:9 / 9:16 / 4:3 / 3:4 / 3:2 / 2:3 / 4:5 / 5:4 / 21:9

分辨率档位

  • 512:约 512×512,速度最快,成本最低(约 $0.045/张)
  • 1K:约 1024×1024,默认档位(约 $0.067/张)
  • 2K:约 2048×2048(约 $0.101/张)
  • 4K:约 4096×4096,适合印刷和大屏展示(约 $0.151/张)

实际像素数会根据画幅比例自动调整。比如 16:9 + 4K 大约是 4096×2304。

批量生成脚本

用 Python + Gemini API 写一个批量生成不同画幅的脚本:

import google.generativeai as genai
import os, time

genai.configure(api_key=os.getenv("GEMINI_API_KEY"))
model = genai.GenerativeModel('gemini-3.1-flash-image-preview')

prompt = "一杯精致的拿铁,拉花是天鹅形状,暖色调咖啡馆环境,专业摄影"

specs = [
    {"name": "taobao_main",   "ratio": "1:1",  "size": "2K"},
    {"name": "douyin_cover",  "ratio": "9:16", "size": "2K"},
    {"name": "wechat_banner", "ratio": "16:9", "size": "2K"},
    {"name": "website_hero",  "ratio": "21:9", "size": "4K"},
    {"name": "xiaohongshu",   "ratio": "4:5",  "size": "2K"},
]

output_dir = "./output"
os.makedirs(output_dir, exist_ok=True)

for spec in specs:
    try:
        response = model.generate_content(
            contents=[prompt],
            generation_config={
                "response_mime_type": "image/jpeg",
                "aspect_ratio": spec["ratio"],
            }
        )
        if response.parts:
            img_data = response.parts[0].inline_data.data
            filepath = f"{output_dir}/{spec['name']}_{spec['ratio'].replace(':', 'x')}.jpg"
            with open(filepath, 'wb') as f:
                f.write(img_data)
            print(f"[OK] {spec['name']} - {spec['ratio']}")
        time.sleep(1)
    except Exception as e:
        print(f"[FAIL] {spec['name']}: {e}")

一次 Prompt 生成 5 种规格,总成本不到 $0.5,耗时约 50 秒。

构图漂移问题

同一个 Prompt、不同画幅,生成出来的构图不一样。这是正常的,但有时候差异大到影响使用。

实际观察到的问题

  • 1:1 的图里咖啡杯居中,拉花清晰可见
  • 9:16 的图里咖啡杯跑到了画面底部三分之一处,上面多了一大片天花板
  • 21:9 的图里咖啡杯缩得很小,两边填充了很多桌面

模型为了适配不同画幅,会自动调整构图和视角。大多数时候处理得还行,但偶尔会把主体挤到边角。

解决方法

  1. 画幅感知的 Prompt:在 Prompt 里加上构图描述。比如 9:16 加上"竖版构图,咖啡杯居中偏下,上方留出文字空间",21:9 加上"横幅构图,咖啡杯位于画面左侧三分之一处"。

  2. 分两步走:先用 1:1 生成一张"基准图",锁定主体形象。再把这张图作为参考图,配合不同画幅重新生成。模型会尽量保持参考图里的主体特征。

  3. 后期裁切兜底:对于要求不高的场景,也可以统一生成最大画幅(比如 16:9 的 4K),然后脚本化裁切。但会损失构图质量。

文件命名和入库

批量出图后的素材管理也要考虑。建议的命名规则:

{日期}_{项目名}_{用途}_{画幅}_{分辨率}.{格式}
20260228_latte_taobao_1x1_2K.jpg
20260228_latte_douyin_9x16_2K.jpg
20260228_latte_banner_16x9_2K.jpg

如果素材量大,可以直接上传到对象存储(比如 OSS),用目录结构区分项目和用途:

/assets/2026-02/latte-campaign/
  ├── 1x1/
  ├── 9x16/
  ├── 16x9/
  └── 21x9/

成本估算

按照每天一个项目、每个项目 5 种画幅、每种画幅生成 3 张(挑最好的 1 张)计算:

  • 每天:5 × 3 = 15 张
  • 使用 2K 分辨率:15 × $0.101 ≈ $1.5/天
  • 每月:约 $45

和设计师外包的价格相比,几乎可以忽略。而且 AI 不用沟通需求,不用等排期。

CLI 工具替代方案

如果不想写 Python 脚本,GitHub 上有一个开源的 CLI 工具 nano-banana-2-skill,可以直接在终端里用:

nano-banana "精致拿铁,天鹅拉花" -a 1:1 -s 2K -o taobao_main
nano-banana "精致拿铁,天鹅拉花" -a 9:16 -s 2K -o douyin_cover
nano-banana "精致拿铁,天鹅拉花" -a 16:9 -s 4K -o website_hero

它还自带成本追踪功能,nano-banana --costs 可以查看历史花费。


参考链接

  1. Google 官方博客 - Nano Banana 2
  2. GitHub - kingbootoshi/nano-banana-2-skill
  3. Gemini API 定价
  4. Google Cloud Vertex AI Pricing
← 返回博客列表