feat(recipes): reconnect suggestions, undo, and base-model family tolerance

Enhance the deleted-LoRA reconnect flow in the recipe modal:

- Suggest local reconnect candidates when the panel opens, ranked by
  identity (same hash / same CivitAI version) then filename/name
  similarity, with a hard filter on confident base-model mismatches;
  the input gets a Combobox backed by the same endpoint as you type.
- Snapshot the pre-reconnect entry and offer a permanent restore:
  reconnected entries show an undo icon at the right end of the info
  row, with the original filename in the tooltip.
- Relax the manual reconnect base-model guard to a three-tier check:
  exact/unknown labels pass silently, same-architecture families
  (e.g. Pony <-> Illustrious) pass with a warning toast, and only
  cross-architecture mismatches stay hard-rejected.
This commit is contained in:
Will Miao
2026-08-30 08:17:35 +08:00
parent 6e31da7a70
commit 838a374a56
23 changed files with 1893 additions and 45 deletions
+12
View File
@@ -906,6 +906,15 @@
"reconnectInstructions": "Введите синтаксис или имя LoRA для переподключения:",
"reconnectExample": "Пример: <lora:name:1> или просто имя",
"reconnectPlaceholder": "Введите имя или синтаксис LoRA",
"reconnectSuggestionsLoading": "Поиск в локальной библиотеке...",
"reconnectSuggestionsEmpty": "В локальной библиотеке нет подходящих LoRA",
"reconnectMatchSameHash": "Тот же хеш",
"reconnectMatchSameVersion": "Та же версия модели",
"reconnectMatchSimilarFilename": "Похожее имя файла",
"reconnectMatchSimilarName": "Похожее имя",
"undoReconnect": "Отменить",
"undoReconnectTooltip": "Восстановить привязку, которая была у записи до переподключения",
"undoReconnectTooltipNamed": "Восстановить {name} (привязка до переподключения)",
"viewOnCivitai": "Открыть на CivitAI",
"openLoraDetails": "Открыть {name} в библиотеке LoRA",
"openCheckpointDetails": "Открыть {name} в библиотеке моделей"
@@ -2046,7 +2055,10 @@
"preparingForDownloadFailed": "Ошибка подготовки LoRAs для загрузки",
"enterLoraName": "Пожалуйста, введите название LoRA или синтаксис",
"reconnectedSuccessfully": "LoRA успешно переподключена",
"reconnectBaseModelMismatch": "Переподключение выполнено, но базовые модели различаются (рецепт: {recipe}, LoRA: {lora}) — они совместимы по архитектуре",
"reconnectFailed": "Ошибка переподключения LoRA: {message}",
"loraRestored": "LoRA восстановлена к прежней привязке",
"loraRestoreFailed": "Ошибка восстановления LoRA: {message}",
"noPromptToSend": "Нет промпта для отправки",
"cannotSend": "Невозможно отправить рецепт: отсутствует ID рецепта",
"sendFailed": "Не удалось отправить рецепт в workflow",