Sora 2 提示词生成器 API
根据主题生成专业 Sora 2 视频提示词的 API,支持多种视频手法和多语言输出。
在线体验:https://nanophoto.ai/zh/sora-2-prompt-generator
接口
POST /api/sora-2/generate-prompt认证
Authorization: Bearer YOUR_API_KEY积分
每次生成消耗 2 积分。
积分在请求开始时预扣,生成失败时自动退还。
请求
请求头
| 请求头 | 值 |
|---|---|
Content-Type | application/json |
Authorization | Bearer YOUR_API_KEY |
请求体参数
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
topic | string | 是 | 视频主题或场景描述(最大 500 字符) |
mode | string | 否 | textToVideo 或 imageToVideo(默认:textToVideo) |
technique | string | 否 | 视频手法(见下表)。默认:montage |
duration | number | 否 | 视频时长,单位秒(默认:10) |
model | string | 否 | AI 模型(默认:google/gemini-3-flash-preview) |
locale | string | 否 | 输出语言(默认:en)。支持:en、zh、zh-TW、ja、ko、es、fr、de、pt、ru、ar |
imageUrls | string[] | 否 | imageToVideo 模式的公开图片 URL(最多 3 张) |
支持的视频手法
| 值 | 描述 |
|---|---|
montage | 蒙太奇 - 快速切换镜头组合 |
long-take | 长镜头 - 一镜到底 |
time-lapse | 延时摄影 |
slow-motion | 慢动作 |
tracking-shot | 跟踪镜头 |
aerial-view | 航拍视角 |
pov | 第一人称视角 |
split-screen | 分屏效果 |
match-cut | 匹配剪辑 |
fade-transition | 淡入淡出 |
imageUrls仅接受公开可访问的 URL。不支持通过 API 上传 Base64 图片。topic最大 500 字符。
示例
文生视频提示词
curl -X POST "https://nanophoto.ai/api/sora-2/generate-prompt" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-raw '{
"topic": "宁静的日式庭院,樱花花瓣飘落到锦鲤池塘",
"technique": "slow-motion",
"duration": 15,
"locale": "zh"
}'图生视频提示词
curl -X POST "https://nanophoto.ai/api/sora-2/generate-prompt" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-raw '{
"topic": "为这个风景画添加微风和飘浮的云朵动画效果",
"mode": "imageToVideo",
"technique": "long-take",
"duration": 10,
"locale": "zh",
"imageUrls": ["https://example.com/landscape.jpg"]
}'响应
成功 - 流式输出
API 返回流式文本响应(Content-Type: text/plain; charset=utf-8)。生成的 Sora 2 提示词会实时流式输出。
输出内容包含:
- 带时间标记的结构化视频提示词
- 逐镜头分解
- 镜头角度、运动和光影细节
- 氛围和情绪描述
错误
{
"success": false,
"error": "Insufficient credits. Required: 2 credits for prompt generation.",
"errorCode": "INSUFFICIENT_CREDITS",
"requiredCredits": 2
}完整 TypeScript 示例
async function generatePrompt(apiKey: string) {
const response = await fetch("https://nanophoto.ai/api/sora-2/generate-prompt", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${apiKey}`,
},
body: JSON.stringify({
topic: "未来感城市日落景观,飞行器穿梭与霓虹灯光",
technique: "aerial-view",
duration: 15,
locale: "zh",
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(`生成失败: ${error.error}`);
}
// 读取流式响应
const reader = response.body!.getReader();
const decoder = new TextDecoder();
let prompt = "";
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
prompt += chunk;
process.stdout.write(chunk);
}
console.log("\n\n完整提示词:", prompt);
return prompt;
}错误码
| errorCode | HTTP 状态码 | 描述 |
|---|---|---|
LOGIN_REQUIRED | 401 | 需要认证 |
API_KEY_RATE_LIMIT_EXCEEDED | 429 | 超出速率限制 |
INSUFFICIENT_CREDITS | 402 | 积分不足 |
INVALID_INPUT | 400 | 主题为空或超过长度限制 |
NanoPhoto.AI文档