Skip to content

Conversation

@mohnjiles
Copy link
Contributor

@mohnjiles mohnjiles commented Jul 12, 2025

v2.14.3

Added

  • Added the ability to search by pasting an entire Civitai model URL into the search bar in the Civitai model browser

Changed

  • The main sidebar now remembers whether it was collapsed or expanded between restarts.
  • Inference is now able to load image metadata from Civitai generated images via drag & drop
  • Updated process tracking for ComfyUI to help mitigate restart issues when using Comfy Manager
  • Updated pre-selected download locations for certain model types in the Civitai model browser
  • Updated nodejs to v20.19.3 to support newer InvokeAI versions

Fixed

  • Fixed missing .NET 8 dependency for SwarmUI installs in certain cases
  • Fixed ComfyUI-Zluda not being recognized as a valid Comfy install for the workflow browser
  • Fixed #1291 - Certain GPUs not being detected on Linux
  • Fixed #1284 - Output browser not ignoring InvokeAI thumbnails folders
  • Fixed #1301 - Error when installing kohya_ss
  • Fixed #1305 - FluxGym installing incorrect packages for Blackwell GPUs
  • Fixed #1316 - Errors when installing Triton & SageAttention
  • Fixed "directory is not empty" error when updating packages with symlinks
  • Fixed missing base model types in the Checkpoint Manager & Civitai Model Browser

Supporters

🌟 Visionaries

Big heartfelt thanks to our stellar Visionary-tier Patrons: Waterclouds, Corey T, bluepopsicle, Bob S, Ibixat, and whudunit! 🌟 Your extraordinary generosity continues to fuel Stability Matrix’s journey toward innovation and excellence. We appreciate you immensely!

🚀 Pioneers

Massive thanks to our fantastic Pioneer-tier Patrons: tankfox, Mr. Unknown, Szir777, Tigon, Noah M, USATechDude, Thom, and SeraphOfSalem! Your unwavering support keeps our community thriving and inspires us to push even further. You’re all awesome!

ionite34 and others added 30 commits May 24, 2025 02:31
Fix missing .net 8 and remember sidebar open state

(cherry picked from commit 8117898)

# Conflicts:
#	CHANGELOG.md
#	StabilityMatrix.Core/Models/Settings/Settings.cs
[dev to main] backport: Fix missing .net 8 and remember sidebar open state (1094)
…d-fixes

Fix comfy-zluda not showing up for workflow browser node installs & …

(cherry picked from commit b012947)

# Conflicts:
#	CHANGELOG.md
Fixed a few github issues & update download locations for wan/hunyuan/ggufs

(cherry picked from commit 8a35e05)

# Conflicts:
#	CHANGELOG.md
#	StabilityMatrix.Core/Models/PackageModification/InstallSageAttentionStep.cs
[dev to main] backport: Fixed a few github issues & update download locations for wan/hunyuan/ggufs (1101)
[dev to main] backport: Fix comfy-zluda not showing up for workflow browser node installs & … (1099)
…rrors

Catch symlink removal errors during update so it doesn't completely fail the update

(cherry picked from commit 0dea261)

# Conflicts:
#	CHANGELOG.md
[dev to main] backport: Catch symlink removal errors during update so it doesn't completely fail the update (1105)
update base model parsing from error response cuz civit changed response model

(cherry picked from commit a397926)

# Conflicts:
#	CHANGELOG.md
[dev to main] backport: update base model parsing from error response cuz civit changed response model (1109)
Pin pupnet version in release.yml

(cherry picked from commit 16be528)
[dev to main] backport: Pin pupnet version in release.yml (1111)
update 2.14.3 chagenlog with shoutout & notes from main

(cherry picked from commit ce9992b)

# Conflicts:
#	CHANGELOG.md
[dev to main] backport: update 2.14.3 chagenlog with shoutout & notes from main (1113)
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @mohnjiles, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces version v2.14.3, focusing on a range of improvements, bug fixes, and minor feature additions across the application. Key areas of enhancement include improved model management, better image metadata handling, updated prerequisite installations, and general stability improvements.

Highlights

  • Civitai Integration Enhancements: Added the ability to search Civitai models by pasting a full URL, improved loading of image metadata from Civitai-generated images, and updated pre-selected download locations for various model types.
  • Prerequisite Management Updates: Node.js has been updated to v20.19.3, and the .NET SDK installation logic has been refined for both Windows and Linux to ensure correct versions are installed and reinstalled only when necessary.
  • Stability and Compatibility Fixes: Addressed several installation issues for packages like kohya_ss, FluxGym, Triton, and SageAttention. Improved GPU detection on Linux and fixed issues with symlinks during package updates.
  • User Interface Improvements: The main sidebar now remembers its collapsed/expanded state between restarts, and the output browser has been updated to ignore InvokeAI thumbnail folders.
  • Internal Code Refinements: Various internal code changes for better maintainability, including explicit AsEnumerable() calls for byte array reversals and updated package dependencies.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the application to version v2.14.3, which includes several bug fixes, new features, and dependency updates. While the changes generally improve the application, there are opportunities to enhance code maintainability, performance, and error handling. Addressing these suggestions will contribute to a more robust and reliable application.

<Project>
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<LangVersion>preview</LangVersion>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Using LangVersion>preview introduces instability in a patch release. Preview language features are subject to change, potentially breaking the application. Consider the necessity of this change for the fixes provided.

{
var chunkLength = BitConverter.ToInt32(
inputImage[position..(position + 4)].Reverse().ToArray(),
inputImage[position..(position + 4)].AsEnumerable().Reverse().ToArray(),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The use of .AsEnumerable().Reverse().ToArray() for byte reversal is inefficient, allocating unnecessary memory. Utilize System.Buffers.BinaryPrimitives.ReadInt32BigEndian(inputImage.AsSpan(position, 4)) for direct span manipulation and allocation avoidance. This applies to other similar instances in this file and ImageMetadata.cs.

var chunkLength = System.Buffers.Binary.BinaryPrimitives.ReadInt32BigEndian(inputImage.AsSpan(position, 4));

Comment on lines +354 to +368
// NOTE TO FUTURE DEVS: if this is causing merge conflicts with dev, just nuke it we don't need anymore
private async Task<string> RunNode(
ProcessArgs args,
string? workingDirectory = null,
IReadOnlyDictionary<string, string>? envVars = null
)
{
var nodePath = Path.Combine(NodeDir, "bin", "node");
var result = await ProcessRunner
.GetProcessResultAsync(nodePath, args, workingDirectory, envVars)
.ConfigureAwait(false);

result.EnsureSuccessExitCode();
return result.StandardOutput ?? result.StandardError ?? string.Empty;
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The RunNode method is duplicated in UnixPrerequisiteHelper.cs and WindowsPrerequisiteHelper.cs. Consolidate this logic into a shared helper class to reduce code duplication and improve maintainability. The same applies to the InstallNodeIfNecessary method.

Comment on lines +426 to +429
catch (Exception)
{
// ignored
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Silently ignoring exceptions in the catch block can mask underlying issues. Log the exception to provide insights into potential failures during Node.js version checking. This aids in debugging and prevents unexpected behavior.

            catch (Exception e)
            {
                Logger.Debug(e, "Could not get node version, assuming it needs reinstall.");
            }

Comment on lines +46 to +48
var innerJson = baseModels?["error"]?["message"]?.GetValue<string>();
var jArray = JsonNode.Parse(innerJson).AsArray();
var baseModelValues = jArray[0]?["errors"]?[0]?[0]?["values"]?.AsArray();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Parsing base model types from the API error message is fragile. Implement a more robust deserialization approach using a dedicated class structure to handle the JSON response. This will prevent silent failures if the error message format changes.

@mohnjiles mohnjiles merged commit aa7e3a1 into LykosAI:main Jul 13, 2025
2 of 4 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Jul 13, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

2 participants