Generate/edit images via Tuzi API (default), Google Gemini, OpenAI, DashScope, Replicate. Text-to-image + image-to-image editing; 1K/2K/4K resolution. Use for image create/modify/edit requests incl. -
Generate/edit images via Tuzi API (default), Google Gemini, OpenAI, DashScope, Replicate. Text-to-image + image-to-image editing; 1K/2K/4K resolution. Use fo...
Description
name: tuzi-nano-banana description: Generate/edit images via Tuzi API (default), Google Gemini, OpenAI, DashScope, Replicate. Text-to-image + image-to-image editing; 1K/2K/4K resolution. Use for image create/modify/edit requests incl. --input-image.
Nano Banana Image Generation & Editing
Multi-provider image generation and editing. Default provider: Tuzi (兔子API, api.tu-zi.com).
Script Directory
Agent Execution:
SKILL_DIR= this SKILL.md file's directory- Script path =
${SKILL_DIR}/scripts/main.ts
Usage
Run the script using absolute path (do NOT cd to skill directory first):
Generate new image:
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "your image description" --filename "output.png" [--resolution 1K|2K|4K] [--provider tuzi|google|openai|dashscope|replicate] [--model MODEL_ID]
Edit existing image:
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "editing instructions" --filename "output.png" --input-image "path/to/input.png" [--resolution 1K|2K|4K]
Important: Always run from the user's current working directory so images are saved where the user is working.
Default Workflow (draft → iterate → final)
Goal: fast iteration without burning time on 4K until the prompt is correct.
- Draft (1K): quick feedback loop
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "<draft prompt>" --filename "yyyy-mm-dd-hh-mm-ss-draft.png" --resolution 1K
- Iterate: adjust prompt in small diffs; keep filename new per run
- If editing: keep the same
--input-imagefor every iteration until you're happy.
- If editing: keep the same
- Final (4K): only when prompt is locked
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "<final prompt>" --filename "yyyy-mm-dd-hh-mm-ss-final.png" --resolution 4K
Options
| Option | Description |
|---|---|
--prompt <text>, -p |
Prompt text (required) |
--filename <path>, -f |
Output filename (required) |
--input-image <path>, -i |
Input image for editing |
--resolution 1K|2K|4K, -r |
Output resolution (default: 1K) |
--provider tuzi|google|openai|dashscope|replicate |
Force provider (default: auto-detect, Tuzi first) |
--model <id>, -m |
Model ID |
--api-key <key>, -k |
API key (overrides env var) |
Resolution Options
- 1K (default) - ~1024px resolution
- 2K - ~2048px resolution
- 4K - ~4096px resolution
Map user requests:
- No mention of resolution →
1K - "low resolution", "1080", "1080p", "1K" →
1K - "2K", "2048", "normal", "medium resolution" →
2K - "high resolution", "high-res", "hi-res", "4K", "ultra" →
4K
Provider Selection
--providerspecified → use it--api-keyprovided (no--provider) → Google (direct Gemini API)- Only one API key available → use that provider
- Multiple available → Tuzi first
Tuzi Models
| Model ID | Quality | Notes |
|---|---|---|
gemini-3-pro-image-preview |
1k/2k/4k | Default. High quality |
gemini-3.1-flash-image-preview |
1k/2k/4k | Fast, extended aspect ratios |
gemini-3-pro-image-preview-vip |
1k built-in | VIP |
gemini-3-pro-image-preview-2k-vip |
2k built-in | VIP |
gemini-3-pro-image-preview-4k-vip |
4k built-in | VIP |
Environment Variables
| Variable | Description |
|---|---|
TUZI_API_KEY |
Tuzi API key (https://api.tu-zi.com) |
TUZI_IMAGE_MODEL |
Tuzi default model |
TUZI_BASE_URL |
Custom Tuzi endpoint |
GEMINI_API_KEY |
Google Gemini API key |
GOOGLE_API_KEY |
Google API key (alias) |
OPENAI_API_KEY |
OpenAI API key |
DASHSCOPE_API_KEY |
DashScope API key |
REPLICATE_API_TOKEN |
Replicate API token |
Load Priority: CLI --api-key > env vars > <cwd>/.tuzi-skills/.env > ~/.tuzi-skills/.env
Image Editing
When the user wants to modify an existing image:
- Use
--input-imageparameter with the path to the image - The prompt should contain editing instructions
- Resolution auto-detects from input image size if not specified
Prompt Handling
For generation: Pass user's image description as-is to --prompt. Only rework if clearly insufficient.
For editing: Pass editing instructions in --prompt (e.g., "add a rainbow in the sky")
Prompt Templates
- Generation: "Create an image of:
. Style: