From c703a263170fbb55504eaf5d77a9ca78e896fe03 Mon Sep 17 00:00:00 2001 From: Dariusz L Date: Fri, 17 Apr 2026 23:14:35 +0200 Subject: [PATCH] Link CivitAI model pages and improve labels Wrap missing file title in a CivitAI link when a URN is available, and construct a modelUrl from URN info. Make model/version labels clickable and highlight them (orange) when linking to CivitAI; otherwise fall back to muted text. In the found-on-CivitAI section, build a display name that includes the version when present, render it as a styled button that opens the CivitAI page, show the model type in muted text, and use expected_filename or fallbacks for downloads. Removed the previous separate "View" link in favor of the unified clickable model label/button. --- web/linker.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/web/linker.js b/web/linker.js index 7716287..115ce71 100644 --- a/web/linker.js +++ b/web/linker.js @@ -1030,17 +1030,20 @@ class LinkerManagerDialog extends ComfyDialog { // Card Header: Filename as headline + node chip html += `
`; // Show URN + CivitAI model name + version name if available - let titleHtml = `${missingFilename.display}`; + const modelUrl = missing.is_urn && missing.urn ? `https://civitai.com/models/${missing.urn.model_id}?modelVersionId=${missing.urn.version_id}` : ''; + const titleContent = `${missingFilename.display}`; + let titleHtml = modelUrl ? `${titleContent}` : titleContent; if (missing.is_urn && missing.civitai_info) { let civitaiLabel = ''; if (missing.civitai_info.model_name) { - civitaiLabel += `"${missing.civitai_info.model_name}"`; + civitaiLabel += `${missing.civitai_info.model_name}`; } if (missing.civitai_info.version_name && missing.civitai_info.version_name !== missing.civitai_info.model_name) { civitaiLabel += ` ${missing.civitai_info.version_name}`; } if (civitaiLabel) { - titleHtml += ` ${civitaiLabel}`; + const versionLabel = modelUrl ? `${civitaiLabel}` : `${civitaiLabel}`; + titleHtml += ` ${versionLabel}`; } } else if (missing.civitai_info && missing.civitai_info.model_name) { titleHtml += ` (${missing.civitai_info.model_name})`; @@ -2017,15 +2020,16 @@ class LinkerManagerDialog extends ComfyDialog { const modelUrl = civitaiResult.url || `https://civitai.com/models/${civitaiResult.model_id || ''}`; // Use expected_filename from URN resolution, or fallback to civitaiResult filename const downloadFilename = missing.civitai_info?.expected_filename || civitaiResult.filename || civitaiResult.name; + // Build display name with version if available + const modelName = missing.civitai_info?.version_name ? `${missing.civitai_info.model_name} v${missing.civitai_info.version_name}` : (civitaiResult.name || 'Model'); html += `
`; html += `Found on CivitAI`; html += `
`; - html += `${civitaiResult.filename || civitaiResult.name} `; - html += `${civitaiResult.type || civitaiResult.name}`; + // Model name as clickable button/link + html += ` `; + html += `${civitaiResult.type || ''}`; html += `
`; html += `
`; - // Link to CivitAI model page - html += `🔗 View`; // Download button - use expected_filename from URN resolution html += `