Zum Hauptinhalt springen

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:

  • tts ist Sprache: Text wird mit einer Stimme vorgelesen.
  • audio ist 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/jobs listet 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.v1 fragt 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 und ENCRYPTION_KEY gemeinsam.
  • 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: nosniff sowie eine isolierende Content-Security-Policy.

Alte Bildendpunkte und das Erzeugungspanel funktionieren unverändert und schreiben in dieselbe Galerie.

Rate-Limits

Die Medien-API ist je Client begrenzt:

VorgangLimit
Erzeugung (Video, Sprache, Klang)10 Anfragen pro Minute
Videojob-Abfrage60 Anfragen pro Minute
Galerie, Inhalt und Löschen120 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.

Verwandte Dokumentation