Loading...
Loading...
Compare original and translation side by side
SKILL_DIR${SKILL_DIR}/scripts/main.tsSKILL_DIR${SKILL_DIR}/scripts/main.tsundefinedundefined
| Result | Action |
|--------|--------|
| Key found | Continue to Step 0.2 |
| Key NOT found | ⛔ Run API key setup (see [references/config/first-time-setup.md](references/config/first-time-setup.md) → "API Key Setup") → Store key → Then continue |
**CRITICAL**: If API key is missing, MUST guide user to obtain and store it BEFORE any generation. Generation is BLOCKED until key is configured.
| 结果 | 操作 |
|--------|--------|
| 找到密钥 | 继续执行步骤0.2 |
| 未找到密钥 | ⛔ 运行API密钥配置流程(参见[references/config/first-time-setup.md](references/config/first-time-setup.md) → "API Key Setup")→ 存储密钥 → 再继续后续流程 |
**关键提示**:如果缺少API密钥,必须先引导用户获取并存储密钥,才能执行生成操作。密钥配置完成前图片生成功能处于阻塞状态。test -f .tuzi-skills/tuzi-image-gen/EXTEND.md && echo "project"
test -f "$HOME/.tuzi-skills/tuzi-image-gen/EXTEND.md" && echo "user"| Result | Action |
|---|---|
| Found | Load, parse, apply settings. If |
| Not found | ⛔ Run first-time setup (references/config/first-time-setup.md) → Save EXTEND.md → Then continue |
| Path | Location |
|---|---|
| Project directory |
| User home |
references/config/preferences-schema.mdtest -f .tuzi-skills/tuzi-image-gen/EXTEND.md && echo "project"
test -f "$HOME/.tuzi-skills/tuzi-image-gen/EXTEND.md" && echo "user"| 结果 | 操作 |
|---|---|
| 找到文件 | 加载、解析并应用配置。如果 |
| 未找到文件 | ⛔ 运行首次配置流程(references/config/first-time-setup.md)→ 保存EXTEND.md → 再继续后续流程 |
| 路径 | 存放位置 |
|---|---|
| 项目目录 |
| 用户根目录 |
references/config/preferences-schema.mdundefinedundefinedundefinedundefined| Option | Description |
|---|---|
| Prompt text |
| Read prompt from files (concatenated) |
| Output image path (required) |
| Force provider (default: auto-detect, Tuzi first) |
| Model ID (see Tuzi Models section for full list) |
| Aspect ratio (e.g., |
| Size override (e.g., |
| Quality preset. Tuzi: maps to 1k/2k. Google: maps to 1K/2K |
| Image size (Tuzi and Google). Overrides |
| Reference images. Tuzi: base64 in JSON body. Google: multimodal. OpenAI: edits API |
| Number of images |
| JSON output |
| 参数 | 说明 |
|---|---|
| 提示词文本 |
| 从文件读取提示词(内容自动拼接) |
| 输出图片路径(必填) |
| 强制指定供应商(默认:自动检测,优先使用Tuzi) |
| 模型ID(完整列表参考Tuzi模型章节) |
| 宽高比(例如 |
| 自定义尺寸覆盖(例如 |
| 画质预设。Tuzi对应1k/2k,Google对应1K/2K |
| 图片尺寸(仅Tuzi和Google支持),优先级高于 |
| 参考图片。Tuzi:JSON体中base64编码;Google:多模态输入;OpenAI:编辑API |
| 生成图片数量 |
| 输出JSON格式结果 |
| Model ID | Alias | Quality | Notes |
|---|---|---|---|
| nano-banana-pro | | Default. High quality, supports quality param |
| nano-banana-2 | | Fast, supports extended aspect ratios |
| nano-banana-pro-vip | 1k built-in | High quality, VIP |
| nano-banana-pro-2k-vip | 2k built-in | High quality 2K, VIP |
| nano-banana-pro-4k-vip | 4k built-in | High quality 4K, VIP |
| nano-banana-vip | 1k built-in | Fastest, VIP |
| 模型ID | 别名 | 画质 | 说明 |
|---|---|---|---|
| nano-banana-pro | | 默认模型,画质高,支持画质参数调整 |
| nano-banana-2 | | 速度快,支持更多特殊宽高比 |
| nano-banana-pro-vip | 内置1k | 高画质,VIP专属 |
| nano-banana-pro-2k-vip | 内置2k | 高画质2K,VIP专属 |
| nano-banana-pro-4k-vip | 内置4k | 高画质4K,VIP专属 |
| nano-banana-vip | 内置1k | 速度最快,VIP专属 |
| Model ID | Alias | Notes |
|---|---|---|
| nano-banana-pro | |
| nano-banana | Fast |
| nano-banana-pro-hd | HD built-in |
| nano-banana-pro-2k | 2K built-in |
| nano-banana-pro-4k | 4K built-in |
| — | Size: 1:1, 3:2, 2:3 only |
| flux-2-pro | Flux |
| flux-2-max | Flux highest quality |
| kontext-pro | Multi-ref editing |
| kontext-max | Multi-ref editing (max) |
| Seedream 4.0 | 2K/4K |
| Seedream 4.5 | 2K/4K |
| Seedream 5.0 lite | 2K/3K |
| 模型ID | 别名 | 说明 |
|---|---|---|
| nano-banana-pro | |
| nano-banana | 速度快 |
| nano-banana-pro-hd | 内置HD画质 |
| nano-banana-pro-2k | 内置2K画质 |
| nano-banana-pro-4k | 内置4K画质 |
| — | 仅支持1:1、3:2、2:3尺寸 |
| flux-2-pro | Flux系列 |
| flux-2-max | Flux系列最高画质 |
| kontext-pro | 支持多参考图编辑 |
| kontext-max | 支持多参考图编辑(最高规格) |
| Seedream 4.0 | 支持2K/4K |
| Seedream 4.5 | 支持2K/4K |
| Seedream 5.0 lite | 支持2K/3K |
| Model ID | Notes |
|---|---|
| 1K async |
| 2K async |
| 4K async |
| Midjourney, MJ params in prompt |
| 模型ID | 说明 |
|---|---|
| 1K异步 |
| 2K异步 |
| 4K异步 |
| Midjourney模型,提示词中支持MJ参数 |
--quality--imageSize 1K|2K|4K| Applies to | Values | Notes |
|---|---|---|
| 1k / 2k / 4k | Default model, quality adjustable |
| 1k / 2k / 4k | Quality adjustable |
| — | Quality built into model name, param ignored |
| Other models | — | Param ignored |
--ar| Applies to | Supported ratios |
|---|---|
| Gemini models (default) | 1:1, 16:9, 9:16, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 21:9 |
| Above + 1:4, 4:1, 1:8, 8:1 (extreme ratios) |
| 1:1, 3:2, 2:3 |
| Omitted | Model auto-decides |
--refimageinput_reference--quality--imageSize 1K|2K|4K| 适用模型 | 可选值 | 说明 |
|---|---|---|
| 1k / 2k / 4k | 默认模型,支持画质调整 |
| 1k / 2k / 4k | 支持画质调整 |
| — | 画质已内置在模型名称中,参数无效 |
| 其他模型 | — | 参数无效 |
--ar| 适用模型 | 支持比例 |
|---|---|
| 默认Gemini系列模型 | 1:1、16:9、9:16、3:2、2:3、4:3、3:4、5:4、4:5、21:9 |
| 以上比例 + 1:4、4:1、1:8、8:1(极端比例) |
| 1:1、3:2、2:3 |
| 未指定 | 模型自动决定 |
--refimageinput_reference| Variable | Description |
|---|---|
| Tuzi API key (https://api.tu-zi.com) |
| Tuzi default model (default: gemini-3-pro-image-preview) |
| Custom Tuzi endpoint (default: https://api.tu-zi.com/v1) |
| Google API key |
| OpenAI API key |
| DashScope API key (阿里云) |
| Replicate API token |
| Google model override |
| OpenAI model override |
| DashScope model override |
| Replicate model override |
| Custom Google endpoint |
| Custom OpenAI endpoint |
| Custom DashScope endpoint |
| Custom Replicate endpoint |
<cwd>/.tuzi-skills/.env~/.tuzi-skills/.env| 变量名 | 说明 |
|---|---|
| Tuzi API密钥(https://api.tu-zi.com) |
| Tuzi默认模型(默认:gemini-3-pro-image-preview) |
| 自定义Tuzi接口地址(默认:https://api.tu-zi.com/v1) |
| Google API密钥 |
| OpenAI API密钥 |
| DashScope(阿里云)API密钥 |
| Replicate API令牌 |
| Google模型自定义覆盖 |
| OpenAI模型自定义覆盖 |
| DashScope模型自定义覆盖 |
| Replicate模型自定义覆盖 |
| 自定义Google接口地址 |
| 自定义OpenAI接口地址 |
| 自定义DashScope接口地址 |
| 自定义Replicate接口地址 |
<cwd>/.tuzi-skills/.env~/.tuzi-skills/.env--model <id>default_model.[provider]<PROVIDER>_IMAGE_MODELUsing [provider] / [model]Switch model: --model <id> | EXTEND.md default_model.[provider] | env <PROVIDER>_IMAGE_MODEL--model <id>default_model.[provider]<PROVIDER>_IMAGE_MODELUsing [provider] / [model]Switch model: --model <id> | EXTEND.md default_model.[provider] | env <PROVIDER>_IMAGE_MODEL--provider--ref--provider--provider--ref--provider| Preset | Tuzi | OpenAI | |
|---|---|---|---|
| 1k | 1K | 1024px |
| 2k | 2K | 2048px |
--imageSize 1K|2K|4K| 预设值 | Tuzi | OpenAI | |
|---|---|---|---|
| 1k | 1K | 1024px |
| 2k | 2K | 2048px |
--imageSize 1K|2K|4Krun_in_background=truerun_in_background=truePROHIBITED_CONTENTNO_IMAGEPROHIBITED_CONTENTNO_IMAGEowner/nameowner/name:versionnpx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "A cat" --image out.png --provider replicate
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "A cat" --image out.png --provider replicate --model google/nano-bananaowner/nameowner/name:versionnpx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "A cat" --image out.png --provider replicate
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "A cat" --image out.png --provider replicate --model google/nano-banana