Generování videa a zvuku
Libre WebUI 0.18.0 rozšiřuje generování za obrázky. Pluginy poskytovatelů mohou deklarovat funkce videa a zvuku a vše vytvořené — obrázky, videa, řeč i zvuk — končí v jedné galerii médií pro každého uživatele.
Generování je dostupné všem ověřeným uživatelům. Galerie je přísně oddělená: každé čtení, načtení obsahu a odstranění je omezeno na přihlášený účet.
Bloky funkcí pluginu
Definice pluginu deklaruje každou mediální funkci ve vlastním bloku:
"capabilities": {
"image": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"tts": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"audio": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"video": { "endpoint": "...", "model_map": ["..."], "config": { ... } }
}
Každý blok má endpoint, záložní seznam model_map, volitelný models_endpoint pro
živé hledání modelů a objekt config s možnostmi funkce: velikosti a poměry stran
obrázků, hlasy a formáty řeči, rozlišení, poměry a délky videa. Poskytovatel videa může
také deklarovat cancel_endpoint a cancel_method pro ID promptu. Libre neodvozuje
podporu rušení z běžného koncového bodu generování.
Existují dvě zvukové funkce a obě skončí v galerii jako zvuk:
ttsje řeč: text se předčítá vybraným hlasem.audioje zvuk: model vytvoří zvukový obsah z promptu.
OpenRouter (plugins/openrouter.json) je nyní jediný vestavěný plugin deklarující
bloky video a audio. Když existuje models_endpoint, seznam modelů se obnovuje v
běžném cyklu hledání (TTL popisují Proměnné prostředí);
model_map zůstává zálohou.
Generování médií
Otevřete Imagine (/gallery). Záhlaví nabízí Generate pro obrázky (pokud je
generování zapnuto v Settings) a panely Video a Audio.
Generování řeči a zvuku je synchronní: požadavek proběhne, výsledek se uloží do galerie a odpověď vrátí hotovou položku. Cancel zruší požadavek prohlížeče i odchozí požadavek Libre; zrušený výsledek se neuloží. Obrázky používají stejnou smlouvu rušení při odpojení.
U přijatého pracovního postupu ComfyUI odešle Libre jak zrušení běžící úlohy podle ID
promptu, tak odstranění položky fronty, a před uvolněním požadavku čeká nejvýše tři
sekundy na ukončení. Nikdy nevolá neomezené přerušení ComfyUI, které by mohlo zastavit
práci jiného uživatele. Aktuální vydání ComfyUI nabízejí pro běžící postup
/api/jobs/:promptId/cancel. Ve starém vydání bez této operace může Libre odstranit
přesnou čekající položku, ale nemůže bezpečně zastavit již běžící postup. Pro úplnou
smlouvu rušení ComfyUI upgradujte.
Pluginy TTS mohou deklarovat klonování hlasu. Panel Audio pak zobrazí nahrání referenčního zvuku a případně pole přesného přepisu. Libre WebUI ověří typ a velikost podle manifestu, drží nahrávku v paměti a předá ji jen vybranému poskytovateli. Do galerie se uloží pouze vytvořená řeč.
Klon lze volitelně uložit jako pojmenovaný opakovaně použitelný hlas pro stejný plugin a model. Uložení vyžaduje zvláštní potvrzení souhlasu. Libre WebUI šifruje původní referenci a přepis v profilu vlastněném uživatelem; nepoužívá jako referenci generovanou řeč. Profily lze vybrat nebo trvale smazat v Settings → Text-to-Speech. Poskytovatel obdrží uloženou referenci při každé dávce řeči. Profil je svázán se schváleným směrováním; při změně definice či koncového bodu ho vytvořte znovu a odsouhlaste novou destinaci. Používejte jen nahrávky mluvčích, kteří souhlasili s klonováním i uložením.
Hlasové profily jsou z obecného exportu záměrně vynechány, protože obsahují biometrický
zdroj. Pro obnovu po havárii zálohujte šifrovanou databázi spolu s ENCRYPTION_KEY,
jinak profily vytvořte z původních nahrávek se souhlasem.
Životní cyklus úlohy videa
Generování videa je asynchronní. Odeslání úlohy (POST /api/media/video/generate)
vrátí 202 se záznamem a úloha prochází pending, in_progress a nakonec
completed nebo failed.
- Po ověření se odeslání oddělí od odpovědi prohlížeče. Libre uloží ID úlohy poskytovatele ihned po přijetí, i když se panel nebo síť při odpovědi zavře.
GET /api/media/video/jobsuvádí jen uložené odkazy ověřeného uživatele. Panel při otevření načte až 100 aktivních odkazů. Čekající úlohu lze znovu otevřít po navigaci, obnovení nebo odpojení.- Trvalá úloha
media.video.resume.v1dotazuje poskytovatele a stáhne dokončený výsledek i při zavřeném panelu. Sólový režim používá vestavěný worker, týmový externí. Lease, omezená opakování, nové ověření aktéra a podmíněné dokončení umožní jinému workeru převzít úlohu po zániku procesu bez duplicitního řádku galerie či odkazu blob. Stávající resume/GET koncové body zůstávají hranicemi kompatibility a stavu; rozhraní je může dál dotazovat pro zobrazení. - Zavření panelu nebo Stop waiting zruší jen aktuální přenos stavu či stahování. Cancel job u poskytovatele se zobrazí pouze při výslovně deklarovaném koncovém bodu zrušení podle ID. Po potvrzeném zrušení Libre odstraní místní odkaz.
- Po dokončení backend stáhne video (limit 200 MB, bez následování přesměrování HTTP) a uloží ho.
- Záznam úlohy ukládá plugin, model, možnosti, stav a prompt (šifrovaný). Dokončené a neúspěšné záznamy starší 30 dní se příležitostně odstraní; čekající odkazy tím nevyprší.
- Koncové stavy oznamují: dokončené video vytvoří media-ready, selhání poskytovatele media-failed. Obě odkazují na galerii, deduplikují se podle úlohy a doručí do schránky aplikace i přihlášených webhooků.
Úpravy obrázků a inpainting
Obrázky v galerii získají akci Edit image, pokud je nastaven model s úpravami.
Editor maluje masku přímo na obrázek — označené oblasti model překreslí, prázdná maska
upraví celý obrázek — a může přiložit další referenční obrázky pro kompozici, pokud
model přijímá více vstupů. Úpravy používají multipart smlouvu kompatibilní s OpenAI.
Plugin se zapojí deklarací edit_endpoint v config funkce obrázků a volitelných limitů
supports_mask, max_reference_images, edit_mime_types, max_edit_image_bytes.
Vestavěný manifest OpenAI deklaruje všechny.
Každý vstup se ověří před opuštěním procesu: deklarovaný MIME, zjištěné magic bytes (PNG, JPEG nebo WebP) a limit 10 MiB na obrázek. Masky musí být PNG, protože jen PNG obsahuje alfa kanál označující oblasti k přemalování. Výsledky se uloží do galerie s metadaty původu: zdrojovou položkou, počtem referencí a použitím masky. Úpravy se měří stejně jako generování.
Sjednocená galerie
Galerie řadí všechny druhy médií podle vytvoření a nabízí filtry All, Images,
Videos a Audio. Video a zvuk se přehrávají přímo, obrázky se otevřou v lightboxu
a každou položku lze stáhnout či smazat. Správci mohou zapnout automatické uchovávání
pomocí GALLERY_RETENTION_DAYS: plánovač maže starší média stejným trvalým postupem
jako ruční odstranění. Nenastaveno (výchozí) uchová média do smazání vlastníkem.
Úložiště a podávání jsou záměrně konzervativní:
- Média se ukládají zašifrovaně v aplikační databázi (pod
DATA_DIR), ne jako volné soubory. Zálohujte databázi aENCRYPTION_KEYspolečně. - Odpovědi API nikdy nevkládají mediální data; položky odkazují na vlastní URL obsahu.
- Podávaný obsah musí odpovídat povoleným MIME pro druh a uloženému typu, má limit
200 MB a hlavičky
X-Content-Type-Options: nosniffa sandboxujícíContent-Security-Policy.
Předchozí koncové body pouze pro obrázky a panel generování fungují beze změny a zapisují do stejné galerie.
Limity rychlosti
Mediální API omezuje jednotlivé klienty:
| Operace | Limit |
|---|---|
| Generování (video, řeč, zvuk) | 10 požadavků za minutu |
| Dotazování úloh videa | 60 požadavků za minutu |
| Seznam, obsah a mazání galerie | 120 požadavků za minutu |
Dotazování rozhraní po 30 sekundách je hluboko pod limitem.
Měření a soukromí
Volání médií se měří ve správcovské analýze používání jako jiná odchozí volání: plugin, model, stav, doba a jednotky. Prompty ani vytvořený obsah se do záznamů používání nezapisují. Média a prompt úlohy videa existují jen v šifrovaných řádcích uživatele.
Stejně jako u chatu obdrží nakonfigurovaný poskytovatel prompt a vrátí obsah. Platí jeho ceny a zásady uchovávání a obsahu.