diff --git a/static/js/components/RecipeModal.js b/static/js/components/RecipeModal.js index a3b5807e..5ba00746 100644 --- a/static/js/components/RecipeModal.js +++ b/static/js/components/RecipeModal.js @@ -1259,7 +1259,7 @@ class RecipeModal { const versionId = checkpoint.id || checkpoint.modelVersionId; const modelName = checkpoint.name || checkpoint.modelName || checkpoint.file_name; - if (modelId || modelName) { + if (modelId || versionId || modelName) { openCivitaiByMetadata(modelId, versionId, modelName); return; } @@ -1317,7 +1317,7 @@ class RecipeModal { const versionId = lora.id || lora.modelVersionId; const modelName = lora.modelName || lora.name || lora.file_name; - if (modelId || modelName) { + if (modelId || versionId || modelName) { openCivitaiByMetadata(modelId, versionId, modelName); return; } diff --git a/static/js/utils/uiHelpers.js b/static/js/utils/uiHelpers.js index 421e3e84..739c274b 100644 --- a/static/js/utils/uiHelpers.js +++ b/static/js/utils/uiHelpers.js @@ -184,14 +184,13 @@ function filterByFolder(folderPath) { } export function openCivitaiByMetadata(civitaiId, versionId, modelName = null) { - if (civitaiId) { - let url = `https://civitai.com/models/${civitaiId}`; - if (versionId) { - url += `?modelVersionId=${versionId}`; - } - window.open(url, '_blank'); + if (versionId) { + // Use model-versions endpoint which auto-redirects to correct model page + window.open(`https://civitai.com/model-versions/${versionId}`, '_blank'); + } else if (civitaiId) { + window.open(`https://civitai.com/models/${civitaiId}`, '_blank'); } else if (modelName) { - // 如果没有ID,尝试使用名称搜索 + // Fallback: search by name window.open(`https://civitai.com/models?query=${encodeURIComponent(modelName)}`, '_blank'); } }