Skip to content

Commit dcbe559

Browse files
authored
Merge branch 'dev' into codex/unet-workflow-support
2 parents 574746a + 343ade4 commit dcbe559

7 files changed

Lines changed: 76 additions & 15 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2
1818
- Fixed CivitAI model browsing breaking during Discovery API outages — the browser now falls back to the direct CivitAI API when Discovery returns a server error, authentication failure, or times out
1919
- Fixed UNet-only model selection sometimes clearing during model-list refreshes, which could hide text encoder slots after generating, cancelling, or reconnecting to ComfyUI
2020
- Fixed SwarmUI user settings (theme, output format, server configuration, etc.) and any user-added backend entries being overwritten when the install flow ran over an existing install — `Settings.fds` and `Backends.fds` are now merged with their existing contents instead of being rewritten from a stale template
21+
- Fixed pip requirements handling for environment-marker dependencies - thanks to @NeuralFault!
22+
- Fixed [#1608](https://github.com/LykosAI/StabilityMatrix/issues/1608) - Crash when cdn fetch fails due to error notification not being shown on UI Thread - thanks to @NeuralFault!
23+
- Fixed ComfyUI-Zluda inheriting `--enable-manager` from the base ComfyUI launch options, which blocked the bundled custom-node manager from initializing - thanks to @NeuralFault!
24+
### Supporters
25+
#### 🌟 Visionaries
26+
So much love to our Visionaries — **Waterclouds**, **bluepopsicle**, **Ibixat**, **Droolguy**, **snotty**, **LG**, and **whudunit** — thank you for your continued enthusiasm, kindness, and sheer staying-power. You've been with us through some big changes, and we're so lucky to have you in our corner. And the warmest welcome to our newest Visionaries **MrMxyzptlk12836**, **Psilocyfer18731**, **KalAbaddon**, **RustCupcake**, and **moon_milky2843** — we're so happy you're here, and we can't wait to get to know you. 💛
2127

2228
## v2.16.0-dev.3
2329
### Added
@@ -133,6 +139,23 @@ Huge shoutout to our amazing Visionaries: **Waterclouds**, **JungleDragon**, **b
133139
#### 🌟 Visionaries
134140
A massive thank you to our esteemed Visionaries: **Waterclouds**, **JungleDragon**, **bluepopsicle**, **Bob S**, and **whudunit**! Your generosity is the powerhouse behind Stability Matrix, enabling us to keep building and refining with confidence. We are truly grateful for your partnership!
135141

142+
## v2.15.8
143+
### Added
144+
- Added support for the civitai.red (mature-content) domain — NSFW CivitAI links now open and copy as civitai.red URLs, and pasting a civitai.red URL into the CivitAI model browser search works the same as a civitai.com URL
145+
### Changed
146+
- The CivitAI base model type filter now uses CivitAI's official `/api/v1/enums` endpoint, with fallbacks to the previous technique and a built-in list, so the filter stays populated even if the CivitAI response format changes or the service is unreachable
147+
### Fixed
148+
- Fixed CivitAI model browsing breaking during Discovery API outages — the browser now falls back to the direct CivitAI API when Discovery returns a server error, authentication failure, or times out
149+
- Fixed SwarmUI user settings (theme, output format, server configuration, etc.) and any user-added backend entries being overwritten when the install flow ran over an existing install — `Settings.fds` and `Backends.fds` are now merged with their existing contents instead of being rewritten from a stale template
150+
- Fixed pip requirements handling for environment-marker dependencies - thanks to @NeuralFault!
151+
- Fixed [#1608](https://github.com/LykosAI/StabilityMatrix/issues/1608) - Crash when cdn fetch fails due to error notification not being shown on UI Thread - thanks to @NeuralFault!
152+
- Fixed ComfyUI-Zluda inheriting `--enable-manager` from the base ComfyUI launch options, which blocked the bundled custom-node manager from initializing - thanks to @NeuralFault!
153+
### Supporters
154+
#### 🌟 Visionaries
155+
Heaps of gratitude to our Visionaries — **Waterclouds**, **bluepopsicle**, **Ibixat**, **Droolguy**, **snotty**, **LG**, and **whudunit** — for sticking with us release after release. Your encouragement, your patience while we chase down those last bugs, and the sheer fact of you being here keeps us showing up at the keyboard. We're so glad you're part of this little corner of the internet with us. And big warm welcomes again to our newest Visionaries **MrMxyzptlk12836**, **Psilocyfer18731**, **KalAbaddon**, **RustCupcake**, and **moon_milky2843** — make yourselves at home, you're among friends! 💛
156+
#### 🚀 Pioneers
157+
And the Pioneer crew — what a lineup. A massive thank-you to **Szir777**, **[USA]TechDude**, **takyamtom**, **SinthCore**, **Commissar Lord Death**, **Ahmed S**, **SeraphOfSalem**, and **Jisuren** — your steady presence, kind words, and patience as we've shifted things around mean more than you know. A heartfelt welcome back to **Tigon**, who's returned to the Pioneer ranks after a little time away — so glad you're back. 🎉 And a special hello to **jweg79**, who's been quietly supporting us for a while and just decided to step up and join the Pioneer crew this round — so happy to have you here. To our newest Pioneers, an enormous welcome: **rwx14662**, **Hurbie53**, **ahnhj.al**, **drew.lukas**, **Firelight**, **joeto332987**, **Tuskaruho**, **Cjloha**, and **Alligator1907**. We're absolutely thrilled to have you with us. (And to our anonymous Pioneer out there too, our thanks reaches you — we see you. 💛)
158+
136159
## v2.15.7
137160
### Added
138161
- Added single-instance window activation signaling so reopening the app restores and focuses the existing desktop window instead of launching a duplicate instance
@@ -141,9 +164,14 @@ A massive thank you to our esteemed Visionaries: **Waterclouds**, **JungleDragon
141164
- Added support in the Checkpoints page to distinguish standard updates from Early Access-only updates - thanks to @x0x0b!
142165
- Added torch index for Strix/Gorgon Point Ryzen AI APUs on Windows - thanks to @NeuralFault!
143166
- Added retry button to failed downloads - thanks to @NeuralFault!
167+
- Added new Membership support in Account Settings with Patreon migration prompt
144168
### Changed
145169
- Settings file saves are now atomic to prevent corruption from interrupted writes
146170
- Updated torch indexes for A1111, ComfyUI, InvokeAI, and Forge-based UIs to rocm7.2 / cu128 depending on GPU - thanks to @NeuralFault!
171+
- Replaced the "Become a Patron" footer button with "Support Us", linking to the new direct Lykos support page at lykos.ai/membership
172+
- Updated the prompt dialog shown when enabling features like Accelerated Model Discovery to use Lykos accounts instead of Patreon linking
173+
- Moved the Patreon connection in Account Settings to a new "Legacy Connections" section, only shown for users with an existing Patreon link
174+
- Localized previously hardcoded strings on the Account Settings page (menu items, descriptions, section headers) and added Japanese, Korean, German, and French translations
147175
### Fixed
148176
- Fixed an issue where `Align Your Steps` scheduler and Unet Loader workflows ignored Regional Prompting (and other addon) conditioning modifiers.
149177
- Fixed the Package Manager "Add Package" teaching tip opening inopportunely while packages were still loading or after opening the add-package dialog
@@ -163,9 +191,9 @@ A massive thank you to our esteemed Visionaries: **Waterclouds**, **JungleDragon
163191
- Fixed [#1397](https://github.com/LykosAI/StabilityMatrix/issues/1397), [#610](https://github.com/LykosAI/StabilityMatrix/issues/610) - duplicate pip package entries in results - thanks to @e-nord!
164192
### Supporters
165193
#### 🌟 Visionaries
166-
Lifting up our legendary Visionaries: **Waterclouds**, **JungleDragon**, **bluepopsicle**, **Bob S**, and **whudunit**. Through every release, every milestone, and every twist of this wild journey, your support has been our north star. A huge welcome to our newest Visionaries **Droolguy** and **snotty** (leveling up from the Pioneer crew!), a warm welcome back to longtime Visionary **Ibixat**, and an equally huge welcome to **LG**, making their Stability Matrix debut straight at the Visionary tier - so glad to have you all on board! We cannot thank you enough for standing behind Stability Matrix!
194+
Lifting up our legendary Visionaries: **Waterclouds**, **JungleDragon**, **bluepopsicle**, **Bob S**, and **whudunit**. Through every release, every milestone, and every twist of this wild journey, your support has been our north star. A huge welcome to our newest Visionaries **Droolguy** and **snotty** (leveling up from the Pioneer crew!), a warm welcome back to longtime Visionary **Ibixat**, and an equally huge welcome to **LG** and **MrMxyzptlk12836**, making their Stability Matrix debut straight at the Visionary tier - so glad to have you all on board! We cannot thank you enough for standing behind Stability Matrix!
167195
#### 🚀 Pioneers
168-
And to our mighty Pioneer crew - the folks who keep the engine humming - thank you for everything! Massive shoutout to: **Szir777**, **Noah M**, **[USA]TechDude**, **Thom**, **SeraphOfSalem**, **Desert Viber**, **Adam**, **ACTUALLY_the_Real_Willem_Dafoe**, **takyamtom**, **robek**, **Ghislain G**, **Phil R**, **Tundra Everquill**, **Andrew B**, **SinthCore**, and **Ahmed S**. And a very warm welcome to our newest Pioneer **Commissar Lord Death**, plus a heartfelt shoutout to one more new Pioneer who joined us quietly through the Stripe migration - you know who you are, and we're so glad to have you!
196+
And to our mighty Pioneer crew - the folks who keep the engine humming - thank you for everything! Massive shoutout to: **Szir777**, **Noah M**, **[USA]TechDude**, **Thom**, **SeraphOfSalem**, **Desert Viber**, **Adam**, **ACTUALLY_the_Real_Willem_Dafoe**, **takyamtom**, **robek**, **Ghislain G**, **Phil R**, **Tundra Everquill**, **Andrew B**, **SinthCore**, and **Ahmed S**. And a very warm welcome to our newest Pioneers **Commissar Lord Death**, **Firelight**, and **jweg**, plus a heartfelt shoutout to one more new Pioneer who joined us quietly through the Stripe migration - you know who you are, and we're so glad to have you!
169197

170198
And one more heartfelt thank you to everyone now supporting us directly through our new platform - this next chapter wouldn't be possible without your trust, and we're so grateful you've come along for the ride!
171199

StabilityMatrix.Avalonia/Services/NotificationService.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,8 @@ public void Initialize(
4545

4646
public void Show(INotification notification)
4747
{
48-
if (Dispatcher.UIThread.CheckAccess())
49-
{
50-
notificationManager?.Show(notification);
51-
}
52-
else
53-
{
54-
Dispatcher.UIThread.Post(() => notificationManager?.Show(notification));
55-
}
48+
// Must marshal to UI thread - WindowNotificationManager requires it
49+
Dispatcher.UIThread.Invoke(() => notificationManager?.Show(notification));
5650
}
5751

5852
/// <inheritdoc />

StabilityMatrix.Avalonia/Views/Settings/AccountSettingsPage.axaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<controls:UserControlBase
1+
<controls:UserControlBase
22
x:Class="StabilityMatrix.Avalonia.Views.Settings.AccountSettingsPage"
33
xmlns="https://github.com/avaloniaui"
44
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

StabilityMatrix.Core/Models/Packages/ComfyZluda.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,11 @@ public override List<LaunchOptionDefinition> LaunchOptions
102102
},
103103
};
104104

105-
options.AddRange(base.LaunchOptions.Where(x => x.Name != "Cross Attention Method"));
105+
options.AddRange(
106+
base.LaunchOptions.Where(x =>
107+
x.Name != "Cross Attention Method" && !x.Options.Contains("--enable-manager")
108+
)
109+
);
106110
return options;
107111
}
108112
}

StabilityMatrix.Core/Processes/ProcessRunner.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -651,8 +651,15 @@ public static Task<ProcessResult> RunBashCommand(
651651
/// </summary>
652652
public static string Quote(string argument)
653653
{
654-
var inner = argument.Trim('"');
655-
return inner.Contains(' ') ? $"\"{inner}\"" : argument;
654+
var inner = argument.Length >= 2 && argument.StartsWith('"') && argument.EndsWith('"')
655+
? argument[1..^1]
656+
: argument;
657+
658+
if (!inner.Contains(' ') && !inner.Contains('"'))
659+
return argument;
660+
661+
var escaped = inner.Replace("\"", "\\\"");
662+
return $"\"{escaped}\"";
656663
}
657664

658665
/// <summary>

StabilityMatrix.Core/Python/PipInstallArgs.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,15 @@ public PipInstallArgs WithParsedFromRequirementsTxt(
5757
requirementsEntries = requirementsEntries.Where(s => !excludeRegex.IsMatch(s));
5858
}
5959

60-
return this.AddArgs(requirementsEntries.Select(Argument.Quoted).ToArray());
60+
return this.AddArgs(requirementsEntries.Select(ToRequirementArgument).ToArray());
61+
}
62+
63+
private static Argument ToRequirementArgument(string requirementEntry)
64+
{
65+
if (requirementEntry.StartsWith('-'))
66+
return Argument.Quoted(requirementEntry);
67+
68+
return new Argument(requirementEntry);
6169
}
6270

6371
/// <summary>

StabilityMatrix.Tests/Core/PipInstallArgsTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,26 @@ public void TestParsedFromRequirementsTxt()
8181
Assert.AreEqual("torch~=2.0.0 torchvision --extra-index-url https://example.org", args.ToString());
8282
}
8383

84+
[TestMethod]
85+
public void TestParsedFromRequirementsTxt_KeepsEnvironmentMarkerRequirementAsSingleArgument()
86+
{
87+
const string requirements = """
88+
onnxruntime-gpu==1.22.0; python_version < "3.11"
89+
""";
90+
91+
var args = new PipInstallArgs().WithParsedFromRequirementsTxt(requirements).ToProcessArgs();
92+
93+
Assert.AreEqual(1, args.Count());
94+
Assert.AreEqual(
95+
"\"onnxruntime-gpu==1.22.0; python_version < \\\"3.11\\\"\"",
96+
args.Single().GetQuotedValue()
97+
);
98+
Assert.AreEqual(
99+
"\"onnxruntime-gpu==1.22.0; python_version < \\\"3.11\\\"\"",
100+
args.ToString()
101+
);
102+
}
103+
84104
[TestMethod]
85105
public void TestWithUserOverrides()
86106
{

0 commit comments

Comments
 (0)