LykosAI/StabilityMatrix · error · ValidationException

No Clip1 Selected

Error message

No Clip1 Selected

What it means

When the selected CLIP type is "flux", the builder needs a DualCLIPLoader (or GGUF variant) with two text-encoder files; it throws when SelectedClip1 is null so its RelativePath cannot be resolved. This fail-fast check precedes wiring Connections.Base.Clip.

Solutions

  1. Select the first CLIP/text-encoder file (e.g. clip_l.safetensors) in the Model card's Clip1 slot
  2. Also select Clip2 and Clip Type since Flux needs the complete dual-CLIP setup
  3. Re-select from the Model Manager if the CLIP file was renamed, moved, or deleted

Example fix

// before
var clipName1 = SelectedClip1?.RelativePath ?? throw new ValidationException("No Clip1 Selected");
// after
if (SelectedClip1 is null)
{
    NotificationHelper.Warn("Select the primary CLIP model (clip_l)");
    return;
}
var clipName1 = SelectedClip1.RelativePath;
Defensive patterns

Strategy: validation

Validate before calling

if (vm.SelectedClipType == "flux" && vm.SelectedClip1 is null)
    throw new InvalidOperationException("Flux requires Clip1 (e.g. clip_l) to be selected");

Type guard

bool HasClip1(ModelCardViewModel vm) => vm.SelectedClip1 is { RelativePath.Length: > 0 };

Try / catch

try { builder.ApplyStep(e); } catch (ValidationException ex) when (ex.Message == "No Clip1 Selected") { NotifyUser("Select the primary CLIP model for Flux"); }

Prevention

When it happens

Trigger: Building a Flux workflow with SelectedClipType == "flux" while the first CLIP slot (clip_l / T5 slot) has no selection, i.e. SelectedClip1 is null.

Common situations: Fresh Flux preset where the user set the model and VAE but not the two CLIP files; saved workflow whose clip_l file was moved/deleted; switching to Flux mode which newly requires the dual CLIP selection.

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


AI-assisted analysis of LykosAI/StabilityMatrix@af93d6ef57 (2026-09-12). Data as JSON: /api/errors/e449fd877bee19cd. Report an issue: GitHub.

Appendix: source

Thrown at StabilityMatrix.Avalonia/ViewModels/Inference/ModelCardViewModel.cs:1690

                }
            );

            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)