{"record":{"id":"03ebeafe57f115c7","repo":"LykosAI/StabilityMatrix","slug":"clip-l-model-not-found","errorCode":null,"errorMessage":"CLIP-L model not found","messagePattern":"CLIP-L model not found","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"StabilityMatrix.Avalonia/Services/FluxKontextModelManager.cs","lineNumber":183,"sourceCode":"    {\n        var unetModel =\n            clientManager.UnetModels.FirstOrDefault(m =>\n                m.Local != null\n                && (\n                    m.FileName.Contains(\"flux1-dev-kontext\", StringComparison.OrdinalIgnoreCase)\n                    || m.FileName.Contains(\"flux-kontext\", StringComparison.OrdinalIgnoreCase)\n                )\n            ) ?? throw new InvalidOperationException(\"Flux Kontext UNET model not found\");\n\n        var vaeModel =\n            clientManager.VaeModels.FirstOrDefault(m =>\n                m.Local != null && m.FileName.Equals(\"ae.safetensors\", StringComparison.OrdinalIgnoreCase)\n            ) ?? throw new InvalidOperationException(\"Flux VAE model not found\");\n\n        var clip1Model =\n            clientManager.ClipModels.FirstOrDefault(m =>\n                m.Local != null && m.FileName.Contains(\"clip_l\", StringComparison.OrdinalIgnoreCase)\n            ) ?? throw new InvalidOperationException(\"CLIP-L model not found\");\n\n        var clip2Model =\n            clientManager.ClipModels.FirstOrDefault(m =>\n                m.Local != null\n                && (\n                    m.FileName.Contains(\"t5xxl\", StringComparison.OrdinalIgnoreCase)\n                    || m.FileName.Contains(\"t5-xxl\", StringComparison.OrdinalIgnoreCase)\n                )\n            ) ?? throw new InvalidOperationException(\"T5-XXL model not found\");\n\n        return new FluxKontextWorkflowBuilder.SelectedModels(unetModel, vaeModel, clip1Model, clip2Model);\n    }\n}\n","sourceCodeStart":165,"sourceCodeEnd":197,"githubUrl":"https://github.com/LykosAI/StabilityMatrix/blob/af93d6ef57c01cd890d7e0ad0a9ea8c9fcda3002/StabilityMatrix.Avalonia/Services/FluxKontextModelManager.cs#L165-L197","documentation":"The Flux Kontext pipeline needs the CLIP-L text encoder (first of two encoders). SelectModels looks for a local ClipModels file whose name contains 'clip_l' and throws this InvalidOperationException when none is installed, since the workflow cannot be built without it.","triggerScenarios":"Calling SelectModels when no ClipModels entry has Local != null and a filename containing 'clip_l' (case-insensitive).","commonSituations":"User installs the T5-XXL encoder but skips clip_l.safetensors; file renamed (e.g. clip-l.safetensors with a hyphen would still contain 'clip_l'? no — hyphen breaks the match); encoders placed in a non-scanned folder.","solutions":["Download clip_l.safetensors into the TextEncoders folder and refresh the index","Ensure the filename contains the substring 'clip_l' (underscore) in a scanned folder","Catch InvalidOperationException and offer an in-app download of clip_l"],"exampleFix":"// before\nvar models = fluxKontextModelManager.SelectModels();\n// after\nif (!clientManager.ClipModels.Any(m => m.Local != null && m.FileName.Contains(\"clip_l\", StringComparison.OrdinalIgnoreCase)))\n{\n    await sharedFolders.DownloadModelAsync(ClipLSafetensorsUri, SharedFolderType.TextEncoders);\n}\nvar models = fluxKontextModelManager.SelectModels();","handlingStrategy":"validation","validationCode":"var clip1 = clientManager.ClipModels.FirstOrDefault(m => m.Local != null\n    && m.FileName.Contains(\"clip_l\", StringComparison.OrdinalIgnoreCase));\nif (clip1 is null) throw new UserDownloadableError(\"clip_l.safetensors is not installed.\");","typeGuard":"bool HasClipL(IEnumerable<HybridModelFile> clips) => clips.Any(m => m.Local != null && m.FileName.Contains(\"clip_l\", StringComparison.OrdinalIgnoreCase));","tryCatchPattern":"try\n{\n    var models = fluxKontextModelManager.SelectModels();\n}\ncatch (InvalidOperationException ex) when (ex.Message.Contains(\"CLIP-L model not found\"))\n{\n    // trigger clip_l download flow\n}","preventionTips":["Keep the filename substring 'clip_l' (underscore) intact","Download both CLIP-L and T5-XXL encoders as a pair","Verify encoders are in a folder the client manager scans"],"tags":["comfyui","clip","models"],"backgroundTag":"resource-not-found","analyzedSha":"af93d6ef57c01cd890d7e0ad0a9ea8c9fcda3002","analyzedAt":"2026-09-12T19:02:43.389Z","contentChangedAt":"2026-09-12T19:02:43.389Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}