Video- und Audioerzeugung
Libre WebUI 0.18.0 erweitert die Erzeugung über Bilder hinaus: Anbieter-Plugins können Video- und Audiofunktionen deklarieren, und alle erzeugten Bilder, Videos, Sprach- und Klangdateien gelangen in eine benutzerspezifische Galerie.
Die Erzeugung steht allen authentifizierten Benutzern offen. Die Galerie ist streng je Benutzer getrennt: Lesen, Inhaltsabruf und Löschen gelten nur für das angemeldete Konto.
Plugin-Funktionsblöcke
Eine Definition deklariert jede Medienfunktion separat:
"capabilities": {
"image": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"tts": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"audio": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"video": { "endpoint": "...", "model_map": ["..."], "config": { ... } }
}
Jeder Block besitzt endpoint, die Ersatzliste model_map, optional
models_endpoint für Live-Erkennung und config mit funktionsspezifischen Optionen:
Bildgrößen und Seitenverhältnisse, Stimmen und Formate, Videoauflösung, Verhältnis
und Dauer. Ein Videoanbieter kann außerdem cancel_endpoint nach Prompt-ID und
cancel_method deklarieren; Libre leitet Abbruchunterstützung nicht aus einem
gewöhnlichen Endpunkt ab.
Zwei Audiofunktionen landen beide als Audio in der Galerie:
ttsist Sprache: Text wird mit einer Stimme vorgelesen.audioist Klang: Ein Modell erzeugt Audio aus einem Prompt.
OpenRouter (plugins/openrouter.json) ist derzeit das einzige integrierte Plugin mit
video und audio. Bei models_endpoint wird die Liste im normalen Zyklus
aktualisiert (siehe Umgebungsvariablen); model_map
bleibt Ersatz.
Medien erzeugen
Öffne Imagine (/gallery). Der Kopf bietet Erzeugen für Bilder (bei
Aktivierung) sowie Video- und Audio-Panels.
Sprach- und Klangerzeugung ist synchron: Anfrage, Speicherung und fertiges Ergebnis. Abbrechen beendet Browser- und ausgehende Anbieteranfrage; ein abgebrochenes Ergebnis wird nicht gespeichert. Bilder folgen demselben Trennungsabbruchvertrag.
Für akzeptierte ComfyUI-Abläufe sendet Libre Abbruch und Warteschlangenlöschung nach
Prompt-ID und wartet bis zu drei Sekunden. Es ruft nie die unbeschränkte
Unterbrechung auf, die andere Benutzer stoppen könnte. Aktuelle Versionen bieten
/api/jobs/:promptId/cancel. Alte Versionen können den exakten Warteschlangeneintrag
entfernen, aber laufende Abläufe nicht sicher stoppen; aktualisiere ComfyUI.
TTS-Plugins können Stimmenklonen deklarieren. Das Audio-Panel zeigt Referenzupload und bei Bedarf ein exaktes Transkript. Libre WebUI validiert Typ und Größe, hält den Upload im Speicher und sendet nur an den ausgewählten Anbieter. Nur erzeugte Sprache gelangt in die Galerie.
Ein Klon kann als benannte, wiederverwendbare Stimme für dasselbe Plugin und Modell gespeichert werden. Das erfordert eine eigene Speichereinwilligung. Referenz und Transkript werden in einem benutzereigenen Profil verschlüsselt; erzeugte Sprache dient nicht als Referenz. Profile werden unter Einstellungen → Text-zu-Sprache ausgewählt oder dauerhaft gelöscht. Der Anbieter erhält die gespeicherte Referenz bei jeder Erzeugung erneut. Das Profil ist an genehmigtes Routing gebunden; bei Definitions- oder Endpunktänderung musst du es für das neue Ziel neu erstellen. Verwende nur Aufnahmen mit Einwilligung zum Klonen und Speichern.
Stimmprofile fehlen bewusst im allgemeinen Datenexport, weil sie biometrisches
Quellmaterial enthalten. Sichere verschlüsselte Datenbank und ENCRYPTION_KEY
gemeinsam oder erstelle Profile aus den Originalaufnahmen neu.
Lebenszyklus von Videojobs
Videoerzeugung ist asynchron. POST /api/media/video/generate gibt 202 mit einem
Job zurück, der pending, in_progress und schließlich completed oder failed
durchläuft.
- Nach Validierung wird die Einreichung von der Browserantwort getrennt. Libre speichert die Anbieter-ID sofort, auch wenn Panel oder Verbindung schließen.
GET /api/media/video/jobslistet nur gespeicherte Handles des authentifizierten Benutzers; das Panel lädt bis zu 100 aktive. Ein ausstehender Job kann nach Navigation, Aktualisierung oder Trennung wieder geöffnet werden.- Ein dauerhafter Job
media.video.resume.v1fragt den Anbieter ab und lädt das Ergebnis auch bei geschlossenem Panel. Einzelmodus nutzt den eingebetteten Worker, Teammodus den externen. Leases, begrenzte Wiederholungen, Akteursprüfung und bedingter Abschluss erlauben Wiederaufnahme nach Prozessausfall ohne Duplikate. Bestehende Resume-/GET-Endpunkte bleiben Kompatibilitäts- und Statusgrenzen. - Nicht weiter warten beendet nur den aktuellen Status-/Downloadtransport. Job abbrechen erscheint nur bei deklariertem Abbruch-Endpunkt. Nach bestätigtem Anbieterabbruch löscht Libre das lokale Handle.
- Das Backend lädt fertige Videos (200 MB, keine HTTP-Umleitungen) in die Galerie.
- Der Datensatz speichert Plugin, Modell, Optionen, Status und Prompt (verschlüsselt). Abgeschlossene/fehlgeschlagene Datensätze über 30 Tage werden entfernt; ausstehende Handles verfallen dadurch nicht.
- Endzustände benachrichtigen: media-ready bei Erfolg und media-failed bei Anbieterfehler, jeweils mit Galerielink, dedupliziert und über Eingang/Webhooks.
Bildbearbeitung und Inpainting
Galeriebilder erhalten Bild bearbeiten, wenn ein fähiges Modell konfiguriert ist.
Der Editor malt eine Maske: markierte Regionen werden neu erzeugt, eine unberührte
Leinwand bearbeitet das ganze Bild; zusätzliche Referenzen sind bei mehreren
Eingaben möglich. Das OpenAI-kompatible Multipart-Verfahren verlangt
edit_endpoint; optional gelten supports_mask, max_reference_images,
edit_mime_types und max_edit_image_bytes (im integrierten OpenAI-Manifest alle
deklariert).
Jede Eingabe wird vor ausgehenden Bytes geprüft: MIME, Magic Bytes (PNG, JPEG, WebP) und 10 MiB pro Bild. Masken müssen PNG sein, weil nur PNG den Alpha-Kanal enthält. Ergebnisse werden mit Quellobjekt, Referenzzahl und Maskennutzung gespeichert. Bearbeitungen werden wie Erzeugungen gemessen.
Gemeinsame Galerie
Die Galerie mischt alle Medientypen nach Erstellungszeit mit Filtern Alle,
Bilder, Videos und Audio. Video/Audio spielen inline, Bilder öffnen im
Viewer, alles kann geladen oder gelöscht werden. Administratoren können über
GALLERY_RETENTION_DAYS automatische Aufbewahrung aktivieren; der Scheduler löscht
ältere Medien im selben dauerhaften Zyklus. Nicht gesetzt (Standard) bedeutet
Aufbewahrung bis zum Löschen durch den Eigentümer.
Speicherung und Auslieferung sind bewusst konservativ:
- Medien liegen verschlüsselt in der Anwendungsdatenbank unter
DATA_DIR, nicht als lose Dateien. Sichere Datenbank undENCRYPTION_KEYgemeinsam. - API-Antworten betten keine Nutzlast ein; Einträge verweisen auf individuelle URLs.
- Ausgelieferter Inhalt muss MIME-Liste und gespeichertem Typ entsprechen, ist auf
200 MB begrenzt und trägt
X-Content-Type-Options: nosniffsowie eine isolierendeContent-Security-Policy.
Alte Bildendpunkte und das Erzeugungspanel funktionieren unverändert und schreiben in dieselbe Galerie.
Rate-Limits
Die Medien-API ist je Client begrenzt:
| Vorgang | Limit |
|---|---|
| Erzeugung (Video, Sprache, Klang) | 10 Anfragen pro Minute |
| Videojob-Abfrage | 60 Anfragen pro Minute |
| Galerie, Inhalt und Löschen | 120 Anfragen pro Minute |
Die 30-Sekunden-Abfrage bleibt deutlich unter dem Budget.
Messung und Datenschutz
Medienaufrufe werden in der Administrator- Nutzungsanalyse gemessen: Plugin, Modell, Status, Dauer und Einheiten. Prompts und Inhalte stehen nie in Nutzungsdatensätzen. Medien und Video-Prompt existieren nur in verschlüsselten Benutzerzeilen.
Der konfigurierte Anbieter erhält wie beim Chat den Prompt und liefert Inhalt; Preise, Aufbewahrung und Inhaltsrichtlinien gelten.