登录/注册
图片生成 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-Type | string | 是 | 固定为 application/json |
| Authorization | string | 是 | Bearer YOUR_API_KEY |
请求参数
与 OpenAI images.generate 接口参数完全一致:
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
model | string | 是 | — | 模型名称,如 "flux-2-pro"、"dall-e-3" |
prompt | string | 是 | — | 图像描述文本,支持中英文 |
n | integer | null | 否 | 1 | 生成图片数量,dall-e-3 仅支持 1 |
size | string | null | 否 | "1024x1024" | 输出尺寸,见下方尺寸说明 |
quality | string | 否 | "standard" | 图片质量:"standard" 或 "hd"(仅 dall-e-3) |
style | string | null | 否 | "vivid" | 风格:"vivid"(鲜明)或 "natural"(自然)(仅 dall-e-3) |
user | string | 否 | — | 终端用户标识,用于监控和滥用检测 |
size 支持的尺寸
| 尺寸 | 宽高比 | 适用场景 |
|---|---|---|
256x256 | 1:1 | 小尺寸图标(dall-e-2) |
512x512 | 1:1 | 中等尺寸(dall-e-2) |
1024x1024 | 1:1 | 正方形,通用场景 |
1792x1024 | 16:9 | 宽屏,横幅、视频封面 |
1024x1792 | 9: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 超清"
❌ 不推荐:
"猫"添加艺术风格关键词:
- 风格:
"油画风格"、"水彩画"、"赛博朋克"、"吉卜力动画" - 光照:
"电影级光照"、"柔和光线"、"戏剧性光影" - 视角:
"广角镜头"、"微距摄影"、"鸟瞰视角"
选择合适的尺寸
| 用途 | 推荐尺寸 |
|---|---|
| 社交媒体 Feed | 1024x1024 |
| Stories / Reels | 1024x1792 |
| 网站横幅 / 视频封面 | 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')支持的模型
查看 模型列表页面 获取所有支持的图像生成模型及其详细信息,包括:
- 模型能力特点
- 价格信息
- 支持的参数
相关资源
技术支持
如有任何问题或需要技术支持,请联系我们: