主题
语言
·1 分钟阅读

通过一套 API 生成图片、视频与支持的语音内容

使用 GetVibe 异步 media jobs:选择实际模型,提交任务,轮询或使用 webhook,并安全保存输出。

通过一套 API 生成图片、视频与支持的语音内容

GetVibe 在文本 API 旁提供异步 media job API。媒体请求路径与 OpenAI chat completions 不同:先提交生成任务,拿到 job ID,再查询状态和结果。图片、视频、音频/语音模型所需输入与计费单位不同,使用media 模型目录选择,不要假设所有模型接受同一种请求。

查看模型及其要求

可通过媒体目录或 /v1/models?type=image,video,audio 查看账号可用类型。逐项核对模型 ID、输入模态、选项、结果格式和计费单位。图片可能按输出设置计费,视频可能取决于时长和分辨率,语音模型可能按文本长度、时长或其他单位计费,不应统一按文本 token 估算。

gpt-image-2 是目录中的图像模型之一。它支持的宽高比、分辨率及生成/编辑选项以模型页和媒体文档为准。视频模型参数各异且处理更久。语音能力也按模型不同,上线前需查当前媒体列表。

提交图片生成任务

API key 保留在服务端。下面是文档化的异步文生图请求:prompt 在顶层,生成选项放在 opts 中:

curl https://getvibeapi.com/api/media/generate \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2",
    "prompt": "A clean editorial illustration of a developer desk, no text",
    "opts": {"aspect_ratio":"16:9", "resolution":"1K", "mode":"text-to-image"}
  }'

把返回的 jobId 与自己的用户和任务记录关联。此请求启动生成,不会直接在响应中返回成品图片。

轮询或接收 webhook

小规模集成可隔一段时间查询 job endpoint,在任务进入终态后停止。状态包括 submitting、processing、success、fail 和 expired。每几毫秒轮询不会加快生成,却会增加流量。生产批次可使用文档化 webhook,并让回调处理幂等,以避免重复事件产生重复资产。

curl "https://getvibeapi.com/api/media/jobs/$JOB_ID" \
  -H "Authorization: Bearer $GETVIBE_API_KEY"

成功后取回结果 URL;如需长期保存,将媒体复制到自己管理的存储。失败时保留 job ID 供排查,并显示具体错误。不要对每类失败都自动重试:参数无效仍会失败,重复生成还可能产生新费用。

视频和语音需要模型专属处理

视频请求前检查时长、画面尺寸、图片条件输入和支持参数。验证远程源 URL 可被服务访问。给用户展示任务进度,因为视频处理比文本更久;批量任务使用文档化 webhook,而不是一直挂着网页请求。

语音/音频场景要区分语音合成、转录和音频理解,它们的输入输出模态不同。按模型说明选择 endpoint 与 payload,并在支持时限制文本或时长,保存播放器能处理的格式。不要承诺每个媒体模型都能生成语音。

估算预算与定义失败行为

批量生成前查看媒体模型当前价格,并按实际计费单位估算。文本模型价格不是图片或视频价格的替代。先用生产计划中的分辨率、时长和语音参数生成一个样本。记录 job ID、模型、设置、时长、终态和 usage。为昂贵或面向客户的结果设置批次上限与人工复核。

除非隐私策略允许,不要将完整 prompt 和媒体 URL 写入通用日志。限制上传大小、避免泄露凭据,并防止将私有媒体作为公开 URL 提供。编辑任务需在审核前保留原始文件。

生产清单

  • 确认模型 ID、模态和输入要求。
  • 密钥只放在服务端。
  • 使用顶层 prompt 和模型文档中的参数。
  • 持久化 job ID,让 polling/webhook 幂等。
  • 定义失败与过期的处理方式。
  • 按实际计费单位做预算。
  • 需长期保存时复制生成结果。

上线前阅读媒体生成、媒体 webhook和媒体模型文档。公开模型和参数会变化,这些文档及实时目录是账号功能的准确来源。

安全处理源素材

图生图或以图生成视频时,按该模型文档使用上传或 URL 方式。确认远程资源无需浏览器登录即可访问。不要将含长期权限的签名 URL 复制到可能记录的 prompt 中。应用应校验内容类型和上传大小。

处理用户图片时,保留原始素材,并遵循同意与保留政策。生成结果可能包含可识别细节,分享前执行产品自己的隐私和审核规则。

围绕任务状态设计界面

提交后显示已创建,运行时显示处理中,并明确区分成功、失败和过期。如果用户离开页面,仍可从自己保存的 job ID 恢复状态。为防止连点产生重复计费,可禁用提交按钮或使用本地幂等保护。

批量页面分别显示完成、失败和待处理数量。单一 spinner 无法说明长视频是否卡住。使用有上限的 backoff polling,批次变大后改用文档化 webhook。

为结果制定保留策略

除非媒体文档承诺长期有效,否则不要把返回 URL 当作永久存储。若需保留,下载到自己的 bucket,并把新对象 ID 保存进数据库。对生成文件配置权限和用户删除流程。

记录模型 ID、选项、prompt 版本、job ID、结果对象、终态和费用。这样可回答后续支持问题,而无需在普通日志中保存敏感 prompt 或向全团队暴露媒体 URL。

图片生成 API视频生成 API语音生成 APIGetVibe media jobs

免费试用 GetVibe API

通过一个 OpenAI 兼容的 API 接入 GPT、Claude、Gemini 等模型,支持信用卡或加密货币支付。

相关文章

通过一套 API 生成图片、视频与支持的语音内容 | GetVibe API