From c421649be4cfde66886fc625b1a9d2e0398e04aa Mon Sep 17 00:00:00 2001 From: NeuralFault Date: Fri, 9 Jan 2026 12:09:21 -0500 Subject: [PATCH 1/7] Add default launch options for ZLUDA stability and update default cross attention method --- .../Models/Packages/ComfyZluda.cs | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs index 16565208..a0c381ee 100644 --- a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs +++ b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs @@ -6,6 +6,7 @@ using StabilityMatrix.Core.Helper; using StabilityMatrix.Core.Helper.Cache; using StabilityMatrix.Core.Helper.HardwareInfo; +using StabilityMatrix.Core.Models; using StabilityMatrix.Core.Models.FileInterfaces; using StabilityMatrix.Core.Models.Progress; using StabilityMatrix.Core.Processes; @@ -42,6 +43,49 @@ IPyInstallationManager pyInstallationManager + "Visual Studio Build Tools for C++ Desktop Development will be installed automatically. " + "AMD GPUs under the RX 6800 may require additional manual setup."; public override string LaunchCommand => Path.Combine("zluda", "zluda.exe"); + + public override List LaunchOptions + { + get + { + var options = base.LaunchOptions; + + // Update Cross Attention Method default + var crossAttentionIndex = options.FindIndex(o => o.Name == "Cross Attention Method"); + if (crossAttentionIndex != -1) + { + options[crossAttentionIndex] = options[crossAttentionIndex] with + { + InitialValue = "--use-quad-cross-attention" + }; + } + + // Add new options before Extras (which is usually last) + var extrasIndex = options.FindIndex(o => o.Name == "Extra Launch Arguments"); + var insertIndex = extrasIndex != -1 ? extrasIndex : options.Count; + + options.Insert(insertIndex, new LaunchOptionDefinition + { + Name = "Disable Async Offload", + Type = LaunchOptionType.Bool, + InitialValue = true, + Options = ["--disable-async-offload"], + Description = "Disable async weight offloading. Recommended for ZLUDA stability.", + }); + + options.Insert(insertIndex + 1, new LaunchOptionDefinition + { + Name = "Disable Pinned Memory", + Type = LaunchOptionType.Bool, + InitialValue = true, + Options = ["--disable-pinned-memory"], + Description = "Disable pinned memory. Recommended for ZLUDA stability.", + }); + + return options; + } + } + public override IEnumerable AvailableTorchIndices => [TorchIndex.Zluda]; public override TorchIndex GetRecommendedTorchVersion() => TorchIndex.Zluda; From 1c447e3a82a68927dfd9187d4a7701673e0a3e37 Mon Sep 17 00:00:00 2001 From: NeuralFault Date: Fri, 16 Jan 2026 16:52:46 -0500 Subject: [PATCH 2/7] Refactor ComfyZluda class to streamline launch options and improve stability settings --- .../Models/Packages/ComfyZluda.cs | 68 ++++++++++++------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs index a0c381ee..1470735c 100644 --- a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs +++ b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs @@ -1,12 +1,8 @@ -using System.Diagnostics; -using System.Text.RegularExpressions; -using Injectio.Attributes; -using StabilityMatrix.Core.Exceptions; +using StabilityMatrix.Core.Exceptions; using StabilityMatrix.Core.Extensions; using StabilityMatrix.Core.Helper; using StabilityMatrix.Core.Helper.Cache; using StabilityMatrix.Core.Helper.HardwareInfo; -using StabilityMatrix.Core.Models; using StabilityMatrix.Core.Models.FileInterfaces; using StabilityMatrix.Core.Models.Progress; using StabilityMatrix.Core.Processes; @@ -41,7 +37,7 @@ IPyInstallationManager pyInstallationManager public override string Disclaimer => "Prerequisite install may require admin privileges and a reboot. " + "Visual Studio Build Tools for C++ Desktop Development will be installed automatically. " - + "AMD GPUs under the RX 6800 may require additional manual setup."; + + "AMD GPUs under the RX 6800 may require additional manual setup. "; public override string LaunchCommand => Path.Combine("zluda", "zluda.exe"); public override List LaunchOptions @@ -56,7 +52,7 @@ public override List LaunchOptions { options[crossAttentionIndex] = options[crossAttentionIndex] with { - InitialValue = "--use-quad-cross-attention" + InitialValue = "--use-quad-cross-attention", }; } @@ -64,23 +60,47 @@ public override List LaunchOptions var extrasIndex = options.FindIndex(o => o.Name == "Extra Launch Arguments"); var insertIndex = extrasIndex != -1 ? extrasIndex : options.Count; - options.Insert(insertIndex, new LaunchOptionDefinition - { - Name = "Disable Async Offload", - Type = LaunchOptionType.Bool, - InitialValue = true, - Options = ["--disable-async-offload"], - Description = "Disable async weight offloading. Recommended for ZLUDA stability.", - }); - - options.Insert(insertIndex + 1, new LaunchOptionDefinition - { - Name = "Disable Pinned Memory", - Type = LaunchOptionType.Bool, - InitialValue = true, - Options = ["--disable-pinned-memory"], - Description = "Disable pinned memory. Recommended for ZLUDA stability.", - }); + options.Insert( + insertIndex, + new LaunchOptionDefinition + { + Name = "Disable Async Offload", + Type = LaunchOptionType.Bool, + InitialValue = true, + Options = ["--disable-async-offload"], + } + ); + + options.Insert( + insertIndex + 1, + new LaunchOptionDefinition + { + Name = "Disable Pinned Memory", + Type = LaunchOptionType.Bool, + InitialValue = true, + Options = ["--disable-pinned-memory"], + } + ); + options.Insert( + insertIndex + 2, + new LaunchOptionDefinition + { + Name = "Disable Smart Memory", + Type = LaunchOptionType.Bool, + InitialValue = false, + Options = ["--disable-smart-memory"], + } + ); + options.Insert( + insertIndex + 3, + new LaunchOptionDefinition + { + Name = "Disable Model/Node Caching", + Type = LaunchOptionType.Bool, + InitialValue = false, + Options = ["--cache-none"], + } + ); return options; } From 69858c35c11a27d9bdf3abe54e1beedbba5c05f8 Mon Sep 17 00:00:00 2001 From: NeuralFault Date: Fri, 16 Jan 2026 17:05:02 -0500 Subject: [PATCH 3/7] Restored directives that got removed accidentally during build debugging. --- StabilityMatrix.Core/Models/Packages/ComfyZluda.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs index 1470735c..206f8996 100644 --- a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs +++ b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs @@ -1,4 +1,7 @@ -using StabilityMatrix.Core.Exceptions; +using System.Diagnostics; +using System.Text.RegularExpressions; +using Injectio.Attributes; +using StabilityMatrix.Core.Exceptions; using StabilityMatrix.Core.Extensions; using StabilityMatrix.Core.Helper; using StabilityMatrix.Core.Helper.Cache; From 52acb7d30b563dcdc5580c18061cf6738d26ed67 Mon Sep 17 00:00:00 2001 From: NeuralFault Date: Fri, 16 Jan 2026 17:58:43 -0500 Subject: [PATCH 4/7] Refactored launch option logic and positioning. --- .../Models/Packages/ComfyZluda.cs | 62 +++++++++---------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs index 206f8996..dd3d84c5 100644 --- a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs +++ b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs @@ -1,11 +1,15 @@ using System.Diagnostics; +using System.Diagnostics; using System.Text.RegularExpressions; +using System.Text.RegularExpressions; +using Injectio.Attributes; using Injectio.Attributes; using StabilityMatrix.Core.Exceptions; using StabilityMatrix.Core.Extensions; using StabilityMatrix.Core.Helper; using StabilityMatrix.Core.Helper.Cache; using StabilityMatrix.Core.Helper.HardwareInfo; +using StabilityMatrix.Core.Models; using StabilityMatrix.Core.Models.FileInterfaces; using StabilityMatrix.Core.Models.Progress; using StabilityMatrix.Core.Processes; @@ -47,64 +51,54 @@ public override List LaunchOptions { get { - var options = base.LaunchOptions; - - // Update Cross Attention Method default - var crossAttentionIndex = options.FindIndex(o => o.Name == "Cross Attention Method"); - if (crossAttentionIndex != -1) + var options = new List { - options[crossAttentionIndex] = options[crossAttentionIndex] with + new() { + Name = "Cross Attention Method", + Type = LaunchOptionType.Bool, InitialValue = "--use-quad-cross-attention", - }; - } - - // Add new options before Extras (which is usually last) - var extrasIndex = options.FindIndex(o => o.Name == "Extra Launch Arguments"); - var insertIndex = extrasIndex != -1 ? extrasIndex : options.Count; - - options.Insert( - insertIndex, - new LaunchOptionDefinition + Options = + [ + "--use-split-cross-attention", + "--use-quad-cross-attention", + "--use-pytorch-cross-attention", + "--use-sage-attention", + ], + }, + new() { Name = "Disable Async Offload", Type = LaunchOptionType.Bool, InitialValue = true, Options = ["--disable-async-offload"], - } - ); - - options.Insert( - insertIndex + 1, - new LaunchOptionDefinition + }, + new() { Name = "Disable Pinned Memory", Type = LaunchOptionType.Bool, InitialValue = true, Options = ["--disable-pinned-memory"], - } - ); - options.Insert( - insertIndex + 2, - new LaunchOptionDefinition + }, + new() { Name = "Disable Smart Memory", Type = LaunchOptionType.Bool, InitialValue = false, Options = ["--disable-smart-memory"], - } - ); - options.Insert( - insertIndex + 3, - new LaunchOptionDefinition + }, + new() { Name = "Disable Model/Node Caching", Type = LaunchOptionType.Bool, InitialValue = false, Options = ["--cache-none"], - } - ); + }, + }; + options.AddRange( + base.LaunchOptions.Except(base.LaunchOptions.Where(x => x.Name == "Cross Attention Method")) + ); return options; } } From 0e3c7a3b0c9e7f6fb55f0016b3510c11c7138d3f Mon Sep 17 00:00:00 2001 From: NeuralFault <65365345+NeuralFault@users.noreply.github.com> Date: Fri, 16 Jan 2026 18:06:30 -0500 Subject: [PATCH 5/7] Remove duplicate using directives in ComfyZluda.cs --- StabilityMatrix.Core/Models/Packages/ComfyZluda.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs index dd3d84c5..8964f5c3 100644 --- a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs +++ b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs @@ -1,11 +1,7 @@ using System.Diagnostics; -using System.Diagnostics; using System.Text.RegularExpressions; -using System.Text.RegularExpressions; -using Injectio.Attributes; using Injectio.Attributes; using StabilityMatrix.Core.Exceptions; -using StabilityMatrix.Core.Extensions; using StabilityMatrix.Core.Helper; using StabilityMatrix.Core.Helper.Cache; using StabilityMatrix.Core.Helper.HardwareInfo; @@ -97,7 +93,7 @@ public override List LaunchOptions }; options.AddRange( - base.LaunchOptions.Except(base.LaunchOptions.Where(x => x.Name == "Cross Attention Method")) + base.LaunchOptions.Where(x => x.Name != "Cross Attention Method") ); return options; } From a6e052de1afaad4486b0a297dabeef0ec1b6a2dc Mon Sep 17 00:00:00 2001 From: NeuralFault <65365345+NeuralFault@users.noreply.github.com> Date: Fri, 16 Jan 2026 18:17:16 -0500 Subject: [PATCH 6/7] Restored using directive for StabilityMatrix.Core.Extensions thought it said Exceptions, whoops. --- StabilityMatrix.Core/Models/Packages/ComfyZluda.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs index 8964f5c3..723db36b 100644 --- a/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs +++ b/StabilityMatrix.Core/Models/Packages/ComfyZluda.cs @@ -2,6 +2,7 @@ using System.Text.RegularExpressions; using Injectio.Attributes; using StabilityMatrix.Core.Exceptions; +using StabilityMatrix.Core.Extensions; using StabilityMatrix.Core.Helper; using StabilityMatrix.Core.Helper.Cache; using StabilityMatrix.Core.Helper.HardwareInfo; From 1bcbc0ee9fa58ee18cb6686e46ede3c10607377c Mon Sep 17 00:00:00 2001 From: NeuralFault Date: Fri, 16 Jan 2026 18:17:53 -0500 Subject: [PATCH 7/7] Update PreviewImageUri to use new CDN link for AiToolkit --- StabilityMatrix.Core/Models/Packages/AiToolkit.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/StabilityMatrix.Core/Models/Packages/AiToolkit.cs b/StabilityMatrix.Core/Models/Packages/AiToolkit.cs index 24009cef..fc1e388e 100644 --- a/StabilityMatrix.Core/Models/Packages/AiToolkit.cs +++ b/StabilityMatrix.Core/Models/Packages/AiToolkit.cs @@ -35,10 +35,7 @@ IPyInstallationManager pyInstallationManager public override string LicenseUrl => "https://github.com/ostris/ai-toolkit/blob/main/LICENSE"; public override string LaunchCommand => string.Empty; - public override Uri PreviewImageUri => - new( - "https://camo.githubusercontent.com/ea35b399e0d659f9f2ee09cbedb58e1a3ec7a0eab763e8ae8d11d076aad5be40/68747470733a2f2f6f73747269732e636f6d2f77702d636f6e74656e742f75706c6f6164732f323032352f30322f746f6f6c6b69742d75692e6a7067" - ); + public override Uri PreviewImageUri => new("https://cdn.lykos.ai/sm/packages/aitoolkit/preview.webp"); public override string OutputFolderName => "output"; public override IEnumerable AvailableTorchIndices => [TorchIndex.Cuda];