require 'net/http'require 'json'require 'uri'url = URI("https://api.apimart.ai/v1/videos/generations")payload = { model: "wan2.6-i2v-flash", prompt: "The person turns around and smiles", image_urls: ["https://example.com/portrait.jpg"], resolution: "1080p", duration: 5}http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://api.apimart.ai/v1/videos/generations")!let payload: [String: Any] = [ "model": "wan2.6-i2v-flash", "prompt": "The person turns around and smiles", "image_urls": ["https://example.com/portrait.jpg"], "resolution": "1080p", "duration": 5]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://api.apimart.ai/v1/videos/generations"; var payload = @"{ ""model"": ""wan2.6-i2v-flash"", ""prompt"": ""The person turns around and smiles"", ""image_urls"": [""https://example.com/portrait.jpg""], ""resolution"": ""1080p"", ""duration"": 5 }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
require 'net/http'require 'json'require 'uri'url = URI("https://api.apimart.ai/v1/videos/generations")payload = { model: "wan2.6-i2v-flash", prompt: "The person turns around and smiles", image_urls: ["https://example.com/portrait.jpg"], resolution: "1080p", duration: 5}http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://api.apimart.ai/v1/videos/generations")!let payload: [String: Any] = [ "model": "wan2.6-i2v-flash", "prompt": "The person turns around and smiles", "image_urls": ["https://example.com/portrait.jpg"], "resolution": "1080p", "duration": 5]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://api.apimart.ai/v1/videos/generations"; var payload = @"{ ""model"": ""wan2.6-i2v-flash"", ""prompt"": ""The person turns around and smiles"", ""image_urls"": [""https://example.com/portrait.jpg""], ""resolution"": ""1080p"", ""duration"": 5 }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
require 'net/http'require 'json'require 'uri'url = URI("https://api.apimart.ai/v1/videos/generations")payload = { model: "wan2.6-i2v-flash", prompt: "The person turns around and smiles", image_urls: ["https://example.com/portrait.jpg"], resolution: "1080p", duration: 5}http = Net::HTTP.new(url.host, url.port)http.use_ssl = truerequest = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://api.apimart.ai/v1/videos/generations")!let payload: [String: Any] = [ "model": "wan2.6-i2v-flash", "prompt": "The person turns around and smiles", "image_urls": ["https://example.com/portrait.jpg"], "resolution": "1080p", "duration": 5]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://api.apimart.ai/v1/videos/generations"; var payload = @"{ ""model"": ""wan2.6-i2v-flash"", ""prompt"": ""The person turns around and smiles"", ""image_urls"": [""https://example.com/portrait.jpg""], ""resolution"": ""1080p"", ""duration"": 5 }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
Todos los endpoints requieren autenticación mediante Bearer TokenObtener API Key:Visite la página de gestión de API Keys para obtener su API KeyAñadir al encabezado de la solicitud:
Array de URLs de imágenes de referencia (solo se admite 1 imagen del primer fotograma)Admite URLs de imágenes accesibles públicamente o codificación Base64 (data:image/png;base64,...)Ejemplo: ["https://example.com/image.jpg"]
Descripción del contenido del videoOpcional pero recomendado para image-to-video, describe las acciones y efectos esperadosEspecifique claramente el sujeto, la acción, la cámara y el estilo para obtener mejores resultadosEjemplo: "The person in the image smiles and waves, camera slowly zooms in"
Si se debe generar audioEstablecer en true: genera automáticamente música de fondo / efectos de sonido que coincidan (por defecto)Establecer en false: produce un video silenciosoPor defecto: true
URL de audio personalizado (wav/mp3, 3-30 segundos, ≤ 15MB)Tiene menor prioridad que audio: se ignora cuando audio=falseSi el audio es más largo que la duración del video, será recortado; si es más corto, la parte restante quedará en silencio
Si se debe activar la reescritura inteligente del promptMejora significativamente los resultados para prompts cortos, pero aumenta el tiempo de procesamientoPor defecto: true
{ "model": "wan2.6-i2v-flash", "prompt": "Make the cat stand up and walk", "image_urls": ["data:image/png;base64,iVBORw0KGgo..."], "duration": 5}
Consultar resultados de la tareaLa generación de video es una tarea asíncrona que devuelve un task_id al enviarse. Use el endpoint Obtener estado de la tarea para consultar el progreso y los resultados de la generación.