Skip to content
登录/注册

图片生成 API

概述

海鲸AI 图片生成 API 完全兼容 OpenAI SDK,只需将 baseURL 指向海鲸AI 即可直接使用 client.images.generate 调用,无需修改任何业务代码。支持 Flux、Gemini、DALL·E 等多种主流图像生成模型。

快速开始(OpenAI SDK)

typescript
import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://api.atalk-ai.com/v2',
})

const response = await client.images.generate({
  model: 'flux-2-pro',
  prompt: '一只可爱的小猫在阳光下玩耍,摄影风格,柔和光线',
  n: 1,
  size: '1024x1024',
})

console.log(response.data[0].url)
python
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.atalk-ai.com/v2",
)

response = client.images.generate(
    model="flux-2-pro",
    prompt="一只可爱的小猫在阳光下玩耍,摄影风格,柔和光线",
    n=1,
    size="1024x1024",
)

print(response.data[0].url)

API 端点

POST https://api.atalk-ai.com/v2/images/generations

请求格式

请求头

参数名类型必填说明
Content-Typestring固定为 application/json
AuthorizationstringBearer YOUR_API_KEY

请求参数

与 OpenAI images.generate 接口参数完全一致:

参数名类型必填默认值说明
modelstring模型名称,如 "flux-2-pro""dall-e-3"
promptstring图像描述文本,支持中英文
ninteger | null1生成图片数量,dall-e-3 仅支持 1
sizestring | null"1024x1024"输出尺寸,见下方尺寸说明
qualitystring"standard"图片质量:"standard""hd"(仅 dall-e-3)
stylestring | null"vivid"风格:"vivid"(鲜明)或 "natural"(自然)(仅 dall-e-3)
userstring终端用户标识,用于监控和滥用检测

size 支持的尺寸

尺寸宽高比适用场景
256x2561:1小尺寸图标(dall-e-2)
512x5121:1中等尺寸(dall-e-2)
1024x10241:1正方形,通用场景
1792x102416:9宽屏,横幅、视频封面
1024x17929:16竖屏,手机壁纸、Stories

代码示例

基础文生图

typescript
import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://api.atalk-ai.com/v2',
})

const response = await client.images.generate({
  model: 'flux-2-pro',
  prompt: 'futuristic city skyline at sunset, cyberpunk style, neon lights',
  n: 1,
  size: '1792x1024',
})

const imageUrl = response.data[0].url
console.log('生成图片 URL:', imageUrl)
python
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.atalk-ai.com/v2",
)

response = client.images.generate(
    model="flux-2-pro",
    prompt="futuristic city skyline at sunset, cyberpunk style, neon lights",
    n=1,
    size="1792x1024",
)

image_url = response.data[0].url
print(f"生成图片 URL: {image_url}")
bash
curl https://api.atalk-ai.com/v2/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "flux-2-pro",
    "prompt": "futuristic city skyline at sunset, cyberpunk style, neon lights",
    "n": 1,
    "size": "1792x1024"
  }'

获取 Base64 格式图片

typescript
const response = await client.images.generate({
  model: 'flux-2-pro',
  prompt: '一只可爱的柴犬,吉卜力风格插画,温暖色调',
  n: 1,
  size: '1024x1024',
})

const b64 = response.data[0].b64_json
// 在浏览器中显示
const imgSrc = `data:image/png;base64,${b64}`
python
import base64

response = client.images.generate(
    model="flux-2-pro",
    prompt="一只可爱的柴犬,吉卜力风格插画,温暖色调",
    n=1,
    size="1024x1024"
)

b64_data = response.data[0].b64_json
image_bytes = base64.b64decode(b64_data)

with open("output.png", "wb") as f:
    f.write(image_bytes)

print("图片已保存为 output.png")

错误处理

typescript
import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://api.atalk-ai.com/v2',
})

try {
  const response = await client.images.generate({
    model: 'flux-2-pro',
    prompt: '一只可爱的小猫',
    n: 1,
    size: '1024x1024',
  })
  console.log(response.data[0].url)
} catch (error) {
  if (error instanceof OpenAI.APIError) {
    console.error('状态码:', error.status)
    console.error('错误信息:', error.message)
  } else {
    throw error
  }
}
python
from openai import OpenAI, APIError

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.atalk-ai.com/v2",
)

try:
    response = client.images.generate(
        model="flux-2-pro",
        prompt="一只可爱的小猫",
        n=1,
        size="1024x1024",
    )
    print(response.data[0].url)
except APIError as e:
    print(f"状态码: {e.status_code}")
    print(f"错误信息: {e.message}")

响应格式

响应结构与 OpenAI images.generate 完全一致:

typescript
type ImagesResponse = {
  created: number // Unix 时间戳
  data: Image[] // 生成的图片数组
}

type Image = {
  url?: string // 图片 URL
  b64_json?: string // Base64 图片数据
  revised_prompt?: string // 优化后的提示词(部分模型支持)
}

响应示例

URL 格式(默认)

json
{
  "created": 1713200000,
  "data": [
    {
      "url": "https://example.com/generated-image.png",
      "revised_prompt": "A cute kitten playing in sunlight, photography style, soft lighting, shallow depth of field"
    }
  ]
}

Base64 格式

json
{
  "created": 1713200000,
  "data": [
    {
      "b64_json": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
    }
  ]
}

最佳实践

编写高质量提示词

具体描述主题、风格、光线、构图

✅ 推荐:
"一只橘色的小猫坐在木质窗台上,背景是落日余晖,温暖的侧光照射,
电影感景深,摄影风格,8K 超清"

❌ 不推荐:
"猫"

添加艺术风格关键词

  • 风格:"油画风格""水彩画""赛博朋克""吉卜力动画"
  • 光照:"电影级光照""柔和光线""戏剧性光影"
  • 视角:"广角镜头""微距摄影""鸟瞰视角"

选择合适的尺寸

用途推荐尺寸
社交媒体 Feed1024x1024
Stories / Reels1024x1792
网站横幅 / 视频封面1792x1024
图标 / 头像1024x1024

URL 有时效性

生成的图片 URL 通常有时效,建议及时下载到自己的存储:

typescript
async function downloadAndSave(url: string, path: string) {
  const res = await fetch(url)
  const buffer = await res.arrayBuffer()
  await fs.promises.writeFile(path, Buffer.from(buffer))
}

const response = await client.images.generate({
  model: 'flux-2-pro',
  prompt: '...',
  n: 1,
  size: '1024x1024',
})
await downloadAndSave(response.data[0].url!, 'output.png')

支持的模型

查看 模型列表页面 获取所有支持的图像生成模型及其详细信息,包括:

  • 模型能力特点
  • 价格信息
  • 支持的参数

相关资源

技术支持

如有任何问题或需要技术支持,请联系我们: