Skip to content

Node.js SDK

SeeAny Node.js / TypeScript SDK,完全兼容 OpenAI 接口规范

安装

bash
npm install seeany

快速开始

typescript
import SeeAny from "seeany";

const client = new SeeAny({
  apiKey: "sk-xxxxx",                          // 您的 API Key
  baseURL: "https://api.seeany.com/v1",        // 可选,默认即为此值
});

图片生成

多模型对比出图

typescript
const result = await client.images.generate({
  model: ["seedance4.5", "nano-banana-pro", "gpt-image-2"],
  prompt: "一只戴着赛博朋克墨镜的橘猫,霓虹灯街道,8k电影光影",
  size: "1024x1024",
});

result.results.forEach((item) => {
  console.log(`${item.model}: ${item.data[0].url}`);
  console.log(`费用: ¥${item.usage.cost}`);
});

单模型出图

typescript
const result = await client.images.generate({
  model: "seedance4.5",
  prompt: "极简白色背景上的一瓶高级香水,水珠特写,自然光影",
  size: "2048x2048",
});

console.log(`图片URL: ${result.results[0].data[0].url}`);

电商套图

typescript
const result = await client.images.ecommerce.generate({
  image: fs.createReadStream("./product.jpg"),
  platform: "amazon",       // amazon / taobao / tmall
  package: "full",          // full / main_only / scene_only
  style: "minimal",         // minimal / lifestyle / luxury
});

result.images.forEach((img) => {
  console.log(`${img.description}: ${img.url}`);
});
console.log(`总费用: ¥${result.totalCost.amount}`);

AI 模特试穿

typescript
// 使用预置模特
const result = await client.images.tryon.generate({
  garmentImage: fs.createReadStream("./dress.jpg"),
  modelId: "female_model_01",
  prompt: "自然站姿,商场背景",
  size: "1024x1792",
});

// 使用自定义模特图
const result2 = await client.images.tryon.generate({
  garmentImage: fs.createReadStream("./dress.jpg"),
  modelImage: fs.createReadStream("./model.jpg"),
  size: "1024x1792",
});

console.log(`试穿效果图: ${result.data[0].url}`);

图像处理

typescript
// 背景替换
const result = await client.images.edits({
  image: fs.createReadStream("./product.jpg"),
  prompt: "将背景替换为海边沙滩日落场景",
  model: "nano-banana-pro",
});

// 局部修改(需要 mask)
const result2 = await client.images.edits({
  image: fs.createReadStream("./product.jpg"),
  mask: fs.createReadStream("./mask.png"),
  prompt: "将衣服颜色改为红色",
});

console.log(`编辑结果: ${result.data[0].url}`);

视频生成

文生视频

typescript
// 提交任务
const task = await client.videos.generate({
  model: "kling-v3",
  prompt: "白色运动鞋在旋转展示台上缓慢旋转,studio灯光",
  duration: 5,
  resolution: "720p",
  audio: false,
  webhookUrl: "https://your-app.com/webhook",   // 可选:Webhook 回调
});

console.log(`任务已提交: ${task.id}`);

// 等待结果
const result = await client.tasks.waitFor(task.id, {
  timeout: 300,     // 超时时间(秒)
  interval: 10,     // 轮询间隔(秒)
  onProgress: (status) => {
    console.log(`进度: ${status.progress}%`);
  },
});

console.log(`视频URL: ${result.videoUrl}`);

图生视频

typescript
const task = await client.videos.imageToVideo({
  image: fs.createReadStream("./product.png"),
  model: "seedance-2.0",
  prompt: "镜头缓慢推进,产品微微旋转展示",
  duration: 5,
  motionStrength: 0.5,
});

console.log(`任务已提交: ${task.id}`);

查询余额

typescript
const balance = await client.account.getBalance();
console.log(`可用余额: ¥${balance.amount}`);
console.log(`本月消费: ¥${balance.usedThisMonth}`);

错误处理

typescript
import SeeAny, { SeeAnyError } from "seeany";

const client = new SeeAny({ apiKey: "sk-xxxxx" });

try {
  const result = await client.images.generate({
    model: "seedance4.5",
    prompt: "一只可爱的猫",
  });
} catch (error) {
  if (error instanceof SeeAnyError) {
    console.log(`错误代码: ${error.code}`);
    console.log(`错误信息: ${error.message}`);
    console.log(`请求ID: ${error.requestId}`);
    console.log(`HTTP状态码: ${error.statusCode}`);
  }
}

配置选项

typescript
const client = new SeeAny({
  apiKey: "sk-xxxxx",
  baseURL: "https://api.seeany.com/v1",    // API 基础地址
  timeout: 60000,                           // 请求超时(毫秒)
  maxRetries: 3,                            // 最大重试次数
});

使用 OpenAI SDK 兼容

typescript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-xxxxx",
  baseURL: "https://api.seeany.com/v1",
});

const response = await client.images.generate({
  model: "seedance4.5",
  prompt: "一只可爱的橘猫",
  size: "1024x1024",
});

console.log(response.data[0].url);

提示

  • SDK 支持 TypeScript 类型定义
  • 所有方法均支持 async/await
  • 建议使用环境变量管理 API Key
  • 详细源码和示例请访问 GitHub

SeeAny 开放平台