Mit Video-Upscaling kannst du vorhandene Videos in höhere Auflösungen heben und gleichzeitig die visuelle Qualität verbessern. Das Topaz-Video-Upscale-Modell nutzt KI-basiertes Upscaling, um die Auflösung 2× oder 4× zu erhöhen, oder wendet bei 1× eine Qualitätsverbesserung in der Original-Auflösung an.
Wie es funktioniert
Video-Upscaling nutzt dasselbe asynchrone Queue-System wie die Videogenerierung:
- Queue — Video an
/video/queue mit Modell topaz-video-upscale senden
- Poll —
/video/retrieve mit der zurückgegebenen queue_id aufrufen, bis der Status completed ist
- Complete —
/video/complete aufrufen, um den Job abzuschließen und die Output-URL zu erhalten
Der Server erkennt Dauer, Bildrate und Dimensionen des Input-Videos automatisch aus der hochgeladenen Datei. Du musst diese Werte nicht angeben – die Abrechnung erfolgt anhand der tatsächlichen Videometadaten.
Upscale-Faktoren
upscale_factor | Output-Auflösung | Anwendungsfall |
|---|
1 | Wie Input | Nur Qualitätsverbesserung (Denoising, Sharpening) |
2 (Default) | 2× Input-Dimensionen | Standard-Upscale – 720p-Input wird 1440p-Output |
4 | 4× Input-Dimensionen | Maximales Upscale – 480p-Input wird 1920p-Output |
Der Parameter upscale_factor ersetzt resolution bei Upscale-Modellen. Wird resolution übergeben, gibt es einen Fehler. Das liegt daran, dass die Output-Auflösung von den Input-Dimensionen abhängt – ein 2×-Upscale eines 720p-Videos ergibt etwas anderes als ein 2×-Upscale eines 480p-Videos.
- Formate: MP4, MOV, WebM
- Input-Methoden: HTTPS-URL oder
data:video/...;base64,...-Data-URL
- Max. Dauer: 300 Sekunden (5 Minuten)
API-Nutzung
Upscale-Job in die Queue stellen
curl https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "topaz-video-upscale",
"video_url": "https://example.com/input-video.mp4",
"upscale_factor": 2
}'
import requests
response = requests.post(
"https://api.venice.ai/api/v1/video/queue",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "topaz-video-upscale",
"video_url": "https://example.com/input-video.mp4",
"upscale_factor": 2,
},
)
data = response.json()
queue_id = data["queue_id"]
print(f"Queued: {queue_id}")
const response = await fetch("https://api.venice.ai/api/v1/video/queue", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "topaz-video-upscale",
video_url: "https://example.com/input-video.mp4",
upscale_factor: 2,
}),
});
const { queue_id } = await response.json();
console.log(`Queued: ${queue_id}`);
Die Antwort enthält eine queue_id, um den Job zu verfolgen:
{
"model": "topaz-video-upscale",
"queue_id": "abc123-def456-..."
}
Auf Fertigstellung pollen
curl https://api.venice.ai/api/v1/video/retrieve \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"queue_id": "abc123-def456-..."}'
import time
while True:
result = requests.post(
"https://api.venice.ai/api/v1/video/retrieve",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"queue_id": queue_id},
)
data = result.json()
if data.get("status") == "completed":
print(f"Video URL: {data['url']}")
break
time.sleep(5)
const poll = async (queueId) => {
while (true) {
const res = await fetch("https://api.venice.ai/api/v1/video/retrieve", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ queue_id: queueId }),
});
const data = await res.json();
if (data.status === "completed") {
console.log(`Video URL: ${data.url}`);
return data;
}
await new Promise((r) => setTimeout(r, 5000));
}
};
await poll(queue_id);
Mit Complete abschließen
Nach dem Abruf des Ergebnisses /video/complete aufrufen, um den Job zu finalisieren:
curl https://api.venice.ai/api/v1/video/complete \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"queue_id": "abc123-def456-..."}'
API-Parameter
| Feld | Typ | Pflicht | Beschreibung |
|---|
model | string | Ja | Muss topaz-video-upscale sein |
video_url | string | Ja | Input-Video-URL oder Data-URL. Unterstützte Formate: MP4, MOV, WebM. |
upscale_factor | number | Nein | 1, 2 (Default) oder 4. Steuert den Upscale-Multiplikator. |
Bei Upscale-Modellen nicht verwendete Parameter
Die folgenden Parameter werden bei topaz-video-upscale nicht akzeptiert und führen zu einem Fehler:
| Feld | Grund |
|---|
resolution | Stattdessen upscale_factor verwenden. Die Output-Auflösung hängt von den Input-Dimensionen ab. |
prompt | Upscaling nutzt keine Text-Prompts. Ein leerer String wird automatisch gesetzt. |
Der Parameter duration wird ebenfalls ignoriert – der Server erkennt die Dauer für die Abrechnungsgenauigkeit direkt aus der Videodatei.
Preise
Die Preise basieren auf Dauer, Output-Auflösungs-Tier und Bildrate. Der Output-Auflösungs-Tier ergibt sich aus der Höhe des Input-Videos multipliziert mit dem Upscale-Faktor.
Output-Auflösungs-Tiers
| Tier | Output-Höhe | Pro-Sekunde-Rate |
|---|
| 720p | ≤ 720 px | ~$0,013 |
| 1080p | 721–1080 px | ~$0,025 |
| 4K | > 1080 px | ~$0,10 |
Videos mit Bildraten über 48 fps kosten das 2-fache der Pro-Sekunde-Rate.
Preisbeispiele
| Input | Upscale-Faktor | Output | Dauer | Geschätzte Kosten |
|---|
| 480p, 30fps | 2× | 960p (1080p-Tier) | 10 s | ~$0,25 |
| 720p, 30fps | 2× | 1440p (4K-Tier) | 10 s | ~$1,00 |
| 1080p, 30fps | 2× | 2160p (4K-Tier) | 30 s | ~$3,00 |
| 360p, 24fps | 4× | 1440p (4K-Tier) | 10 s | ~$1,00 |
| 480p, 60fps | 2× | 960p (1080p-Tier) | 10 s | ~$0,50 |
Nutze die Video-Quote-API, um vor dem Einreichen die genauen Kosten zu erhalten.
Quote abrufen
curl https://api.venice.ai/api/v1/video/quote \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "topaz-video-upscale",
"duration": "10",
"input_height": 720
}'
Der Quote-Endpoint akzeptiert input_height, um den Output-Auflösungs-Tier zu schätzen. Das ist optional – wird es weggelassen, geht das Quote von einer konservativen Schätzung aus.
Fehlerbehebung
| Problem | Wahrscheinliche Ursache | Lösung |
|---|
"Use upscale_factor instead of resolution" | resolution wurde im Request übergeben | resolution entfernen und stattdessen upscale_factor verwenden |
| Höhere Kosten als erwartet | Input-Video hat hohe Auflösung oder hohe FPS | Input-Dimensionen über den Quote-Endpoint prüfen. 720p+-Input mit 2×-Upscale landet im 4K-Pricing-Tier. |
| Job dauert lange | Großes oder langes Video | Upscaling ist rechenintensiv. Längere Videos und höhere Upscale-Faktoren brauchen proportional länger. |
"Insufficient balance" | Kontoguthaben zu niedrig | Credits unter venice.ai/settings/api aufladen |