mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-03-08 06:30:04 +00:00
feat: add model type mappings for cloud custom nodes (#9392)
## Summary Adds model-to-node backlinks in `modelToNodeStore.ts` for all cloud-deployed custom node models that were missing mappings. Without these, clicking "Use" on a model in the model browser throws an error. **17 new backlinks added** covering ~340 models across deployed node packs: | Category | Directories | Node | Models | |----------|-------------|------|--------| | Vision-Language | LLM/Qwen-VL/* (12 specific paths) | AILab_QwenVL / AILab_QwenVL_PromptEnhancer | ~186 | | TTS | qwen-tts/* | FB_Qwen3TTSVoiceClone | ~68 | | Video | SEEDVR2, liveportrait/*, mimicmotion, rife | various | ~33 | | Depth | depthanything3 | DownloadAndLoadDepthAnythingV3Model | 7 | | Segmentation | face_parsing, sam3 | various | 4 | | Diffusers | diffusers/* (Kolors) | DownloadAndLoadKolorsModel | 16 | | Other | clip/*, dwpose, onnx, detection, UltraShape, sharp | various | ~26 | **Key fix:** Replaced the top-level `LLM` fallback with specific `LLM/Qwen-VL/*` paths. The old fallback incorrectly mapped `LLM/llava-*` models to `AILab_QwenVL`. Models without deployed node packs (llava/HyVideo, latentsync, sam3d, sam3dbody, inpaint, vae_approx) are excluded — those are being removed from `supported_models.json` in Comfy-Org/cloud#2652. ## Test plan - [ ] Verify "Use" button works for QwenVL models in model browser - [ ] Verify "Use" button works for TTS, video, depth, segmentation models - [ ] Verify no `No node provider registered for category` errors for deployed models 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
@@ -228,9 +228,9 @@ describe('assetMetadataUtils', () => {
|
||||
expected: 'checkpoints'
|
||||
},
|
||||
{
|
||||
name: 'extracts last segment from path-style tags',
|
||||
tags: ['models', 'models/loras'],
|
||||
expected: 'loras'
|
||||
name: 'returns full path for path-style tags',
|
||||
tags: ['models', 'diffusers/Kolors/text_encoder'],
|
||||
expected: 'diffusers/Kolors/text_encoder'
|
||||
},
|
||||
{
|
||||
name: 'returns null when only models tag',
|
||||
|
||||
@@ -138,8 +138,7 @@ export function getSourceName(url: string): string {
|
||||
*/
|
||||
export function getAssetModelType(asset: AssetItem): string | null {
|
||||
const typeTag = asset.tags?.find((tag) => tag && tag !== 'models')
|
||||
if (!typeTag) return null
|
||||
return typeTag.includes('/') ? (typeTag.split('/').pop() ?? null) : typeTag
|
||||
return typeTag ?? null
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user