curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "pixverse-v6",
prompt: "A cinematic shot of a corgi running through a sunflower field at golden hour",
size: "16:9",
resolution: "540p",
duration: 5
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JWXXXXXXXXXXXX"
}
]
}
{
"error": {
"type": "invalid_request_error",
"message": "invalid duration 20, allowed range: 1-15 seconds"
}
}
{
"error": {
"code": 401,
"message": "Authentifizierung fehlgeschlagen, bitte API-Schlüssel prüfen",
"type": "authentication_error"
}
}
{
"error": {
"code": 403,
"message": "insufficient quota: balance=0, required=0.25",
"type": "quota_not_enough"
}
}
{
"error": {
"code": 429,
"message": "Zu viele Anfragen, bitte später erneut versuchen",
"type": "rate_limit_error"
}
}
Pixverse v6
Pixverse v6 Videogenerierung
- Pixverse v6 vereinheitlichtes Videogenerierungsmodell
- Unterstützt Text-zu-Video, Bild-zu-Video, Erst-/Letztbild-Übergang, Multi-Referenzbild-Fusion und Video-Verlängerung
- Unterstützt 360p/540p/720p/1080p sowie 1–15 Sekunden Videolänge
- Asynchrone Aufgaben-API: Nach dem Senden wird das Ergebnis per Task-ID abgefragt
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "pixverse-v6",
prompt: "A cinematic shot of a corgi running through a sunflower field at golden hour",
size: "16:9",
resolution: "540p",
duration: 5
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JWXXXXXXXXXXXX"
}
]
}
{
"error": {
"type": "invalid_request_error",
"message": "invalid duration 20, allowed range: 1-15 seconds"
}
}
{
"error": {
"code": 401,
"message": "Authentifizierung fehlgeschlagen, bitte API-Schlüssel prüfen",
"type": "authentication_error"
}
}
{
"error": {
"code": 403,
"message": "insufficient quota: balance=0, required=0.25",
"type": "quota_not_enough"
}
}
{
"error": {
"code": 429,
"message": "Zu viele Anfragen, bitte später erneut versuchen",
"type": "rate_limit_error"
}
}
curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}'
import requests
url = "https://api.apimart.ai/v1/videos/generations"
payload = {
"model": "pixverse-v6",
"prompt": "A cinematic shot of a corgi running through a sunflower field at golden hour",
"size": "16:9",
"resolution": "540p",
"duration": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";
const payload = {
model: "pixverse-v6",
prompt: "A cinematic shot of a corgi running through a sunflower field at golden hour",
size: "16:9",
resolution: "540p",
duration: 5
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error:", error));
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01JWXXXXXXXXXXXX"
}
]
}
{
"error": {
"type": "invalid_request_error",
"message": "invalid duration 20, allowed range: 1-15 seconds"
}
}
{
"error": {
"code": 401,
"message": "Authentifizierung fehlgeschlagen, bitte API-Schlüssel prüfen",
"type": "authentication_error"
}
}
{
"error": {
"code": 403,
"message": "insufficient quota: balance=0, required=0.25",
"type": "quota_not_enough"
}
}
{
"error": {
"code": 429,
"message": "Zu viele Anfragen, bitte später erneut versuchen",
"type": "rate_limit_error"
}
}
Authentifizierung
string
erforderlich
Alle Endpunkte erfordern eine Authentifizierung mit einem Bearer Token.API Key abrufen:Besuchen Sie die API-Key-Verwaltungsseite, um Ihren API Key zu erhalten.Fügen Sie den folgenden Header zur Anfrage hinzu:
Authorization: Bearer YOUR_API_KEY
Anfrageparameter
string
erforderlich
Modellname für die Videogenerierung. Fest auf
pixverse-v6.boolean
Standard:"false"
Legt fest, ob der Inhalt vor dem Absenden des Videoauftrags moderiert wird.
true: Prompts und Eingabebilder mitomni-moderation-latestprüfenfalseoder nicht angegeben: keine Moderationsanfrage und damit keine zusätzlichen Moderationskosten oder Verzögerung (Standard)
string
erforderlich
Beschreibung des Videoinhalts, bis zu 5000 Zeichen. In allen Modi erforderlich.
string
Standard:"540p"
Videoauflösungsstufe. Beeinflusst die Abrechnung direkt.
360p: SD540p: Standard (Standard)720p: HD1080p: Full HD
Andere Auflösungswerte führen zu einem Parameterfehler.
integer
Standard:"5"
Videolänge in Sekunden, Bereich
1–15.Der Erst-/Letztbild-Übergangsmodus unterstützt nur
5 oder 8 Sekunden.string
Standard:"16:9"
Seitenverhältnis des Videos. Wirkt nur in den Modi Text-zu-Video und Multi-Referenzbild-Fusion.
16:9: Querformat Breitbild (Standard)4:3: Querformat 4:31:1: Quadrat3:4: Hochformat 3:49:16: Hochformat2:3: Hochformat 2:33:2: Querformat 3:221:9: Kino-Breitbild
integer
Standard:"0"
Zufalls-Seed, Bereich
0–2147483647. Gleiche Prompt + Seed reproduzieren ähnliche Ergebnisse.string
Negativer Prompt zum Ausschluss unerwünschter Inhalte. Bis zu 2048 Zeichen.
boolean
Standard:"false"
Ob eine Tonspur erzeugt wird.
true: Tonspur erzeugen (erhöht den Abrechnungspreis)false: Keine Tonspur (Standard)
boolean
Standard:"false"
Ob ein Wasserzeichen unten rechts hinzugefügt wird.
true: Wasserzeichen hinzufügenfalse: Kein Wasserzeichen (Standard)
string
Bewegungsmodus.
normal: Standardmodus (pixverse-v6unterstützt nur diesen Wert)
fast ist nur für ältere Modelle gedacht und wird vom Upstream für pixverse-v6 abgelehnt.boolean
Standard:"false"
Ob ein zusammenhängendes Video aus mehreren Clips erzeugt wird. Nur in den Modi Text-zu-Video und Bild-zu-Video unterstützt.
true: Multi-Clip-Video erzeugenfalse: Einzelclip (Standard)
array<url>
URL-Array der Eingabebilder für Bild-zu-Video. Es wird nur das erste Bild verwendet.Bilder müssen öffentlich zugängliche HTTP/HTTPS-URLs sein.
url
URL des ersten Frames im Übergangsmodus. Muss zusammen mit
last_frame_image übergeben werden.url
URL des letzten Frames im Übergangsmodus. Muss zusammen mit
first_frame_image übergeben werden.array<url>
URL-Array der Referenzbilder für den Multi-Referenzbild-Fusionsmodus. Unterstützt 1–7 Bilder.Die Übergabe dieses Feldes löst den Multi-Referenzbild-Fusionsmodus aus.
string
ID der Quellaufgabe für die Video-Verlängerung. Die Übergabe dieses Feldes löst den Verlängerungsmodus aus.Die Quellaufgabe muss dem aktuellen Nutzer gehören, das Modell
pixverse-v6 haben und im Status completed sein.Generierungsmodi
Der Adapter wählt anhand der Anfragefelder automatisch den entsprechenden Modus. Es wird nach Priorität abgeglichen, der erste Treffer gewinnt.| Modus | Auslöser | Beschreibung |
|---|---|---|
| Text-zu-Video | Keine Bild- oder Verlängerungsfelder | Video aus prompt erzeugen |
| Bild-zu-Video | image_urls mit einem Bild | Erstes Bild als Eingabe verwenden |
| Erst-/Letztbild-Übergang | first_frame_image und last_frame_image gemeinsam | Glatten Übergang zwischen zwei Frames erzeugen |
| Multi-Referenzbild-Fusion | img_references-Array übergeben | 1–7 Referenzbilder zu einem Video fusionieren |
| Video-Verlängerung | extend_from_task_id übergeben | Aus einer abgeschlossenen Pixverse-Aufgabe fortsetzen |
Alle Bildeingaben akzeptieren nur öffentlich zugängliche HTTP/HTTPS-URLs. base64 oder Data URI werden nicht unterstützt. Wenn nur lokale Bilder vorhanden sind, laden Sie sie zuerst in einen Object Storage hoch und übergeben Sie die URL.
Parameterregeln
| Beschränkung | Beschreibung |
|---|---|
| Videolänge | 1 ≤ duration ≤ 15 Sekunden; Übergangsmodus nur 5 oder 8 Sekunden |
| Auflösung | Nur 360p, 540p, 720p, 1080p unterstützt |
| Seitenverhältnis | size wirkt nur in den Modi Text-zu-Video und Multi-Referenzbild-Fusion |
| Promptlänge | prompt bis 5000 Zeichen, negative_prompt bis 2048 Zeichen |
| Bild-zu-Video | image_urls verwendet nur das erste Bild |
| Übergang | first_frame_image und last_frame_image müssen paarweise übergeben werden |
| Bewegungsmodus | pixverse-v6 unterstützt nur normal |
| Multi-Referenzbild-Fusion | img_references unterstützt 1–7 Bilder |
| Video-Verlängerung | extend_from_task_id muss auf eine completed-Aufgabe von pixverse-v6 des aktuellen Nutzers verweisen |
Antwort
integer
Antwort-Statuscode. Bei Erfolg
200.array
Aufgabenergebnis abrufen
Die Videogenerierung ist eine asynchrone Aufgabe. Nach dem Senden wirdtask_id zurückgegeben. Verwenden Sie den Endpunkt Aufgabenstatus abrufen, um Fortschritt und Ergebnis abzufragen.
cURL
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01JWXXXXXXXXXXXX \
--header 'Authorization: Bearer <token>'
completed oder failed lautet.
Beispiel: Erfolg
{
"code": 200,
"data": {
"id": "task_01KSPX48B8V1M6C2ZN0D0T4BKB",
"status": "completed",
"progress": 100,
"cost": 0.2,
"credits_cost": 2,
"created": 1779958948,
"completed": 1779958999,
"estimated_time": 100,
"actual_time": 51,
"result": {
"videos": [
{
"url": ["https://upload.apimart.ai/f/video/xxxx.mp4"],
"expires_at": 1780045399
}
]
}
}
}
data.result.videos[0].url[0]. Das url-Feld ist selbst ein Array. Video-Links sind üblicherweise nach 24 Stunden abgelaufen — laden Sie sie rechtzeitig herunter oder transferieren Sie sie.
Beispiel: Fehler
{
"code": 200,
"data": {
"id": "task_01KSPX48B8V1M6C2ZN0D0T4BKB",
"status": "failed",
"progress": 100,
"cost": 0,
"credits_cost": 0,
"created": 1779958948,
"completed": 1779958960,
"error": {
"code": "task_failed",
"message": "pixverse error 400063: moderation failed",
"type": "task_failed"
}
}
}
cost üblicherweise 0. Die Fehlerursache lesen Sie aus data.error.message.
Anwendungsfälle
Fall 1: Text-zu-Video
{
"model": "pixverse-v6",
"prompt": "A neon-lit alley in Tokyo at night, light rain, anamorphic lens flare",
"size": "21:9",
"resolution": "720p",
"duration": 8,
"seed": 42,
"audio": true
}
Fall 2: Bild-zu-Video
{
"model": "pixverse-v6",
"prompt": "Camera slowly zooms in, gentle wind moves the leaves",
"image_urls": ["https://example.com/first-frame.jpg"],
"resolution": "540p",
"duration": 5
}
Fall 3: Erst-/Letztbild-Übergang
{
"model": "pixverse-v6",
"prompt": "transform smoothly from a puppy to a cat",
"first_frame_image": "https://example.com/puppy.jpg",
"last_frame_image": "https://example.com/cat.jpg",
"resolution": "540p",
"duration": 5,
"motion_mode": "normal"
}
Fall 4: Multi-Referenzbild-Fusion
{
"model": "pixverse-v6",
"prompt": "A girl wearing the outfit from image 2, holding the cat from image 3",
"img_references": [
"https://example.com/character.jpg",
"https://example.com/outfit.jpg",
"https://example.com/cat.jpg"
],
"size": "9:16",
"resolution": "720p",
"duration": 5
}
Fall 5: Video-Verlängerung
{
"model": "pixverse-v6",
"prompt": "the character now walks into a forest",
"extend_from_task_id": "task_01JWXXXXXXXXXXXX",
"resolution": "540p",
"duration": 5
}