Skip to content

Commit 1c240b2

Browse files
authored
Merge pull request LykosAI#1245 from ionite34/downmerg
Downmerg
2 parents 999ad49 + d8d571c commit 1c240b2

6 files changed

Lines changed: 59 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2
1414
### Fixed
1515
- 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
1616
- 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
17+
- Fixed pip requirements handling for environment-marker dependencies - thanks to @NeuralFault!
18+
- 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!
1719

1820
## v2.16.0-dev.3
1921
### Added
@@ -129,6 +131,15 @@ Huge shoutout to our amazing Visionaries: **Waterclouds**, **JungleDragon**, **b
129131
#### 🌟 Visionaries
130132
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!
131133

134+
## [Unreleased - v2.15.8]
135+
### Added
136+
- 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
137+
### Changed
138+
- 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
139+
### Fixed
140+
- 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
141+
- 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
142+
132143
## v2.15.7
133144
### Added
134145
- Added single-instance window activation signaling so reopening the app restores and focuses the existing desktop window instead of launching a duplicate instance
@@ -137,9 +148,14 @@ A massive thank you to our esteemed Visionaries: **Waterclouds**, **JungleDragon
137148
- Added support in the Checkpoints page to distinguish standard updates from Early Access-only updates - thanks to @x0x0b!
138149
- Added torch index for Strix/Gorgon Point Ryzen AI APUs on Windows - thanks to @NeuralFault!
139150
- Added retry button to failed downloads - thanks to @NeuralFault!
151+
- Added new Membership support in Account Settings with Patreon migration prompt
140152
### Changed
141153
- Settings file saves are now atomic to prevent corruption from interrupted writes
142154
- Updated torch indexes for A1111, ComfyUI, InvokeAI, and Forge-based UIs to rocm7.2 / cu128 depending on GPU - thanks to @NeuralFault!
155+
- Replaced the "Become a Patron" footer button with "Support Us", linking to the new direct Lykos support page at lykos.ai/membership
156+
- Updated the prompt dialog shown when enabling features like Accelerated Model Discovery to use Lykos accounts instead of Patreon linking
157+
- Moved the Patreon connection in Account Settings to a new "Legacy Connections" section, only shown for users with an existing Patreon link
158+
- Localized previously hardcoded strings on the Account Settings page (menu items, descriptions, section headers) and added Japanese, Korean, German, and French translations
143159
### Fixed
144160
- Fixed an issue where `Align Your Steps` scheduler and Unet Loader workflows ignored Regional Prompting (and other addon) conditioning modifiers.
145161
- Fixed the Package Manager "Add Package" teaching tip opening inopportunely while packages were still loading or after opening the add-package dialog
@@ -159,9 +175,9 @@ A massive thank you to our esteemed Visionaries: **Waterclouds**, **JungleDragon
159175
- 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!
160176
### Supporters
161177
#### 🌟 Visionaries
162-
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!
178+
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!
163179
#### 🚀 Pioneers
164-
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!
180+
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!
165181

166182
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!
167183

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/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)