🍌 Google Nanobanana 图像生成
3 IC每次请求 (Nanobanana)|8 IC每次 请求 (Nanobanana Pro)
高级功能。 Google Nanobanana 和 Nanobanana Pro 仅保留给至少购买过一次 iApp 信用 (IC) 套餐的账户。免费注册积分无法解锁它们 — 购买一次性套餐即可访问所有高级 API。
使用 Google 最新的 Gemini AI 模型,从文本描述中生成令人惊叹的高质量图像。非常适合创建营销材料、信息图、图表、产品可视化和艺术内容。
可用模型
| 模型 | 端点 | 成本 | 最适合 |
|---|---|---|---|
| Nanobanana (gemini-2.5-flash-image) | /v3/image/generation/google/nanobanana/generate | 3 IC | 快速生成,简单图形,快速原型 |
| Nanobanana Pro (gemini-3-pro-image-preview) | /v3/image/generation/google/nanobananapro/generate | 8 IC | 高质量输出,复杂场景,详细艺术作品,4K 分辨率,图像中正确显示泰语文本 |
试用演示
主要功能
文本到图像生成
将您的文本描述转化为令人惊叹的视觉效果。只需描述您想要的内容,AI 就会生成它。
高保真文本渲染
准确地 在图像中生成清晰可读的文本 — 非常适合信息图、图表和营销材料。
多轮精炼
通过对话迭代地调整和精炼生成的图像 — 请求更改,AI 将相应更新。
泰语内容优化
针对泰国特有内容进行优化,包括寺庙、食物、节日和文化元素。
用途
营销与广告
- 社交媒体图片
- 横幅广告和宣传材料
- 产品可视化
- 活动图片
商业与数据可视化
- 信息图和数据图表
- 演示幻灯片
- 报告插图
- 流程图
电子商务
- 产品模型图
- 生活方式摄影
- 分类横幅
- 宣传 图
内容创作
- 博客配图
- YouTube 缩略图
- 播客封面
- 文章标题图
入门
-
先决条件
- iApp Technology 的 API 密钥
- 描述您想要生成的图像的文本提示
-
快速入门
- 在 Nanobanana(快速,3 IC)或 Nanobanana Pro(高质量,8 IC)之间进行选择
- 发送带有您的提示的 POST 请求
- 在响应中接收 base64 编码的图像
-
最佳实践
- 具象描述:“一座夕阳下的泰国寺庙,金色的尖塔”比“寺庙”效果更好
- 指定风格:“极简主义”、“照片写实”、“水彩”等
- 包含上下文:颜色、光线、构图、情绪
如何获取 API 密钥?
请访问 API 密钥管理 页面查看您现有的 API 密钥或申请新密钥。
API 端点
| 端点 | 方法 | 描述 | 成本 |
|---|---|---|---|
/v3/image/generation/google/nanobanana/generate | POST | 快速图像生成 (gemini-2.5-flash-image) | 每次请求 3 IC |
/v3/image/generation/google/nanobananapro/generate | POST | 高质量图像生成 (gemini-3-pro-image-preview) | 每次请求 8 IC |
请求格式
请求头
| 名称 | 类型 | 描述 |
|---|---|---|
| apikey | String | 您的 iApp API 密钥 |
| Content-Type | String | application/json |
请求正文
{
"contents": [
{
"parts": [
{
"text": "在此处输入您的图像描述提示"
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}
响应格式
{
"candidates": [
{
"content": {
"parts": [
{
"inlineData": {
"mimeType": "image/png",
"data": "base64_encoded_image_data..."
}
}
]
}
}
]
}
代码示例
- cURL
- Python
- JavaScript
- PHP
- Swift
- Kotlin
curl -X POST 'https://api.iapp.co.th/v3/image/generation/google/nanobanana/generate' \
-H 'apikey: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"contents": [
{
"parts": [
{
"text": "创建一个美丽的泰国寺庙,夕阳西下,金色的尖塔"
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}'
import requests
import base64
url = "https://api.iapp.co.th/v3/image/generation/google/nanobanana/generate"
headers = {
"apikey": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"contents": [
{
"parts": [
{
"text": "创建一个美丽的泰国寺庙,夕阳西下,金色的尖塔"
}
]
}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
# 提取并保存图像
if result.get("candidates"):
for part in result["candidates"][0]["content"]["parts"]:
if "inlineData" in part:
image_data = base64.b64decode(part["inlineData"]["data"])
with open("generated_image.png", "wb") as f:
f.write(image_data)
print("图像已保存为 generated_image.png")
const axios = require('axios');
const fs = require('fs');
const url = 'https://api.iapp.co.th/v3/image/generation/google/nanobanana/generate';
const payload = {
contents: [
{
parts: [
{
text: '创建一个美丽的泰国寺庙,夕阳西下,金色的尖塔'
}
]
}
],
generationConfig: {
responseModalities: ['TEXT', 'IMAGE']
}
};
axios.post(url, payload, {
headers: {
'apikey': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
})
.then(response => {
const candidates = response.data.candidates;
if (candidates && candidates[0]) {
for (const part of candidates[0].content.parts) {
if (part.inlineData) {
const imageBuffer = Buffer.from(part.inlineData.data, 'base64');
fs.writeFileSync('generated_image.png', imageBuffer);
console.log('图像已保存为 generated_image.png');
}
}
}
})
.catch(error => console.error(error));
<?php
$url = 'https://api.iapp.co.th/v3/image/generation/google/nanobanana/generate';
$payload = json_encode([
'contents' => [
[
'parts' => [
[
'text' => '创建一个美丽的泰国寺庙,夕阳西下,金色的尖塔'
]
]
]
],
'generationConfig' => [
'responseModalities' => ['TEXT', 'IMAGE']
]
]);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
'apikey: YOUR_API_KEY',
'Content-Type: application/json'
],
]);
$response = curl_exec($curl);
curl_close($curl);
$result = json_decode($response, true);
if (isset($result['candidates'][0]['content']['parts'])) {
foreach ($result['candidates'][0]['content']['parts'] as $part) {
if (isset($part['inlineData'])) {
$imageData = base64_decode($part['inlineData']['data']);
file_put_contents('generated_image.png', $imageData);
echo "图像已保存为 generated_image.png\n";
}
}
}
?>
import Foundation
let url = URL(string: "https://api.iapp.co.th/v3/image/generation/google/nanobanana/generate")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
"contents": [
[
"parts": [
["text": "创建一个美丽的泰国寺庙,夕阳西下,金色的尖塔"]
]
]
],
"generationConfig": [
"responseModalities": ["TEXT", "IMAGE"]
]
]
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else { return }
if let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any],
let candidates = json["candidates"] as? [[String: Any]],
let content = candidates.first?["content"] as? [String: Any],
let parts = content["parts"] as? [[String: Any]] {
for part in parts {
if let inlineData = part["inlineData"] as? [String: Any],
let base64String = inlineData["data"] as? String,
let imageData = Data(base64Encoded: base64String) {
// 保存或使用图像数据
print("收到图像数据:\(imageData.count) 字节")
}
}
}
}
task.resume()
import okhttp3.*
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONObject
import java.io.File
import java.util.Base64
val client = OkHttpClient()
val payload = JSONObject().apply {
put("contents", org.json.JSONArray().apply {
put(JSONObject().apply {
put("parts", org.json.JSONArray().apply {
put(JSONObject().apply {
put("text", "创建一个美丽的泰国寺庙,夕阳西下,金色的尖塔")
})
})
})
})
put("generationConfig", JSONObject().apply {
put("responseModalities", org.json.JSONArray().apply {
put("TEXT")
put("IMAGE")
})
})
}
val request = Request.Builder()
.url("https://api.iapp.co.th/v3/image/generation/google/nanobanana/generate")
.addHeader("apikey", "YOUR_API_KEY")
.addHeader("Content-Type", "application/json")
.post(payload.toString().toRequestBody("application/json".toMediaType()))
.build()
client.newCall(request).execute().use { response ->
val json = JSONObject(response.body?.string() ?: "")
val candidates = json.getJSONArray("candidates")
if (candidates.length() > 0) {
val parts = candidates.getJSONObject(0)
.getJSONObject("content")
.getJSONArray("parts")
for (i in 0 until parts.length()) {
val part = parts.getJSONObject(i)
if (part.has("inlineData")) {
val base64Data = part.getJSONObject("inlineData").getString("data")
val imageBytes = Base64.getDecoder().decode(base64Data)
File("generated_image.png").writeBytes(imageBytes)
println("图像已保存为 generated_image.png")
}
}
}
}
提示技巧
具象描述
与其说:“一只猫” 不如说:“一只橘色虎斑猫,坐卧在窗台上,温暖的午后阳光,舒适的室内环境”
指定风格
- "照片写实" — 用于照片般逼真的图像
- "水彩画" — 用于艺术风格
- "极简扁平设计" — 用于简洁的图形
- "3D 渲染" — 用于立体外观
- "复古海报风格" — 用于怀旧美学
包含上下文
- 光线:“黄金时刻”、“影棚灯光”、“霓虹光”
- 构图:“特写”、“广角”、“鸟瞰图”
- 情绪:“宁静”、“活力”、“戏剧性”
- 颜色:“蓝金色调”、“柔和色彩”、“高对比度”
泰语特定提示
- 引用泰国地标:郑王庙、大皇宫、皮皮岛
- 包含泰国元素:莲花、大象、泰国图案
- 提及泰国节日:水灯节、宋干节、泰国新年
- 使用泰国美食:冬阴功、泰式炒河粉、芒果糯米饭
定价
| 模型 | 成本 | 最适合 |
|---|---|---|
| Nanobanana | 每次请求 3 IC | 快速原型,简单图形,高批量 |
| Nanobanana Pro | 每次请求 8 IC | 高质量输出,复杂场景,专业用途,图像中正确显示泰语文本 |
限制
- 最大提示长度:32,000 个字符
- 响应时间:5-30 秒,取决于复杂度
- 输出格式:PNG 或 JPEG(base64 编码)
- 内容政策:禁止成人内容、暴力或侵犯版权的材料
安全与合规
- 符合 GDPR 和 PDPA
- 处理后不保留数据
- 所有生成图像均带有 SynthID 水印
- 对不当请求进行内容过滤