API 参考
端点、密钥、限制。AI图像端点的参考文档 — 生成、移除、扩展 — 包含认证、CORS和速率限制。
Morph在api.morph.cool处提供了一组AI驱动的图像接口。这些接口支持Artboard的AI功能,并可供开发人员用于构建集成。
基础URL:
所有请求均使用HTTPS。HTTP请求将被拒绝。
https://api.morph.cool所有请求均使用HTTPS。HTTP请求将被拒绝。
认证
AI 图像端点(生成、移除、扩展)无需认证即可进行基本使用。它们按 IP 地址进行速率限制。修改用户数据的端点(转换、铃声、排行榜)需要在 Authorization 头部中以 Bearer 令牌形式传递 JWT 令牌。
Authorization: Bearer <jwt_token>
速率限制
所有接口均设有限速以防止滥用。超出限制将返回429状态码及JSON错误信息。
- Artboard AI接口 — 每IP每分钟10次请求(基于KV存储)。
- 转换日志记录 — 需要身份验证,无单独IP限制。
- 错误报告 — 每 IP 每分钟 30 次请求。
- 等待列表 — 每IP每分钟10次请求。
生成图像
POST /artboard/generate
文本到图像生成和修复。发送带有蒙版的画布图像,根据文本提示填充选定区域。还支持描述模式,可返回图像的文本描述。
| 字段 | 输入 | 描述 |
|---|---|---|
| 提示 | 字符串 | 生成内容的文本描述。在描述模式下不需要提供。 |
| canvasImage必需 | 字符串 | 画布内容的Base64编码PNG。 |
| maskImage | 字符串 | 选择区域的Base64编码PNG。白色 = 填充区域。用于内补绘制,描述时不需要。 |
| 模式 | 字符串 | 设置为"describe"以启用图像描述模式。省略以进行生成。 |
生成响应:
{
"result": "<base64_png_string>"
}
描述响应:
{
"result": "A detailed text description of the image content."
}
验证: 在描述模式下,PNG必须至少为64×64像素。小于该尺寸的图像将返回REGION_TOO_SMALL错误。
对象移除
POST /artboard/remove
AI驱动的对象移除功能。在遮罩上涂抹对象,模型将用上下文合适的內容填充区域。
| 字段 | 输入 | 描述 |
|---|---|---|
| canvasImage必需 | 字符串 | Base64编码的画布PNG图片。 |
| maskImagerequired | 字符串 | Base64编码的PNG蒙版。白色 = 需要移除的区域。 |
响应:
{
"result": "<base64_png_string>"
}
生成式扩展
POST /artboard/expand
在指定方向扩展画布。AI 会用与现有图像匹配的内容填充新区域。使用边缘像素扩展以保持上下文。
| 字段 | 输入 | 描述 |
|---|---|---|
| canvasImage必需 | 字符串 | 画布的Base64编码PNG,尺寸必须为64–4096像素。 |
| 方向必需 | 字符串 | 其中之一:left、right、top、bottom、all。 |
| expandPx必填 | number | 像素扩展范围:64–512。 |
| 提示 | 字符串 | 可选文本提示,用于指导生成内容。 |
响应:
{
"result": "<base64_png_string>"
}
验证: 源图像每边必须在64–4096像素之间。扩展画布的尺寸不得超过4096像素。违反规则将返回REGION_TOO_SMALL或CANVAS_TOO_LARGE错误。
错误响应
所有端点均返回带有 error 字段的 JSON 错误响应:
{
"error": "RATE_LIMITED"
}
常见错误代码:
- RATE_LIMITED — 请求过多。请等待后重试。
- REGION_TOO_SMALL — 图像尺寸低于64×64像素的最小要求。
- CANVAS_TOO_LARGE — 扩展画布超过 4096px 限制。
- MISSING_FIELDS — 必填字段未提供。
备注
- AI模型 — 所有修复端点均通过Cloudflare Workers AI使用Stable Diffusion v1.5。推理步骤上限为20。
- 图像格式 — 所有图像必须为base64编码的PNG。
- 隐私 — 图像在内存中处理,不会被存储、记录或用于模型训练。
- CORS — 端点接受来自
morph.cool、www.morph.cool和localhost:5173的请求。 - 超时 — 客户端应设置30秒超时。服务器端处理通常不超过15秒。