feat(ui): add setting to toggle version name display on model cards (#916)

This commit is contained in:
Will Miao
2026-04-29 20:04:40 +08:00
parent f3268a6179
commit 25605c5e78
16 changed files with 56 additions and 1 deletions

View File

@@ -428,6 +428,8 @@
"hover": "Bei Hover anzeigen" "hover": "Bei Hover anzeigen"
}, },
"cardInfoDisplayHelp": "Wählen Sie, wann Modellinformationen und Aktionsschaltflächen angezeigt werden sollen", "cardInfoDisplayHelp": "Wählen Sie, wann Modellinformationen und Aktionsschaltflächen angezeigt werden sollen",
"showVersionOnCard": "Version auf Karte anzeigen",
"showVersionOnCardHelp": "Den Versionsnamen auf Modellkarten ein- oder ausblenden",
"modelCardFooterAction": "Aktion der Modellkarten-Schaltfläche", "modelCardFooterAction": "Aktion der Modellkarten-Schaltfläche",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "Beispielbilder öffnen", "exampleImages": "Beispielbilder öffnen",

View File

@@ -428,6 +428,8 @@
"hover": "Reveal on Hover" "hover": "Reveal on Hover"
}, },
"cardInfoDisplayHelp": "Choose when to display model information and action buttons", "cardInfoDisplayHelp": "Choose when to display model information and action buttons",
"showVersionOnCard": "Show Version on Card",
"showVersionOnCardHelp": "Show or hide the version name on model cards",
"modelCardFooterAction": "Model Card Button Action", "modelCardFooterAction": "Model Card Button Action",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "Open Example Images", "exampleImages": "Open Example Images",

View File

@@ -428,6 +428,8 @@
"hover": "Mostrar al pasar el ratón" "hover": "Mostrar al pasar el ratón"
}, },
"cardInfoDisplayHelp": "Elige cuándo mostrar información del modelo y botones de acción", "cardInfoDisplayHelp": "Elige cuándo mostrar información del modelo y botones de acción",
"showVersionOnCard": "Mostrar versión en la tarjeta",
"showVersionOnCardHelp": "Mostrar u ocultar el nombre de versión en las tarjetas de modelo",
"modelCardFooterAction": "Acción del botón de tarjeta de modelo", "modelCardFooterAction": "Acción del botón de tarjeta de modelo",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "Abrir imágenes de ejemplo", "exampleImages": "Abrir imágenes de ejemplo",

View File

@@ -428,6 +428,8 @@
"hover": "Révéler au survol" "hover": "Révéler au survol"
}, },
"cardInfoDisplayHelp": "Choisissez quand afficher les informations du modèle et les boutons d'action", "cardInfoDisplayHelp": "Choisissez quand afficher les informations du modèle et les boutons d'action",
"showVersionOnCard": "Afficher la version sur la carte",
"showVersionOnCardHelp": "Afficher ou masquer le nom de version sur les cartes de modèle",
"modelCardFooterAction": "Action du bouton de carte de modèle", "modelCardFooterAction": "Action du bouton de carte de modèle",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "Ouvrir les images d'exemple", "exampleImages": "Ouvrir les images d'exemple",

View File

@@ -428,6 +428,8 @@
"hover": "חשוף בריחוף" "hover": "חשוף בריחוף"
}, },
"cardInfoDisplayHelp": "בחר מתי להציג מידע על המודל וכפתורי פעולה", "cardInfoDisplayHelp": "בחר מתי להציג מידע על המודל וכפתורי פעולה",
"showVersionOnCard": "הצג גרסה בכרטיס",
"showVersionOnCardHelp": "הצג או הסתר את שם הגרסה בכרטיסי המודל",
"modelCardFooterAction": "פעולת כפתור כרטיס מודל", "modelCardFooterAction": "פעולת כפתור כרטיס מודל",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "פתח תמונות דוגמה", "exampleImages": "פתח תמונות דוגמה",

View File

@@ -428,6 +428,8 @@
"hover": "ホバー時に表示" "hover": "ホバー時に表示"
}, },
"cardInfoDisplayHelp": "モデル情報とアクションボタンの表示タイミングを選択", "cardInfoDisplayHelp": "モデル情報とアクションボタンの表示タイミングを選択",
"showVersionOnCard": "カードにバージョンを表示",
"showVersionOnCardHelp": "モデルカード上のバージョン名の表示/非表示を切り替えます",
"modelCardFooterAction": "モデルカードボタンのアクション", "modelCardFooterAction": "モデルカードボタンのアクション",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "例画像を開く", "exampleImages": "例画像を開く",

View File

@@ -428,6 +428,8 @@
"hover": "호버 시 표시" "hover": "호버 시 표시"
}, },
"cardInfoDisplayHelp": "모델 정보 및 액션 버튼을 언제 표시할지 선택하세요", "cardInfoDisplayHelp": "모델 정보 및 액션 버튼을 언제 표시할지 선택하세요",
"showVersionOnCard": "카드에 버전 표시",
"showVersionOnCardHelp": "모델 카드에 버전 이름 표시 여부를 전환합니다",
"modelCardFooterAction": "모델 카드 버튼 동작", "modelCardFooterAction": "모델 카드 버튼 동작",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "예시 이미지 열기", "exampleImages": "예시 이미지 열기",

View File

@@ -428,6 +428,8 @@
"hover": "Показать при наведении" "hover": "Показать при наведении"
}, },
"cardInfoDisplayHelp": "Выберите когда отображать информацию о модели и кнопки действий", "cardInfoDisplayHelp": "Выберите когда отображать информацию о модели и кнопки действий",
"showVersionOnCard": "Показывать версию на карточке",
"showVersionOnCardHelp": "Показать или скрыть название версии на карточках моделей",
"modelCardFooterAction": "Действие кнопки карточки модели", "modelCardFooterAction": "Действие кнопки карточки модели",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "Открыть примеры изображений", "exampleImages": "Открыть примеры изображений",

View File

@@ -428,6 +428,8 @@
"hover": "悬停时显示" "hover": "悬停时显示"
}, },
"cardInfoDisplayHelp": "选择何时显示模型信息和操作按钮", "cardInfoDisplayHelp": "选择何时显示模型信息和操作按钮",
"showVersionOnCard": "在卡片上显示版本",
"showVersionOnCardHelp": "在模型卡片上显示或隐藏版本名称",
"modelCardFooterAction": "模型卡片按钮操作", "modelCardFooterAction": "模型卡片按钮操作",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "打开示例图片", "exampleImages": "打开示例图片",

View File

@@ -428,6 +428,8 @@
"hover": "滑鼠懸停顯示" "hover": "滑鼠懸停顯示"
}, },
"cardInfoDisplayHelp": "選擇何時顯示模型資訊與操作按鈕", "cardInfoDisplayHelp": "選擇何時顯示模型資訊與操作按鈕",
"showVersionOnCard": "在卡片上顯示版本",
"showVersionOnCardHelp": "在模型卡片上顯示或隱藏版本名稱",
"modelCardFooterAction": "模型卡片按鈕操作", "modelCardFooterAction": "模型卡片按鈕操作",
"modelCardFooterActionOptions": { "modelCardFooterActionOptions": {
"exampleImages": "開啟範例圖片", "exampleImages": "開啟範例圖片",

View File

@@ -97,6 +97,7 @@ DEFAULT_SETTINGS: Dict[str, Any] = {
"priority_tags": DEFAULT_PRIORITY_TAG_CONFIG.copy(), "priority_tags": DEFAULT_PRIORITY_TAG_CONFIG.copy(),
"model_name_display": "model_name", "model_name_display": "model_name",
"model_card_footer_action": "replace_preview", "model_card_footer_action": "replace_preview",
"show_version_on_card": True,
"update_flag_strategy": "same_base", "update_flag_strategy": "same_base",
"auto_organize_exclusions": [], "auto_organize_exclusions": [],
"metadata_refresh_skip_paths": [], "metadata_refresh_skip_paths": [],

View File

@@ -507,6 +507,11 @@
font-size: 0.75em; font-size: 0.75em;
} }
/* Hide civitai version name when setting is disabled */
body.hide-card-version .civitai-version {
display: none;
}
/* Prevent text selection on cards and interactive elements */ /* Prevent text selection on cards and interactive elements */
.model-card, .model-card,
.model-card *, .model-card *,

View File

@@ -645,7 +645,7 @@ export function createModelCard(model, modelType) {
<div class="model-info"> <div class="model-info">
<span class="model-name" title="${getDisplayName(model).replace(/"/g, '&quot;')}">${getDisplayName(model)}</span> <span class="model-name" title="${getDisplayName(model).replace(/"/g, '&quot;')}">${getDisplayName(model)}</span>
<div> <div>
${model.civitai?.name ? `<span class="version-name">${model.civitai.name}</span>` : ''} ${model.civitai?.name ? `<span class="version-name civitai-version">${model.civitai.name}</span>` : ''}
${hasUsageCount ? `<span class="version-name" title="${translate('modelCard.usage.timesUsed', {}, 'Times used')}">${model.usage_count}×</span>` : ''} ${hasUsageCount ? `<span class="version-name" title="${translate('modelCard.usage.timesUsed', {}, 'Times used')}">${model.usage_count}×</span>` : ''}
</div> </div>
</div> </div>

View File

@@ -879,6 +879,12 @@ export class SettingsManager {
modelCardFooterActionSelect.value = state.global.settings.model_card_footer_action || 'example_images'; modelCardFooterActionSelect.value = state.global.settings.model_card_footer_action || 'example_images';
} }
// Set show version on card
const showVersionOnCardCheckbox = document.getElementById('showVersionOnCard');
if (showVersionOnCardCheckbox) {
showVersionOnCardCheckbox.checked = state.global.settings.show_version_on_card !== false;
}
// Set model name display setting // Set model name display setting
const modelNameDisplaySelect = document.getElementById('modelNameDisplay'); const modelNameDisplaySelect = document.getElementById('modelNameDisplay');
if (modelNameDisplaySelect) { if (modelNameDisplaySelect) {
@@ -2890,6 +2896,10 @@ export class SettingsManager {
const cardInfoDisplay = state.global.settings.card_info_display || 'always'; const cardInfoDisplay = state.global.settings.card_info_display || 'always';
document.body.classList.toggle('hover-reveal', cardInfoDisplay === 'hover'); document.body.classList.toggle('hover-reveal', cardInfoDisplay === 'hover');
// Apply show version on card setting
const showVersionOnCard = state.global.settings.show_version_on_card !== false;
document.body.classList.toggle('hide-card-version', !showVersionOnCard);
const shouldShowSidebar = state.global.settings.show_folder_sidebar !== false; const shouldShowSidebar = state.global.settings.show_folder_sidebar !== false;
if (sidebarManager && typeof sidebarManager.setSidebarEnabled === 'function') { if (sidebarManager && typeof sidebarManager.setSidebarEnabled === 'function') {
sidebarManager.setSidebarEnabled(shouldShowSidebar).catch((error) => { sidebarManager.setSidebarEnabled(shouldShowSidebar).catch((error) => {

View File

@@ -38,6 +38,7 @@ const DEFAULT_SETTINGS_BASE = Object.freeze({
show_folder_sidebar: true, show_folder_sidebar: true,
model_name_display: 'model_name', model_name_display: 'model_name',
model_card_footer_action: 'example_images', model_card_footer_action: 'example_images',
show_version_on_card: true,
include_trigger_words: false, include_trigger_words: false,
compact_mode: false, compact_mode: false,
priority_tags: { ...DEFAULT_PRIORITY_TAG_CONFIG }, priority_tags: { ...DEFAULT_PRIORITY_TAG_CONFIG },

View File

@@ -554,6 +554,24 @@
</div> </div>
</div> </div>
<div class="setting-item">
<div class="setting-row">
<div class="setting-info">
<label for="showVersionOnCard">
{{ t('settings.layoutSettings.showVersionOnCard') }}
<i class="fas fa-info-circle info-icon" data-tooltip="{{ t('settings.layoutSettings.showVersionOnCardHelp') }}"></i>
</label>
</div>
<div class="setting-control">
<label class="toggle-switch">
<input type="checkbox" id="showVersionOnCard"
onchange="settingsManager.saveToggleSetting('showVersionOnCard', 'show_version_on_card')">
<span class="toggle-slider"></span>
</label>
</div>
</div>
</div>
<div class="setting-item"> <div class="setting-item">
<div class="setting-row"> <div class="setting-row">
<div class="setting-info"> <div class="setting-info">