3분 안에 ‘Nano Banana’ 이미지 생성기 배포 (AWS S3 필요 없음)

발행: (2025년 12월 13일 오후 03:57 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

Cover image for Ship a "Nano Banana" Image Generator in 3 Minutes (No AWS S3 Required)

모두가 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단계: 스토리지 키 받기 (1초)

Lab Nocturne은 “curl‑to‑start” 기능을 제공합니다. 터미널에서 다음 명령을 실행하세요:

curl https://images.labnocturne.com/key

JSON 형태의 응답으로 API 키를 받게 됩니다. 복사해 두세요—이것이 여러분의 스토리지 키입니다.

2단계: 파이썬 스크립트

필요한 패키지를 설치합니다:

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 툴 정의에든 넣기만 하면 텍스트 기반 봇이 즉시 지속 가능한 시각 자료를 만들 수 있습니다.

제한 사항

  • 1단계에서 생성된 키는 테스트 키입니다.
  • 이미지는 7일 동안 보관됩니다(테스트/프로토타이핑에 적합).
  • 업로드당 100 MB 크기 제한이 있습니다.

프로덕션에서는 영구 키를 발급받아야 하지만, 해커톤, 사이드 프로젝트, “Nano Banana” 실험에는 PromptURL 로 가는 가장 빠른 경로가 됩니다.

행복한 배포 되세요! 🚢

Back to Blog

관련 글

더 보기 »

GPT 이미지 1.5

https://platform.openai.com/docs/models/gpt-image-1.5 댓글 URL: https://news.ycombinator.com/item?id=46291941 포인트: 41 댓글: 20