From d65a80e7ae8fffc177e47d7d4e68ca7ba6f92aab Mon Sep 17 00:00:00 2001 From: JT Date: Wed, 16 Oct 2024 22:56:23 -0600 Subject: [PATCH 01/10] Merge pull request #863 from ionite34/fix-infinity-and-updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Improve infinity fix & hopefully fix infinities forever? also fix upd… (cherry picked from commit bdb0f40e1c438ad48f5937536bb8219ff45aa89d) # Conflicts: # CHANGELOG.md --- CHANGELOG.md | 35 ++++++++++++++ StabilityMatrix.Avalonia/App.axaml.cs | 4 +- .../ViewModels/MainWindowViewModel.cs | 9 +++- StabilityMatrix.Core/Helper/FileTransfers.cs | 9 +++- StabilityMatrix.Core/Helper/SharedFolders.cs | 3 +- .../Models/Packages/BaseGitPackage.cs | 48 ++++++++++++++++++- 6 files changed, 103 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93d87c47..4bf59c0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,41 @@ All notable changes to Stability Matrix will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2.0.0.html). +<<<<<<< HEAD +======= +## v2.13.0-dev.2 +### Added +- Added "Search by Creator" command to Civitai browser context menu +- Added Beta scheduler to the scheduler selector in Inference +- Added zipping of log files and "Show Log in Explorer" button on exceptions dialog for easier support +### Changed +- (Internal) Updated to Avalonia 11.1.4 +- Adjusted the Branch/Release toggle during package install flow to be a little more obvious +### Fixed +- Fixed ComfyUI NF4 extension not installing properly when prompted in Inference +- Fixed [#932](https://github.com/LykosAI/StabilityMatrix/issues/932), [#935](https://github.com/LykosAI/StabilityMatrix/issues/935), [#939](https://github.com/LykosAI/StabilityMatrix/issues/939) - InvokeAI failing to update +- Fixed repeated nested folders being created in `Models/StableDiffusion` when using Forge in Symlink mode in certain conditions. Existing folders will be repaired to their original structure on launch. +- Fixed minimize button not working on macOS +- Fixed InvokeAI model sharing spamming the console with "This may take awhile" in certain conditions +### Supporters +#### Visionaries +- A big thank you to our amazing Visionary-tier Patreon supporter, **Waterclouds**! Your continued support is invaluable! + +## v2.13.0-dev.1 +### Added +- Added the ability to change the Models directory separately from the rest of the Data directory. This can be set in `Settings > Select new Models Folder` +- Added "Copy" menu to the Inference gallery context menu, allowing you to copy the image or the seed (other params coming soon™️) +- Added InvokeAI model sharing option +### Supporters +#### Visionaries +- A heartfelt thank you to our incredible Visionary-tier Patreon supporter, **Waterclouds**! Your ongoing support means a lot to us, and we’re grateful to have you with us on this journey! + +## v2.12.3 +### Fixed +- Fixed some cases of FileTransferExists error when running re/Forge or Automatic1111 +- Fixed update check not happening on startup for some users + +>>>>>>> bdb0f40e (Merge pull request #863 from ionite34/fix-infinity-and-updates) ## v2.12.2 ### Added - Added Beta scheduler to the scheduler selector in Inference diff --git a/StabilityMatrix.Avalonia/App.axaml.cs b/StabilityMatrix.Avalonia/App.axaml.cs index 62eb4631..e9d04f48 100644 --- a/StabilityMatrix.Avalonia/App.axaml.cs +++ b/StabilityMatrix.Avalonia/App.axaml.cs @@ -61,6 +61,7 @@ using StabilityMatrix.Core.Models.FileInterfaces; using StabilityMatrix.Core.Models.Settings; using StabilityMatrix.Core.Services; +using StabilityMatrix.Core.Updater; using Application = Avalonia.Application; using Logger = NLog.Logger; using LogLevel = Microsoft.Extensions.Logging.LogLevel; @@ -375,7 +376,8 @@ internal static void ConfigurePageViewModels(IServiceCollection services) provider.GetRequiredService(), provider.GetRequiredService>(), provider.GetRequiredService(), - provider.GetRequiredService() + provider.GetRequiredService(), + provider.GetRequiredService() ) { Pages = diff --git a/StabilityMatrix.Avalonia/ViewModels/MainWindowViewModel.cs b/StabilityMatrix.Avalonia/ViewModels/MainWindowViewModel.cs index ba5b43f1..ca82b0f8 100644 --- a/StabilityMatrix.Avalonia/ViewModels/MainWindowViewModel.cs +++ b/StabilityMatrix.Avalonia/ViewModels/MainWindowViewModel.cs @@ -30,6 +30,7 @@ using StabilityMatrix.Core.Models.Settings; using StabilityMatrix.Core.Models.Update; using StabilityMatrix.Core.Services; +using StabilityMatrix.Core.Updater; namespace StabilityMatrix.Avalonia.ViewModels; @@ -46,6 +47,7 @@ public partial class MainWindowViewModel : ViewModelBase private readonly Lazy modelDownloadLinkHandler; private readonly INotificationService notificationService; private readonly IAnalyticsHelper analyticsHelper; + private readonly IUpdateHelper updateHelper; public string Greeting => "Welcome to Avalonia!"; [ObservableProperty] @@ -86,7 +88,8 @@ public MainWindowViewModel( IModelIndexService modelIndexService, Lazy modelDownloadLinkHandler, INotificationService notificationService, - IAnalyticsHelper analyticsHelper + IAnalyticsHelper analyticsHelper, + IUpdateHelper updateHelper ) { this.settingsManager = settingsManager; @@ -97,6 +100,7 @@ IAnalyticsHelper analyticsHelper this.modelDownloadLinkHandler = modelDownloadLinkHandler; this.notificationService = notificationService; this.analyticsHelper = analyticsHelper; + this.updateHelper = updateHelper; ProgressManagerViewModel = dialogFactory.Get(); UpdateViewModel = dialogFactory.Get(); } @@ -263,6 +267,9 @@ settingsManager.Settings.Analytics.LastSeenConsentVersion is null settingsManager.Transaction(s => s.UpdatingFromVersion = null); } + // Start checking for updates + await updateHelper.StartCheckingForUpdates(); + // Periodic launch stats if ( settingsManager.Settings.Analytics.IsUsageDataEnabled diff --git a/StabilityMatrix.Core/Helper/FileTransfers.cs b/StabilityMatrix.Core/Helper/FileTransfers.cs index 4bc46cbc..1f254e4d 100644 --- a/StabilityMatrix.Core/Helper/FileTransfers.cs +++ b/StabilityMatrix.Core/Helper/FileTransfers.cs @@ -141,7 +141,8 @@ public static async Task MoveAllFilesAndDirectories( DirectoryPath sourceDir, DirectoryPath destinationDir, bool overwrite = false, - bool overwriteIfHashMatches = false + bool overwriteIfHashMatches = false, + bool deleteSymlinks = false ) { // Create the destination directory if it doesn't exist @@ -157,6 +158,12 @@ await MoveAllFiles(sourceDir, destinationDir, overwrite, overwriteIfHashMatches) // Then move directories foreach (var subDir in sourceDir.Info.EnumerateDirectories()) { + if (deleteSymlinks && new DirectoryPath(subDir).IsSymbolicLink) + { + subDir.Delete(false); + continue; + } + var destinationSubDir = destinationDir.JoinDir(subDir.Name); // Recursively move sub directories await MoveAllFilesAndDirectories(subDir, destinationSubDir, overwrite, overwriteIfHashMatches) diff --git a/StabilityMatrix.Core/Helper/SharedFolders.cs b/StabilityMatrix.Core/Helper/SharedFolders.cs index 0878308f..ca692bef 100644 --- a/StabilityMatrix.Core/Helper/SharedFolders.cs +++ b/StabilityMatrix.Core/Helper/SharedFolders.cs @@ -90,7 +90,8 @@ await FileTransfers destinationDir, sourceDir, overwriteIfHashMatches: true, - overwrite: overwrite + overwrite: overwrite, + deleteSymlinks: true ) .ConfigureAwait(false); } diff --git a/StabilityMatrix.Core/Models/Packages/BaseGitPackage.cs b/StabilityMatrix.Core/Models/Packages/BaseGitPackage.cs index 585c658f..b559f669 100644 --- a/StabilityMatrix.Core/Models/Packages/BaseGitPackage.cs +++ b/StabilityMatrix.Core/Models/Packages/BaseGitPackage.cs @@ -1,6 +1,7 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.IO.Compression; +using System.Text.RegularExpressions; using NLog; using Octokit; using StabilityMatrix.Core.Helper; @@ -554,6 +555,51 @@ private async Task FixInfinityFolders(DirectoryPath rootDirectory, string infini await firstInfinity.DeleteAsync(true).ConfigureAwait(false); } + private async Task FixForgeInfinity() + { + var modelsDir = new DirectoryPath(SettingsManager.ModelsDirectory); + var rootDirectory = modelsDir.JoinDir("StableDiffusion").JoinDir("sd"); + var infinityFolderName = "sd"; + var firstInfinity = rootDirectory.JoinDir(infinityFolderName); + + var depth = 0; + var currentDir = rootDirectory; + + while (currentDir.JoinDir(infinityFolderName) is { Exists: true, IsSymbolicLink: false } newInfinity) + { + depth++; + currentDir = newInfinity; + } + + if (depth <= 5) + { + Logger.Info("not really that infinity, aborting"); + return; + } + + Logger.Info("Found {Depth} infinity folders from {FirstPath}", depth, firstInfinity.ToString()); + + // Move all items in infinity folder to root + Logger.Info("Moving infinity folders content to root: {Path}", currentDir.ToString()); + await FileTransfers + .MoveAllFilesAndDirectories(currentDir, rootDirectory, overwriteIfHashMatches: true) + .ConfigureAwait(false); + + // Move any files from first infinity by enumeration just in case + var leftoverFiles = firstInfinity.EnumerateFiles(searchOption: SearchOption.AllDirectories); + foreach (var file in leftoverFiles) + { + await file.MoveToWithIncrementAsync(rootDirectory.JoinFile(file.Name)).ConfigureAwait(false); + } + + if (!firstInfinity.EnumerateFiles(searchOption: SearchOption.AllDirectories).Any()) + { + // Delete infinity folders chain from first + Logger.Info("Deleting infinity folders: {Path}", currentDir.ToString()); + await firstInfinity.DeleteAsync(true).ConfigureAwait(false); + } + } + public override async Task SetupModelFolders( DirectoryPath installDirectory, SharedFolderMethod sharedFolderMethod @@ -568,7 +614,7 @@ SharedFolderMethod sharedFolderMethod // fix infinity controlnet folders await FixInfinityFolders(modelsDir.JoinDir("ControlNet"), "ControlNet").ConfigureAwait(false); - await FixInfinityFolders(modelsDir.JoinDir("StableDiffusion"), "sd").ConfigureAwait(false); + await FixForgeInfinity().ConfigureAwait(false); // fix duplicate links in models dir // see https://github.com/LykosAI/StabilityMatrix/issues/338 From 57f5218a418f08c80a4291399ee64bf028ab1d29 Mon Sep 17 00:00:00 2001 From: JT Date: Wed, 16 Oct 2024 21:59:23 -0700 Subject: [PATCH 02/10] Update CHANGELOG.md --- CHANGELOG.md | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bf59c0c..44519e7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,41 +5,11 @@ All notable changes to Stability Matrix will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2.0.0.html). -<<<<<<< HEAD -======= -## v2.13.0-dev.2 -### Added -- Added "Search by Creator" command to Civitai browser context menu -- Added Beta scheduler to the scheduler selector in Inference -- Added zipping of log files and "Show Log in Explorer" button on exceptions dialog for easier support -### Changed -- (Internal) Updated to Avalonia 11.1.4 -- Adjusted the Branch/Release toggle during package install flow to be a little more obvious -### Fixed -- Fixed ComfyUI NF4 extension not installing properly when prompted in Inference -- Fixed [#932](https://github.com/LykosAI/StabilityMatrix/issues/932), [#935](https://github.com/LykosAI/StabilityMatrix/issues/935), [#939](https://github.com/LykosAI/StabilityMatrix/issues/939) - InvokeAI failing to update -- Fixed repeated nested folders being created in `Models/StableDiffusion` when using Forge in Symlink mode in certain conditions. Existing folders will be repaired to their original structure on launch. -- Fixed minimize button not working on macOS -- Fixed InvokeAI model sharing spamming the console with "This may take awhile" in certain conditions -### Supporters -#### Visionaries -- A big thank you to our amazing Visionary-tier Patreon supporter, **Waterclouds**! Your continued support is invaluable! - -## v2.13.0-dev.1 -### Added -- Added the ability to change the Models directory separately from the rest of the Data directory. This can be set in `Settings > Select new Models Folder` -- Added "Copy" menu to the Inference gallery context menu, allowing you to copy the image or the seed (other params coming soon™️) -- Added InvokeAI model sharing option -### Supporters -#### Visionaries -- A heartfelt thank you to our incredible Visionary-tier Patreon supporter, **Waterclouds**! Your ongoing support means a lot to us, and we’re grateful to have you with us on this journey! - ## v2.12.3 ### Fixed - Fixed some cases of FileTransferExists error when running re/Forge or Automatic1111 - Fixed update check not happening on startup for some users ->>>>>>> bdb0f40e (Merge pull request #863 from ionite34/fix-infinity-and-updates) ## v2.12.2 ### Added - Added Beta scheduler to the scheduler selector in Inference From d71fc37034296aefcbbc8584fb7aa438fc844ab8 Mon Sep 17 00:00:00 2001 From: JT Date: Sat, 26 Oct 2024 21:03:28 -0700 Subject: [PATCH 03/10] Merge pull request #868 from ionite34/a1111-fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix a1111 on mac, only install insightface on windows, and … (cherry picked from commit 04ec5dc89c154667d49fcdb0a6d141a40406448f) # Conflicts: # CHANGELOG.md --- CHANGELOG.md | 35 +++++++++ .../Dialogs/NewOneClickInstallViewModel.cs | 6 +- .../Models/Packages/A3WebUI.cs | 2 +- .../Models/Packages/SimpleSDXL.cs | 74 ++++++++----------- 4 files changed, 71 insertions(+), 46 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44519e7c..c9e1218f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,45 @@ All notable changes to Stability Matrix will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2.0.0.html). +<<<<<<< HEAD +======= + +## v2.13.0-dev.2 +### Added +- Added "Search by Creator" command to Civitai browser context menu +- Added Beta scheduler to the scheduler selector in Inference +- Added zipping of log files and "Show Log in Explorer" button on exceptions dialog for easier support +### Changed +- (Internal) Updated to Avalonia 11.1.4 +- Adjusted the Branch/Release toggle during package install flow to be a little more obvious +### Fixed +- Fixed ComfyUI NF4 extension not installing properly when prompted in Inference +- Fixed [#932](https://github.com/LykosAI/StabilityMatrix/issues/932), [#935](https://github.com/LykosAI/StabilityMatrix/issues/935), [#939](https://github.com/LykosAI/StabilityMatrix/issues/939) - InvokeAI failing to update +- Fixed repeated nested folders being created in `Models/StableDiffusion` when using Forge in Symlink mode in certain conditions. Existing folders will be repaired to their original structure on launch. +- Fixed minimize button not working on macOS +- Fixed InvokeAI model sharing spamming the console with "This may take a while" in certain conditions +### Supporters +#### Visionaries +- A big thank you to our amazing Visionary-tier Patreon supporter, **Waterclouds**! Your continued support is invaluable! + +## v2.13.0-dev.1 +### Added +- Added the ability to change the Models directory separately from the rest of the Data directory. This can be set in `Settings > Select new Models Folder` +- Added "Copy" menu to the Inference gallery context menu, allowing you to copy the image or the seed (other params coming soon™️) +- Added InvokeAI model sharing option +### Supporters +#### Visionaries +- A heartfelt thank you to our incredible Visionary-tier Patreon supporter, **Waterclouds**! Your ongoing support means a lot to us, and we’re grateful to have you with us on this journey! + +>>>>>>> 04ec5dc8 (Merge pull request #868 from ionite34/a1111-fix) ## v2.12.3 +### Added +- Added new package - [SimpleSDXL](https://github.com/metercai/SimpleSDXL) - many thanks to @NullDev for the contribution! +- Added new package - [FluxGym](https://github.com/cocktailpeanut/fluxgym) - many thanks to @NullDev for the contribution! ### Fixed - Fixed some cases of FileTransferExists error when running re/Forge or Automatic1111 - Fixed update check not happening on startup for some users +- Fixed error when installing Automatic1111 on macOS ## v2.12.2 ### Added diff --git a/StabilityMatrix.Avalonia/ViewModels/Dialogs/NewOneClickInstallViewModel.cs b/StabilityMatrix.Avalonia/ViewModels/Dialogs/NewOneClickInstallViewModel.cs index ceb235dd..f390b3fd 100644 --- a/StabilityMatrix.Avalonia/ViewModels/Dialogs/NewOneClickInstallViewModel.cs +++ b/StabilityMatrix.Avalonia/ViewModels/Dialogs/NewOneClickInstallViewModel.cs @@ -76,13 +76,13 @@ INotificationService notificationService .Connect() .DeferUntilLoaded() .Filter(incompatiblePredicate) - .Filter(p => p.OfferInOneClickInstaller) - .Sort( + .Filter(p => p is { OfferInOneClickInstaller: true, PackageType: PackageType.SdInference }) + .SortAndBind( + ShownPackages, SortExpressionComparer .Ascending(p => p.InstallerSortOrder) .ThenByAscending(p => p.DisplayName) ) - .Bind(ShownPackages) .Subscribe(); AllPackagesCache.AddOrUpdate(packageFactory.GetAllAvailablePackages()); diff --git a/StabilityMatrix.Core/Models/Packages/A3WebUI.cs b/StabilityMatrix.Core/Models/Packages/A3WebUI.cs index 95f7fd1d..9382c003 100644 --- a/StabilityMatrix.Core/Models/Packages/A3WebUI.cs +++ b/StabilityMatrix.Core/Models/Packages/A3WebUI.cs @@ -217,7 +217,7 @@ public override async Task InstallPackage( TorchIndex.Mps => new PipInstallArgs() .WithTorch("==2.3.1") - .WithTorchVision("==2.3.1") + .WithTorchVision("==0.18.1") .WithParsedFromRequirementsTxt( await requirements.ReadAllTextAsync(cancellationToken).ConfigureAwait(false), excludePattern: "torch" diff --git a/StabilityMatrix.Core/Models/Packages/SimpleSDXL.cs b/StabilityMatrix.Core/Models/Packages/SimpleSDXL.cs index b3871c49..830cc3f0 100644 --- a/StabilityMatrix.Core/Models/Packages/SimpleSDXL.cs +++ b/StabilityMatrix.Core/Models/Packages/SimpleSDXL.cs @@ -1,6 +1,7 @@ using StabilityMatrix.Core.Attributes; using StabilityMatrix.Core.Helper; using StabilityMatrix.Core.Helper.Cache; +using StabilityMatrix.Core.Helper.HardwareInfo; using StabilityMatrix.Core.Models.FileInterfaces; using StabilityMatrix.Core.Models.Progress; using StabilityMatrix.Core.Processes; @@ -27,9 +28,11 @@ IPrerequisiteHelper prerequisiteHelper new("https://github.com/user-attachments/assets/98715a4d-9f4a-4846-ae62-eb8d69793d31"); public override PackageDifficulty InstallerSortOrder => PackageDifficulty.Expert; public override IEnumerable AvailableSharedFolderMethods => - [SharedFolderMethod.Symlink, SharedFolderMethod.None]; - public override SharedFolderMethod RecommendedSharedFolderMethod => SharedFolderMethod.Symlink; + [SharedFolderMethod.Configuration, SharedFolderMethod.Symlink, SharedFolderMethod.None]; + public override SharedFolderMethod RecommendedSharedFolderMethod => SharedFolderMethod.Configuration; public override string MainBranch => "SimpleSDXL"; + public override IEnumerable AvailableTorchIndices => [TorchIndex.Cuda]; + public override bool IsCompatible => HardwareHelper.HasNvidiaGpu(); public override List LaunchOptions => [ @@ -157,61 +160,48 @@ public override async Task InstallPackage( CancellationToken cancellationToken = default ) { - const string wheelUrl = - "https://github.com/Gourieff/Assets/raw/main/Insightface/insightface-0.7.3-cp310-cp310-win_amd64.whl"; - var torchVersion = options.PythonOptions.TorchIndex ?? GetRecommendedTorchVersion(); + await using var venvRunner = await SetupVenvPure(installLocation, forceRecreate: true) + .ConfigureAwait(false); - if (torchVersion == TorchIndex.Cuda) - { - await using var venvRunner = await SetupVenvPure(installLocation, forceRecreate: true) - .ConfigureAwait(false); - - progress?.Report(new ProgressReport(-1f, "Installing requirements...", isIndeterminate: true)); - - // Get necessary dependencies - await venvRunner.PipInstall("--upgrade pip", onConsoleOutput).ConfigureAwait(false); - await venvRunner.PipInstall("nvidia-pyindex pygit2", onConsoleOutput).ConfigureAwait(false); - await venvRunner.PipInstall("facexlib cpm_kernels", onConsoleOutput).ConfigureAwait(false); + progress?.Report(new ProgressReport(-1f, "Installing requirements...", isIndeterminate: true)); + // Get necessary dependencies + await venvRunner.PipInstall("--upgrade pip", onConsoleOutput).ConfigureAwait(false); + await venvRunner.PipInstall("nvidia-pyindex pygit2", onConsoleOutput).ConfigureAwait(false); + await venvRunner.PipInstall("facexlib cpm_kernels", onConsoleOutput).ConfigureAwait(false); + if (Compat.IsWindows) + { // Download and Install pre-built insightface + const string wheelUrl = + "https://github.com/Gourieff/Assets/raw/main/Insightface/insightface-0.7.3-cp310-cp310-win_amd64.whl"; + var wheelPath = new FilePath(installLocation, "insightface-0.7.3-cp310-cp310-win_amd64.whl"); await DownloadService .DownloadToFileAsync(wheelUrl, wheelPath, cancellationToken: cancellationToken) .ConfigureAwait(false); await venvRunner.PipInstall($"{wheelPath}", onConsoleOutput).ConfigureAwait(false); await wheelPath.DeleteAsync(cancellationToken).ConfigureAwait(false); + } - var requirements = new FilePath(installLocation, "requirements_versions.txt"); - var pipArgs = new PipInstallArgs() - .WithTorch("==2.3.1") - .WithTorchVision("==0.18.1") - .WithTorchAudio("==2.3.1") - .WithTorchExtraIndex("cu121") - .WithParsedFromRequirementsTxt( - await requirements.ReadAllTextAsync(cancellationToken).ConfigureAwait(false), - "torch" - ); + var requirements = new FilePath(installLocation, "requirements_versions.txt"); - if (installedPackage.PipOverrides != null) - { - pipArgs = pipArgs.WithUserOverrides(installedPackage.PipOverrides); - } + var pipArgs = new PipInstallArgs() + .WithTorch("==2.3.1") + .WithTorchVision("==0.18.1") + .WithTorchAudio("==2.3.1") + .WithTorchExtraIndex("cu121") + .WithParsedFromRequirementsTxt( + await requirements.ReadAllTextAsync(cancellationToken).ConfigureAwait(false), + "torch" + ); - await venvRunner.PipInstall(pipArgs, onConsoleOutput).ConfigureAwait(false); - } - else + if (installedPackage.PipOverrides != null) { - await base.InstallPackage( - installLocation, - installedPackage, - options, - progress, - onConsoleOutput, - cancellationToken - ) - .ConfigureAwait(false); + pipArgs = pipArgs.WithUserOverrides(installedPackage.PipOverrides); } + await venvRunner.PipInstall(pipArgs, onConsoleOutput).ConfigureAwait(false); + // Create output folder since it's not created by default var outputFolder = new DirectoryPath(installLocation, OutputFolderName); outputFolder.Create(); From f30a3aa9b76cbec43dfa7680691ffc21182ffbed Mon Sep 17 00:00:00 2001 From: JT Date: Sat, 26 Oct 2024 21:04:58 -0700 Subject: [PATCH 04/10] fix chagenlog --- CHANGELOG.md | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9e1218f..ff4a7eee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,37 +5,6 @@ All notable changes to Stability Matrix will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2.0.0.html). -<<<<<<< HEAD -======= - -## v2.13.0-dev.2 -### Added -- Added "Search by Creator" command to Civitai browser context menu -- Added Beta scheduler to the scheduler selector in Inference -- Added zipping of log files and "Show Log in Explorer" button on exceptions dialog for easier support -### Changed -- (Internal) Updated to Avalonia 11.1.4 -- Adjusted the Branch/Release toggle during package install flow to be a little more obvious -### Fixed -- Fixed ComfyUI NF4 extension not installing properly when prompted in Inference -- Fixed [#932](https://github.com/LykosAI/StabilityMatrix/issues/932), [#935](https://github.com/LykosAI/StabilityMatrix/issues/935), [#939](https://github.com/LykosAI/StabilityMatrix/issues/939) - InvokeAI failing to update -- Fixed repeated nested folders being created in `Models/StableDiffusion` when using Forge in Symlink mode in certain conditions. Existing folders will be repaired to their original structure on launch. -- Fixed minimize button not working on macOS -- Fixed InvokeAI model sharing spamming the console with "This may take a while" in certain conditions -### Supporters -#### Visionaries -- A big thank you to our amazing Visionary-tier Patreon supporter, **Waterclouds**! Your continued support is invaluable! - -## v2.13.0-dev.1 -### Added -- Added the ability to change the Models directory separately from the rest of the Data directory. This can be set in `Settings > Select new Models Folder` -- Added "Copy" menu to the Inference gallery context menu, allowing you to copy the image or the seed (other params coming soon™️) -- Added InvokeAI model sharing option -### Supporters -#### Visionaries -- A heartfelt thank you to our incredible Visionary-tier Patreon supporter, **Waterclouds**! Your ongoing support means a lot to us, and we’re grateful to have you with us on this journey! - ->>>>>>> 04ec5dc8 (Merge pull request #868 from ionite34/a1111-fix) ## v2.12.3 ### Added - Added new package - [SimpleSDXL](https://github.com/metercai/SimpleSDXL) - many thanks to @NullDev for the contribution! From 223c5eacab253fce005d529362de153929aa6704 Mon Sep 17 00:00:00 2001 From: JT Date: Sat, 2 Nov 2024 17:32:21 -0700 Subject: [PATCH 05/10] Merge pull request #873 from ionite34/more-base-models Add more CivitBaseModelTypes (cherry picked from commit 6eccc3cdfc89f45842865493ebef232105624be4) # Conflicts: # CHANGELOG.md --- CHANGELOG.md | 41 +++++++++++++++++++ .../Views/CheckpointsPage.axaml | 3 +- .../Models/Api/CivitBaseModelType.cs | 15 +++++++ 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff4a7eee..906775fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,10 +5,51 @@ All notable changes to Stability Matrix will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2.0.0.html). +<<<<<<< HEAD +======= +## v2.13.0-dev.3 +### Added +- Added more base model types to the CivitAI Model Browser & Checkpoint Manager + +## v2.13.0-dev.2 +### Added +- Added new package - [SimpleSDXL](https://github.com/metercai/SimpleSDXL) - many thanks to @NullDev for the contribution! +- Added new package - [FluxGym](https://github.com/cocktailpeanut/fluxgym) - many thanks to @NullDev for the contribution! +- Added a new "Extension Packs" section to the extension manager, allowing you to create packs for easier installation of multiple extensions at once +- Added "Search by Creator" command to Civitai browser context menu +- Added Beta scheduler to the scheduler selector in Inference +- Added zipping of log files and "Show Log in Explorer" button on exceptions dialog for easier support +- Added max concurrent downloads option & download queueing for most downloads +### Changed +- (Internal) Updated to Avalonia 11.1.4 +- Adjusted the Branch/Release toggle during package install flow to be a little more obvious +- Updated the Dock library used for Inference - fixes some weirdness with resizing / rearranging panels +### Fixed +- Fixed ComfyUI NF4 extension not installing properly when prompted in Inference +- Fixed [#932](https://github.com/LykosAI/StabilityMatrix/issues/932), [#935](https://github.com/LykosAI/StabilityMatrix/issues/935), [#939](https://github.com/LykosAI/StabilityMatrix/issues/939) - InvokeAI failing to update +- Fixed repeated nested folders being created in `Models/StableDiffusion` when using Forge in Symlink mode in certain conditions. Existing folders will be repaired to their original structure on launch. +- Fixed minimize button not working on macOS +- Fixed InvokeAI model sharing spamming the console with "This may take awhile" in certain conditions +- Fixed text alignment issues in the Downloads tab for certain long names / progress infos +### Supporters +#### Visionaries +- A big thank you to our amazing Visionary-tier Patreon supporter, **Waterclouds**! Your continued support is invaluable! + +## v2.13.0-dev.1 +### Added +- Added the ability to change the Models directory separately from the rest of the Data directory. This can be set in `Settings > Select new Models Folder` +- Added "Copy" menu to the Inference gallery context menu, allowing you to copy the image or the seed (other params coming soon™️) +- Added InvokeAI model sharing option +### Supporters +#### Visionaries +- A heartfelt thank you to our incredible Visionary-tier Patreon supporter, **Waterclouds**! Your ongoing support means a lot to us, and we’re grateful to have you with us on this journey! + +>>>>>>> 6eccc3cd (Merge pull request #873 from ionite34/more-base-models) ## v2.12.3 ### Added - Added new package - [SimpleSDXL](https://github.com/metercai/SimpleSDXL) - many thanks to @NullDev for the contribution! - Added new package - [FluxGym](https://github.com/cocktailpeanut/fluxgym) - many thanks to @NullDev for the contribution! +- Added more base model types to the CivitAI Model Browser & Checkpoint Manager ### Fixed - Fixed some cases of FileTransferExists error when running re/Forge or Automatic1111 - Fixed update check not happening on startup for some users diff --git a/StabilityMatrix.Avalonia/Views/CheckpointsPage.axaml b/StabilityMatrix.Avalonia/Views/CheckpointsPage.axaml index e1cfde54..079745ea 100644 --- a/StabilityMatrix.Avalonia/Views/CheckpointsPage.axaml +++ b/StabilityMatrix.Avalonia/Views/CheckpointsPage.axaml @@ -350,7 +350,8 @@ DragDrop.AllowDrop="True" IsVisible="{Binding ShowFolders}" ItemsSource="{Binding Categories}" - SelectedItem="{Binding SelectedCategory}"> + SelectedItem="{Binding SelectedCategory}" + SelectionMode="AlwaysSelected">