mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-25 15:15:44 -03:00
feat: add video support to model version delete preview
- Extend CSS to style video elements in delete previews - Add video rendering logic for model version previews - Use consistent placeholder image for missing previews - Maintain existing image preview functionality while adding video support This allows users to see video previews when deleting model versions, improving the user experience for video-based models.
This commit is contained in:
@@ -315,7 +315,8 @@ button:disabled,
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.delete-preview img {
|
.delete-preview img,
|
||||||
|
.delete-preview video {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
max-height: 150px;
|
max-height: 150px;
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { state } from '../../state/index.js';
|
|||||||
import { formatFileSize } from './utils.js';
|
import { formatFileSize } from './utils.js';
|
||||||
|
|
||||||
const VIDEO_EXTENSIONS = ['.mp4', '.webm', '.mov', '.mkv'];
|
const VIDEO_EXTENSIONS = ['.mp4', '.webm', '.mov', '.mkv'];
|
||||||
|
const PREVIEW_PLACEHOLDER_URL = '/loras_static/images/no-preview.png';
|
||||||
|
|
||||||
function buildCivitaiVersionUrl(modelId, versionId) {
|
function buildCivitaiVersionUrl(modelId, versionId) {
|
||||||
if (modelId == null || versionId == null) {
|
if (modelId == null || versionId == null) {
|
||||||
@@ -265,6 +266,25 @@ function renderMediaMarkup(version) {
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function renderDeletePreview(version, versionName) {
|
||||||
|
const previewUrl = version?.previewUrl;
|
||||||
|
if (previewUrl && isVideoUrl(previewUrl)) {
|
||||||
|
return `
|
||||||
|
<video
|
||||||
|
src="${escapeHtml(previewUrl)}"
|
||||||
|
controls
|
||||||
|
muted
|
||||||
|
loop
|
||||||
|
playsinline
|
||||||
|
preload="metadata"
|
||||||
|
></video>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const imageUrl = previewUrl || PREVIEW_PLACEHOLDER_URL;
|
||||||
|
return `<img src="${escapeHtml(imageUrl)}" alt="${escapeHtml(versionName)}" onerror="this.src='${PREVIEW_PLACEHOLDER_URL}'">`;
|
||||||
|
}
|
||||||
|
|
||||||
function renderRow(version, options) {
|
function renderRow(version, options) {
|
||||||
const { latestLibraryVersionId, currentVersionId, modelId: parentModelId } = options;
|
const { latestLibraryVersionId, currentVersionId, modelId: parentModelId } = options;
|
||||||
const isCurrent = currentVersionId && version.versionId === currentVersionId;
|
const isCurrent = currentVersionId && version.versionId === currentVersionId;
|
||||||
@@ -796,9 +816,8 @@ function render(record) {
|
|||||||
const versionName =
|
const versionName =
|
||||||
version.name ||
|
version.name ||
|
||||||
translate('modals.model.versions.labels.unnamed', {}, 'Untitled Version');
|
translate('modals.model.versions.labels.unnamed', {}, 'Untitled Version');
|
||||||
const previewUrl =
|
|
||||||
version.previewUrl || '/loras_static/images/no-preview.png';
|
|
||||||
const metaMarkup = buildMetaMarkup(version);
|
const metaMarkup = buildMetaMarkup(version);
|
||||||
|
const previewMarkup = renderDeletePreview(version, versionName);
|
||||||
|
|
||||||
const modalElement = modalRecord.element;
|
const modalElement = modalRecord.element;
|
||||||
const originalMarkup = modalElement.innerHTML;
|
const originalMarkup = modalElement.innerHTML;
|
||||||
@@ -809,7 +828,7 @@ function render(record) {
|
|||||||
<p class="delete-message">${escapeHtml(confirmMessage)}</p>
|
<p class="delete-message">${escapeHtml(confirmMessage)}</p>
|
||||||
<div class="delete-model-info">
|
<div class="delete-model-info">
|
||||||
<div class="delete-preview">
|
<div class="delete-preview">
|
||||||
<img src="${escapeHtml(previewUrl)}" alt="${escapeHtml(versionName)}" onerror="this.src='/loras_static/images/no-preview.png'">
|
${previewMarkup}
|
||||||
</div>
|
</div>
|
||||||
<div class="delete-info">
|
<div class="delete-info">
|
||||||
<h3>${escapeHtml(versionName)}</h3>
|
<h3>${escapeHtml(versionName)}</h3>
|
||||||
|
|||||||
Reference in New Issue
Block a user