图像(Image)

OpenAI 图像格式(Image)

官方文档

📝 简介

给定文本提示和/或输入图片,模型将生成新的图片。OpenAI 提供多种强大的图像生成模型,可以根据自然语言描述创建、编辑和修改图像。目前支持的模型包括:

模型 描述
DALL·E 系列 包括 DALL·E 2 和 DALL·E 3 两个版本,它们在图像质量、创意表现和精确度上都有显著差异
GPT-Image-1 OpenAI最新图片模型,支持多图片编辑功能,能够基于多个输入图像创建新的组合图像

💡 请求示例

创建图片 ✅

# 基础图片生成
curl https://$Burncloud_API_BaseUrl/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $Burncloud_API_KEY" \
  -d '{
    "model": "dall-e-3",
    "prompt": "一只可爱的小海獭",
    "n": 1,
    "size": "1024x1024"
  }'

# 高质量图片生成
curl https://$Burncloud_API_BaseUrl/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $Burncloud_API_KEY" \
  -d '{
    "model": "dall-e-3",
    "prompt": "一只可爱的小海獭",
    "quality": "hd",
    "style": "vivid",
    "size": "1024x1024"
  }'

# 使用 base64 返回格式
curl https://$Burncloud_API_BaseUrl/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $Burncloud_API_KEY" \
  -d '{
    "model": "dall-e-3",
    "prompt": "一只可爱的小海獭",
    "response_format": "b64_json"
  }'

响应示例:

{
  "created": 1589478378,
  "data": [
    {
      "url": "https://...",
      "revised_prompt": "一只可爱的小海獭在水中嬉戏,它有着圆圆的眼睛和毛茸茸的皮毛"
    }
  ]
}

编辑图片 ✅

# dall-e-2 图片编辑
curl https://$Burncloud_API_BaseUrl/v1/images/edits \
  -H "Authorization: Bearer $Burncloud_API_KEY" \
  -F image="@otter.png" \
  -F mask="@mask.png" \
  -F prompt="一只戴着贝雷帽的可爱小海獭" \
  -F n=2 \
  -F size="1024x1024"

# gpt-image-1 多图片编辑示例
curl https://$Burncloud_API_BaseUrl/v1/images/edits \
  -H "Authorization: Bearer $Burncloud_API_KEY" \
  -F "model=gpt-image-1" \
  -F "image[]=@body-lotion.png" \
  -F "image[]=@bath-bomb.png" \
  -F "image[]=@incense-kit.png" \
  -F "image[]=@soap.png" \
  -F "prompt=创建一个包含这四个物品的精美礼品篮" \
  -F "quality=high"

响应示例 (dall-e-2):

{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}

响应示例 (gpt-image-1):

{
  "created": 1713833628,
  "data": [
    {
      "b64_json": "..."
    }
  ],
  "usage": {
    "total_tokens": 100,
    "input_tokens": 50,
    "output_tokens": 50,
    "input_tokens_details": {
      "text_tokens": 10,
      "image_tokens": 40
    }
  }
}

生成图片变体 ✅

curl https://$Burncloud_API_BaseUrl/v1/images/variations \
  -H "Authorization: Bearer $Burncloud_API_KEY" \
  -F image="@otter.png" \
  -F n=2 \
  -F size="1024x1024"

响应示例:

{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}

📮 请求

端点

创建图片

POST /v1/images/generations

根据文本提示创建图片。

编辑图片

POST /v1/images/edits

根据一个或多个原始图片和提示创建编辑或扩展的图片。此端点支持 dall-e-2 和 gpt-image-1 模型。

生成变体

POST /v1/images/variations

创建给定图片的变体。

鉴权方法

在请求头中包含以下内容进行 API 密钥认证:

Authorization: Bearer $Burncloud_API_KEY

其中 $OPENAI_API_KEY 是您的 API 密钥。

请求体参数

创建图片

prompt
model
n
quality
response_format
size
style
user

编辑图片

image
prompt
mask
model
quality
size

其他参数与创建图片接口相同。

生成变体

image

其他参数与创建图片接口相同。

📥 响应

成功响应

所有三个端点都返回包含图片对象列表的响应。

created

data

usage(仅适用于 gpt-image-1)

图片对象

b64_json

url

revised_prompt

示例图片对象:

{
  "url": "https://...",
  "revised_prompt": "一只可爱的小海獭在水中嬉戏,它有着圆圆的眼睛和毛茸茸的皮毛"
}

🌟 最佳实践

Prompt 编写建议

  1. 使用清晰具体的描述
  2. 指定重要的视觉细节
  3. 描述期望的艺术风格和氛围
  4. 注意构图和视角的说明

参数选择建议

  1. 模型选择

    • dall-e-3:适合需要高质量、精确细节的场景
    • dall-e-2:适合快速原型或简单图像生成
  2. 尺寸选择

    • 1024x1024:通用场景的最佳选择
    • 1792x1024/1024x1792:适合横版/竖版场景
    • 较小尺寸:适合缩略图或快速预览
  3. 质量和风格

    • quality=hd:用于需要精细细节的图像
    • style=vivid:适合创意和艺术效果
    • style=natural:适合真实场景再现

gpt-image-2 参数

gpt-image-2 提供了丰富的参数,让你能精细地控制生成效果和成本。

  1. 参数 类型 说明 示例/备注
    • model string 必填。指定使用的模型,目前为 gpt-image-2。 "gpt-image-2"
    • prompt string 必填。描述你想要生成图像的文本。模型对多语言(尤其是中文)文字渲染能力很强。 "A serene cat..."
    • quality string 可选。生成质量,直接影响价格和生成速度。 "low" (草稿), "medium" (社交媒体), "high" (印刷品)
    • size string 可选。输出图像的尺寸。支持多种比例。 "1024x1024" (1:1), "1536x1024" (3:2), "1024x1792" (9:16)
    • n integer 可选。一次提示词生成的图像数量。范围是 1-8。 1 (默认), 4
    • output_format string 可选。输出图像的格式。 "png" (支持透明背景), "jpeg", "webp"
    • background string 可选。设置背景是否为透明。 "auto", "transparent" (需配合 png 格式)

常见问题

  1. 图片生成失败

    • 检查 prompt 是否符合内容政策
    • 确认文件格式和大小限制
    • 验证 API 密钥权限
  2. 结果与预期不符

    • 优化 prompt 描述
    • 调整质量和风格参数
    • 考虑使用图片编辑或变体功能

Midjourney 图像格式(Midjourney Proxy/Midjourney Proxy Plus)

请你注意 该接口 非Midjourney官方的接口,而是基于作者 novicezk 的开源项目 midjourney-proxy 实现的midjourney代理接口。 该项目分为两个版本,New API 都已经适配:

功能类别 开源版 付费版
基础功能
Imagine指令及相关动作
垫图支持
Blend(图片混合)
Describe(图生文)
任务实时进度
中文prompt翻译
prompt敏感词检测
user-token连接wss
多账号配置
高级功能
Shorten(prompt分析)
焦点移动(Pan)
图片变焦(Zoom)
局部重绘(Vary Region)
关联按钮动作和Remix模式
获取图片seed值
账号管理
账号池持久化
多种存储支持(Redis/MySQL)
账号信息获取和设置
任务取消功能
内置管理后台
智能特性
MJ V6.0支持
账号状态自动监控
模式自动切换
niji・journey Bot支持
InsightFace人脸服务
安全性能
动态配置支持
token掉线问题修复
自动验证功能
违禁词自动申诉

📝 简介

Midjourney是一个强大的图像生成和处理模型,可以根据自然语言描述创建、编辑和修改图像。通过提供不同的接口,可以实现各种图像生成和处理任务。

🔄 流程示意图

Midjourney.webp

流程说明

  1. 初始任务

    • Imagine: 文本生成图片
    • Blend: 多图混合
    • Describe: 图片描述
    • Swap Face: 人脸替换
  2. 图片处理

    • U1-U4: 放大操作
    • V1-V4: 变体生成
    • Pan: 图片平移
    • Zoom: 图片缩放
  3. 特殊流程

    • Action + Modal: 需要弹窗确认的操作
    • Action 直接执行: 不需要弹窗的操作
  4. 任务管理

    • 获取任务详情
    • 获取图片 Seed
    • 上传至 Discord

💡 请求示例

提交Imagine任务 ✅

curl --location --request POST 'https://$Burncloud_API_BaseUrl/mj/submit/imagine' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "botType": "MID_JOURNEY",
  "prompt": "Cat",
  "base64Array": [],
  "accountFilter": {
    "channelId": "",
    "instanceId": "",
    "modes": [],
    "remark": "",
    "remix": true,
    "remixAutoConsidered": true
  },
  "notifyHook": "",
  "state": ""
}'

响应示例:

{
  "code": 1,
  "description": "提交成功",
  "properties": {},
  "result": 1320098173412546
}

提交Blend任务 ✅

curl --location --request POST 'https://$Burncloud_API_BaseUrl/mj/submit/blend' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "botType": "MID_JOURNEY",
  "base64Array": [
    "data:image/png;base64,xxx1",
    "data:image/png;base64,xxx2"
  ],
  "dimensions": "SQUARE",
  "accountFilter": {
    "channelId": "",
    "instanceId": "",
    "modes": [],
    "remark": "",
    "remix": true,
    "remixAutoConsidered": true
  },
  "notifyHook": "",
  "state": ""
}'

响应示例:

{
  "code": 1,
  "description": "提交成功",
  "properties": {},
  "result": 1320098173412546
}

提交Describe任务 ✅

curl --location --request POST 'https://$Burncloud_API_BaseUrl/mj/submit/describe' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "botType": "MID_JOURNEY",
  "base64": "data:image/png;base64,xxx",
  "accountFilter": {
    "channelId": "",
    "instanceId": "",
    "modes": [],
    "remark": "",
    "remix": true,
    "remixAutoConsidered": true
  },
  "notifyHook": "",
  "state": ""
}'

响应示例:

{
  "code": 1,
  "description": "提交成功",
  "properties": {},
  "result": 1320098173412546
}

提交Modal ✅

curl --location --request POST 'https://$Burncloud_API_BaseUrl/mj/submit/modal' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "maskBase64": "",
  "prompt": "",
  "taskId": "14001934816969359"
}'

响应示例:

{
  "code": 1,
  "description": "提交成功",
  "properties": {},
  "result": 1320098173412546
}

提交swap_face任务 ✅

curl --location --request POST 'https://$Burncloud_API_BaseUrl/mj/insight-face/swap' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "sourceBase64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RDnYdriP1wsS81kwU8OVs/R3xu8s6bX7+zYnOH8coSqpmRSBjqerjcBlr2OB/lbAf/2Q==",
  "targetBase64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD849k="
}'

响应示例:

{
  "code": 0,
  "description": "string",
  "result": "string"
}

执行Action动作 ✅

curl --location --request POST 'https://$Burncloud_API_BaseUrl/mj/submit/action' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "chooseSameChannel": true,
  "customId": "MJ::JOB::upsample::1::82c51c9d-bc33-4c07-a471-36c3dcb1a6f0",
  "taskId": "1728781324658687",
  "accountFilter": {
    "channelId": "",
    "instanceId": "",
    "modes": [],
    "remark": "",
    "remix": true,
    "remixAutoConsidered": true
  },
  "notifyHook": "",
  "state": ""
}'

响应示例:

{
  "code": 1,
  "description": "提交成功",
  "properties": {},
  "result": 1320098173412546
}

上传文件到discord ✅

curl --location --request POST 'https://$Burncloud_API_BaseUrl/mj/submit/upload-discord-images' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "base64Array": [],
  "filter": {
    "channelId": "",
    "instanceId": "",
    "remark": ""
  }
}'

响应示例:

{
  "code": 0,
  "description": "string",
  "result": [
    "string"
  ]
}

根据ID列表查询任务 ✅

curl --location --request POST 'https://$Burncloud_API_BaseUrl/mj/task/list-by-condition' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "ids": []
}'

响应示例:

[
  {
    "action": "IMAGINE",
    "buttons": [
      {
        "customId": "string",
        "emoji": "string",
        "label": "string",
        "style": 0,
        "type": 0
      }
    ],
    "description": "string",
    "failReason": "string",
    "finishTime": 0,
    "id": "string",
    "imageUrl": "string",
    "progress": "string",
    "prompt": "string",
    "promptEn": "string",
    "properties": {},
    "startTime": 0,
    "state": "string",
    "status": "NOT_START",
    "submitTime": 0
  }
]

指定ID获取任务 ✅

curl --location --request GET 'https://$Burncloud_API_BaseUrl/mj/task/{id}/fetch' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Content-Type: application/json'

响应示例:

{
  "action": "IMAGINE",
  "buttons": [
    {
      "customId": "string",
      "emoji": "string",
      "label": "string",
      "style": 0,
      "type": 0
    }
  ],
  "description": "string", 
  "failReason": "string",
  "finishTime": 0,
  "id": "string",
  "imageUrl": "string",
  "progress": "string",
  "prompt": "string",
  "promptEn": "string",
  "properties": {},
  "startTime": 0,
  "state": "string",
  "status": "NOT_START",
  "submitTime": 0
}

获取任务图片的seed ✅

curl --location --request GET 'https://$Burncloud_API_BaseUrl/mj/task/{id}/image-seed' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer $Burncloud_API_KEY' \
--header 'Content-Type: application/json'

响应示例:

{
  "code": 0,
  "description": "string",
  "result": "string"
}

📮 请求

端点

提交Imagine任务

POST /mj/submit/imagine

根据文本提示创建图片。

提交Blend任务

POST /mj/submit/blend

根据多个输入图片融合生成新图片。

提交Describe任务

POST /mj/submit/describe

根据输入图片生成文字描述。

提交Modal

POST /mj/submit/modal

提交模态信息,用于调整图片生成细节。

提交swap_face任务

POST /mj/insight-face/swap

根据源图片和目标图片进行人脸交换。

执行Action动作

POST /mj/submit/action

对已生成的图片进行后续操作,如放大、调整等。

上传文件到discord

POST /mj/submit/upload-discord-images

将图片上传到discord平台。

根据ID列表查询任务

POST /mj/task/list-by-condition

根据指定的任务ID列表查询任务详情。

指定ID获取任务

GET /mj/task/{id}/fetch

根据任务ID获取任务详情。

获取任务图片的seed

GET /mj/task/{id}/image-seed

获取指定任务生成图片的seed值。

鉴权方法

在请求头中包含以下内容进行 API 密钥认证:

Authorization: Bearer $Burncloud_API_KEY$OPENAI_API_KEY

其中 $OPENAI_API_KEY 是您的 API 密钥。

请求体参数

提交 Imagine 任务

botType
prompt
base64Array
accountFilter
notifyHook
state

提交 Blend 任务

base64Array
dimensions

提交 Describe 任务

base64

提交 Modal 任务

maskBase64
prompt
taskId

提交 Swap Face 任务

sourceBase64
targetBase64

执行 Action 动作

chooseSameChannel
customId
taskId

上传文件到 Discord

base64Array
filter

根据 ID 列表查询任务

ids

通用响应格式

所有接口都返回相似的响应结构:

code
状态码 说明
1 提交成功
22 任务排队中
21 参数错误
23 系统错误
24 账号不可用
25 余额不足
description
properties
result

📥 响应

成功响应

action

字符串值 说明
IMAGINE 创建图片
UPSCALE 放大图片
VARIATION 变体生成
ZOOM 缩放图片
PAN 平移图片
DESCRIBE 图片描述
BLEND 图片混合
SHORTEN 缩短提示词
SWAP_FACE 人脸替换

buttons

数组包含属性 说明
customId 动作标识
emoji 按钮图标
label 按钮文本
style 样式(2=Primary, 3=Green)
type 系统内部使用的类型

description

failReason

finishTime

id

imageUrl

progress

prompt

promptEn

status

字符串值 说明
NOT_START 未开始
SUBMITTED 已提交
MODAL 模态操作中
IN_PROGRESS 进行中
FAILURE 失败
SUCCESS 成功
CANCEL 已取消

submitTime

startTime

错误响应

当请求出现问题时,API 将返回错误响应:

HTTP 状态码

错误响应格式

{
  "code": <错误码>,
  "description": "错误描述信息",
  "result": null
}

💡 最佳实践

Prompt 编写建议

  1. 使用清晰简洁的语言描述期望的图像内容
  2. 可以参考Midjourney支持的各种参数来控制图片风格
  3. 适当使用否定描述以排除不需要的元素
  4. 可以通过图片URL作为参考来指导生成

图片生成流程

  1. 提交Imagine任务,获得初步图片
  2. 必要时通过Blend、Modal等任务进一步优化
  3. 执行Action动作进行图片微调
  4. 将满意的结果图片上传保存

图片格式要求

  1. 支持的图片格式:

    • JPEG/JPG

    • PNG

    • GIF (静态)

    • WEBP

  2. 图片大小限制:

    • 文件大小:最大 4MB

    • 分辨率:建议 1024x1024 或更高

    • 宽高比:支持 1:1、2:3、3:2

性能优化建议

  1. Base64 编码:

    • 使用标准 Base64 编码格式

    • 包含正确的 MIME 类型前缀

    • 压缩图片以减少数据传输

  2. 任务处理:

    • 使用 webhook 接收任务完成通知

    • 合理设置重试策略

    • 建议使用异步处理方式

错误处理

gemini-3 图片生成API [含4K]

2K图片 / 4K图片

请求

https://ai.burncloud.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=sk-xxxxxxxxxxxxxxxxxxx' 
{
    "contents": [
        {
            "role": "user",
            "parts": [
                {
                    "text": "画条狗"
                }
            ]
        }
    ]
    , "generationConfig": {
        "temperature": 1
        ,"maxOutputTokens": 32768
        ,"responseModalities": ["TEXT", "IMAGE"]
        ,"topP": 0.95
        ,"imageConfig": {
            "aspectRatio": "1:1"
            ,"imageSize": "4K"
            ,"imageOutputOptions": {
                "mimeType": "image/png"
            }
            ,"personGeneration": "ALLOW_ALL"
        }
    }
}

参考图生图,改图,还是沿用上面的代码,只是修改以下部分content部分:

{
    "contents": [
        {
            "role": "user",
            "parts": [
                {
                    "text": "画条狗"
                },
                {
                  "fileData": {
                    "mimeType": "image/jpeg",
                    "fileUri": "https://XXXXXX.com/i/2025/01/06/677bbb1f2411d.webp"
                  }
                }
            ]
        }
    ]

获取图片,请看返回结果,拿图片的base64