refactor: add embedding scanner support in download manager and example images processor

This commit is contained in:
Will Miao
2025-07-26 07:35:53 +08:00
parent 2786801b71
commit 6dd58248c6
4 changed files with 12 additions and 5 deletions

View File

@@ -214,6 +214,10 @@ class DownloadManager:
if 'checkpoint' in model_types:
checkpoint_scanner = await ServiceRegistry.get_checkpoint_scanner()
scanners.append(('checkpoint', checkpoint_scanner))
if 'embedding' in model_types:
embedding_scanner = await ServiceRegistry.get_embedding_scanner()
scanners.append(('embedding', embedding_scanner))
# Get all models
all_models = []

View File

@@ -251,12 +251,13 @@ class ExampleImagesProcessor:
# Find the model and get current metadata
lora_scanner = await ServiceRegistry.get_lora_scanner()
checkpoint_scanner = await ServiceRegistry.get_checkpoint_scanner()
embedding_scanner = await ServiceRegistry.get_embedding_scanner()
model_data = None
scanner = None
# Check both scanners to find the model
for scan_obj in [lora_scanner, checkpoint_scanner]:
for scan_obj in [lora_scanner, checkpoint_scanner, embedding_scanner]:
cache = await scan_obj.get_cached_data()
for item in cache.raw_data:
if item.get('sha256') == model_hash:
@@ -384,12 +385,13 @@ class ExampleImagesProcessor:
# Find the model and get current metadata
lora_scanner = await ServiceRegistry.get_lora_scanner()
checkpoint_scanner = await ServiceRegistry.get_checkpoint_scanner()
embedding_scanner = await ServiceRegistry.get_embedding_scanner()
model_data = None
scanner = None
# Check both scanners to find the model
for scan_obj in [lora_scanner, checkpoint_scanner]:
for scan_obj in [lora_scanner, checkpoint_scanner, embedding_scanner]:
if scan_obj.has_hash(model_hash):
cache = await scan_obj.get_cached_data()
for item in cache.raw_data:

View File

@@ -1,6 +1,7 @@
import { showToast, openCivitai, copyToClipboard, sendLoraToWorkflow, openExampleImagesFolder } from '../../utils/uiHelpers.js';
import { state, getCurrentPageState } from '../../state/index.js';
import { showModelModal } from './ModelModal.js';
import { toggleShowcase } from './showcase/ShowcaseView.js';
import { bulkManager } from '../../managers/BulkManager.js';
import { modalManager } from '../../managers/ModalManager.js';
import { NSFW_LEVELS } from '../../utils/constants.js';
@@ -281,7 +282,7 @@ function showExampleAccessModal(card, modelType) {
if (settingsModal) {
modalManager.showModal('settingsModal');
setTimeout(() => {
const exampleSection = settingsModal.querySelector('.settings-section:nth-child(5)');
const exampleSection = settingsModal.querySelector('.settings-section:nth-child(7)');
if (exampleSection) {
exampleSection.scrollIntoView({ behavior: 'smooth' });
}
@@ -344,7 +345,7 @@ function showExampleAccessModal(card, modelType) {
if (carousel && carousel.classList.contains('collapsed')) {
const scrollIndicator = showcaseTab.querySelector('.scroll-indicator');
if (scrollIndicator) {
scrollIndicator.click();
toggleShowcase(scrollIndicator);
}
}

View File

@@ -241,7 +241,7 @@ class ExampleImagesManager {
body: JSON.stringify({
output_dir: outputDir,
optimize: optimize,
model_types: ['lora', 'checkpoint']
model_types: ['lora', 'checkpoint', 'embedding'] // Example types, adjust as needed
})
});