模型简介

nano-banana-2.1 是 DeepSeek Tavern 提供的 AI 图片生成模型,支持文生图、图生图(最多 14 张参考图)、改图,提供 OpenAI 图片接口、Chat 接口、Gemini 原生接口三种调用方式,适合角色卡插图、场景图、头像等创作场景。

快速信息

项目说明
模型名称nano-banana-2.1
价格0.6 元/次,按张计费,n 张就是 n 次
生成耗时一张约 1–2 分钟,客户端超时请设到 180 秒以上
分辨率image_size:1K / 2K / 4K,默认 1K
画幅1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9
Base URLhttps://deepseektavern.com/v1
支持端点/v1/images/generations、/v1/images/edits、/v1/chat/completions、/v1beta/models/nano-banana-2.1:generateContent
注意

返回的结果图片链接不会永久保存,请及时下载保存到本地或你自己的存储。

获取 API Key

登录 DeepSeek Tavern 控制台,在「令牌管理」中创建 API Key。详细步骤参考:API 密钥获取指南。

Base URL 统一为 https://deepseektavern.com/v1,认证方式:Authorization: Bearer <你的API密钥>。下文示例中的 YOUR_API_KEY 请替换为你自己的 Key。

方式一:OpenAI 图片生成端点

POST https://deepseektavern.com/v1/images/generations

参数类型必填说明
modelstring是nano-banana-2.1
promptstring是图片描述提示词
sizestring否如 1024x1024、1792x1024,会自动换算成最接近的画幅
aspect_ratiostring否直接指定画幅:1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9(与 size 二选一)
image_sizestring否1K(默认)/ 2K / 4K
nint否生成张数 1–4,按张计费
response_formatstring否url(默认)或 b64_json
imagesarray否参考图数组,元素可以是图片 URL 或 data:image/...;base64,...,最多 14 张,用于图生图

curl 示例:文生图

curl https://deepseektavern.com/v1/images/generations \
  --max-time 300 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "nano-banana-2.1",
    "prompt": "一位白发少女站在樱花树下,新海诚电影风格,柔和暖色调",
    "aspect_ratio": "16:9",
    "image_size": "2K",
    "n": 1
  }'

curl 示例:图生图(参考图)

curl https://deepseektavern.com/v1/images/generations \
  --max-time 300 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "nano-banana-2.1",
    "prompt": "保持人物外貌不变,把背景换成雪夜的古风街道",
    "images": ["https://example.com/my-character.png"],
    "size": "1024x1536"
  }'

Python 示例(OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://deepseektavern.com/v1",
    timeout=300,  # 生成一张约 1-2 分钟,超时要设到 180 秒以上
)

resp = client.images.generate(
    model="nano-banana-2.1",
    prompt="一只在星空下弹吉他的猫,吉卜力风格",
    size="1024x1024",
    n=1,
    # SDK 未内置的参数通过 extra_body 传入
    extra_body={
        "image_size": "2K",
        # "aspect_ratio": "16:9",
        # "images": ["https://example.com/ref.png"],
    },
)

for img in resp.data:
    print(img.url)  # 结果链接请及时下载保存

Python 示例:保存 b64_json 结果

import base64
from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://deepseektavern.com/v1", timeout=300)

resp = client.images.generate(
    model="nano-banana-2.1",
    prompt="赛博朋克风格的夜市街道,霓虹灯,雨后反光",
    response_format="b64_json",
    extra_body={"aspect_ratio": "9:16"},
)
with open("result.png", "wb") as f:
    f.write(base64.b64decode(resp.data[0].b64_json))

方式二:改图端点

POST https://deepseektavern.com/v1/images/edits,支持两种请求格式:

  • multipart/form-data:字段 image 上传图片文件,其余参数(model、prompt 等)作为表单字段
  • JSON:参考图放在 images 数组里(URL 或 data URI),参数与生成端点相同

curl 示例:multipart 上传文件

curl https://deepseektavern.com/v1/images/edits \
  --max-time 300 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F model=nano-banana-2.1 \
  -F image=@input.png \
  -F prompt="把衣服换成黑色哥特风长裙,其余保持不变"

curl 示例:JSON 格式

curl https://deepseektavern.com/v1/images/edits \
  --max-time 300 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "nano-banana-2.1",
    "prompt": "给人物加上一对白色羽翼",
    "images": ["https://example.com/input.png"]
  }'

Python 示例(OpenAI SDK)

from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://deepseektavern.com/v1", timeout=300)

with open("input.png", "rb") as f:
    resp = client.images.edit(
        model="nano-banana-2.1",
        image=f,
        prompt="把背景换成海边日落",
    )
print(resp.data[0].url)

方式三:Chat 端点(适合 SillyTavern 等聊天客户端)

POST https://deepseektavern.com/v1/chat/completions,在 messages 里写提示词即可;需要参考图时,按 OpenAI 多模态格式附 image_url。返回内容是 markdown 图片(形如 ![image](https://...)),聊天客户端可直接渲染。

curl 示例

curl https://deepseektavern.com/v1/chat/completions \
  --max-time 300 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "nano-banana-2.1",
    "messages": [
      {"role": "user", "content": "画一只在星空下弹吉他的猫,吉卜力风格,16:9"}
    ]
  }'

Python 示例:附参考图

from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://deepseektavern.com/v1", timeout=300)

resp = client.chat.completions.create(
    model="nano-banana-2.1",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "参考这张图的人物,画她在图书馆看书的场景"},
            {"type": "image_url", "image_url": {"url": "https://example.com/ref.png"}},
        ],
    }],
)
# 返回 markdown 图片,例如 ![image](https://...)
print(resp.choices[0].message.content)

在 SillyTavern 中使用

  1. API 类型选择 Chat Completion
  2. Chat Completion Source 选择 Custom (OpenAI-compatible)
  3. 填入端点:https://deepseektavern.com/v1
  4. 填入你的 API Key
  5. 模型名称手动输入:nano-banana-2.1

方式四:Gemini 原生端点

POST https://deepseektavern.com/v1beta/models/nano-banana-2.1:generateContent

位置说明
请求头x-goog-api-key: 你的Key
contents[].parts[]文本放 {"text": "..."};参考图放 {"inlineData": {"mimeType": "image/png", "data": "base64..."}}
generationConfig.imageConfig{"aspectRatio": "16:9", "imageSize": "2K"}
返回candidates[0].content.parts[].inlineData,其中 data 是 base64 图片

curl 示例

curl "https://deepseektavern.com/v1beta/models/nano-banana-2.1:generateContent" \
  --max-time 300 \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: YOUR_API_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "水墨画风格的江南小镇,细雨,乌篷船"}]}],
    "generationConfig": {"imageConfig": {"aspectRatio": "3:2", "imageSize": "1K"}}
  }'

Python 示例(requests)

import base64
import requests

API_KEY = "YOUR_API_KEY"
url = "https://deepseektavern.com/v1beta/models/nano-banana-2.1:generateContent"

with open("ref.png", "rb") as f:
    ref_b64 = base64.b64encode(f.read()).decode()

body = {
    "contents": [{
        "parts": [
            {"text": "参考这张图的人物,画成 Q 版贴纸风格"},
            {"inlineData": {"mimeType": "image/png", "data": ref_b64}},
        ]
    }],
    "generationConfig": {"imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}},
}
r = requests.post(url, json=body, headers={"x-goog-api-key": API_KEY}, timeout=300)
r.raise_for_status()

for i, part in enumerate(r.json()["candidates"][0]["content"]["parts"]):
    if "inlineData" in part:
        with open(f"out_{i}.png", "wb") as f:
            f.write(base64.b64decode(part["inlineData"]["data"]))

计费说明

项目价格
每张图片0.6 元
一次生成 n 张n × 0.6 元
提示

提示词建议包含主体描述、风格(如吉卜力、赛博朋克、水墨)、构图(半身像 / 全身 / 特写)和色彩氛围,效果更稳定。