VIDU Q2 texto a video
curl --request POST \
--url https://api.highwayapi.ai/v3/async/vidu-q2-text2video \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"bgm": true,
"seed": 123,
"audio": true,
"style": "<string>",
"prompt": "<string>",
"duration": 123,
"subjects": [
{
"id": "<string>",
"images": [
"<string>"
],
"voice_id": "<string>"
}
],
"watermark": true,
"resolution": "<string>",
"aspect_ratio": "<string>",
"movement_amplitude": "<string>"
}
'import requests
url = "https://api.highwayapi.ai/v3/async/vidu-q2-text2video"
payload = {
"bgm": True,
"seed": 123,
"audio": True,
"style": "<string>",
"prompt": "<string>",
"duration": 123,
"subjects": [
{
"id": "<string>",
"images": ["<string>"],
"voice_id": "<string>"
}
],
"watermark": True,
"resolution": "<string>",
"aspect_ratio": "<string>",
"movement_amplitude": "<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({
bgm: true,
seed: 123,
audio: true,
style: '<string>',
prompt: '<string>',
duration: 123,
subjects: [{id: '<string>', images: ['<string>'], voice_id: '<string>'}],
watermark: true,
resolution: '<string>',
aspect_ratio: '<string>',
movement_amplitude: '<string>'
})
};
fetch('https://api.highwayapi.ai/v3/async/vidu-q2-text2video', 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.highwayapi.ai/v3/async/vidu-q2-text2video",
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([
'bgm' => true,
'seed' => 123,
'audio' => true,
'style' => '<string>',
'prompt' => '<string>',
'duration' => 123,
'subjects' => [
[
'id' => '<string>',
'images' => [
'<string>'
],
'voice_id' => '<string>'
]
],
'watermark' => true,
'resolution' => '<string>',
'aspect_ratio' => '<string>',
'movement_amplitude' => '<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.highwayapi.ai/v3/async/vidu-q2-text2video"
payload := strings.NewReader("{\n \"bgm\": true,\n \"seed\": 123,\n \"audio\": true,\n \"style\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"subjects\": [\n {\n \"id\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"voice_id\": \"<string>\"\n }\n ],\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"movement_amplitude\": \"<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.highwayapi.ai/v3/async/vidu-q2-text2video")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"bgm\": true,\n \"seed\": 123,\n \"audio\": true,\n \"style\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"subjects\": [\n {\n \"id\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"voice_id\": \"<string>\"\n }\n ],\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"movement_amplitude\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.highwayapi.ai/v3/async/vidu-q2-text2video")
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 \"bgm\": true,\n \"seed\": 123,\n \"audio\": true,\n \"style\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"subjects\": [\n {\n \"id\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"voice_id\": \"<string>\"\n }\n ],\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"movement_amplitude\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>",
"provider_request_id": "<string>"
}Vídeo
VIDU Q2 texto a video
POST
/
v3
/
async
/
vidu-q2-text2video
VIDU Q2 texto a video
curl --request POST \
--url https://api.highwayapi.ai/v3/async/vidu-q2-text2video \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"bgm": true,
"seed": 123,
"audio": true,
"style": "<string>",
"prompt": "<string>",
"duration": 123,
"subjects": [
{
"id": "<string>",
"images": [
"<string>"
],
"voice_id": "<string>"
}
],
"watermark": true,
"resolution": "<string>",
"aspect_ratio": "<string>",
"movement_amplitude": "<string>"
}
'import requests
url = "https://api.highwayapi.ai/v3/async/vidu-q2-text2video"
payload = {
"bgm": True,
"seed": 123,
"audio": True,
"style": "<string>",
"prompt": "<string>",
"duration": 123,
"subjects": [
{
"id": "<string>",
"images": ["<string>"],
"voice_id": "<string>"
}
],
"watermark": True,
"resolution": "<string>",
"aspect_ratio": "<string>",
"movement_amplitude": "<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({
bgm: true,
seed: 123,
audio: true,
style: '<string>',
prompt: '<string>',
duration: 123,
subjects: [{id: '<string>', images: ['<string>'], voice_id: '<string>'}],
watermark: true,
resolution: '<string>',
aspect_ratio: '<string>',
movement_amplitude: '<string>'
})
};
fetch('https://api.highwayapi.ai/v3/async/vidu-q2-text2video', 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.highwayapi.ai/v3/async/vidu-q2-text2video",
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([
'bgm' => true,
'seed' => 123,
'audio' => true,
'style' => '<string>',
'prompt' => '<string>',
'duration' => 123,
'subjects' => [
[
'id' => '<string>',
'images' => [
'<string>'
],
'voice_id' => '<string>'
]
],
'watermark' => true,
'resolution' => '<string>',
'aspect_ratio' => '<string>',
'movement_amplitude' => '<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.highwayapi.ai/v3/async/vidu-q2-text2video"
payload := strings.NewReader("{\n \"bgm\": true,\n \"seed\": 123,\n \"audio\": true,\n \"style\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"subjects\": [\n {\n \"id\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"voice_id\": \"<string>\"\n }\n ],\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"movement_amplitude\": \"<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.highwayapi.ai/v3/async/vidu-q2-text2video")
.header("Content-Type", "<content-type>")
.header("Authorization", "<authorization>")
.body("{\n \"bgm\": true,\n \"seed\": 123,\n \"audio\": true,\n \"style\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"subjects\": [\n {\n \"id\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"voice_id\": \"<string>\"\n }\n ],\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"movement_amplitude\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.highwayapi.ai/v3/async/vidu-q2-text2video")
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 \"bgm\": true,\n \"seed\": 123,\n \"audio\": true,\n \"style\": \"<string>\",\n \"prompt\": \"<string>\",\n \"duration\": 123,\n \"subjects\": [\n {\n \"id\": \"<string>\",\n \"images\": [\n \"<string>\"\n ],\n \"voice_id\": \"<string>\"\n }\n ],\n \"watermark\": true,\n \"resolution\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"movement_amplitude\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"task_id": "<string>",
"provider_request_id": "<string>"
}Genera videos a partir de prompts de texto. Admite tres resoluciones: 540p, 720p y 1080p.
Esta es una API asíncrona y solo devolverá el task_id de la tarea asíncrona. Debe usar ese task_id para solicitar la API de consulta del resultado de la tarea y recuperar el resultado generado.
Encabezados de solicitud
string
requerido
Valores enumerados:
application/jsonstring
requerido
Formato de autenticación Bearer: Bearer {{API Key}}.
Cuerpo de la solicitud
boolean
predeterminado:false
Si se debe añadir música de fondo
integer
Semilla aleatoria, utilizada para controlar la aleatoriedad del resultado generado. La misma semilla producirá resultados similares.
boolean
predeterminado:false
Si se debe generar audio
string
Estilo del video, por ejemplo cinematic, realistic, artistic, etc.
string
requerido
Prompt de texto que describe en detalle el contenido del video que se desea generarLímite de longitud: 1 - sin límite
integer
predeterminado:5
requerido
Duración del video (segundos), admite de 1 a 10 segundosValores opcionales:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10object[]
predeterminado:"[]"
Lista de sujetos; cada sujeto contiene id, images y voice_id (puede estar vacío para texto a video)
boolean
predeterminado:false
Si se debe añadir una marca de agua
string
predeterminado:"720p"
Resolución del video de salida. El valor predeterminado es 720p.Valores opcionales:
540p, 720p, 1080pstring
Relación de aspecto del video, por ejemplo 16:9, 9:16, 1:1, etc.
string
Amplitud de movimiento, controla la intensidad del movimiento de los objetos en el videoValores opcionales:
auto, small, medium, highInformación de respuesta
string
requerido
Use task_id para solicitar la API de consulta del resultado de la tarea y recuperar la salida generada.
string
ID de solicitud del proveedor (opcional)
⌘I