Skip to content

Commit 6da7a1c

Browse files
authored
Merge pull request LykosAI#658 from ionite34/moar-fixs
Made "move" the default for drag & drop imports as the poll demands …
2 parents 1358e28 + 4141066 commit 6da7a1c

File tree

8 files changed

+76
-12
lines changed

8 files changed

+76
-12
lines changed

CHANGELOG.md

+54
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,60 @@ 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+
## v2.11.0
9+
### Added
10+
- Added new package: [SDFX](https://github.com/sdfxai/sdfx/) by sdfxai
11+
- Added ZLUDA option for SD.Next
12+
- Added PixArt, SDXL Hyper, and SD3 options to the Civitai model browser
13+
- Added option in Settings to choose whether to Copy or Move files when dragging and dropping files into the Checkpoint Manager
14+
- Added more launch options for Forge - [#618](https://github.com/LykosAI/StabilityMatrix/issues/618)
15+
- Added folder shortcuts in Settings for opening common app and system folders, such as Data Directory and Logs
16+
- Added download speed indicator to model downloads in the Downloads tab
17+
- Added XL ControlNets section to HuggingFace model browser
18+
- Added toggle in Settings for model browser auto-search on load
19+
- Added optional Recycle Bin mode when deleting images in the Inference image browser, can be disabled in settings (Currently on Windows only)
20+
- Added Brazilian Portuguese language option, thanks to jbostroski for the translation!
21+
- Added setting for locale specific or invariant number formatting
22+
- Added support for jpg/jpeg & gif images in the Output Browser
23+
- Added search bar to the Python Packages dialog
24+
#### Inference
25+
- Added Inpainting support for Image To Image projects using the new image mask canvas editor
26+
- Alternate Lora / LyCORIS drop-down model selection, can be toggled via the model settings button. The existing prompt-based Lora / LyCORIS method is still available.
27+
### Changed
28+
- Maximized state is now stored on exit and restored on launch
29+
- Drag & drop imports now move files by default instead of copying
30+
- Clicking outside the Select Model Version dialog will now close it
31+
- Changed Package card buttons to better indicate that they are buttons
32+
- Log file storage has been moved from `%AppData%/StabilityMatrix` to a subfolder: `%AppData%/StabilityMatrix/Logs`
33+
- Archived log files now have an increased rolling limit of 9 files, from 2 files previously. Their file names will now be in the format `app.{yyyy-MM-dd HH_mm_ss}.log`. The current session log file remains named `app.log`.
34+
- Updated image controls on Recommended Models dialog to match the rest of the app
35+
- Improved app shutdown clean-up process reliability and speed
36+
- Improved ProcessTracker speed and clean-up safety for faster subprocess and package launching performance
37+
- Updated HuggingFace page so the command bar stays fixed at the top
38+
- Revamped Checkpoints page now shows available model updates and has better drag & drop functionality
39+
- Revamped file deletion confirmation dialog with affected file paths display and recycle bin / permanent delete options (Checkpoint and Output Browsers) (Currently on Windows only)
40+
### Fixed
41+
- Fixed crash when parsing invalid generated images in Output Browser and Inference image viewer, errors will be logged instead and the image will be skipped
42+
- Fixed missing progress text during package updates
43+
- (Windows) Fixed "Open in Explorer" buttons across the app not opening the correct path on ReFS partitions
44+
- (macOS, Linux) Fixed Subprocesses of packages sometimes not being closed when the app is closed
45+
- Fixed Inference tabs sometimes not being restored from previous sessions
46+
- Fixed multiple log files being archived in a single session, and losing some log entries
47+
- Fixed error when installing certain packages with comments in the requirements file
48+
- Fixed error when deleting Inference browser images in a nested project path with recycle bin mode
49+
- Fixed extra text in positive prompt when loading image parameters in Inference with empty negative prompt value
50+
- Fixed NullReferenceException that sometimes occurred when closing Inference tabs with images due to Avalonia.Bitmap.Size accessor issue
51+
- Fixed [#598](https://github.com/LykosAI/StabilityMatrix/issues/598) - program not exiting after printing help or version text
52+
- Fixed [#630](https://github.com/LykosAI/StabilityMatrix/issues/630) - InvokeAI update hangs forever waiting for input
53+
- Fixed issue where the "installed" state on HuggingFace model browser was not always correct
54+
- Fixed model folders not being created on startup
55+
56+
### Supporters
57+
#### Visionaries
58+
- Shoutout to our Visionary-tier supporters on Patreon, **Scopp Mcdee** and **Waterclouds**! Your generous support is appreciated and helps us continue to make Stability Matrix better for everyone!
59+
#### Pioneers
60+
- A big thank you to our Pioneer-tier supporters on Patreon, **tankfox** and **tanangular**! Your support helps us continue to improve Stability Matrix!
61+
862
## v2.11.0-pre.2
963
### Added
1064
- Added folder shortcuts in Settings for opening common app and system folders, such as Data Directory and Logs.

StabilityMatrix.Avalonia/ViewModels/CheckpointBrowser/CivitAiBrowserViewModel.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ public override void OnLoaded()
161161
searchOptions = settingsManager.Settings.ModelSearchOptions;
162162
}
163163

164-
SelectedPeriod = searchOptions?.SelectedPeriod ?? CivitPeriod.Month;
164+
SelectedPeriod = searchOptions?.SelectedPeriod ?? CivitPeriod.AllTime;
165165
SortMode = searchOptions?.SortMode ?? CivitSortMode.HighestRated;
166166
SelectedModelType = searchOptions?.SelectedModelType ?? CivitModelType.Checkpoint;
167167
SelectedBaseModelType = searchOptions?.SelectedBaseModelType ?? "All";

StabilityMatrix.Avalonia/ViewModels/CheckpointsPageViewModel.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,8 @@ private void IndexFolders()
273273
{
274274
var modelsDirectory = settingsManager.ModelsDirectory;
275275

276-
// Setup shared folders in case they're missing
277-
sharedFolders.SetupSharedModelFolders();
276+
// // Setup shared folders in case they're missing
277+
// sharedFolders.SetupSharedModelFolders();
278278

279279
var folders = Directory.GetDirectories(modelsDirectory);
280280

StabilityMatrix.Avalonia/ViewModels/NewCheckpointsPageViewModel.cs

+11-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
using System.IO;
88
using System.Linq;
99
using System.Reactive.Linq;
10-
using System.Threading;
1110
using System.Threading.Tasks;
1211
using AsyncAwaitBestPractices;
1312
using Avalonia.Controls;
@@ -18,6 +17,7 @@
1817
using DynamicData;
1918
using DynamicData.Binding;
2019
using FluentAvalonia.UI.Controls;
20+
using Microsoft.Extensions.Logging;
2121
using StabilityMatrix.Avalonia.Controls;
2222
using StabilityMatrix.Avalonia.Languages;
2323
using StabilityMatrix.Avalonia.Models;
@@ -32,7 +32,6 @@
3232
using StabilityMatrix.Core.Extensions;
3333
using StabilityMatrix.Core.Helper;
3434
using StabilityMatrix.Core.Models;
35-
using StabilityMatrix.Core.Models.Api;
3635
using StabilityMatrix.Core.Models.Database;
3736
using StabilityMatrix.Core.Models.FileInterfaces;
3837
using StabilityMatrix.Core.Models.PackageModification;
@@ -47,6 +46,7 @@ namespace StabilityMatrix.Avalonia.ViewModels;
4746
[View(typeof(NewCheckpointsPage))]
4847
[Singleton]
4948
public partial class NewCheckpointsPageViewModel(
49+
ILogger<NewCheckpointsPageViewModel> logger,
5050
ISettingsManager settingsManager,
5151
IModelIndexService modelIndexService,
5252
ModelFinder modelFinder,
@@ -282,6 +282,15 @@ or nameof(SortConnectedModelsFirst)
282282
true
283283
);
284284

285+
try
286+
{
287+
SharedFolders.SetupSharedModelFolders(settingsManager.ModelsDirectory);
288+
}
289+
catch (Exception e)
290+
{
291+
logger.LogError(e, @"Failed to setup shared model folders");
292+
}
293+
285294
Refresh().SafeFireAndForget();
286295

287296
EventManager.Instance.ModelIndexChanged += (_, _) =>

StabilityMatrix.Core/Helper/ISharedFolders.cs

-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,4 @@ public interface ISharedFolders
77
{
88
void SetupLinksForPackage(BasePackage basePackage, DirectoryPath installDirectory);
99
void RemoveLinksForAllPackages();
10-
void SetupSharedModelFolders();
1110
}

StabilityMatrix.Core/Helper/SharedFolders.cs

+4-5
Original file line numberDiff line numberDiff line change
@@ -210,17 +210,16 @@ public void RemoveLinksForAllPackages()
210210
}
211211
}
212212

213-
public void SetupSharedModelFolders()
213+
public static void SetupSharedModelFolders(DirectoryPath rootModelsDir)
214214
{
215-
var modelsDir = settingsManager.ModelsDirectory;
216-
if (string.IsNullOrWhiteSpace(modelsDir))
215+
if (string.IsNullOrWhiteSpace(rootModelsDir))
217216
return;
218217

219-
Directory.CreateDirectory(modelsDir);
218+
Directory.CreateDirectory(rootModelsDir);
220219
var allSharedFolderTypes = Enum.GetValues<SharedFolderType>();
221220
foreach (var sharedFolder in allSharedFolderTypes)
222221
{
223-
var dir = new DirectoryPath(modelsDir, sharedFolder.GetStringValue());
222+
var dir = new DirectoryPath(rootModelsDir, sharedFolder.GetStringValue());
224223
dir.Create();
225224
}
226225
}

StabilityMatrix.Core/Models/Api/CivitBaseModelType.cs

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ public enum CivitBaseModelType
2626
[StringValue("SD 2.1")]
2727
Sd21,
2828

29+
[StringValue("SD 3")]
30+
Sd3,
31+
2932
[StringValue("SDXL 0.9")]
3033
Sdxl09,
3134

StabilityMatrix.Core/Models/Settings/Settings.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public IReadOnlyDictionary<string, string> EnvironmentVariables
178178
/// When false, will copy files when drag/drop import happens
179179
/// Otherwise, it will move, as it states
180180
/// </summary>
181-
public bool MoveFilesOnImport { get; set; } = false;
181+
public bool MoveFilesOnImport { get; set; } = true;
182182

183183
[JsonIgnore]
184184
public bool IsHolidayModeActive =>

0 commit comments

Comments
 (0)