360 Secure SkillHub
360 安全技能中心

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.

通过脚本调用外部图像服务,按提示词生成新图或基于输入图编辑,支持 1K/2K/4K 分辨率与草稿到最终的迭代流程,结果以 PNG 保存到当前目录并打印路径,需自备相应 API 密钥。

ljquan
ljquan
热度 77.07
最近更新 2026-05-18 12:16:36
分类:创作依赖:代码执行 / 第三方 API / 读写文件应用场景:图像生成 / 品牌素材 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add tuzi-nano-banana
Metadata
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:

  1. SKILL_DIR = this SKILL.md file's directory
  2. 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-image for every iteration until you're happy.
  • 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

  1. --provider specified → use it
  2. --api-key provided (no --provider) → Google (direct Gemini API)
  3. Only one API key available → use that provider
  4. 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:

  1. Use --input-image parameter with the path to the image
  2. The prompt should contain editing instructions
  3. 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: . Composition: <camera/shot>. Lighting: . Background: ."
  • Editing: "Change ONLY: . Keep identical: subject, composition, pose, lighting, color palette, background, text, and overall style."

Filename Generation

Pattern: yyyy-mm-dd-hh-mm-ss-name.png

  • Timestamp: Current date/time in 24-hour format
  • Name: Descriptive lowercase text with hyphens (1-5 words)

Preflight + Common Failures

  • command -v npx (must exist)
  • API key must be available (env or --api-key)
  • If editing: input image must exist

Output

  • Saves PNG to current directory (or specified path)
  • Script outputs the full path to the generated image
  • Do not read the image back - just inform the user of the saved path