跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.nanobananaapi.ai/llms.txt

Use this file to discover all available pages before exploring further.

欢迎使用 NanoBanana API!

本快速入门指南将带您了解使用我们的 AI 模型开始生成和编辑图像的基本步骤。

概览

生成图像

从文本描述创建 AI 图像或编辑现有图像

任务详情

查询任务状态并获取生成的图像结果

身份验证

所有 API 请求都需要通过 Bearer Token 进行身份验证。
1

获取您的 API 密钥

访问 API密钥管理页面 获取您的API密钥。
2

添加到请求头

在所有请求中包含您的 API 密钥:
Authorization: Bearer YOUR_API_KEY
保护您的 API 密钥安全,切勿公开分享。如果密钥被泄露,请立即在管理页面重置。

基本用法

1. 生成图像

首先创建您的第一个图像生成任务:
curl -X POST "https://api.nanobananaapi.ai/api/v1/nanobanana/generate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "美丽的山间日落风景",
    "type": "TEXTTOIAMGE",
    "numImages": 1,
    "callBackUrl": "https://your-callback-url.com/webhook"
  }'
响应:
{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "task12345"
  }
}

2. 检查任务状态

使用返回的 taskId 来监控进度:
curl -X GET "https://api.nanobananaapi.ai/api/v1/nanobanana/record-info?taskId=task12345" \
  -H "Authorization: Bearer YOUR_API_KEY"
状态值:
  • 0: 生成中 - 任务正在处理中
  • 1: 成功 - 任务成功完成
  • 2: 创建任务失败 - 任务创建失败
  • 3: 生成失败 - 任务创建成功但生成失败

完整示例

这是一个完整的工作流程示例:
class NanoBananaAPI {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = 'https://api.nanobananaapi.ai/api/v1/nanobanana';
  }
  
  async generateImage(prompt, options = {}) {
    const response = await fetch(`${this.baseUrl}/generate`, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${this.apiKey}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        prompt,
        type: options.type || 'TEXTTOIAMGE',
        numImages: options.numImages || 1,
        callBackUrl: options.callBackUrl,
        watermark: options.watermark,
        imageUrls: options.imageUrls
      })
    });
    
    const result = await response.json();
    if (!response.ok || result.code !== 200) {
      throw new Error(`生成失败: ${result.msg || '未知错误'}`);
    }
    
    return result.data.taskId;
  }
  
  async getTaskStatus(taskId) {
    const response = await fetch(`${this.baseUrl}/record-info?taskId=${taskId}`, {
      method: 'GET',
      headers: {
        'Authorization': `Bearer ${this.apiKey}`
      }
    });
    
    const result = await response.json();
    return result;
  }
  
  async waitForCompletion(taskId, maxWaitTime = 300000) {
    const startTime = Date.now();
    
    while (Date.now() - startTime < maxWaitTime) {
      const status = await this.getTaskStatus(taskId);
      
      switch (status.successFlag) {
        case 0:
          console.log('任务生成中...');
          break;
        case 1:
          console.log('生成成功完成!');
          return status.response;
        case 2:
        case 3:
          throw new Error(status.errorMessage || '生成失败');
      }
      
      await new Promise(resolve => setTimeout(resolve, 3000));
    }
    
    throw new Error('生成超时');
  }
}

// 使用示例
async function main() {
  const api = new NanoBananaAPI('YOUR_API_KEY');
  
  try {
    console.log('开始图像生成...');
    const taskId = await api.generateImage('美丽的风景画');
    
    console.log(`任务ID: ${taskId}。等待完成中...`);
    const result = await api.waitForCompletion(taskId);
    
    console.log('图像生成成功!');
    console.log('结果图像URL:', result.resultImageUrl);
    
  } catch (error) {
    console.error('错误:', error.message);
  }
}

main();

参数说明

必需参数

参数类型描述
promptstring图像生成的文本描述
typestring生成类型:TEXTTOIAMGEIMAGETOIAMGE
callBackUrlstringWebhook 回调 URL

可选参数

参数类型描述默认值
numImagesinteger生成图像数量 (1-4)1
imageUrlsarray用于编辑的输入图像 URL-
watermarkstring生成图像的水印文字-

下一步

生成图像

了解所有生成参数和高级选项

查看账户积分

监控您的账户积分余额

支持

需要帮助?联系我们的技术支持: 准备好创建惊人的 AI 图像了吗?从上面的示例开始,探索完整的 API 功能!