LykosAI/StabilityMatrix · error · ValidationException
No Clip2 Selected
Error message
No Clip2 Selected
What it means
Identical mechanism to the Clip1 check: Flux mode's DualCLIPLoader requires a second text encoder, and SelectedClip2 being null makes clipName2 unresolvable, so the builder throws ValidationException before wiring the CLIP connection.
Solutions
- Select the second CLIP/text-encoder file (e.g. t5xxl_fp16.safetensors or its GGUF variant) in the Clip2 slot
- Confirm both CLIP files exist in the Model Manager and re-select them if paths changed
- Ensure disk space for the T5 encoder — a failed download can leave the slot empty
Example fix
// before
var clipName2 = SelectedClip2?.RelativePath ?? throw new ValidationException("No Clip2 Selected");
// after
if (SelectedClip2 is null)
{
NotificationHelper.Warn("Select the second CLIP model (T5)");
return;
}
var clipName2 = SelectedClip2.RelativePath; Defensive patterns
Strategy: validation
Validate before calling
if (vm.SelectedClipType == "flux" && vm.SelectedClip2 is null)
throw new InvalidOperationException("Flux requires Clip2 (e.g. t5xxl) to be selected"); Type guard
bool HasClip2(ModelCardViewModel vm) => vm.SelectedClip2 is { RelativePath.Length: > 0 }; Try / catch
try { builder.ApplyStep(e); } catch (ValidationException ex) when (ex.Message == "No Clip2 Selected") { NotifyUser("Select the T5 CLIP model for Flux"); } Prevention
- Keep the T5 encoder downloaded and selected alongside clip_l for Flux
- Check disk space before downloads — partial T5 files break selection
- Re-check both CLIP slots after switching between Flux and SD modes
When it happens
Trigger: Building a Flux workflow (SelectedClipType == "flux") with Clip1 selected but the second CLIP slot (e.g. t5xxl) empty: SelectedClip2 is null.
Common situations: User picks clip_l but forgets the large T5 encoder file; T5 GGUF/safetensors file deleted or renamed after saving a workflow; templates copied between machines missing the second encoder.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- No VAE Selected
- No Clip1 Selected
- No Clip Type Selected
- Refiner Model enabled but not selected
- VAE enabled but not selected
AI-assisted analysis of LykosAI/StabilityMatrix@af93d6ef57 (2026-09-12).
Data as JSON: /api/errors/d3fa2f072ad1a965.
Report an issue: GitHub.
Appendix: source
Thrown at StabilityMatrix.Avalonia/ViewModels/Inference/ModelCardViewModel.cs:1691
);
e.Builder.Connections.Base.Model = modelSamplingSd3.Output;
}
var vaeLoader = e.Nodes.AddTypedNode(
new ComfyNodeBuilder.VAELoader
{
Name = e.Nodes.GetUniqueName(nameof(ComfyNodeBuilder.VAELoader)),
VaeName = SelectedVae?.RelativePath ?? throw new ValidationException("No VAE Selected"),
}
);
e.Builder.Connections.Base.VAE = vaeLoader.Output;
if (SelectedClipType == "flux")
{
// DualCLIPLoader (GGUF variant can also load .safetensors, so any gguf pick routes there)
var clipName1 = SelectedClip1?.RelativePath ?? throw new ValidationException("No Clip1 Selected");
var clipName2 = SelectedClip2?.RelativePath ?? throw new ValidationException("No Clip2 Selected");
var clipType = SelectedClipType ?? throw new ValidationException("No Clip Type Selected");
e.Builder.Connections.Base.Clip = AnyClipIsGguf(SelectedClip1, SelectedClip2)
? e
.Nodes.AddTypedNode(
new ComfyNodeBuilder.DualCLIPLoaderGGUF
{
Name = e.Nodes.GetUniqueName(nameof(ComfyNodeBuilder.DualCLIPLoaderGGUF)),
ClipName1 = clipName1,
ClipName2 = clipName2,
Type = clipType,
}
)
.Output
: e
.Nodes.AddTypedNode(
new ComfyNodeBuilder.DualCLIPLoader
{View on GitHub (pinned to af93d6ef57)