diff --git a/CHANGELOG.md b/CHANGELOG.md index c3acb129c..b710c54bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ 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). +## v2.9.1 +### Added +- Fixed [#498](https://github.com/LykosAI/StabilityMatrix/issues/498) Added "Pony" category to CivitAI Model Browser +### Changed +- Changed package deletion warning dialog to require additional confirmation +### Fixed +- Fixed [#502](https://github.com/LykosAI/StabilityMatrix/issues/502) - missing launch options for Forge +- Fixed [#500](https://github.com/LykosAI/StabilityMatrix/issues/500) - missing output images in Forge when using output sharing +- Fixed [#490](https://github.com/LykosAI/StabilityMatrix/issues/490) - `mpmath has no attribute 'rational'` error on macOS +- Fixed incorrect progress text when deleting a checkpoint from the Checkpoints page +- Fixed incorrect icon colors on macOS + ## v2.9.0 ### Added - Added new package: [StableSwarmUI](https://github.com/Stability-AI/StableSwarmUI) by Stability AI diff --git a/StabilityMatrix.Avalonia/Languages/Resources.Designer.cs b/StabilityMatrix.Avalonia/Languages/Resources.Designer.cs index 0538cae24..dd2b597d0 100644 --- a/StabilityMatrix.Avalonia/Languages/Resources.Designer.cs +++ b/StabilityMatrix.Avalonia/Languages/Resources.Designer.cs @@ -392,6 +392,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Preview Preprocessor. + /// + public static string Action_PreviewPreprocessor { + get { + return ResourceManager.GetString("Action_PreviewPreprocessor", resourceCulture); + } + } + /// /// Looks up a localized string similar to Quit. /// @@ -671,6 +680,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to This action cannot be undone.. + /// + public static string Label_ActionCannotBeUndone { + get { + return ResourceManager.GetString("Label_ActionCannotBeUndone", resourceCulture); + } + } + /// /// Looks up a localized string similar to Addons. /// @@ -743,6 +761,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Are you sure you want to delete {0} images?. + /// + public static string Label_AreYouSureDeleteImages { + get { + return ResourceManager.GetString("Label_AreYouSureDeleteImages", resourceCulture); + } + } + /// /// Looks up a localized string similar to Augmentation Level. /// @@ -851,6 +878,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to We're checking some hardware specifications to determine compatibility.. + /// + public static string Label_CheckingHardware { + get { + return ResourceManager.GetString("Label_CheckingHardware", resourceCulture); + } + } + /// /// Looks up a localized string similar to Checkpoint Manager. /// @@ -860,6 +896,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Checkpoints. + /// + public static string Label_Checkpoints { + get { + return ResourceManager.GetString("Label_Checkpoints", resourceCulture); + } + } + /// /// Looks up a localized string similar to CivitAI. /// @@ -959,6 +1004,24 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Confirm Exit. + /// + public static string Label_ConfirmExit { + get { + return ResourceManager.GetString("Label_ConfirmExit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to exit? This will also close any currently running packages.. + /// + public static string Label_ConfirmExitDetail { + get { + return ResourceManager.GetString("Label_ConfirmExitDetail", resourceCulture); + } + } + /// /// Looks up a localized string similar to Confirm Password. /// @@ -1004,6 +1067,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Console. + /// + public static string Label_Console { + get { + return ResourceManager.GetString("Label_Console", resourceCulture); + } + } + /// /// Looks up a localized string similar to This will move all generated images from the selected packages to the Consolidated directory of the shared outputs folder. This action cannot be undone.. /// @@ -1229,6 +1301,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Everything looks good!. + /// + public static string Label_EverythingLooksGood { + get { + return ResourceManager.GetString("Label_EverythingLooksGood", resourceCulture); + } + } + /// /// Looks up a localized string similar to You may encounter errors when using a FAT32 or exFAT drive. Select a different drive for a smoother experience.. /// @@ -1589,6 +1670,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Model Browser. + /// + public static string Label_ModelBrowser { + get { + return ResourceManager.GetString("Label_ModelBrowser", resourceCulture); + } + } + /// /// Looks up a localized string similar to Model Description. /// @@ -1715,6 +1805,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to We recommend a GPU with CUDA support for the best experience. You can continue without one, but some packages may not work, and inference may be slower.. + /// + public static string Label_NvidiaGpuRecommended { + get { + return ResourceManager.GetString("Label_NvidiaGpuRecommended", resourceCulture); + } + } + /// /// Looks up a localized string similar to 1 image selected. /// @@ -1778,6 +1877,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Packages. + /// + public static string Label_Packages { + get { + return ResourceManager.GetString("Label_Packages", resourceCulture); + } + } + /// /// Looks up a localized string similar to Package Type. /// @@ -2246,6 +2354,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Auto-Scroll to End. + /// + public static string Label_ToggleAutoScrolling { + get { + return ResourceManager.GetString("Label_ToggleAutoScrolling", resourceCulture); + } + } + /// /// Looks up a localized string similar to Trigger words:. /// @@ -2390,6 +2507,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to Web UI. + /// + public static string Label_WebUi { + get { + return ResourceManager.GetString("Label_WebUi", resourceCulture); + } + } + /// /// Looks up a localized string similar to Width. /// @@ -2534,6 +2660,15 @@ public class Resources { } } + /// + /// Looks up a localized string similar to The 'Open Web UI' button has moved to the command bar. + /// + public static string TeachingTip_WebUiButtonMoved { + get { + return ResourceManager.GetString("TeachingTip_WebUiButtonMoved", resourceCulture); + } + } + /// /// Looks up a localized string similar to The app will relaunch after updating. /// diff --git a/StabilityMatrix.Avalonia/Languages/Resources.resx b/StabilityMatrix.Avalonia/Languages/Resources.resx index 4f15299e9..9f35cbfad 100644 --- a/StabilityMatrix.Avalonia/Languages/Resources.resx +++ b/StabilityMatrix.Avalonia/Languages/Resources.resx @@ -975,4 +975,49 @@ Config + + Preview Preprocessor + + + Auto-Scroll to End + + + Confirm Exit + + + Are you sure you want to exit? This will also close any currently running packages. + + + Console + + + Web UI + + + Packages + + + This action cannot be undone. + + + Are you sure you want to delete {0} images? + + + We're checking some hardware specifications to determine compatibility. + + + Everything looks good! + + + We recommend a GPU with CUDA support for the best experience. You can continue without one, but some packages may not work, and inference may be slower. + + + Checkpoints + + + Model Browser + + + The 'Open Web UI' button has moved to the command bar + diff --git a/StabilityMatrix.Avalonia/StabilityMatrix.Avalonia.csproj b/StabilityMatrix.Avalonia/StabilityMatrix.Avalonia.csproj index 4929efc41..d1055205b 100644 --- a/StabilityMatrix.Avalonia/StabilityMatrix.Avalonia.csproj +++ b/StabilityMatrix.Avalonia/StabilityMatrix.Avalonia.csproj @@ -65,8 +65,8 @@ - - + + diff --git a/StabilityMatrix.Avalonia/ViewModels/CheckpointManager/CheckpointFile.cs b/StabilityMatrix.Avalonia/ViewModels/CheckpointManager/CheckpointFile.cs index f3b817885..c73988173 100644 --- a/StabilityMatrix.Avalonia/ViewModels/CheckpointManager/CheckpointFile.cs +++ b/StabilityMatrix.Avalonia/ViewModels/CheckpointManager/CheckpointFile.cs @@ -120,6 +120,7 @@ private async Task DeleteAsync() if (File.Exists(FilePath)) { IsLoading = true; + Progress = new ProgressReport(0f, "Deleting..."); try { await using var delay = new MinimumDelay(200, 500); diff --git a/StabilityMatrix.Avalonia/ViewModels/Dialogs/ConfirmPackageDeleteDialogViewModel.cs b/StabilityMatrix.Avalonia/ViewModels/Dialogs/ConfirmPackageDeleteDialogViewModel.cs new file mode 100644 index 000000000..2d0ce30e1 --- /dev/null +++ b/StabilityMatrix.Avalonia/ViewModels/Dialogs/ConfirmPackageDeleteDialogViewModel.cs @@ -0,0 +1,21 @@ +using System; +using CommunityToolkit.Mvvm.ComponentModel; +using StabilityMatrix.Avalonia.ViewModels.Base; +using StabilityMatrix.Avalonia.Views.Dialogs; +using StabilityMatrix.Core.Attributes; + +namespace StabilityMatrix.Avalonia.ViewModels.Dialogs; + +[View(typeof(ConfirmPackageDeleteDialog))] +[ManagedService] +[Transient] +public partial class ConfirmPackageDeleteDialogViewModel : ContentDialogViewModelBase +{ + public required string ExpectedPackageName { get; set; } + + [ObservableProperty] + [NotifyPropertyChangedFor(nameof(IsValid))] + private string packageName = string.Empty; + + public bool IsValid => ExpectedPackageName.Equals(PackageName, StringComparison.Ordinal); +} diff --git a/StabilityMatrix.Avalonia/ViewModels/PackageManager/PackageCardViewModel.cs b/StabilityMatrix.Avalonia/ViewModels/PackageManager/PackageCardViewModel.cs index ba815fbf3..67426208d 100644 --- a/StabilityMatrix.Avalonia/ViewModels/PackageManager/PackageCardViewModel.cs +++ b/StabilityMatrix.Avalonia/ViewModels/PackageManager/PackageCardViewModel.cs @@ -181,13 +181,17 @@ public async Task Uninstall() return; } - var dialog = new ContentDialog + var dialogViewModel = vmFactory.Get(vm => { - Title = Resources.Label_ConfirmDelete, - Content = Resources.Text_PackageUninstall_Details, - PrimaryButtonText = Resources.Action_OK, - CloseButtonText = Resources.Action_Cancel, - DefaultButton = ContentDialogButton.Primary + vm.ExpectedPackageName = Package?.DisplayName; + }); + + var dialog = new BetterContentDialog + { + Content = dialogViewModel, + IsPrimaryButtonEnabled = false, + IsSecondaryButtonEnabled = false, + IsFooterVisible = false, }; var result = await dialog.ShowAsync(); diff --git a/StabilityMatrix.Avalonia/Views/Dialogs/ConfirmPackageDeleteDialog.axaml b/StabilityMatrix.Avalonia/Views/Dialogs/ConfirmPackageDeleteDialog.axaml new file mode 100644 index 000000000..b9690b8df --- /dev/null +++ b/StabilityMatrix.Avalonia/Views/Dialogs/ConfirmPackageDeleteDialog.axaml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + +