Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问clear审计通过

gemini-to-seedream-migrationGemini TO seedream 迁移

Agent Skill

gemini-to-seedream-migration 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

989

周安装

40

GitHub Stars

155

下载量

310
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:gemini-to-seedream-migration(Gemini TO seedream 迁移)
来源仓库:https://github.com/julianromli/ai-skills
仓库路径:skills/gemini-to-seedream-migration
安装命令:
npx skills add https://github.com/julianromli/ai-skills --skill gemini-to-seedream-migration
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/julianromli/ai-skills --skill gemini-to-seedream-migration

简介

gemini-to-seedream-migration 用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词或任务场景快速定位候选结果。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装并使用。
  • 安装前需确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Gemini to SeeDream v4.5 Migration

Migrate AI image generation from Google Gemini 2.5 Flash Image to BytePlus SeeDream v4.5 with this proven, production-ready workflow.

Quick Start

Migration Overview:

  • Replace Gemini SDK with BytePlus REST API
  • Update environment variables and validation
  • Migrate API routes to new client
  • Test and validate changes
  • Update documentation

Benefits:

  • Higher resolution support (up to 4K vs 2K)
  • Better control over image dimensions and generation
  • Built-in prompt optimization for quality improvement
  • Potentially lower costs (check BytePlus pricing)
  • Broader format support (adds BMP, TIFF, GIF)

Prerequisites:

Time Estimate: 3-4 hours for complete migration


Core Migration Workflow

Phase 1: Environment Setup

Replace Gemini environment variables with BytePlus configuration.

Step 1.1: Update.env.example

Find and remove Gemini configuration:

# REMOVE
GEMINI_API_KEY=your_google_ai_api_key_here

Add BytePlus configuration:

# ADD
BYTEPLUS_API_KEY=your_byteplus_api_key_here

Step 1.2: Update Environment Validator

If you have environment validation (recommended), update it to check for BYTEPLUS_API_KEY instead of GEMINI_API_KEY.

Example changes:

// OLD
{
  name: 'GEMINI_API_KEY',
  required: true,
  description: 'Google AI API key for image generation',
  setupUrl: 'https://aistudio.google.com/app/apikey',
}

// NEW
{
  name: 'BYTEPLUS_API_KEY',
  required: true,
  description: 'BytePlus SeeDream API key for image generation',
  setupUrl: 'https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey',
}

Step 1.3: Add API Key to Local Environment

Add to your .env.local:

BYTEPLUS_API_KEY=your_actual_byteplus_api_key

Step 1.4: Verify Environment

Test that validation detects the new key correctly:

npm run validate  # or your validation command

Phase 2: Create BytePlus Client

Create a reusable REST API client for BytePlus SeeDream v4.5.

Step 2.1: Create Client File

Create lib/byteplus-client.ts (or appropriate path for your project).

See references/client-template.ts for a fully commented, production-ready template.

Key implementation points:

  • Use native fetch API (no SDK required)
  • Convert base64 to data URI format: data:image/png;base64,${base64String}
  • Add comprehensive error handling for all HTTP status codes
  • Validate API key before making requests
  • Include verbose logging for debugging
  • Return consistent interface matching your app's expectations

Step 2.2: Configure Model Parameters

Choose appropriate parameters for your use case:

Model ID: seedream-4-5-251128 (latest as of Dec 2025)

Size options:

  • Fixed pixels: 2048x2560 (portrait), 2560x2048 (landscape), 2048x2048 (square)
  • Semantic: 2K, 4K (model determines exact dimensions)

Prompt optimization:

  • mode: "standard" - Higher quality, slower (~45-60s)
  • mode: "fast" - Good quality, faster (~15-30s)

Other settings:

  • sequential_image_generation: "disabled" - Single image output
  • watermark: false - No watermark
  • response_format: "b64_json" - Base64 response

Step 2.3: Test Client

Create a simple test to verify the client works:

const result = await generateImageWithByteplus({
  prompt: "A simple test image of a red circle",
  images: [] // or test images
})

console.log(result.imageUrl ? "Success!" : result.error)

Phase 3: Migrate API Routes

Replace Gemini SDK calls with BytePlus client in all API routes.

Step 3.1: Remove Gemini Imports

In each API route file:

// REMOVE
import { GoogleGenAI } from "@google/genai"

Add BytePlus import:

// ADD
import { generateImageWithByteplus } from "@/lib/byteplus-client"

Step 3.2: Replace Generation Calls

Before (Gemini SDK):

const genAI = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY! })

const result = await genAI.models.generateContent({
  model: "gemini-2.5-flash-image",
  contents: [{
    role: "user",
    parts: [
      { text: prompt },
      { inlineData: { mimeType: "image/png", data: base64Image1 } },
      { inlineData: { mimeType: "image/jpeg", data: base64Image2 } }
    ]
  }],
  config: {
    responseModalities: ["IMAGE"],
    imageConfig: { aspectRatio: "4:5" }
  }
})

// Extract image from candidates
const imagePart = result.candidates[0].content.parts.find(p => p.inlineData)
const base64Image = `data:${imagePart.inlineData.mimeType};base64,${imagePart.inlineData.data}`

After (BytePlus REST):

const result = await generateImageWithByteplus({
  prompt: prompt,
  images: [
    { data: base64Image1, mimeType: "image/png" },
    { data: base64Image2, mimeType: "image/jpeg" }
  ]
})

if (result.error) {
  return NextResponse.json({ error: result.error }, { status: 500 })
}

// Image already in data URI format
const base64Image = result.imageUrl

Step 3.3: Handle Response Differences

BytePlus doesn't return text alongside images. If your frontend expects both:

return NextResponse.json({
  imageUrl: result.imageUrl,
  text: "", // BytePlus doesn't generate text
  usage: result.usage
})

Step 3.4: Update Logging

Replace Gemini-specific log messages:

// OLD
console.log("[v0] Gemini API key available:", !!process.env.GEMINI_API_KEY)
console.log("[v0] Calling Gemini API...")

// NEW
console.log("[v0] BytePlus API key available:", !!process.env.BYTEPLUS_API_KEY)
console.log("[v0] Calling BytePlus SeeDream v4.5 API...")

Phase 4: Dependency Cleanup

Remove Gemini SDK from project dependencies.

Step 4.1: Uninstall Gemini SDK

npm uninstall @google/genai

This automatically updates package.json and package-lock.json.

Step 4.2: Verify Removal

Check that Gemini is no longer referenced:

grep -i "genai\|gemini" package.json

Expected: No matches (empty output).

Step 4.3: Rebuild

npm install
npx tsc --noEmit  # Verify no type errors

Phase 5: Testing & Validation

See references/testing-checklist.md for comprehensive testing guide.

Quick validation:

  1. Environment validation passes: npm run validate
  2. TypeScript compiles: npx tsc --noEmit
  3. Linting passes: npm run lint
  4. Build succeeds: npm run build
  5. Manual API test generates images correctly

Test scenarios:

  • Happy path: Valid images + prompt → generates image
  • Invalid API key → Returns 401 with clear message
  • Missing images → Returns 400 error
  • Rate limit → Returns 429 with retry message
  • Service error → Returns 500 with retry message

Phase 6: Documentation Updates

Update all documentation to reflect BytePlus instead of Gemini.

Files to update:

  • README.md - Replace "Gemini 2.5 Flash" with "BytePlus SeeDream v4.5"
  • SETUP.md - Update API key setup instructions
  • ARCHITECTURE.md - Update AI integration section
  • Any troubleshooting guides - Update error codes and debugging steps

Search for remaining references:

grep -ri "gemini\|google ai" *.md docs/*.md

Key Differences: Gemini vs BytePlus

See references/api-comparison.md for detailed parameter mapping.

Quick comparison:

AspectGemini 2.5 FlashBytePlus SeeDream v4.5
IntegrationSDK (@google/genai)REST API (native fetch)
AuthAPI key in constructorBearer token in header
Image inputBase64 in inlineDataData URI in image array
ResolutionAspect ratio (4:5)Exact pixels (2048x2560)
Responsecandidates[].content.parts[]data[0].b64_json
Text outputSupportedNot supported

Common Pitfalls

See references/troubleshooting.md for detailed solutions.

Common mistakes:

  1. Forgetting data URI format - BytePlus requires data:image/png;base64,... not plain base64
  2. Wrong model ID - Use seedream-4-5-251128 not seedream-4.5
  3. Missing error handling - Handle all HTTP status codes (400, 401, 429, 500)
  4. Not validating API key - Check key exists before making requests
  5. Incorrect image format - Ensure images are in supported formats (PNG/JPEG/WEBP)

Quick Reference

Gemini SDK Pattern

import { GoogleGenAI } from "@google/genai"

const genAI = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY! })

const result = await genAI.models.generateContent({
  model: "gemini-2.5-flash-image",
  contents: [{
    role: "user",
    parts: [
      { text: prompt },
      { inlineData: { mimeType, data: base64String } }
    ]
  }],
  config: {
    responseModalities: ["IMAGE"],
    imageConfig: { aspectRatio: "4:5" }
  }
})

BytePlus REST Pattern

import { generateImageWithByteplus } from "@/lib/byteplus-client"

const result = await generateImageWithByteplus({
  prompt: prompt,
  images: [{ data: base64String, mimeType: "image/png" }]
})

if (result.error) {
  // Handle error
}

Error Handling

See references/error-handling.md for comprehensive guide.

HTTP Status Codes:

  • 400 - Invalid request (check image format, size, aspect ratio)
  • 401 - Authentication failed (invalid API key)
  • 429 - Rate limit exceeded (implement backoff)
  • 500 - Service error (retry with exponential backoff)

Example error handler:

if (!response.ok) {
  switch (response.status) {
    case 400:
      return { error: "Invalid image or prompt" }
    case 401:
      return { error: "BytePlus API authentication failed" }
    case 429:
      return { error: "Rate limit exceeded, please try again later" }
    case 500:
      return { error: "BytePlus service error, please retry" }
    default:
      return { error: "Failed to generate image" }
  }
}

Success Criteria

Migration complete when:

  • ✅ All API routes use BytePlus instead of Gemini
  • ✅ Environment validation passes
  • ✅ TypeScript compilation passes (npx tsc --noEmit)
  • ✅ Linting passes (npm run lint)
  • ✅ Build succeeds
  • ✅ Generated images meet quality expectations
  • ✅ All error scenarios handled gracefully
  • ✅ Documentation updated
  • ✅ Production deployment stable

Additional Resources


Troubleshooting

For common issues and solutions, see references/troubleshooting.md.

For API parameter details, see references/api-comparison.md.

For comprehensive testing checklist, see references/testing-checklist.md.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

28.19%
按下载量换算87

Antigravity

19.88%
按下载量换算62

OpenCode

17.36%
按下载量换算54

Gemini CLI

13.29%
按下载量换算41

Codex

7.17%
按下载量换算22

windsurf

3.52%
按下载量换算11

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills