diff --git a/py/information.py b/py/information.py index 7a99872..16aa0ea 100644 --- a/py/information.py +++ b/py/information.py @@ -64,9 +64,9 @@ class CivitaiModelSearcher(ModelSearcher): shortname = version.get("name", None) if len(model_files) > 0 else None for file in model_files: - fullname = file.get("name", None) - extension = os.path.splitext(fullname)[1] - basename = os.path.splitext(fullname)[0] + name = file.get("name", None) + extension = os.path.splitext(name)[1] + basename = os.path.splitext(name)[0] metadata_info = { "website": "Civitai", @@ -99,13 +99,13 @@ class CivitaiModelSearcher(ModelSearcher): model = { "id": file.get("id"), "shortname": shortname or basename, - "fullname": fullname, "basename": basename, "extension": extension, "preview": metadata_info.get("preview"), "sizeBytes": file.get("sizeKB", 0) * 1024, - "type": self._resolve_model_type(res_data.get("type", "unknown")), + "type": self._resolve_model_type(res_data.get("type", "")), "pathIndex": 0, + "subFolder": "", "description": "\n".join(description_parts), "metadata": file.get("metadata"), "downloadPlatform": "civitai", @@ -146,7 +146,7 @@ class CivitaiModelSearcher(ModelSearcher): "Controlnet": "controlnet", "Upscaler": "upscale_models", "VAE": "vae", - "unknown": "unknown", + "unknown": "", } return map_legacy.get(model_type, f"{model_type.lower()}s") @@ -216,13 +216,13 @@ class HuggingfaceModelSearcher(ModelSearcher): model = { "id": filename, "shortname": filename, - "fullname": fullname, "basename": basename, "extension": extension, "preview": image_files, "sizeBytes": 0, - "type": "unknown", + "type": "", "pathIndex": 0, + "subFolder": "", "description": "\n".join(description_parts), "metadata": {}, "downloadPlatform": "huggingface", diff --git a/src/components/ModelBaseInfo.vue b/src/components/ModelBaseInfo.vue index eb793ed..d98b9e1 100644 --- a/src/components/ModelBaseInfo.vue +++ b/src/components/ModelBaseInfo.vue @@ -15,7 +15,11 @@ - + ('editable') @@ -116,6 +120,10 @@ const { modelFolders, } = useModelBaseInfo() +watch(type, () => { + subFolder.value = '' +}) + const typeOptions = computed(() => { return Object.keys(modelFolders.value).map((curr) => { return { @@ -199,7 +207,7 @@ const modelFolder = computed({ }) const renderedModelFolder = computed(() => { - return baseInfo.value.pathIndex.display + return baseInfo.value.pathIndex?.display }) const handleCancelSelectFolder = () => { diff --git a/src/hooks/model.ts b/src/hooks/model.ts index 1cfc241..07476e4 100644 --- a/src/hooks/model.ts +++ b/src/hooks/model.ts @@ -299,7 +299,7 @@ const baseInfoKey = Symbol('baseInfo') as InjectionKey< > export const useModelBaseInfoEditor = (formInstance: ModelFormInstance) => { - const { formData: model } = formInstance + const { formData: model, modelData } = formInstance const provideModelFolders = inject(modelFolderProvideKey) const modelFolders = computed(() => { @@ -362,7 +362,9 @@ export const useModelBaseInfoEditor = (formInstance: ModelFormInstance) => { { key: 'type', formatter: () => - model.value.type in modelFolders.value ? model.value.type : undefined, + modelData.value.type in modelFolders.value + ? modelData.value.type + : undefined, }, { key: 'pathIndex', @@ -542,7 +544,8 @@ export const useModelPreviewEditor = (formInstance: ModelFormInstance) => { * No preview */ const noPreviewContent = computed(() => { - return `/model-manager/preview/${model.value.type}/0/no-preview.png` + const folder = model.value.type || 'unknown' + return `/model-manager/preview/${folder}/0/no-preview.png` }) const preview = computed(() => {