Sari la conținutul principal

Generare video și audio

Libre WebUI 0.18.0 extinde generarea dincolo de imagini. Pluginurile pot declara video și audio, iar toate imaginile, videourile, vocea și sunetul ajung în galeria utilizatorului.

Este disponibilă oricărui utilizator autentificat și toate citirile/ștergerile sunt per cont.

Blocuri de capabilități

"capabilities": {
"image": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"tts": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"audio": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"video": { "endpoint": "...", "model_map": ["..."], "config": { ... } }
}

Fiecare are endpoint, fallback model_map, opțional models_endpoint și config pentru dimensiuni/aspect, voci/formate, rezoluții și durate. Video poate declara cancel_endpoint și cancel_method cu prompt ID; Libre nu deduce anularea din endpoint normal.

  • tts citește text cu voce.
  • audio generează sunet din prompt.

OpenRouter (plugins/openrouter.json) este singurul plugin inclus cu video și audio. Cu models_endpoint, lista se reîmprospătează normal (vezi Variabile de mediu); model_map rămâne fallback.

Generare media

Deschideți Imagine (/gallery): Generate, Video, Audio.

Vocea și sunetul sunt sincron: cerere, salvare, rezultat. Cancel întrerupe browserul și cererea outbound, fără salvare. Imaginile urmează același contract.

Pentru ComfyUI acceptat, Libre trimite anulare job și ștergere coadă după prompt ID și așteaptă până la trei secunde. Nu apelează interrupt global care poate opri alt utilizator. Versiunile curente oferă /api/jobs/:promptId/cancel; cele vechi pot elimina pending, nu opri sigur running workflow. Actualizați ComfyUI.

Pluginurile TTS pot declara clonare. Panelul cere audio de referință și uneori transcriere exactă. Libre validează tip/mărime, ține în memorie și trimite doar furnizorului; numai vocea generată intră în galerie.

Clona se poate salva ca voce numită pentru același plugin/model, cu consimțământ separat. Referința și transcrierea sunt criptate într-un profil al utilizatorului; nu se folosește vocea generată. Profilurile se selectează/șterg în Settings → Text-to-Speech și furnizorul primește referința la fiecare batch. Profilul este legat de routing; la schimbare recreați-l și obțineți consimțământ. Folosiți numai înregistrări consimțite.

Profilurile sunt excluse din export din cauza biometriei. Pentru recovery salvați baza și ENCRYPTION_KEY împreună.

Ciclul jobului video

POST /api/media/video/generate returnează 202, iar jobul trece pending, in_progress, completed/failed.

  • După validare, submit este detașat și provider job ID se persistă chiar dacă se închide panel/rețea.
  • GET /api/media/video/jobs listează numai handles utilizatorului, până la 100 active.
  • Jobul persistent media.video.resume.v1 face polling/download și cu panel închis. Solo folosește worker embedded, team external. Leases, retry, actor revalidation și completion condiționat permit reclaim fără duplicate. Endpointurile resume/GET rămân boundaries.
  • Stop waiting oprește doar transportul. Cancel job apare numai cu endpoint declarat; la confirmare se elimină handle local.
  • Backend descarcă video până la 200 MB, fără redirect, și îl salvează.
  • Recordul are plugin, model, opțiuni, status, prompt criptat. Terminal records peste 30 zile se curăță; pending handles nu expiră.
  • Completed notifică media-ready, failure media-failed, link galerie, deduplicat și livrat inbox/webhooks.

Editare imagini și inpainting

Cu model edit-capable, apare Edit image. Masca pictată se reface; canvas neatins editează tot și se pot atașa referințe. Se folosește contractul multipart OpenAI. Pluginul declară edit_endpoint și opțional supports_mask, max_reference_images, edit_mime_types, max_edit_image_bytes.

Înainte de ieșire se validează MIME, magic bytes PNG/JPEG/WebP și 10 MiB/imagine. Măștile trebuie PNG pentru alpha. Rezultatul salvează provenance, număr referințe și mască.

Galerie unificată

Media este ordonată după creare cu All, Images, Videos, Audio. Video/audio inline, imagini lightbox, fiecare download/delete. GALLERY_RETENTION_DAYS permite retention automat prin același lifecycle; nesetat păstrează până la ștergerea proprietarului.

  • Media criptată în baza sub DATA_DIR, nu fișiere libere. Salvați baza și cheia împreună.
  • API nu încorporează payload; folosește URL per item.
  • Conținutul trebuie să corespundă MIME/type, max 200 MB, cu X-Content-Type-Options: nosniff și Content-Security-Policy sandbox.

Endpointurile vechi de imagini continuă în aceeași galerie.

Rate limits

OperațieLimită
Video/voce/sunet10/minut
Polling video60/minut
Galerie/conținut/ștergere120/minut

Pollul UI la 30 s este în buget.

Măsurare și confidențialitate

Calls sunt măsurate în Usage Analytics: plugin, model, status, durată, unități. Prompturile și conținutul nu intră în records. Media și promptul video există doar în rândurile criptate ale utilizatorului. Furnizorul primește promptul și se aplică pricing, retention și content policies.

Documentație asociată