mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-23 22:22:11 -03:00
feat: refactor model API structure to support specific model types with dedicated API clients for Checkpoints, LoRAs, and Embeddings
refactor: consolidate model API client creation into a factory function for better maintainability feat: implement move operations for LoRAs and handle unsupported operations for Checkpoints and Embeddings
This commit is contained in:
35
static/js/api/modelApiFactory.js
Normal file
35
static/js/api/modelApiFactory.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import { LoraApiClient } from './loraApi.js';
|
||||
import { CheckpointApiClient } from './checkpointApi.js';
|
||||
import { EmbeddingApiClient } from './embeddingApi.js';
|
||||
import { MODEL_TYPES } from './apiConfig.js';
|
||||
import { state } from '../state/index.js';
|
||||
|
||||
export function createModelApiClient(modelType) {
|
||||
switch (modelType) {
|
||||
case MODEL_TYPES.LORA:
|
||||
return new LoraApiClient();
|
||||
case MODEL_TYPES.CHECKPOINT:
|
||||
return new CheckpointApiClient();
|
||||
case MODEL_TYPES.EMBEDDING:
|
||||
return new EmbeddingApiClient();
|
||||
default:
|
||||
throw new Error(`Unsupported model type: ${modelType}`);
|
||||
}
|
||||
}
|
||||
|
||||
let _singletonClient = null;
|
||||
|
||||
export function getModelApiClient() {
|
||||
const currentType = state.currentPageType;
|
||||
|
||||
if (!_singletonClient || _singletonClient.modelType !== currentType) {
|
||||
_singletonClient = createModelApiClient(currentType);
|
||||
}
|
||||
|
||||
return _singletonClient;
|
||||
}
|
||||
|
||||
export function resetAndReload(updateFolders = false) {
|
||||
const client = getModelApiClient();
|
||||
return client.loadMoreWithVirtualScroll(true, updateFolders);
|
||||
}
|
||||
Reference in New Issue
Block a user