feat: add exclude scan model types (#92)
This commit is contained in:
@@ -130,7 +130,7 @@ async def list_model_types(request):
|
|||||||
Scan all models and read their information.
|
Scan all models and read their information.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
result = utils.resolve_model_base_paths()
|
result = utils.resolve_model_base_paths(request)
|
||||||
return web.json_response({"success": True, "data": result})
|
return web.json_response({"success": True, "data": result})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_msg = f"Read models failed: {str(e)}"
|
error_msg = f"Read models failed: {str(e)}"
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ setting_key = {
|
|||||||
"max_task_count": "ModelManager.Download.MaxTaskCount",
|
"max_task_count": "ModelManager.Download.MaxTaskCount",
|
||||||
},
|
},
|
||||||
"scan": {
|
"scan": {
|
||||||
"include_hidden_files": "ModelManager.Scan.IncludeHiddenFiles"
|
"include_hidden_files": "ModelManager.Scan.IncludeHiddenFiles",
|
||||||
|
"exclude_scan_types": "ModelManager.Scan.excludeScanTypes",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -116,10 +116,13 @@ def download_web_distribution(version: str):
|
|||||||
print_error(f"An unexpected error occurred: {e}")
|
print_error(f"An unexpected error occurred: {e}")
|
||||||
|
|
||||||
|
|
||||||
def resolve_model_base_paths():
|
def resolve_model_base_paths(request):
|
||||||
folders = list(folder_paths.folder_names_and_paths.keys())
|
folders = list(folder_paths.folder_names_and_paths.keys())
|
||||||
model_base_paths = {}
|
model_base_paths = {}
|
||||||
folder_black_list = ["configs", "custom_nodes"]
|
folder_black_list = ["configs", "custom_nodes"]
|
||||||
|
custom_folders = get_setting_value(request, "scan.exclude_scan_types", "")
|
||||||
|
custom_black_list = [f.strip() for f in custom_folders.split(",") if f.strip()]
|
||||||
|
folder_black_list.extend(custom_black_list)
|
||||||
for folder in folders:
|
for folder in folders:
|
||||||
if folder in folder_black_list:
|
if folder in folder_black_list:
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -190,6 +190,14 @@ function useAddConfigSettings(store: import('hooks/store').StoreProvider) {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
app.ui?.settings.addSetting({
|
||||||
|
id: 'ModelManager.Scan.excludeScanTypes',
|
||||||
|
category: [t('modelManager'), t('setting.scan'), 'ExcludeScanTypes'],
|
||||||
|
name: t('setting.excludeScanTypes'),
|
||||||
|
defaultValue: undefined,
|
||||||
|
type: 'text',
|
||||||
|
})
|
||||||
|
|
||||||
app.ui?.settings.addSetting({
|
app.ui?.settings.addSetting({
|
||||||
id: 'ModelManager.Scan.IncludeHiddenFiles',
|
id: 'ModelManager.Scan.IncludeHiddenFiles',
|
||||||
category: [t('modelManager'), t('setting.scan'), 'IncludeHiddenFiles'],
|
category: [t('modelManager'), t('setting.scan'), 'IncludeHiddenFiles'],
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ export const useModels = defineStore('models', (store) => {
|
|||||||
|
|
||||||
const refreshAllModels = async (force = false) => {
|
const refreshAllModels = async (force = false) => {
|
||||||
const forceRefresh = force ? refreshFolders() : Promise.resolve()
|
const forceRefresh = force ? refreshFolders() : Promise.resolve()
|
||||||
|
models.value = {}
|
||||||
return forceRefresh.then(() =>
|
return forceRefresh.then(() =>
|
||||||
Promise.allSettled(Object.keys(folders.value).map(refreshModels)),
|
Promise.allSettled(Object.keys(folders.value).map(refreshModels)),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ const messages = {
|
|||||||
scanMissing: 'Download missing information or preview',
|
scanMissing: 'Download missing information or preview',
|
||||||
scanAll: "Override all models' information and preview",
|
scanAll: "Override all models' information and preview",
|
||||||
includeHiddenFiles: 'Include hidden files(start with .)',
|
includeHiddenFiles: 'Include hidden files(start with .)',
|
||||||
|
excludeScanTypes: 'Exclude scan types (separate with commas)',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
zh: {
|
zh: {
|
||||||
@@ -90,6 +91,7 @@ const messages = {
|
|||||||
scanMissing: '下载缺失的信息或预览图片',
|
scanMissing: '下载缺失的信息或预览图片',
|
||||||
scanAll: '覆盖所有模型信息和预览图片',
|
scanAll: '覆盖所有模型信息和预览图片',
|
||||||
includeHiddenFiles: '包含隐藏文件(以 . 开头的文件或文件夹)',
|
includeHiddenFiles: '包含隐藏文件(以 . 开头的文件或文件夹)',
|
||||||
|
excludeScanTypes: '排除扫描类型(使用英文逗号隔开)',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user