LykosAI/StabilityMatrix · error · ValidationException

SDTurbo Scheduler cannot be used with Refiner Model

Error message

SDTurbo Scheduler cannot be used with Refiner Model

What it means

StabilityMatrix's ComfyUI workflow builder throws this ValidationException during the inference pipeline assembly when the SDTurbo scheduler is selected while a refiner model is configured. SDTurbo is a one-step distilled sampler workflow and is incompatible with a two-stage base+refiner sampling setup, so the combination is rejected up front rather than producing a broken workflow.

Solutions

  1. Clear the refiner model in the Refiner card (set it to None) before using the SDTurbo scheduler
  2. Switch the scheduler away from SDTurbo (e.g. Karras/Euler) if you want to keep the refiner stage
  3. Edit the saved preset and remove either the SDTurbo scheduler or the refiner settings

Example fix

// before: scheduler = SDTurbo, refiner model set -> throws
// after: deselect refiner or change scheduler
builder.Connections.PrimaryScheduler = ComfyScheduler.SDTurbo;
builder.Connections.Refiner.Model = null; // remove refiner for SDTurbo
Defensive patterns

Strategy: validation

Validate before calling

if (builder.Connections.PrimaryScheduler == ComfyScheduler.SDTurbo && builder.Connections.Refiner.Model is not null)
    throw new ValidationException("Disable the refiner or change the scheduler before using SDTurbo");

Type guard

bool sdturboRefinerConflict = builder.Connections.PrimaryScheduler == ComfyScheduler.SDTurbo
    && builder.Connections.Refiner.Model is not null;

Try / catch

try { await pipeline.GenerateAsync(); }
catch (ValidationException ex) when (ex.Message.Contains("SDTurbo")) { /* prompt user to disable refiner */ }

Prevention

When it happens

Trigger: Calling ApplyStepsInitialSampler (via ApplyStep) when e.Builder.Connections.PrimaryScheduler == ComfyScheduler.SDTurbo and e.Builder.Connections.Refiner.Model is not null.

Common situations: User picks the SDTurbo scheduler in the sampler card while a refiner model and refiner switch are still configured from a previous SDXL setup; also happens when reusing saved inference presets that have both a refiner and SDTurbo settings.

Understand the failure class

Background: Conflicting config options: "cannot be used together" — configuration validation errors across open-source libraries — this error's family across 162 libraries.

Related errors


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

Appendix: source

Thrown at StabilityMatrix.Avalonia/ViewModels/Inference/SamplerCardViewModel.cs:552

            var fluxGuidance = e.Nodes.AddTypedNode(
                new ComfyNodeBuilder.FluxGuidance
                {
                    Name = e.Nodes.GetUniqueName("FluxGuidance"),
                    Conditioning = conditioning.Positive,
                    Guidance = CfgScale,
                }
            );

            conditioning = conditioning with { Positive = fluxGuidance.Output };
        }

        // Use custom sampler if SDTurbo scheduler is selected
        if (e.Builder.Connections.PrimaryScheduler == ComfyScheduler.SDTurbo)
        {
            // Error if using refiner
            if (e.Builder.Connections.Refiner.Model is not null)
            {
                throw new ValidationException("SDTurbo Scheduler cannot be used with Refiner Model");
            }

            var kSamplerSelect = e.Nodes.AddTypedNode(
                new ComfyNodeBuilder.KSamplerSelect
                {
                    Name = "KSamplerSelect",
                    SamplerName = e.Builder.Connections.PrimarySampler?.Name!,
                }
            );

            var turboScheduler = e.Nodes.AddTypedNode(
                new ComfyNodeBuilder.SDTurboScheduler
                {
                    Name = "SDTurboScheduler",
                    Model = e.Builder.Connections.Base.Model.Unwrap(),
                    Steps = Steps,
                    Denoise = DenoiseStrength,
                }

View on GitHub (pinned to af93d6ef57)