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

发布: (2025年12月13日 GMT+8 14:57)
4 min read
原文: Dev.to

Source: Dev.to

《在 3 分钟内发布 “Nano Banana” 图像生成器(无需 AWS S3)》的封面图片

大家都在讨论 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” 实验来说,这已经是从 PromptURL 的最快路径。

祝你发布顺利! 🚢

Back to Blog

相关文章

阅读更多 »

GPT 图像 1.5

https://platform.openai.com/docs/models/gpt-image-1.5 评论链接: https://news.ycombinator.com/item?id=46291941 积分: 41 评论: 20