跳转到主要内容
POST
/
v3
/
async
/
wan2.7-videoedit
万相 Wan 2.7 视频编辑
curl --request POST \
  --url https://api.ppio.com/v3/async/wan2.7-videoedit \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: <content-type>' \
  --data '
{
  "seed": 123,
  "ratio": "<string>",
  "prompt": "<string>",
  "duration": 123,
  "video_url": "<string>",
  "watermark": true,
  "resolution": "<string>",
  "audio_setting": "<string>",
  "prompt_extend": true,
  "negative_prompt": "<string>",
  "reference_image_url": "<string>",
  "reference_image_url_2": "<string>",
  "reference_image_url_3": "<string>"
}
'
import requests

url = "https://api.ppio.com/v3/async/wan2.7-videoedit"

payload = {
"seed": 123,
"ratio": "<string>",
"prompt": "<string>",
"duration": 123,
"video_url": "<string>",
"watermark": True,
"resolution": "<string>",
"audio_setting": "<string>",
"prompt_extend": True,
"negative_prompt": "<string>",
"reference_image_url": "<string>",
"reference_image_url_2": "<string>",
"reference_image_url_3": "<string>"
}
headers = {
"Content-Type": "<content-type>",
"Authorization": "<authorization>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>', Authorization: '<authorization>'},
body: JSON.stringify({
seed: 123,
ratio: '<string>',
prompt: '<string>',
duration: 123,
video_url: '<string>',
watermark: true,
resolution: '<string>',
audio_setting: '<string>',
prompt_extend: true,
negative_prompt: '<string>',
reference_image_url: '<string>',
reference_image_url_2: '<string>',
reference_image_url_3: '<string>'
})
};

fetch('https://api.ppio.com/v3/async/wan2.7-videoedit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.ppio.com/v3/async/wan2.7-videoedit",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'seed' => 123,
'ratio' => '<string>',
'prompt' => '<string>',
'duration' => 123,
'video_url' => '<string>',
'watermark' => true,
'resolution' => '<string>',
'audio_setting' => '<string>',
'prompt_extend' => true,
'negative_prompt' => '<string>',
'reference_image_url' => '<string>',
'reference_image_url_2' => '<string>',
'reference_image_url_3' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.ppio.com/v3/async/wan2.7-videoedit"

payload := strings.NewReader("{\n \"seed\": 123,\n \"ratio\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"video_url\": \"<string>\",\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"audio_setting\": \"<string>\",\n \"prompt_extend\": true,\n \"negative_prompt\": \"<string>\",\n \"reference_image_url\": \"<string>\",\n \"reference_image_url_2\": \"<string>\",\n \"reference_image_url_3\": \"<string>\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "<authorization>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.ppio.com/v3/async/wan2.7-videoedit")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"seed\": 123,\n \"ratio\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"video_url\": \"<string>\",\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"audio_setting\": \"<string>\",\n \"prompt_extend\": true,\n \"negative_prompt\": \"<string>\",\n \"reference_image_url\": \"<string>\",\n \"reference_image_url_2\": \"<string>\",\n \"reference_image_url_3\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.ppio.com/v3/async/wan2.7-videoedit")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = '<authorization>'
request.body = "{\n \"seed\": 123,\n \"ratio\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"video_url\": \"<string>\",\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"audio_setting\": \"<string>\",\n \"prompt_extend\": true,\n \"negative_prompt\": \"<string>\",\n \"reference_image_url\": \"<string>\",\n \"reference_image_url_2\": \"<string>\",\n \"reference_image_url_3\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "task_id": "<string>"
}
万相 Wan 2.7 视频编辑模型,支持多模态输入(文本/图像/视频),可完成指令编辑和视频迁移任务。支持720P和1080P分辨率,时长2~10秒,按秒计费。输出默认包含音频。
这是一个异步API,只会返回异步任务的 task_id。您应该使用该 task_id 请求 查询任务结果 API 来检索视频生成结果。

请求头

Content-Type
string
必填
枚举值: application/json
Authorization
string
必填
Bearer 身份验证格式,例如:Bearer {{API 密钥}}。

请求体

seed
integer
随机数种子,用于提升生成结果的可复现性。取值范围[0, 2147483647]。取值范围:[0, 2147483647]
ratio
string
生成视频的宽高比。不传则以输入视频的宽高比生成近似比例的视频。720P支持:16:9(1280720)、9:16(7201280)、1:1(960960)、4:3(1104832)、3:4(8321104)。1080P支持:16:9(19201080)、9:16(10801920)、1:1(14401440)、4:3(16481248)、3:4(12481648)。可选值:16:9, 9:16, 1:1, 4:3, 3:4
prompt
string
文本提示词,用于描述对视频的编辑操作。支持中英文,最多5000个字符。例如「将整个画面转换为黏土风格」「将视频中女孩的衣服替换为图片中的衣服」。长度限制:0 - 5000
duration
integer
默认值:0
生成视频的时长,单位为秒。默认值为0,代表直接使用输入视频的时长。当传入[2,10]之间的整数时,系统从原视频的0秒起截取至指定时长。仅在需要截断视频时才需配置。取值范围:[0, 10]
video_url
string
必填
待编辑的视频URL。格式支持mp4、mov。时长210秒,分辨率宽高范围[240,4096]像素,宽高比1:88:1,文件大小不超过100MB。
watermark
boolean
默认值:false
是否添加水印标识,水印位于视频右下角,文案固定为「AI生成」。
resolution
string
默认值:"1080P"
输出视频分辨率档位,影响费用(1080P > 720P)。视频宽高比与输入素材保持一致(除非指定ratio参数)。可选值:720P, 1080P
audio_setting
string
默认值:"auto"
视频声音设置。auto:模型根据prompt内容智能判断,若提示词涉及声音描述可能重新生成音频,否则可能保留原声。origin:强制保留输入视频的原声。可选值:auto, origin
prompt_extend
boolean
默认值:true
是否开启prompt智能改写。开启后使用大模型对输入prompt进行智能改写,对较短的prompt生成效果提升明显,但会增加耗时。
negative_prompt
string
反向提示词,用于描述不希望在视频画面中出现的内容。支持中英文,最多500个字符。长度限制:0 - 500
reference_image_url
string
参考图像URL。可用于提供编辑所需的视觉参考(如替换衣物、风格迁移等)。格式支持JPEG、JPG、PNG(不支持透明通道)、BMP、WEBP。分辨率宽高范围[240,8000]像素,宽高比1:8~8:1,文件大小不超过20MB。最多可传入3张参考图像。
reference_image_url_2
string
第二张参考图像URL,格式限制同reference_image_url。
reference_image_url_3
string
第三张参考图像URL,格式限制同reference_image_url。

响应

task_id
string
异步任务的 task_id。您应该使用该 task_id 请求 查询任务结果 API 以获取生成结果
最后修改于 2026年4月24日