Skip to content

Commit 362f1f9

Browse files
authored
Merge branch 'main' into backport/main/pr-1193
2 parents e9149df + 4f5ecb3 commit 362f1f9

6 files changed

Lines changed: 138 additions & 38 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ All notable changes to Stability Matrix will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2.0.0.html).
77

8-
<<<<<<< HEAD
9-
=======
10-
## v2.16.0-dev.2
8+
## v2.15.6
119
### Added
1210
- Added NVIDIA driver version warning when launching ComfyUI with CUDA 13.0 (cu130) and driver versions below 580.x
1311
- Added legacy Python warning when launching InvokeAI installations using Python 3.10.11
@@ -33,35 +31,6 @@ and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2
3331
- Fixed [#1466](https://github.com/LykosAI/StabilityMatrix/issues/1466) - crash after moving portable install
3432
- Fixed [#1445](https://github.com/LykosAI/StabilityMatrix/issues/1445) - Linux app updates not actually updating - thanks to @NeuralFault!
3533

36-
## v2.16.0-dev.1
37-
### Added
38-
#### New Feature: 🧪 Image Lab - Conversational Image Generation for ComfyUI
39-
- We've added a brand new conversational interface for image generation! Image Lab lets you iterate on images naturally through chat, rather than just one-off prompts.
40-
- Local-First Power: Native support for Flux Kontext and Qwen Image Edit running entirely locally via your ComfyUI backend.
41-
- Smart Setup: Stability Matrix automatically detects and helps you download the specific models and LoRAs needed for these local workflows.
42-
- Interactive Tools: Drag-and-drop image inputs, use the built-in annotation tool to draw on images, and keep persistent conversation history.
43-
- Cloud Option: Includes optional support for Nano Banana (Gemini 3 Pro/2.5) for users who want to leverage external reasoning models.
44-
- Added new package - [Wan2GP](https://github.com/deepbeepmeep/Wan2GP)
45-
- Added [Stable Diffusion WebUI Forge - Neo](https://github.com/Haoming02/sd-webui-forge-classic/tree/neo) as a separate package for convenience
46-
- Added Intel GPU support for ComfyUI
47-
- Added "Run Python Command" option to the package card's 3-dots menu for running arbitrary Python code in the package's virtual environment
48-
- Added togglable `--uv` argument to the SD.Next launch options
49-
- Added Tiled VAE decoding as an Inference addon thanks to @NeuralFault!
50-
### Changed
51-
- Moved the original Stable Diffusion WebUI Forge to the "Legacy" packages tab due to inactivity
52-
- Updated to cu130 torch index for ComfyUI installs with Nvidia GPUs
53-
- Consolidated and fixed AMD GPU architecture detection
54-
- Updated SageAttention installer to latest v2.2.0-windows.post4 version
55-
- Video files can now be opened directly from the Output browser
56-
- Videos will now appear with thumbnails in the Output browser
57-
### Fixed
58-
- Fixed [#1450](https://github.com/LykosAI/StabilityMatrix/issues/1450) - Older SD.Next not launching due to forced `--uv` argument
59-
- Fixed duplicate custom node installations when installing workflows from the Workflow Browser - thanks again to @NeuralFault!
60-
### Supporters
61-
#### 🌟 Visionaries
62-
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!
63-
64-
>>>>>>> 1c542602 (Merge pull request #1193 from ionite34/fix-bugs-n-stuff)
6534
## v2.15.5
6635
### Added
6736
- Added new package - [Wan2GP](https://github.com/deepbeepmeep/Wan2GP)

StabilityMatrix.Avalonia/Views/CivitAiBrowserPage.axaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,8 @@
351351
<Grid ColumnDefinitions="*, Auto">
352352
<StackPanel
353353
Grid.Row="0"
354-
Grid.Column="0"
354+
Grid.Column="1"
355+
IsVisible="{Binding CivitModel.ModelVersionStats.RatingCount, FallbackValue=False, TargetNullValue=False}"
355356
Orientation="Horizontal">
356357
<controls:StarsRating
357358
Margin="8,8,0,8"
@@ -368,9 +369,9 @@
368369

369370
<StackPanel
370371
Grid.Row="0"
371-
Grid.Column="1"
372-
Margin="0,0,8,0"
373-
HorizontalAlignment="Right"
372+
Grid.Column="0"
373+
Margin="8"
374+
HorizontalAlignment="Left"
374375
Orientation="Horizontal">
375376
<fa:Icon Value="fa-solid fa-heart" />
376377
<TextBlock

StabilityMatrix.Core/Helper/HardwareInfo/HardwareHelper.cs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,41 @@ public static IEnumerable<GpuInfo> IterGpuInfo(bool forceRefresh = false)
247247
return gpuInfos;
248248
}
249249

250+
/// <summary>
251+
/// Gets the NVIDIA driver version using nvidia-smi.
252+
/// Returns null if nvidia-smi is not available or fails.
253+
/// </summary>
254+
public static Version? GetNvidiaDriverVersion()
255+
{
256+
try
257+
{
258+
var psi = new ProcessStartInfo
259+
{
260+
FileName = "nvidia-smi",
261+
UseShellExecute = false,
262+
Arguments = "--query-gpu=driver_version --format=csv,noheader",
263+
RedirectStandardOutput = true,
264+
CreateNoWindow = true,
265+
};
266+
267+
var process = Process.Start(psi);
268+
process?.WaitForExit();
269+
var stdout = process?.StandardOutput.ReadToEnd()?.Trim();
270+
271+
if (string.IsNullOrEmpty(stdout))
272+
return null;
273+
274+
// Driver version is typically in the format "xxx.xx" (e.g., "591.59")
275+
// We'll parse it as a Version object
276+
return Version.TryParse(stdout, out var version) ? version : null;
277+
}
278+
catch (Exception e)
279+
{
280+
Logger.Warn(e, "Failed to get NVIDIA driver version from nvidia-smi");
281+
return null;
282+
}
283+
}
284+
250285
/// <summary>
251286
/// Return true if the system has at least one Nvidia GPU.
252287
/// </summary>

StabilityMatrix.Core/Models/Packages/ComfyUI.cs

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,59 @@ await SetupVenv(installLocation, pythonVersion: PyVersion.Parse(installedPackage
530530

531531
VenvRunner.UpdateEnvironmentVariables(GetEnvVars);
532532

533+
// Check for old NVIDIA driver version with cu130 installations
534+
var isNvidia = SettingsManager.Settings.PreferredGpu?.IsNvidia ?? HardwareHelper.HasNvidiaGpu();
535+
var isLegacyNvidia =
536+
SettingsManager.Settings.PreferredGpu?.IsLegacyNvidiaGpu() ?? HardwareHelper.HasLegacyNvidiaGpu();
537+
538+
if (isNvidia && !isLegacyNvidia)
539+
{
540+
var driverVersion = HardwareHelper.GetNvidiaDriverVersion();
541+
if (driverVersion is not null && driverVersion.Major < 580)
542+
{
543+
// Check if torch is installed with cu130 index
544+
var torchInfo = await VenvRunner.PipShow("torch").ConfigureAwait(false);
545+
if (torchInfo is not null)
546+
{
547+
var version = torchInfo.Version;
548+
var plusPos = version.IndexOf('+');
549+
var torchIndex = plusPos >= 0 ? version[(plusPos + 1)..] : string.Empty;
550+
551+
// Only warn if using cu130 (which requires driver 580+)
552+
if (torchIndex.Equals("cu130", StringComparison.OrdinalIgnoreCase))
553+
{
554+
var warningMessage = $"""
555+
556+
============================================================
557+
NVIDIA DRIVER WARNING
558+
============================================================
559+
560+
Your NVIDIA driver version ({driverVersion}) is older than
561+
the minimum required version (580.x) for CUDA 13.0 (cu130).
562+
563+
This may cause ComfyUI to fail to start or experience issues.
564+
565+
Recommended actions:
566+
1. Update your NVIDIA driver to version 580 or newer
567+
2. Or manually downgrade your torch version to use an
568+
older torch index (e.g. cu128)
569+
570+
============================================================
571+
572+
""";
573+
574+
Logger.Warn(
575+
"NVIDIA driver version {DriverVersion} is below 580.x minimum for cu130 (torch index: {TorchIndex})",
576+
driverVersion,
577+
torchIndex
578+
);
579+
onConsoleOutput?.Invoke(ProcessOutput.FromStdErrLine(warningMessage));
580+
return;
581+
}
582+
}
583+
}
584+
}
585+
533586
VenvRunner.RunDetached(
534587
[Path.Combine(installLocation, options.Command ?? LaunchCommand), .. options.Arguments],
535588
HandleConsoleOutput,

StabilityMatrix.Core/Models/Packages/FluxGym.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ IPipWheelService pipWheelService
3939
public override string LicenseUrl => "";
4040
public override string LaunchCommand => "app.py";
4141

42-
public override Uri PreviewImageUri =>
43-
new("https://raw.githubusercontent.com/cocktailpeanut/fluxgym/main/screenshot.png");
42+
public override Uri PreviewImageUri => new("https://cdn.lykos.ai/sm/packages/fluxgym/fluxgym.webp");
4443

4544
public override List<LaunchOptionDefinition> LaunchOptions => [LaunchOptionDefinition.Extras];
4645

StabilityMatrix.Core/Models/Packages/InvokeAI.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,11 @@ public override Task DownloadPackage(
131131
return Task.CompletedTask;
132132
}
133133

134+
public override Task<bool> CheckForUpdates(InstalledPackage package) =>
135+
package.PythonVersion == Python.PyInstallationManager.Python_3_10_11.ToString()
136+
? Task.FromResult(false)
137+
: base.CheckForUpdates(package);
138+
134139
public override async Task InstallPackage(
135140
string installLocation,
136141
InstalledPackage installedPackage,
@@ -300,6 +305,44 @@ await SetupVenv(installedPackagePath, pythonVersion: PyVersion.Parse(installedPa
300305

301306
VenvRunner.UpdateEnvironmentVariables(env => GetEnvVars(env, installedPackagePath));
302307

308+
// Check for legacy Python 3.10.11 installations
309+
if (installedPackage.PythonVersion == Python.PyInstallationManager.Python_3_10_11.ToString())
310+
{
311+
var warningMessage = """
312+
313+
============================================================
314+
LEGACY INVOKEAI INSTALLATION
315+
============================================================
316+
317+
This InvokeAI installation is using Python 3.10.11, which
318+
is no longer supported by InvokeAI.
319+
320+
Automatic updates have been disabled for this installation
321+
to prevent compatibility issues.
322+
323+
Your current installation will continue to work, but will
324+
not receive updates.
325+
326+
Recommended actions:
327+
1. Install a new InvokeAI instance with Python 3.12+
328+
2. Copy your settings and data from this installation
329+
to the new one
330+
3. Once verified, you can delete this old installation
331+
332+
Note: You can run both installations side-by-side during
333+
the migration.
334+
335+
============================================================
336+
337+
""";
338+
339+
Logger.Warn(
340+
"InvokeAI installation using legacy Python {PythonVersion} - updates disabled",
341+
installedPackage.PythonVersion
342+
);
343+
onConsoleOutput?.Invoke(ProcessOutput.FromStdErrLine(warningMessage));
344+
}
345+
303346
// Launch command is for a console entry point, and not a direct script
304347
var entryPoint = await VenvRunner.GetEntryPoint(command).ConfigureAwait(false);
305348

0 commit comments

Comments
 (0)