Agent skill

nano-banana

Generate images from text prompts using Google Nano Banana (Gemini image generation) via eng0 data API. Use when user asks to generate, create, or make images, pictures, illustrations, or artwork from descriptions. Triggers include "generate image", "create image", "make a picture", "draw", "illustrate", "image of", "picture of", "nano banana". Do NOT use for image editing or manipulation of existing images.

Stars 4
Forks 1

Install this agent skill to your Project

npx add-skill https://github.com/rebyteai-template/rebyte-skills/tree/main/nano-banana

SKILL.md

Nano Banana - Image Generation API

Generate images from text prompts using Google Nano Banana (Gemini's native image generation).

Base URL

https://api.eng0.ai/api/data

Models

Model ID Best For Max Resolution
Flash flash Fast generation, high-volume tasks 1024px
Pro pro Professional quality, complex prompts 4K

Generate Image

Create an image from a text description.

bash
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A futuristic cityscape at sunset with flying cars",
    "model": "flash",
    "aspectRatio": "16:9"
  }'

Parameters:

Name Type Required Default Description
prompt string Yes - Text description of the image to generate
model string No flash flash (fast, 1024px) or pro (high-quality, up to 4K)
aspectRatio string No 1:1 Output aspect ratio
imageSize string No 1K 1K, 2K, or 4K (4K only with pro model)

Aspect Ratios:

Ratio Use Case
1:1 Square (social media, icons)
16:9 Landscape (presentations, banners)
9:16 Portrait (mobile, stories)
4:3 Standard landscape
3:4 Standard portrait
21:9 Ultra-wide (cinematic)
2:3, 3:2, 4:5, 5:4 Various formats

Response:

json
{
  "image": {
    "base64": "iVBORw0KGgoAAAANSUhEUgAA...",
    "mimeType": "image/png",
    "dataUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  },
  "description": "A vibrant futuristic cityscape..."
}

Response Fields:

Field Description
image.base64 Base64-encoded image data
image.mimeType Image MIME type (typically image/png)
image.dataUrl Ready-to-use data URL for HTML/CSS
description Model's description of the generated image

Common Workflows

Generate a Simple Image

bash
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A cute robot holding a cup of coffee"
  }'

Generate High-Quality 4K Image

bash
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Professional product photo of a sleek smartphone on marble surface",
    "model": "pro",
    "imageSize": "4K",
    "aspectRatio": "4:3"
  }'

Generate Social Media Banner

bash
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Abstract gradient background with geometric shapes in blue and purple",
    "aspectRatio": "16:9"
  }'

Generate Mobile Story Image

bash
curl -X POST https://api.eng0.ai/api/data/images/generate \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Cozy coffee shop interior with warm lighting",
    "aspectRatio": "9:16"
  }'

Using with Python

python
import requests
import base64
from pathlib import Path

BASE_URL = "https://api.eng0.ai/api/data"

def generate_image(
    prompt: str,
    model: str = "flash",
    aspect_ratio: str = "1:1",
    image_size: str = "1K"
) -> dict:
    """Generate an image from a text prompt."""
    response = requests.post(
        f"{BASE_URL}/images/generate",
        json={
            "prompt": prompt,
            "model": model,
            "aspectRatio": aspect_ratio,
            "imageSize": image_size
        }
    )
    return response.json()

def save_image(result: dict, filepath: str) -> None:
    """Save generated image to a file."""
    if "image" in result:
        image_data = base64.b64decode(result["image"]["base64"])
        Path(filepath).write_bytes(image_data)
        print(f"Saved to {filepath}")
    else:
        print(f"Error: {result.get('error', 'Unknown error')}")

# Example: Generate and save an image
result = generate_image(
    prompt="A serene mountain landscape at dawn with mist in the valley",
    aspect_ratio="16:9"
)
save_image(result, "landscape.png")

# Example: Generate high-quality product image
result = generate_image(
    prompt="Minimalist tech gadget on white background, studio lighting",
    model="pro",
    image_size="4K"
)
save_image(result, "product.png")

Using with Node.js

javascript
const fs = require('fs');

const BASE_URL = 'https://api.eng0.ai/api/data';

async function generateImage(prompt, options = {}) {
  const response = await fetch(`${BASE_URL}/images/generate`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      prompt,
      model: options.model || 'flash',
      aspectRatio: options.aspectRatio || '1:1',
      imageSize: options.imageSize || '1K'
    })
  });
  return response.json();
}

function saveImage(result, filepath) {
  if (result.image) {
    const buffer = Buffer.from(result.image.base64, 'base64');
    fs.writeFileSync(filepath, buffer);
    console.log(`Saved to ${filepath}`);
  } else {
    console.error('Error:', result.error || 'Unknown error');
  }
}

// Example usage
(async () => {
  const result = await generateImage(
    'A neon-lit cyberpunk street scene at night',
    { aspectRatio: '21:9' }
  );
  saveImage(result, 'cyberpunk.png');
})();

Prompt Tips

Be Specific

Bad:  "A dog"
Good: "A golden retriever puppy playing in autumn leaves, warm sunlight"

Include Style

"Oil painting style portrait of a woman in Renaissance clothing"
"Minimalist vector illustration of a mountain range"
"Photorealistic close-up of a dewdrop on a leaf"

Specify Lighting

"... with dramatic side lighting"
"... golden hour sunlight"
"... soft diffused studio lighting"

Add Context

"... in the style of Studio Ghibli"
"... professional product photography"
"... vintage 1970s film aesthetic"

Model Comparison

Feature Flash Pro
Speed Fast Slower
Max Resolution 1024px 4K
Complex Prompts Good Excellent
Text Rendering Good Sharp
Best For Quick iterations, previews Final assets, print

When to use Flash:

  • Rapid prototyping
  • Social media content
  • High-volume generation
  • When speed matters

When to use Pro:

  • Professional/commercial use
  • Print materials
  • Complex compositions
  • When quality matters

Error Handling

No Image Generated:

json
{
  "error": "No image generated",
  "message": "SAFETY"
}

This occurs when the prompt triggers content safety filters.

Invalid Parameters:

json
{
  "error": "Invalid parameters",
  "message": "Missing required parameter: prompt"
}

Important Notes

  • All generated images include invisible SynthID watermarking
  • Images are generated server-side; base64 responses can be large
  • The pro model takes longer but produces higher quality
  • 4K resolution is only available with the pro model
  • Content safety filters may block certain prompts

Combining with Other Skills

This skill provides image generation. Combine with:

  • deep-research - Generate illustrations for research reports
  • market-data - Create visualizations of financial data

Example workflow:

  1. Research a topic (deep-research)
  2. Generate relevant illustrations (this skill)
  3. Compile into a report

Expand your agent's capabilities with these related and highly-rated skills.

rebyteai-template/rebyte-skills

natural-language-postgres-presentation

Presentation-focused Natural Language to SQL app with PPT-style visualizations.

4 1
Explore
rebyteai-template/rebyte-skills

formsmd-builder

Build stylish, Typeform-like multi-step forms and surveys using Forms.md library. Use when user asks to: create a form, build a survey, make a questionnaire, create an onboarding flow, build a feedback form, or any multi-step data collection UI. Outputs standalone HTML files with embedded CSS/JS that can be deployed anywhere.

4 1
Explore
rebyteai-template/rebyte-skills

financial-deep-research

Conduct enterprise-grade financial research with multi-source synthesis, regulatory compliance tracking, and verified market analysis. Use when user needs comprehensive financial analysis requiring 10+ sources, verified claims, market comparisons, or investment research. Triggers include "financial research", "market analysis", "investment analysis", "due diligence", "financial deep dive", "compare stocks/funds", or "analyze [company/sector]". Do NOT use for simple stock quotes, basic company lookups, or questions answerable with 1-2 searches.

4 1
Explore
rebyteai-template/rebyte-skills

stripe-subscription

Stripe Checkout for recurring subscriptions with Customer Portal. Auto-creates plans if not configured.

4 1
Explore
rebyteai-template/rebyte-skills

gatsby-ecommerce-netlify

Gatsby e-commerce starter with styled components for Netlify.

4 1
Explore
rebyteai-template/rebyte-skills

market-data

Access US stock market data including price bars, news with sentiment, and company details via eng0 data API. Use when user asks for stock prices, OHLCV data, price history, stock news, or company information. Triggers include "stock price", "price history", "OHLCV", "stock news", "company info", "market data", "ticker data". Do NOT use for SEC filings (use sec-edgar-skill instead).

4 1
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results