在 3 分钟内发布 “Nano Banana” 图像生成器(无需 AWS S3)
Source: Dev.to

大家都在讨论 Gemini 2.0 Flash(亲切地称为 “Nano Banana” 模型)。它速度快、支持多模态,终于让开发者在图像生成模型之间有了竞争力。
如果你在构建 AI 代理、Discord 机器人或一个简单的网页应用,你很快会碰到一个常见的瓶颈:存储。
Gemini API 返回的是原始字节流,你不能直接把它塞进 Slack 频道或 <img> 标签——你需要一个 URL。
通常这意味着要搭建 AWS S3 桶、配置 IAM 角色、处理 CORS,并编写大量样板代码。今天我们跳过这些步骤,使用 Lab Nocturne Images——一个零配置的图像 API,来构建一个文本到图像的生成器,代码不到 50 行即可返回可分享的链接。
技术栈
- 引擎:Google Gemini 2.0 Flash
- 存储:Lab Nocturne Images
- 语言:Python
第一步:获取存储密钥(1 秒)
Lab Nocturne 提供了一个 “curl‑to‑start” 功能。在终端运行以下命令:
curl https://images.labnocturne.com/key
你会收到一个包含 API 密钥的 JSON 响应。复制它——这就是你的存储密钥。
第二步:Python 脚本
安装所需依赖:
pip install google-generativeai requests
import os
import requests
import google.generativeai as genai
import io
# CONFIGURATION
GOOGLE_API_KEY = "YOUR_GEMINI_API_KEY"
LAB_NOCTURNE_KEY = "YOUR_LN_TEST_KEY_FROM_STEP_1"
# Setup Gemini
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-2.0-flash-exp')
def host_image(image_bytes):
"""
Uploads raw bytes to Lab Nocturne and returns a public URL.
No AWS config, no buckets, just a POST request.
"""
url = "https://images.labnocturne.com/upload"
headers = {"Authorization": f"Bearer {LAB_NOCTURNE_KEY}"}
files = {'file': ('generated.jpg', image_bytes, 'image/jpeg')}
response = requests.post(url, headers=headers, files=files)
if response.status_code == 200:
return response.json()['url']
else:
raise Exception(f"Upload failed: {response.text}")
def generate_and_share(prompt):
print(f"🎨 Generating: '{prompt}'...")
# Generate the image
response = model.generate_content(prompt)
# Gemini returns parts; we want the image blob
if response.parts:
img_part = response.parts[0]
img_bytes = io.BytesIO(img_part.inline_data.data)
print("☁️ Uploading to CDN...")
public_url = host_image(img_bytes)
return public_url
else:
return "Failed to generate image."
# --- RUN IT ---
if __name__ == "__main__":
prompt = "A cyberpunk banana wearing sunglasses, 3d render, 4k"
link = generate_and_share(prompt)
print("-" * 30)
print(f"🚀 Image Live at: {link}")
print("-" * 30)
为什么这对 AI 代理很重要
自主代理(例如使用 LangChain、CrewAI 或 AutoGen 构建的)需要“工具”。授予它们 S3 访问权限既危险又复杂,而 Lab Nocturne 的密钥安全且使用极其简便。只需把 host_image 函数嵌入任何 LLM 工具定义中,你的文本机器人就能即时创建持久的视觉产物。
限制
- 第一步生成的密钥是 测试密钥。
- 图像会保留 7 天(适合测试/原型)。
- 每次上传的大小上限为 100 MB。
如果用于生产,请获取永久密钥;但对于黑客马拉松、个人项目以及 “Nano Banana” 实验来说,这已经是从 Prompt → URL 的最快路径。
祝你发布顺利! 🚢