nano-banana-pro
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.
What this skill does
# Nano Banana Pro
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:
```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)
```json
{
"contents": [{
"parts": [
{"text": "Your prompt here"}
]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {
"aspectRatio": "1:1",
"imageSize": "2K"
}
}
}
```
### Image-to-Image (With Reference)
```json
{
"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
```bash
# 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**
```bash
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**
```bash
# 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
```bash
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
```bash
# 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`
Related in file-generation
kling-video
IncludedGenerate AI videos using Kling video generation models. Use when you need to: (1) create videos from text prompts, (2) animate images into videos, (3) transform existing videos with AI, or (4) create AI avatar videos with speech.
seedream-image
IncludedGenerate AI images using ByteDance Seedream 4.5. Use when you need to: (1) create images from text descriptions, (2) transform images with style transfer, or (3) generate high-quality artistic or realistic images.
wan-video
IncludedGenerate AI videos using Alibaba Wan 2.6 video models. Use when you need to: (1) create videos from text descriptions, (2) animate static images into videos, or (3) transform and enhance existing videos with AI style transfer.
fal-image
IncludedGenerate AI images using Fal.ai Flux models. Use when you need to: (1) create images from text prompts, (2) transform existing images with AI, or (3) generate photorealistic or artistic images quickly.
fal-video
IncludedGenerate AI videos using Fal.ai Seedance models. Use when you need to: (1) animate images into short videos, (2) create motion from still photos, or (3) generate high-quality video content from images.
nano-banana
IncludedGenerate AI images using Nano Banana for fast image creation. Use when you need to: (1) quickly generate images from prompts, (2) create prototypes and iterations, or (3) produce simple image content efficiently.