[feat] Implement AssetService behind settings flag (#5404)

* [feat] add Comfy.Assets.UseAssetAPI to CORE_SETTINGS

* [feat] create AssetService

1. Add service for accessing new Asset API
2. Add fallback model paths logic so empty model directories appear for
   the user.
3. Copious tests for them all.

Co-Authored-By: Claude <noreply@anthropic.com>

* [feat] switch between assets and file paths for model data

* [feat] ignore assets with "missing" tag

* [fix] formatting and style

* [fix] call assets API with the correct filters

* [feat] elminate unused modelPath code

* [fix] remove stray comment

* [fix] model manager api was not parsed correctly

---------

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Arjan Singh
2025-09-08 11:49:55 -07:00
committed by GitHub
parent 76f21b9975
commit 551af4c0e0
8 changed files with 455 additions and 17 deletions

View File

@@ -682,7 +682,8 @@ export class ComfyApi extends EventTarget {
}
const folderBlacklist = ['configs', 'custom_nodes']
return (await res.json()).filter(
(folder: string) => !folderBlacklist.includes(folder)
(folder: { name: string; folders: string[] }) =>
!folderBlacklist.includes(folder.name)
)
}
@@ -1019,7 +1020,13 @@ export class ComfyApi extends EventTarget {
}
async getFolderPaths(): Promise<Record<string, string[]>> {
return (await axios.get(this.internalURL('/folder_paths'))).data
const response = await axios
.get(this.internalURL('/folder_paths'))
.catch(() => null)
if (!response) {
return {} // Fallback: no filesystem paths known when API unavailable
}
return response.data
}
/* Frees memory by unloading models and optionally freeing execution cache