视频生成
Omni-Flash-Ext
Omni-Flash-Ext — 文生 / 参考视频统一模型,按次计费,固定时长档,支持 4K
POST
/
v1
/
tasks
Omni-Flash-Ext
curl --request POST \
--url https://www.qingbo.dev/v1/tasks \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"duration": 123,
"resolution": "<string>",
"aspect_ratio": "<string>",
"seed": 123,
"video_urls": [
"<string>"
],
"callback_url": "<string>",
"callback_events": [
"<string>"
]
}
'import requests
url = "https://www.qingbo.dev/v1/tasks"
payload = {
"model": "<string>",
"prompt": "<string>",
"duration": 123,
"resolution": "<string>",
"aspect_ratio": "<string>",
"seed": 123,
"video_urls": ["<string>"],
"callback_url": "<string>",
"callback_events": ["<string>"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
duration: 123,
resolution: '<string>',
aspect_ratio: '<string>',
seed: 123,
video_urls: ['<string>'],
callback_url: '<string>',
callback_events: ['<string>']
})
};
fetch('https://www.qingbo.dev/v1/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://www.qingbo.dev/v1/tasks"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"video_urls\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"callback_events\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://www.qingbo.dev/v1/tasks")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"video_urls\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"callback_events\": [\n \"<string>\"\n ]\n}")
.asString();{
"task_id": "task-wave1775285160b950328499",
"model": "omni-flash-ext",
"action": "generate",
"status": "queued",
"created_at": 1775285160040,
"progress": 0
}
Omni-Flash-Ext 统一视频生成模型,支持 文生视频 与 参考视频生成(
提交后用
video_urls 提供 1 段参考视频作运动 / 风格参考),720p / 1080p / 4k 三档分辨率,4 / 6 / 8 / 10 秒固定时长,适合 创意短片 / 风格迁移 / 二创延展 场景。异步出图。
按次计费 — 每次生成单一固定价,不乘时长、不分分辨率。
定价
| 模型 | 计费方式 | 单价 |
|---|---|---|
omni-flash-ext | 按次(每次生成固定价) | $0.16875 / 次 |
价为售价(USD)。按次计费 = 每次生成固定收费,与resolution/duration无关。例:无论 720p 4 秒还是 4k 10 秒,均按$0.16875 / 次计。
调用示例
curl -X POST https://www.qingbo.dev/v1/tasks \
-H "Authorization: Bearer $WAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-flash-ext",
"prompt": "海面上的日落,海鸥掠过,电影感光影",
"duration": 6,
"resolution": "720p",
"aspect_ratio": "16:9"
}'
curl -X POST https://www.qingbo.dev/v1/tasks \
-H "Authorization: Bearer $WAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-flash-ext",
"prompt": "蜂鸟在红花前悬停的特写镜头",
"duration": 4,
"resolution": "4k",
"aspect_ratio": "16:9"
}'
curl -X POST https://www.qingbo.dev/v1/tasks \
-H "Authorization: Bearer $WAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-flash-ext",
"prompt": "同样的场景,但改为霓虹灯下的夜景",
"resolution": "720p",
"aspect_ratio": "16:9",
"video_urls": ["https://cdn.example.com/reference.mp4"]
}'
{
"task_id": "task-wave1775285160b950328499",
"model": "omni-flash-ext",
"action": "generate",
"status": "queued",
"created_at": 1775285160040,
"progress": 0
}
GET /v1/tasks/{task_id} 轮询状态,详见 任务系统。
可用模型
| 模型 ID | 分辨率 | 时长 | 支持 action | 备注 |
|---|---|---|---|---|
omni-flash-ext | 720p / 1080p / 4k | 4 / 6 / 8 / 10 秒 | generate | 文生 / 参考视频统一,按次计费 |
通用参数
string
必填
模型 ID,固定为
omni-flash-extstring
必填
视频描述文本,建议详细描述 场景 / 主体 / 动作 / 环境 / 镜头运动 / 视觉风格 / 音效
integer
默认值:"6"
视频时长(秒),仅支持固定档位:
4 / 6 / 8 / 10。传
video_urls(参考视频)时,不要同时传 duration,二者互斥,时长由参考视频决定。string
默认值:"720p"
输出分辨率,可选
720p / 1080p / 4k(大小写不敏感)string
默认值:"16:9"
画面宽高比,可选值:
16:9— 横版宽屏9:16— 竖版长屏1:1— 正方形
integer
随机种子,相同 prompt + seed 可复现相似结果
string[]
参考视频 URL 数组,用于参考视频生成。最多 1 段,需公网可下载链接。传入时不要再传
durationstring[]
订阅的回调事件,默认订阅终态(
succeeded / failed / cancelled)模型特定参数
Omni-Flash-Ext 无模型特定参数,所有可选项均在 通用参数 中。资源限制
| 项目 | 限制 |
|---|---|
| 参考视频 | 最多 1 段,需公网可下载链接(MP4);传入时不可同时传 duration |
| Prompt 长度 | 建议 ≤ 2000 字符 |
| 视频时长 | 4 / 6 / 8 / 10 秒固定档位 |
| 分辨率 | 720p / 1080p / 4k |
| 输出 | MP4,链接 24 小时有效 |
相关文档
⌘I
Omni-Flash-Ext
curl --request POST \
--url https://www.qingbo.dev/v1/tasks \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"prompt": "<string>",
"duration": 123,
"resolution": "<string>",
"aspect_ratio": "<string>",
"seed": 123,
"video_urls": [
"<string>"
],
"callback_url": "<string>",
"callback_events": [
"<string>"
]
}
'import requests
url = "https://www.qingbo.dev/v1/tasks"
payload = {
"model": "<string>",
"prompt": "<string>",
"duration": 123,
"resolution": "<string>",
"aspect_ratio": "<string>",
"seed": 123,
"video_urls": ["<string>"],
"callback_url": "<string>",
"callback_events": ["<string>"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
duration: 123,
resolution: '<string>',
aspect_ratio: '<string>',
seed: 123,
video_urls: ['<string>'],
callback_url: '<string>',
callback_events: ['<string>']
})
};
fetch('https://www.qingbo.dev/v1/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://www.qingbo.dev/v1/tasks"
payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"video_urls\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"callback_events\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://www.qingbo.dev/v1/tasks")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"seed\": 123,\n \"video_urls\": [\n \"<string>\"\n ],\n \"callback_url\": \"<string>\",\n \"callback_events\": [\n \"<string>\"\n ]\n}")
.asString();{
"task_id": "task-wave1775285160b950328499",
"model": "omni-flash-ext",
"action": "generate",
"status": "queued",
"created_at": 1775285160040,
"progress": 0
}