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.
ttscitește text cu voce.audiogenerează 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/jobslistează numai handles utilizatorului, până la 100 active.- Jobul persistent
media.video.resume.v1face 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șiContent-Security-Policysandbox.
Endpointurile vechi de imagini continuă în aceeași galerie.
Rate limits
| Operație | Limită |
|---|---|
| Video/voce/sunet | 10/minut |
| Polling video | 60/minut |
| Galerie/conținut/ștergere | 120/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.