Gemini API 现已提供 gemini-2.5-flash-image-preview 模型(内部代号为 Nano Banana),赋予开发者强大的图片生成与处理能力。你可以通过文字、图片或两者结合的方式与 Gemini 对话,以前所未有的控制力来创建、修改和迭代视觉内容。
该模型的核心能力包括:
文本生成图片 (Text-to-Image):根据简单或复杂的文本描述,生成高质量的图片。 图文结合编辑 (Image + Text-to-Image):提供一张图片,并使用文本提示添加、移除或修改元素、更改风格或调整色彩。 多图合成与风格迁移:使用多张输入图片合成新场景,或将一张图片的风格迁移到另一张上。 对话式迭代优化:通过多轮对话逐步优化图片,进行细微调整,直至达到理想效果。 高保真文本渲染:在图片中准确生成清晰易读且位置合理的文本,非常适合用于徽标、图表和海报设计。 所有通过此模型生成的图片都包含 SynthID 数字水印。
文本生成图片 (Text-to-Image) 最基础的用法是根据一段描述性文本生成图片。以下代码演示了如何实现这一功能。
提示示例:
“Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme” (在一家以 Gemini 为主题的高档餐厅里,创作一幅关于纳米香蕉菜肴的图片)
Python from google import genai from PIL import Image from io import BytesIO client = genai.Client() prompt = ( "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme" ) response = client.models.generate_content( model="gemini-2.5-flash-image-preview", contents=[prompt], ) # 处理响应并保存图片 for part in response.candidates[0].content.parts: if part.inline_data: image = Image.open(BytesIO(part.inline_data.data)) image.save("generated_image.png") print("图片已保存为 generated_image.png") elif part.text: print(part.text) JavaScript (Node.js) import { GoogleGenAI } from "@google/genai"; import * as fs from "node:fs"; async function main() { const ai = new GoogleGenAI(process.env.GEMINI_API_KEY); const prompt = "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"; const response = await ai.models.generateContent({ model: "gemini-2.5-flash-image-preview", contents: [{ parts: [{ text: prompt }] }], }); for (const part of response.candidates[0].content.parts) { if (part.inlineData) { const imageData = part.inlineData.data; const buffer = Buffer.from(imageData, "base64"); fs.writeFileSync("generated_image.png", buffer); console.log("图片已保存为 generated_image.png"); } else if (part.text) { console.log(part.text); } } } main(); Go package main import ( "context" "fmt" "log" "os" "google.golang.org/genai" ) func main() { ctx := context.Background() client, err := genai.NewClient(ctx, nil) if err != nil { log.Fatal(err) } defer client.Close() prompt := genai.Text("Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme") result, err := client.Models.GenerateContent(ctx, "gemini-2.5-flash-image-preview", prompt) if err != nil { log.Fatal(err) } for _, part := range result.Candidates[0].Content.Parts { if part.InlineData != nil { imageBytes := part.InlineData.Data outputFilename := "generated_image.png" err := os.WriteFile(outputFilename, imageBytes, 0644) if err != nil { log.Fatal(err) } fmt.Println("图片已保存为", outputFilename) } else if part.Text != "" { fmt.Println(part.Text) } } } REST API (cURL) curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent" \ -H "x-goog-api-key: $GEMINI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [{ "parts": [ {"text": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"} ] }] }' \ | grep -o '"data": "[^"]*"' \ | cut -d '"' -f4 \ | base64 --decode > generated_image.png 图文结合生成图片 (图片编辑) 你也可以提供一张图片和一段文本提示,让模型对现有图片进行修改或再创作。
...