{"record":{"id":"afa42c0ca7c5cbaf","repo":"LykosAI/StabilityMatrix","slug":"baseclipvision-not-set","errorCode":null,"errorMessage":"BaseClipVision not set","messagePattern":"BaseClipVision not set","errorType":"validation","errorClass":"ValidationException","httpStatus":null,"severity":"error","filePath":"StabilityMatrix.Avalonia/ViewModels/Inference/WanSamplerCardViewModel.cs","lineNumber":73,"sourceCode":"        e.Builder.Connections.PrimaryCfg = CfgScale;\n        e.Builder.Connections.PrimarySteps = Steps;\n        e.Builder.Connections.PrimaryModelType = SelectedModelType;\n\n        e.Temp = e.CreateTempFromBuilder();\n\n        var conditioning = e.Temp.Base.Conditioning.Unwrap();\n\n        var isImgToVid = IsDenoiseStrengthEnabled;\n\n        if (isImgToVid)\n        {\n            var clipVisionEncode = e.Nodes.AddTypedNode(\n                new ComfyNodeBuilder.CLIPVisionEncode\n                {\n                    Name = e.Nodes.GetUniqueName(nameof(ComfyNodeBuilder.CLIPVisionEncode)),\n                    ClipVision =\n                        e.Builder.Connections.BaseClipVision\n                        ?? throw new ValidationException(\"BaseClipVision not set\"),\n                    Image = e.Builder.GetPrimaryAsImage(),\n                    Crop = \"none\",\n                }\n            );\n\n            var wanImageToVideo = e.Nodes.AddTypedNode(\n                new ComfyNodeBuilder.WanImageToVideo\n                {\n                    Name = e.Nodes.GetUniqueName(nameof(ComfyNodeBuilder.WanImageToVideo)),\n                    Positive = conditioning.Positive,\n                    Negative = conditioning.Negative,\n                    Vae = e.Builder.Connections.GetDefaultVAE(),\n                    ClipVisionOutput = clipVisionEncode.Output,\n                    StartImage = e.Builder.GetPrimaryAsImage(),\n                    Width = Width,\n                    Height = Height,\n                    Length = Length,\n                    BatchSize = e.Builder.Connections.BatchSize,","sourceCodeStart":55,"sourceCodeEnd":91,"githubUrl":"https://github.com/LykosAI/StabilityMatrix/blob/af93d6ef57c01cd890d7e0ad0a9ea8c9fcda3002/StabilityMatrix.Avalonia/ViewModels/Inference/WanSamplerCardViewModel.cs#L55-L91","documentation":"When image-to-video mode is active (IsDenoiseStrengthEnabled), WanSamplerCardViewModel.ApplyStep() builds a CLIPVisionEncode node that requires a CLIP Vision model. It reads e.Builder.Connections.BaseClipVision and throws ValidationException(\"BaseClipVision not set\") when the upstream connection was never populated, because a CLIPVisionEncode node cannot be emitted without a ClipVision model input.","triggerScenarios":"Running a Wan image-to-video generation where the BaseClipVision connection is null — the CLIP Vision model was not selected/chosen in the UI, the required CLIP-Vision checkpoint (e.g. clip_vision_h for Wan) is not installed or not loaded into Connections, or an upstream module that normally sets BaseClipVision did not run.","commonSituations":"User enables img2vid/denoise-strength mode on the Wan card without a CLIP Vision model downloaded; shared ComfyUI models folder not configured so the clip_vision model isn't discovered; workflow restored from a saved prompt where the CLIP Vision selection was lost; calling ApplyStep programmatically on a bare builder without setting Connections.BaseClipVision.","solutions":["Install the required CLIP Vision model for Wan (e.g. clip_vision_h) via the Model Browser into the clip_vision models folder, then select it so BaseClipVision gets populated.","Verify Settings -> ComfyUI points at the correct models directory (or shared ComfyUI folder) so installed clip_vision models are discovered; restart the app after installing.","Disable the image-to-video / denoise-strength mode on the Wan sampler card if you don't intend img2vid generation.","If driving the builder in code, set e.Builder.Connections.BaseClipVision to the CLIP Vision model before ApplyStep."],"exampleFix":"// before\nClipVision = e.Builder.Connections.BaseClipVision\n    ?? throw new ValidationException(\"BaseClipVision not set\"),\n// after (caller-side guard)\nif (e.Builder.Connections.BaseClipVision is null)\n    throw new ValidationException(\"Select a CLIP Vision model for image-to-video generation (Settings -> install clip_vision model).\");","handlingStrategy":"validation","validationCode":"if (card.IsDenoiseStrengthEnabled && e.Builder.Connections.BaseClipVision is null)\n    throw new ValidationException(\"Image-to-video requires a CLIP Vision model; install/select one first.\");","typeGuard":"bool CanRunImgToVid(WanSamplerCardViewModel c, Connections conn) =>\n    !c.IsDenoiseStrengthEnabled || conn.BaseClipVision is not null;","tryCatchPattern":"try { card.ApplyStep(e); }\ncatch (ValidationException ex) when (ex.Message == \"BaseClipVision not set\")\n{ PromptInstallClipVisionModel(); }","preventionTips":["Install the Wan-required CLIP Vision model (e.g. clip_vision_h) into the clip_vision folder before using image-to-video.","Confirm the models directory / shared ComfyUI folder setting covers clip_vision models.","Only enable denoise-strength (img2vid) mode when a CLIP Vision model is selected.","When building workflows programmatically, always assign Connections.BaseClipVision before ApplyStep."],"tags":["csharp","avalonia","inference","comfyui","clip-vision","missing-model"],"backgroundTag":"missing-required-config-field","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"}