{
  "schemaVersion": "1.0",
  "item": {
    "slug": "evolink-nano-banana-2-1",
    "name": "Evolink Nano Banana 2 1",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Bethune89/evolink-nano-banana-2-1",
    "canonicalUrl": "https://clawhub.ai/Bethune89/evolink-nano-banana-2-1",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/evolink-nano-banana-2-1",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=evolink-nano-banana-2-1",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "_meta.json",
      "references/file-api.md",
      "references/image-api-params.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "evolink-nano-banana-2-1",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-03T00:53:53.216Z",
      "expiresAt": "2026-05-10T00:53:53.216Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=evolink-nano-banana-2-1",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=evolink-nano-banana-2-1",
        "contentDisposition": "attachment; filename=\"evolink-nano-banana-2-1-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "evolink-nano-banana-2-1"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/evolink-nano-banana-2-1"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/evolink-nano-banana-2-1",
    "agentPageUrl": "https://openagent3.xyz/skills/evolink-nano-banana-2-1/agent",
    "manifestUrl": "https://openagent3.xyz/skills/evolink-nano-banana-2-1/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/evolink-nano-banana-2-1/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Nano Banana 2 — AI Image Generation",
        "body": "Generate AI images with Nano Banana 2 (gemini-3.1-flash-image-preview) — Google's Gemini 3.1 Flash image model, available through Evolink's unified API.\n\nFocused view of evolink-image. Install the full skill for 20 image models, video, and music."
      },
      {
        "title": "After Installation",
        "body": "When this skill is first loaded, greet the user:\n\nMCP tools + API key ready: \"Hi! Nano Banana 2 is ready — Google's fast image model at your fingertips. What would you like to create?\"\nMCP tools + no API key: \"You'll need an EvoLink API key — sign up at evolink.ai. Ready to go?\"\nNo MCP tools: \"MCP server isn't connected yet. Want me to help set it up? I can still manage files via the hosting API.\"\n\nKeep the greeting concise — just one question to move forward."
      },
      {
        "title": "External Endpoints",
        "body": "ServiceURLGeneration APIhttps://api.evolink.ai/v1/images/generations (POST)Task Statushttps://api.evolink.ai/v1/tasks/{task_id} (GET)File APIhttps://files-api.evolink.ai/api/v1/files/* (upload/list/delete)"
      },
      {
        "title": "Security & Privacy",
        "body": "EVOLINK_API_KEY authenticates all requests. Injected by OpenClaw automatically. Treat as confidential.\nPrompts and images are sent to api.evolink.ai. Uploaded files expire in 72h, result URLs in 24h."
      },
      {
        "title": "Setup",
        "body": "Get your API key at evolink.ai → Dashboard → API Keys.\n\nMCP Server: @evolinkai/evolink-media (GitHub · npm)\n\nmcporter (recommended): mcporter call --stdio \"npx -y @evolinkai/evolink-media@latest\" list_models\n\nClaude Code: claude mcp add evolink-media -e EVOLINK_API_KEY=your-key -- npx -y @evolinkai/evolink-media@latest\n\nClaude Desktop / Cursor — add MCP server with command npx -y @evolinkai/evolink-media@latest and env EVOLINK_API_KEY=your-key. See references/image-api-params.md for full config JSON."
      },
      {
        "title": "Core Principles",
        "body": "Guide, don't decide — Present options, let the user choose model/style/format.\nUser drives creative vision — Ask for a description before suggesting parameters.\nSmart context — Remember session history. Offer to iterate, vary, or edit results.\nIntent first — Understand what the user wants before asking how to configure it."
      },
      {
        "title": "MCP Tools",
        "body": "ToolWhen to useReturnsgenerate_imageCreate or edit an imagetask_id (async)upload_fileUpload local image for editing/referenceFile URL (sync)delete_fileFree file quotaConfirmationlist_filesCheck uploaded files or quotaFile listcheck_taskPoll generation progressStatus + result URLslist_modelsCompare available modelsModel listestimate_costCheck pricingModel info\n\nImportant: generate_image returns a task_id. Always poll check_task until status is \"completed\" or \"failed\"."
      },
      {
        "title": "Nano Banana 2",
        "body": "PropertyValueModel IDgemini-3.1-flash-image-previewProviderGoogle (Gemini 3.1 Flash)StatusBETACapabilitytext-to-image, image-editingSpeedFastBest forQuick, versatile image generation with strong prompt understanding\n\nWhy Nano Banana 2?\n\nGoogle's latest — Built on Gemini 3.1 Flash, the newest generation architecture\nFast generation — Optimized for speed without sacrificing quality\nVersatile — General-purpose image creation for any creative need\nStrong prompt adherence — Excellent at following complex, detailed descriptions"
      },
      {
        "title": "Lite Variant",
        "body": "nano-banana-2-lite [BETA] — Lightweight version for ultra-fast iterations when speed is the top priority."
      },
      {
        "title": "Alternative Models",
        "body": "ModelBest forSpeedgpt-image-1.5 (default)Latest OpenAI generationMediumgpt-4o-image [BETA]Best quality, complex editingMediumz-image-turboQuick iterationsUltra-fastdoubao-seedream-4.5PhotorealisticMediumgemini-3-pro-image-previewGoogle Pro generationMedium"
      },
      {
        "title": "Step 1: API Key Check",
        "body": "If 401 occurs: \"Your API key isn't working. Check at evolink.ai/dashboard/keys\""
      },
      {
        "title": "Step 2: File Upload (if needed)",
        "body": "For image editing or reference workflows:\n\nupload_file with file_path, base64_data, or file_url → get file_url (sync)\nUse file_url as image_urls for generate_image\n\nSupported: JPEG/PNG/GIF/WebP. Max 100MB. Expire in 72h. Quota: 100 (default) / 500 (VIP)."
      },
      {
        "title": "Step 3: Understand Intent",
        "body": "Clear (\"generate a sunset\") → Go to Step 4\nAmbiguous (\"help with this image\") → Ask: \"Create new, edit existing, or use as reference?\"\n\nAsk only what's needed, when it's needed."
      },
      {
        "title": "Step 4: Gather Parameters",
        "body": "Default to model: \"gemini-3.1-flash-image-preview\" for this skill. Only ask about what's missing:\n\nParameterAsk whenNotespromptAlwaysWhat they want to seemodelUser wants alternativesDefault: gemini-3.1-flash-image-preview. Suggest gpt-4o-image for best qualitysizeOrientation neededRatio format: 1:1, 16:9, 9:16, 2:3, 3:2, 4:3, 3:4 etc.nWants variations1–4 imagesimage_urlsEdit/reference imagesUp to 14 URLs; triggers i2i mode"
      },
      {
        "title": "Step 5: Generate & Poll",
        "body": "Call generate_image with model: \"gemini-3.1-flash-image-preview\" → tell user: \"Generating with Nano Banana 2 — ~Xs estimated.\"\nPoll check_task every 3–5s. Report progress %.\nAfter 3 consecutive processing: \"Still working...\"\nCompleted: Share URLs. \"Links expire in 24h — save promptly.\"\nFailed: Show error + suggestion. Offer retry if retryable.\nTimeout (5 min): \"Taking longer than expected. Task ID: {id} — check again later.\""
      },
      {
        "title": "HTTP Errors",
        "body": "ErrorAction401\"API key isn't working. Check at evolink.ai/dashboard/keys\"402\"Balance is low. Add credits at evolink.ai/dashboard/billing\"429\"Rate limited — wait 30s and retry\"503\"Servers busy — retry in a minute\""
      },
      {
        "title": "Task Errors (status: \"failed\")",
        "body": "CodeRetry?Actioncontent_policy_violationNoRevise prompt (no celebrities, NSFW, violence)invalid_parametersNoCheck values against model limitsimage_processing_errorNoCheck format/size/URL accessibilitygeneration_timeoutYesRetry; simplify prompt if repeatedservice_errorYesRetry after 1 mingeneration_failed_no_contentYesModify prompt, retry\n\nFull error reference: references/image-api-params.md"
      },
      {
        "title": "Without MCP Server",
        "body": "Use Evolink's file hosting API for image uploads (72h expiry). See references/file-api.md for curl commands."
      },
      {
        "title": "References",
        "body": "references/image-api-params.md — Complete API parameters, model details, polling strategy, error codes\nreferences/file-api.md — File hosting API (curl upload/list/delete)"
      }
    ],
    "body": "Nano Banana 2 — AI Image Generation\n\nGenerate AI images with Nano Banana 2 (gemini-3.1-flash-image-preview) — Google's Gemini 3.1 Flash image model, available through Evolink's unified API.\n\nFocused view of evolink-image. Install the full skill for 20 image models, video, and music.\n\nAfter Installation\n\nWhen this skill is first loaded, greet the user:\n\nMCP tools + API key ready: \"Hi! Nano Banana 2 is ready — Google's fast image model at your fingertips. What would you like to create?\"\nMCP tools + no API key: \"You'll need an EvoLink API key — sign up at evolink.ai. Ready to go?\"\nNo MCP tools: \"MCP server isn't connected yet. Want me to help set it up? I can still manage files via the hosting API.\"\n\nKeep the greeting concise — just one question to move forward.\n\nExternal Endpoints\nService\tURL\nGeneration API\thttps://api.evolink.ai/v1/images/generations (POST)\nTask Status\thttps://api.evolink.ai/v1/tasks/{task_id} (GET)\nFile API\thttps://files-api.evolink.ai/api/v1/files/* (upload/list/delete)\nSecurity & Privacy\nEVOLINK_API_KEY authenticates all requests. Injected by OpenClaw automatically. Treat as confidential.\nPrompts and images are sent to api.evolink.ai. Uploaded files expire in 72h, result URLs in 24h.\nSetup\n\nGet your API key at evolink.ai → Dashboard → API Keys.\n\nMCP Server: @evolinkai/evolink-media (GitHub · npm)\n\nmcporter (recommended): mcporter call --stdio \"npx -y @evolinkai/evolink-media@latest\" list_models\n\nClaude Code: claude mcp add evolink-media -e EVOLINK_API_KEY=your-key -- npx -y @evolinkai/evolink-media@latest\n\nClaude Desktop / Cursor — add MCP server with command npx -y @evolinkai/evolink-media@latest and env EVOLINK_API_KEY=your-key. See references/image-api-params.md for full config JSON.\n\nCore Principles\nGuide, don't decide — Present options, let the user choose model/style/format.\nUser drives creative vision — Ask for a description before suggesting parameters.\nSmart context — Remember session history. Offer to iterate, vary, or edit results.\nIntent first — Understand what the user wants before asking how to configure it.\nMCP Tools\nTool\tWhen to use\tReturns\ngenerate_image\tCreate or edit an image\ttask_id (async)\nupload_file\tUpload local image for editing/reference\tFile URL (sync)\ndelete_file\tFree file quota\tConfirmation\nlist_files\tCheck uploaded files or quota\tFile list\ncheck_task\tPoll generation progress\tStatus + result URLs\nlist_models\tCompare available models\tModel list\nestimate_cost\tCheck pricing\tModel info\n\nImportant: generate_image returns a task_id. Always poll check_task until status is \"completed\" or \"failed\".\n\nNano Banana 2\nProperty\tValue\nModel ID\tgemini-3.1-flash-image-preview\nProvider\tGoogle (Gemini 3.1 Flash)\nStatus\tBETA\nCapability\ttext-to-image, image-editing\nSpeed\tFast\nBest for\tQuick, versatile image generation with strong prompt understanding\n\nWhy Nano Banana 2?\n\nGoogle's latest — Built on Gemini 3.1 Flash, the newest generation architecture\nFast generation — Optimized for speed without sacrificing quality\nVersatile — General-purpose image creation for any creative need\nStrong prompt adherence — Excellent at following complex, detailed descriptions\nLite Variant\n\nnano-banana-2-lite [BETA] — Lightweight version for ultra-fast iterations when speed is the top priority.\n\nAlternative Models\nModel\tBest for\tSpeed\ngpt-image-1.5 (default)\tLatest OpenAI generation\tMedium\ngpt-4o-image [BETA]\tBest quality, complex editing\tMedium\nz-image-turbo\tQuick iterations\tUltra-fast\ndoubao-seedream-4.5\tPhotorealistic\tMedium\ngemini-3-pro-image-preview\tGoogle Pro generation\tMedium\nGeneration Flow\nStep 1: API Key Check\n\nIf 401 occurs: \"Your API key isn't working. Check at evolink.ai/dashboard/keys\"\n\nStep 2: File Upload (if needed)\n\nFor image editing or reference workflows:\n\nupload_file with file_path, base64_data, or file_url → get file_url (sync)\nUse file_url as image_urls for generate_image\n\nSupported: JPEG/PNG/GIF/WebP. Max 100MB. Expire in 72h. Quota: 100 (default) / 500 (VIP).\n\nStep 3: Understand Intent\nClear (\"generate a sunset\") → Go to Step 4\nAmbiguous (\"help with this image\") → Ask: \"Create new, edit existing, or use as reference?\"\n\nAsk only what's needed, when it's needed.\n\nStep 4: Gather Parameters\n\nDefault to model: \"gemini-3.1-flash-image-preview\" for this skill. Only ask about what's missing:\n\nParameter\tAsk when\tNotes\nprompt\tAlways\tWhat they want to see\nmodel\tUser wants alternatives\tDefault: gemini-3.1-flash-image-preview. Suggest gpt-4o-image for best quality\nsize\tOrientation needed\tRatio format: 1:1, 16:9, 9:16, 2:3, 3:2, 4:3, 3:4 etc.\nn\tWants variations\t1–4 images\nimage_urls\tEdit/reference images\tUp to 14 URLs; triggers i2i mode\nStep 5: Generate & Poll\nCall generate_image with model: \"gemini-3.1-flash-image-preview\" → tell user: \"Generating with Nano Banana 2 — ~Xs estimated.\"\nPoll check_task every 3–5s. Report progress %.\nAfter 3 consecutive processing: \"Still working...\"\nCompleted: Share URLs. \"Links expire in 24h — save promptly.\"\nFailed: Show error + suggestion. Offer retry if retryable.\nTimeout (5 min): \"Taking longer than expected. Task ID: {id} — check again later.\"\nError Handling\nHTTP Errors\nError\tAction\n401\t\"API key isn't working. Check at evolink.ai/dashboard/keys\"\n402\t\"Balance is low. Add credits at evolink.ai/dashboard/billing\"\n429\t\"Rate limited — wait 30s and retry\"\n503\t\"Servers busy — retry in a minute\"\nTask Errors (status: \"failed\")\nCode\tRetry?\tAction\ncontent_policy_violation\tNo\tRevise prompt (no celebrities, NSFW, violence)\ninvalid_parameters\tNo\tCheck values against model limits\nimage_processing_error\tNo\tCheck format/size/URL accessibility\ngeneration_timeout\tYes\tRetry; simplify prompt if repeated\nservice_error\tYes\tRetry after 1 min\ngeneration_failed_no_content\tYes\tModify prompt, retry\n\nFull error reference: references/image-api-params.md\n\nWithout MCP Server\n\nUse Evolink's file hosting API for image uploads (72h expiry). See references/file-api.md for curl commands.\n\nReferences\nreferences/image-api-params.md — Complete API parameters, model details, polling strategy, error codes\nreferences/file-api.md — File hosting API (curl upload/list/delete)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Bethune89/evolink-nano-banana-2-1",
    "publisherUrl": "https://clawhub.ai/Bethune89/evolink-nano-banana-2-1",
    "owner": "Bethune89",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/evolink-nano-banana-2-1",
    "downloadUrl": "https://openagent3.xyz/downloads/evolink-nano-banana-2-1",
    "agentUrl": "https://openagent3.xyz/skills/evolink-nano-banana-2-1/agent",
    "manifestUrl": "https://openagent3.xyz/skills/evolink-nano-banana-2-1/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/evolink-nano-banana-2-1/agent.md"
  }
}