Nano Banana Pro

SkillMedia

Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro). Use when you need to: (1) generate images from text descriptions, (2) edit existing images with AI, (3) compose multiple images into one scene. Supports 1K/2K/4K resolutions and up to 14 input images for composition.

Then ask your AI: use the Nano Banana Pro skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add it as a step in a pipeline you build on Ahel, or connect Ahel to Claude, ChatGPT, Cursor, Claude Code or Codex and ask your AI to use it.

What this skill tells your AI

The instructions your AI receives, as published by refly-ai/refly-skills in skills/nano-banana-pro/SKILL.md and read by Ahel’s review.

Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro). Use when you need to: (1) generate images from text descriptions, (2) edit existing images with AI, (3) compose multiple images into one scene. Supports 1K/2K/4K resolutions and up to 14 input images for composition.

Input

Provide input as JSON:

{
  "prompt": "Detailed description for image generation or editing (e.g., 'a cute cat playing in a garden')",
  "resolution": "Image resolution: 1K, 2K, or 4K (default: 1K)",
  "aspect_ratio": "Image aspect ratio: 16:9, 1:1, 9:16, 5:4, or 4:3 (default: 1:1)",
  "input_image": "<file-id>"
}

Note on File Input:

  • input_image is optional and requires a file ID (format: df-xxxxx)
  • How to get file ID:
    1. Upload your image using refly file upload <file-path>
    2. Copy the returned file ID from the upload response
    3. Use this file ID in the input JSON
  • Omit input_image for pure text-to-image generation
  • Provide input_image for image editing or transformation

API Request Structure

This skill uses Gemini 3 Pro Image API with the following structure:

Text-to-Image (Pure Generation)

{
  "contents": [{
    "parts": [
      {"text": "Your prompt here"}
    ]
  }],
  "generationConfig": {
    "responseModalities": ["TEXT", "IMAGE"],
    "imageConfig": {
      "aspectRatio": "1:1",
      "imageSize": "2K"
    }
  }
}

Image-to-Image (With Reference)

{
  "contents": [{
    "parts": [
      {"text": "Your editing prompt"},
      {"inline_data": {"mime_type": "image/png", "data": "<BASE64_DATA>"}}
    ]
  }],
  "generationConfig": {
    "responseModalities": ["TEXT", "IMAGE"],
    "imageConfig": {
      "aspectRatio": "16:9",
      "imageSize": "2K"
    }
  }
}

Notes:

  • Images are automatically converted to base64 format
  • Supports up to 14 input images for composition
  • imageSize maps to resolution: 1K, 2K, or 4K
  • aspectRatio determines output dimensions

Execution (Pattern A: File Generation)

Step 0 (Optional): Upload Input Image

# Upload an image if you want to edit or transform an existing image
INPUT_RESULT=$(refly file upload /path/to/your/image.jpg)
INPUT_FILE_ID=$(echo "$INPUT_RESULT" | jq -r '.payload.fileId')
echo "Input image file ID: $INPUT_FILE_ID"

Step 1: Run the Skill and Get Run ID

Example 1: Text-to-Image Generation

RESULT=$(refly skill run --id skpi-h9kpmts9ho1kl9l1sohaloeu --input '{
  "prompt": "a cute cat playing in a garden",
  "resolution": "2K",
  "aspect_ratio": "16:9"
}')
RUN_ID=$(echo "$RESULT" | jq -r '.payload.workflowExecutions[0].id')

Example 2: Image Editing with Reference

# Use the INPUT_FILE_ID from Step 0
RESULT=$(refly skill run --id skpi-h9kpmts9ho1kl9l1sohaloeu --input '{
  "prompt": "transform this image into watercolor painting style",
  "input_image": "'"$INPUT_FILE_ID"'",
  "resolution": "2K",
  "aspect_ratio": "1:1"
}')
RUN_ID=$(echo "$RESULT" | jq -r '.payload.workflowExecutions[0].id')

Step 2: Open Workflow in Browser and Wait for Completion

open "https://refly.ai/workflow/c-g6emwcpi1wpalsz6j4gyi3d9"
# Use RUN_ID (we-xxx), not installationId or skillId
refly workflow status "$RUN_ID" --watch --interval 30000

Step 3: Download and Show Result

# Get files from this run (use RUN_ID)
FILES=$(refly workflow toolcalls "$RUN_ID" --files --latest | jq -r '.payload.files[]')

# Download and open each file
echo "$FILES" | jq -c '.' | while read -r file; do
  FILE_ID=$(echo "$file" | jq -r '.fileId')
  FILE_NAME=$(echo "$file" | jq -r '.name')
  if [ -n "$FILE_ID" ] && [ "$FILE_ID" != "null" ]; then
    OUTPUT_PATH="$HOME/Desktop/${FILE_NAME}"
    refly file download "$FILE_ID" -o "$OUTPUT_PATH"
    open "$OUTPUT_PATH"
  fi
done

Expected Output

  • Type: Image
  • Format: .png/.jpg image file (1K/2K/4K resolution)
  • Location: ~/Desktop/
  • Action: Opens automatically to show user

Rules

Follow base skill workflow: ~/.claude/skills/refly/SKILL.md

Signals

GitHub stars
204
Forks
26
Last commit
Jul 2026
Advanced
Item type
skill
Key
nano-banana-pro-refly-ai
Source
github.com/refly-ai/refly-skills