mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-22 05:32:12 -03:00
85 lines
2.4 KiB
JavaScript
85 lines
2.4 KiB
JavaScript
import { createLoraCard } from '../components/LoraCard.js';
|
|
import {
|
|
loadMoreModels,
|
|
resetAndReload as baseResetAndReload,
|
|
refreshModels as baseRefreshModels,
|
|
deleteModel as baseDeleteModel,
|
|
replaceModelPreview,
|
|
fetchCivitaiMetadata,
|
|
refreshSingleModelMetadata
|
|
} from './baseModelApi.js';
|
|
|
|
export async function loadMoreLoras(resetPage = false, updateFolders = false) {
|
|
return loadMoreModels({
|
|
resetPage,
|
|
updateFolders,
|
|
modelType: 'lora',
|
|
createCardFunction: createLoraCard,
|
|
endpoint: '/api/loras'
|
|
});
|
|
}
|
|
|
|
export async function fetchCivitai() {
|
|
return fetchCivitaiMetadata({
|
|
modelType: 'lora',
|
|
fetchEndpoint: '/api/fetch-all-civitai',
|
|
resetAndReloadFunction: resetAndReload
|
|
});
|
|
}
|
|
|
|
export async function deleteModel(filePath) {
|
|
return baseDeleteModel(filePath, 'lora');
|
|
}
|
|
|
|
export async function replacePreview(filePath) {
|
|
return replaceModelPreview(filePath, 'lora');
|
|
}
|
|
|
|
export function appendLoraCards(loras) {
|
|
const grid = document.getElementById('loraGrid');
|
|
const sentinel = document.getElementById('scroll-sentinel');
|
|
|
|
loras.forEach(lora => {
|
|
const card = createLoraCard(lora);
|
|
grid.appendChild(card);
|
|
});
|
|
}
|
|
|
|
export async function resetAndReload(updateFolders = false) {
|
|
return baseResetAndReload({
|
|
updateFolders,
|
|
modelType: 'lora',
|
|
loadMoreFunction: loadMoreLoras
|
|
});
|
|
}
|
|
|
|
export async function refreshLoras() {
|
|
return baseRefreshModels({
|
|
modelType: 'lora',
|
|
scanEndpoint: '/api/loras/scan',
|
|
resetAndReloadFunction: resetAndReload
|
|
});
|
|
}
|
|
|
|
export async function refreshSingleLoraMetadata(filePath) {
|
|
const success = await refreshSingleModelMetadata(filePath, 'lora');
|
|
if (success) {
|
|
// Reload the current view to show updated data
|
|
await resetAndReload();
|
|
}
|
|
}
|
|
|
|
export async function fetchModelDescription(modelId, filePath) {
|
|
try {
|
|
const response = await fetch(`/api/lora-model-description?model_id=${modelId}&file_path=${encodeURIComponent(filePath)}`);
|
|
|
|
if (!response.ok) {
|
|
throw new Error(`Failed to fetch model description: ${response.statusText}`);
|
|
}
|
|
|
|
return await response.json();
|
|
} catch (error) {
|
|
console.error('Error fetching model description:', error);
|
|
throw error;
|
|
}
|
|
} |