Создание видео и аудио
Libre WebUI 0.18.0 расширяет генерацию: плагины объявляют видео и аудио, а изображения, видео, речь и звук попадают в отдельную галерею каждого пользователя.
Доступно всем аутентифицированным; чтение, содержимое и удаление строго по аккаунту.
Блоки возможностей
Определение содержит отдельные блоки:
"capabilities": {
"image": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"tts": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"audio": { "endpoint": "...", "model_map": ["..."], "config": { ... } },
"video": { "endpoint": "...", "model_map": ["..."], "config": { ... } }
}
Каждый блок содержит endpoint, резервный список model_map, необязательный models_endpoint для обнаружения моделей и объект config: размеры и пропорции изображений, голоса и форматы речи, разрешения и длительность видео. Провайдер видео может объявить cancel_endpoint и cancel_method для идентификатора промпта; Libre не предполагает поддержку отмены по обычной конечной точке генерации.
Две звуковые возможности:
tts— текст читается голосом.audio— звук генерируется из промпта.
OpenRouter (plugins/openrouter.json) сейчас единственный встроенный плагин с блоками video и audio. При наличии models_endpoint список обновляется в обычном цикле обнаружения (TTL описан в переменных окружения); model_map остаётся резервным списком.
Создание медиа
Откройте Imagine (/gallery). Есть Создать для изображений и панели Видео, Аудио.
Речь/звук синхронны: запрос, сохранение, готовый элемент. Отмена прерывает браузер и исходящий запрос; результат не сохраняется. Изображения так же.
Для принятого ComfyUI Libre отправляет операцию отмены задания и удаление из очереди по ID промпта, ждёт до трёх секунд. Libre никогда не вызывает неограниченную операцию прерывания, способную остановить чужой процесс. Текущие версии имеют /api/jobs/:promptId/cancel. Старые удаляют точную ожидающую позицию, но безопасно не остановят активную; обновите.
TTS может клонировать голос. Панель показывает эталонную аудиозапись и при необходимости точную транскрипцию. Libre проверяет тип и размер по ограничениям манифеста, держит в памяти и отправляет выбранному провайдеру. В галерею только речь.
Клон можно сохранить как именованный профиль голоса для той же модели и плагина после отдельного согласия на хранение. Исходная запись и транскрипт шифруются в профиле пользователя; созданная речь не становится эталоном. Выбирать и удалять профили можно в Настройки → Текст в речь. Провайдер получает сохранённую запись при каждой партии синтеза. Профиль привязан к утверждённому маршруту; после изменения определения плагина или конечной точки создайте его заново. Используйте только записи людей, согласившихся на клонирование и хранение.
Профили исключены из общего экспорта как биометрия. Для аварийного восстановления копируйте базу и ENCRYPTION_KEY, иначе создавайте из согласованных записей.
Жизненный цикл видео
Асинхронно: POST /api/media/video/generate возвращает 202, состояния pending, in_progress, completed/failed.
- Отправка отделяется от браузера после проверки. ID задания провайдера сохраняется сразу даже при закрытии.
GET /api/media/video/jobsпоказывает только сохранённые дескрипторы пользователя; до 100 активных. Можно открыть после перехода, обновления страницы или разрыва соединения.- Долговечное задание
media.video.resume.v1опрашивает провайдера и скачивает результат при закрытом интерфейсе. В solo обработчик работает во встроенном рабочем процессе, а в team — во внешнем. Аренды, ограниченные повторы, повторная проверка исполнителя и условное завершение позволяют другому рабочему процессу продолжить после сбоя без дублирования строки галереи или ссылки на двоичный объект. Существующие конечные точки возобновления и GET остаются границами совместимости и состояния; интерфейс может продолжать опрос для отображения. - Закрытие панели или Перестать ждать прерывает только текущую передачу состояния или загрузку. Отменить задание появляется лишь при явно объявленной конечной точке отмены по ID задания. После подтверждения локальный дескриптор удаляется.
- Серверная часть скачивает видео (предел 200 MB, перенаправления не выполняются) и сохраняет.
- Запись хранит плагин, модель, параметры, состояние и зашифрованный промпт. Записи завершённых и неудачных заданий старше 30 дней удаляются при удобном случае; ожидающие дескрипторы не истекают при этой очистке.
- Конечные состояния создают media-ready или media-failed, ссылаются на галерею, устраняют дубли для задания и доставляются через ящик и вебхуки.
Редактирование и дорисовывание
При настроенной модели, поддерживающей редактирование, появляется Редактировать изображение. Маска: закрашенное перерисовывается, пустая маска редактирует всё; можно прикреплять эталонные изображения. Контракт OpenAI multipart: edit_endpoint, необязательные supports_mask, max_reference_images, edit_mime_types, max_edit_image_bytes (во встроенном манифесте OpenAI объявлены все параметры).
До отправки любых байтов проверяются заявленный MIME, сигнатура PNG/JPEG/WebP и лимит 10 MiB на изображение; маска должна быть PNG из-за альфа-канала. Результат сохраняет сведения о происхождении: исходный элемент, число эталонных изображений и использование маски. Учёт выполняется так же, как для генерации.
Единая галерея
Все типы расположены вместе по времени создания, с фильтрами Все, Изображения, Видео и Аудио. Видео и звук воспроизводятся на месте, изображения открываются в лайтбоксе, каждый элемент можно скачать или удалить. GALLERY_RETENTION_DAYS включает плановую очистку через тот же долговечный цикл удаления; без настройки содержимое хранится до удаления владельцем.
Хранение:
- Мультимедиа хранятся зашифрованными в базе под
DATA_DIR, а не отдельными файлами. Создавайте копию вместе сENCRYPTION_KEY. - Ответы API не встраивают данные, а используют URL содержимого.
- Содержимое должно соответствовать списку разрешённых MIME и сохранённому типу, ограничено 200 MB и отдаётся с
X-Content-Type-Options: nosniffиContent-Security-Policy, помещающей ответ в песочницу.
Прежние конечные точки изображений и панель генерации продолжают работать и записывают в ту же галерею.
Ограничения скорости
| Операция | Ограничение |
|---|---|
| Генерация видео/речи/звука | 10 запросов в минуту |
| Опрос видео | 60 запросов в минуту |
| Список, содержимое, удаление | 120 запросов в минуту |
Опрос интерфейса каждые 30 секунд укладывается в лимит.
Учёт и конфиденциальность
Вызовы учитываются в аналитике: плагин, модель, состояние, длительность и единицы. Промпты и созданное содержимое не записываются в реестр использования. Мультимедиа и промпт видео существуют только в зашифрованных строках пользователя.
Провайдер получает промпт и возвращает содержимое; действуют его цены, правила хранения и политика содержимого.