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.haijingai.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.haijingai.com/v2",
)

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

print(response.data[0].url)

API 端点 ​

POST https://api.haijingai.com/v2/images/generations

请求格式 ​

请求头 ​

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

请求参数 ​

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

参数名类型必填默认值说明
modelstring是—模型名称,如 "flux-2-pro"、"dall-e-3"
promptstring是—图像描述文本,支持中英文
ninteger | null否1生成图片数量,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.haijingai.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.haijingai.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.haijingai.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.haijingai.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.haijingai.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')

支持的模型 ​

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

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

相关资源 ​

技术支持 ​

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

联系客服