Browse Source

Merge pull request #481 from ionite34/buncha-fixes

Updated torch version for A1111, fixed vlad update maybe, updated Fooocus…
pull/438/head
JT 10 months ago committed by GitHub
parent
commit
68aec6a218
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      CHANGELOG.md
  2. 62
      StabilityMatrix.Avalonia/Languages/Resources.fr-FR.resx
  3. 37
      StabilityMatrix.Avalonia/ViewModels/Dialogs/NewOneClickInstallViewModel.cs
  4. 9
      StabilityMatrix.Avalonia/ViewModels/Dialogs/RecommendedModelsViewModel.cs
  5. 1
      StabilityMatrix.Avalonia/ViewModels/MainWindowViewModel.cs
  6. 17
      StabilityMatrix.Avalonia/ViewModels/Progress/PackageInstallProgressItemViewModel.cs
  7. 10
      StabilityMatrix.Avalonia/ViewModels/Progress/ProgressManagerViewModel.cs
  8. 1
      StabilityMatrix.Avalonia/Views/Dialogs/NewOneClickInstallDialog.axaml.cs
  9. 19
      StabilityMatrix.Avalonia/Views/Dialogs/RecommendedModelsDialog.axaml
  10. 8
      StabilityMatrix.Core/Helper/EventManager.cs
  11. 19
      StabilityMatrix.Core/Models/Packages/A3WebUI.cs
  12. 4
      StabilityMatrix.Core/Models/Packages/BaseGitPackage.cs
  13. 43
      StabilityMatrix.Core/Models/Packages/Fooocus.cs
  14. 27
      StabilityMatrix.Core/Models/Packages/VladAutomatic.cs

4
CHANGELOG.md

@ -8,10 +8,14 @@ and this project adheres to [Semantic Versioning 2.0](https://semver.org/spec/v2
## v2.8.0-pre.4
### Added
- Added Recommended Models dialog after one-click installer
- Added new launch argument options for Fooocus
### Changed
- Changed one-click installer to match the new package installation style
- Automatic1111 packages will now use PyTorch v2.1.2. Upgrade will occur during the next package update or upon fresh installation.
- Updated French translation with the latest changes
### Fixed
- Fixed Environment Variables not being editable
- Fixed potential SD.Next update issues by moving to shared update process
## v2.8.0-pre.3
### Added

62
StabilityMatrix.Avalonia/Languages/Resources.fr-FR.resx

@ -169,10 +169,10 @@
<value>Glisser-déposer les checkpoints ici pour les importer</value>
</data>
<data name="Label_Emphasis" xml:space="preserve">
<value>Accentuation</value>
<value>Emphase</value>
</data>
<data name="Label_Deemphasis" xml:space="preserve">
<value>Désaccentuation</value>
<value>Emphase inverse</value>
</data>
<data name="Label_EmbeddingsOrTextualInversion" xml:space="preserve">
<value>Emebeddings / Inversion textuelle</value>
@ -379,10 +379,10 @@
<value>Déposer le fichier ici pour l&apos;importer</value>
</data>
<data name="Label_ImportAsConnected" xml:space="preserve">
<value>Importer en tant que connecté</value>
<value>Importer avec les métadonnées</value>
</data>
<data name="Label_ImportAsConnectedExplanation" xml:space="preserve">
<value>Recherche de métadonnées connectées sur les nouvelles importations locales</value>
<value>Recherche de métadonnées en ligne sur les nouvelles importations locales</value>
</data>
<data name="Label_Indexing" xml:space="preserve">
<value>Indexation...</value>
@ -403,10 +403,10 @@
<value>Accord de licence.</value>
</data>
<data name="Label_FindConnectedMetadata" xml:space="preserve">
<value>Trouver des métadonnées connectées</value>
<value>Trouver des métadonnées en ligne</value>
</data>
<data name="Label_ShowModelImages" xml:space="preserve">
<value>Afficher les images du modèle</value>
<value>Afficher les vignettes</value>
</data>
<data name="Label_Appearance" xml:space="preserve">
<value>Apparence</value>
@ -448,13 +448,14 @@
<value>Intégrations</value>
</data>
<data name="Label_DiscordRichPresence" xml:space="preserve">
<value>Présence riche en discorde</value>
<value>Activer Statut Discord</value>
</data>
<data name="Label_System" xml:space="preserve">
<value>Système</value>
</data>
<data name="Label_AddToStartMenu" xml:space="preserve">
<value>Ajouter la matrice de stabilité au menu de démarrage</value>
<value>Ajouter Stability Matrix au menu de démarrage</value>
<comment>updated because &quot;Stability Matrix&quot; was translated in french here haha</comment>
</data>
<data name="Label_AddToStartMenu_Details" xml:space="preserve">
<value>Utilise l&apos;emplacement actuel de l&apos;application, vous pouvez relancer cette opération si vous déplacez l&apos;application.</value>
@ -521,6 +522,7 @@
</data>
<data name="Text_OneClickInstaller_SubHeader" xml:space="preserve">
<value>Choisissez votre interface préférée et cliquez sur Installer pour commencer.</value>
<comment>Fuzzy</comment>
</data>
<data name="Label_Installing" xml:space="preserve">
<value>Installation</value>
@ -556,7 +558,8 @@
<value>Vérifier les mises à jour</value>
</data>
<data name="Action_Update" xml:space="preserve">
<value>Mise à jour</value>
<value>Mettre à jour</value>
<comment>switched to verb as it&apos;s action label</comment>
</data>
<data name="Action_AddPackage" xml:space="preserve">
<value>Ajouter un paquet</value>
@ -598,7 +601,7 @@
<value>Redémarrage</value>
</data>
<data name="Label_ConfirmDelete" xml:space="preserve">
<value>Confirmer Supprimer</value>
<value>Confirmer la suppression</value>
</data>
<data name="Text_PackageUninstall_Details" xml:space="preserve">
<value>Cette opération va supprimer le dossier du paquet et tout son contenu, y compris les images générées et les fichiers que vous avez éventuellement ajoutés.</value>
@ -640,7 +643,7 @@
<value>Branche</value>
</data>
<data name="Label_AutoScrollToEnd" xml:space="preserve">
<value>Défilement automatique jusqu&apos;à la fin de la sortie de la console</value>
<value>Défilement automatique jusqu&apos;à la dernière sortie de la console</value>
</data>
<data name="Label_License" xml:space="preserve">
<value>Licence</value>
@ -667,10 +670,10 @@
<value>Installer maintenant</value>
</data>
<data name="Label_ReleaseNotes" xml:space="preserve">
<value>Notes de mise à jour</value>
<value>Notes de version</value>
</data>
<data name="Action_OpenProjectEllipsis" xml:space="preserve">
<value>Projet ouvert...</value>
<value>Ouvrir projet...</value>
</data>
<data name="Action_SaveAsEllipsis" xml:space="preserve">
<value>Enregistrer sous...</value>
@ -716,7 +719,7 @@
<value>Amélioration de qualité</value>
</data>
<data name="Label_OutputsPageTitle" xml:space="preserve">
<value>Explorateur des générations</value>
<value>Explorateur de génération</value>
</data>
<data name="Label_OneImageSelected" xml:space="preserve">
<value>1 image sélectionnée</value>
@ -792,6 +795,12 @@
<data name="Label_AutoUpdates" xml:space="preserve">
<value>Mises à jour automatiques</value>
</data>
<data name="Label_UpdatesPreviewChannelDescription" xml:space="preserve">
<value>Pour les early adopters. Version de preview, plus stable que les versions de développement et plus proche des versions stables. Vos retours vont grandement nous aider à identifier des problèmes et ajuster les éléments de design.</value>
</data>
<data name="Label_UpdatesDevChannelDescription" xml:space="preserve">
<value>Pour les utilisateurs expérimentés. Soyez parmis les premiers à accéder aux builds développement incluants les branches de fonctionnalités dès qu&apos;elles sont disponibles. Il peut y avoir quelques disfonctionnements et bugs au fur et à mesure que nous expérimentons de nouvelles fonctionnalités.</value>
</data>
<data name="Label_Updates" xml:space="preserve">
<value>Mises à jour</value>
</data>
@ -811,6 +820,20 @@
<value>Générale</value>
<comment>A general settings category</comment>
</data>
<data name="Label_Inference" xml:space="preserve">
<value>Inférence</value>
<comment>The Inference feature page</comment>
</data>
<data name="Label_Prompt" xml:space="preserve">
<value>Instruction</value>
<comment>A settings category for Inference generation prompts</comment>
</data>
<data name="Label_ImageViewer" xml:space="preserve">
<value>Visionneuse d&apos;images</value>
</data>
<data name="Label_AutoCompletion" xml:space="preserve">
<value>Auto-complétion</value>
</data>
<data name="Label_SystemInformation" xml:space="preserve">
<value>Informations système</value>
</data>
@ -824,6 +847,10 @@
<value>Modules complémentaires</value>
<comment>Inference Sampler Addons</comment>
</data>
<data name="Label_SaveIntermediateImage" xml:space="preserve">
<value>Sauvegarder les images intermédiaires</value>
<comment>Inference module step to save an intermediate image</comment>
</data>
<data name="Label_Settings" xml:space="preserve">
<value>Paramètres</value>
</data>
@ -854,6 +881,13 @@
<data name="Label_Lossless" xml:space="preserve">
<value>Sans perte</value>
</data>
<data name="Label_Frames" xml:space="preserve">
<value>Images</value>
<comment>What is the context on this one ?</comment>
</data>
<data name="Label_MotionBucketId" xml:space="preserve">
<value>Motion Bucket ID</value>
</data>
<data name="Label_VideoOutputMethod" xml:space="preserve">
<value>Méthode</value>
</data>

37
StabilityMatrix.Avalonia/ViewModels/Dialogs/NewOneClickInstallViewModel.cs

@ -5,11 +5,13 @@ using System.IO;
using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Threading;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using DynamicData;
using DynamicData.Binding;
using Microsoft.Extensions.Logging;
using StabilityMatrix.Avalonia.Services;
using StabilityMatrix.Avalonia.ViewModels.Base;
using StabilityMatrix.Avalonia.Views.Dialogs;
using StabilityMatrix.Core.Attributes;
@ -29,10 +31,12 @@ namespace StabilityMatrix.Avalonia.ViewModels.Dialogs;
[ManagedService]
public partial class NewOneClickInstallViewModel : ContentDialogViewModelBase
{
private readonly IPackageFactory packageFactory;
private readonly ISettingsManager settingsManager;
private readonly IPrerequisiteHelper prerequisiteHelper;
private readonly ILogger<NewOneClickInstallViewModel> logger;
private readonly IPyRunner pyRunner;
private readonly INavigationService<MainWindowViewModel> navigationService;
public SourceCache<BasePackage, string> AllPackagesCache { get; } = new(p => p.Author + p.Name);
public IObservableCollection<BasePackage> ShownPackages { get; set; } =
@ -41,18 +45,23 @@ public partial class NewOneClickInstallViewModel : ContentDialogViewModelBase
[ObservableProperty]
private bool showIncompatiblePackages;
private bool isInferenceInstall;
public NewOneClickInstallViewModel(
IPackageFactory packageFactory,
ISettingsManager settingsManager,
IPrerequisiteHelper prerequisiteHelper,
ILogger<NewOneClickInstallViewModel> logger,
IPyRunner pyRunner
IPyRunner pyRunner,
INavigationService<MainWindowViewModel> navigationService
)
{
this.packageFactory = packageFactory;
this.settingsManager = settingsManager;
this.prerequisiteHelper = prerequisiteHelper;
this.logger = logger;
this.pyRunner = pyRunner;
this.navigationService = navigationService;
var incompatiblePredicate = this.WhenPropertyChanged(vm => vm.ShowIncompatiblePackages)
.Select(_ => new Func<BasePackage, bool>(p => p.IsCompatible || ShowIncompatiblePackages))
@ -75,10 +84,14 @@ public partial class NewOneClickInstallViewModel : ContentDialogViewModelBase
}
[RelayCommand]
private Task InstallComfyForInference()
private async Task InstallComfyForInference()
{
var comfyPackage = ShownPackages.FirstOrDefault(x => x is ComfyUI);
return comfyPackage != null ? InstallPackage(comfyPackage) : Task.CompletedTask;
if (comfyPackage == null)
return;
isInferenceInstall = true;
await InstallPackage(comfyPackage);
}
[RelayCommand]
@ -150,7 +163,23 @@ public partial class NewOneClickInstallViewModel : ContentDialogViewModelBase
steps.Add(addInstalledPackageStep);
var runner = new PackageModificationRunner { ShowDialogOnStart = false, HideCloseButton = false, };
EventManager.Instance.OnAddPackageInstallWithoutBlocking(this, runner, steps);
EventManager.Instance.OnAddPackageInstallWithoutBlocking(
this,
runner,
steps,
() =>
{
EventManager.Instance.OnOneClickInstallFinished(false);
if (!isInferenceInstall)
return;
Dispatcher.UIThread.Post(() =>
{
navigationService.NavigateTo<InferenceViewModel>();
});
}
);
OnPrimaryButtonClick();
}

9
StabilityMatrix.Avalonia/ViewModels/Dialogs/RecommendedModelsViewModel.cs

@ -3,6 +3,7 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using DynamicData;
using DynamicData.Binding;
@ -40,6 +41,9 @@ public partial class RecommendedModelsViewModel : ContentDialogViewModelBase
public IObservableCollection<RecommendedModelItemViewModel> SdxlModels { get; } =
new ObservableCollectionExtended<RecommendedModelItemViewModel>();
[ObservableProperty]
private bool isLoading;
public RecommendedModelsViewModel(
ILogger<RecommendedModelsViewModel> logger,
ILykosAuthApi lykosApi,
@ -80,8 +84,7 @@ public partial class RecommendedModelsViewModel : ContentDialogViewModelBase
if (Design.IsDesignMode)
return;
// See if query is cached
CivitModelQueryCacheEntry? cachedQuery = null;
IsLoading = true;
var recommendedModels = await lykosApi.GetRecommendedModels();
@ -98,6 +101,8 @@ public partial class RecommendedModelsViewModel : ContentDialogViewModelBase
}
)
);
IsLoading = false;
}
[RelayCommand]

1
StabilityMatrix.Avalonia/ViewModels/MainWindowViewModel.cs

@ -141,7 +141,6 @@ public partial class MainWindowViewModel : ViewModelBase
EventManager.Instance.OneClickInstallFinished += (_, skipped) =>
{
dialog.Hide();
if (skipped)
return;

17
StabilityMatrix.Avalonia/ViewModels/Progress/PackageInstallProgressItemViewModel.cs

@ -23,7 +23,8 @@ public class PackageInstallProgressItemViewModel : ProgressItemViewModelBase
public PackageInstallProgressItemViewModel(
IPackageModificationRunner packageModificationRunner,
IReadOnlyList<IPackageStep>? packageSteps = null
IReadOnlyList<IPackageStep>? packageSteps = null,
Action? onCompleted = null
)
{
this.packageModificationRunner = packageModificationRunner;
@ -40,14 +41,22 @@ public class PackageInstallProgressItemViewModel : ProgressItemViewModelBase
return;
Progress.Console.StartUpdates();
Progress.Console.Post(string.Join(Environment.NewLine, packageModificationRunner.ConsoleOutput));
packageModificationRunner.ProgressChanged += PackageModificationRunnerOnProgressChanged;
if (packageSteps is { Count: > 0 })
if (packageSteps is not { Count: > 0 })
return;
var task = packageModificationRunner.ExecuteSteps(packageSteps);
if (onCompleted is not null)
{
task.ContinueWith(_ => onCompleted.Invoke()).SafeFireAndForget();
}
else
{
packageModificationRunner.ExecuteSteps(packageSteps).SafeFireAndForget();
task.SafeFireAndForget();
}
}

10
StabilityMatrix.Avalonia/ViewModels/Progress/ProgressManagerViewModel.cs

@ -70,8 +70,9 @@ public partial class ProgressManagerViewModel : PageViewModelBase
private Task InstanceOnAddPackageInstallWithoutBlocking(
object? sender,
IPackageModificationRunner runner,
IReadOnlyList<IPackageStep> steps
) => AddPackageInstall(runner, steps);
IReadOnlyList<IPackageStep> steps,
Action onCompleted
) => AddPackageInstall(runner, steps, onCompleted);
private void TrackedDownloadService_OnDownloadAdded(object? sender, TrackedDownload e)
{
@ -174,7 +175,8 @@ public partial class ProgressManagerViewModel : PageViewModelBase
private Task AddPackageInstall(
IPackageModificationRunner packageModificationRunner,
IReadOnlyList<IPackageStep>? steps = null
IReadOnlyList<IPackageStep>? steps = null,
Action? onCompleted = null
)
{
if (ProgressItems.Any(vm => vm.Id == packageModificationRunner.Id))
@ -182,7 +184,7 @@ public partial class ProgressManagerViewModel : PageViewModelBase
return Task.CompletedTask;
}
var vm = new PackageInstallProgressItemViewModel(packageModificationRunner, steps);
var vm = new PackageInstallProgressItemViewModel(packageModificationRunner, steps, onCompleted);
ProgressItems.Add(vm);
return packageModificationRunner.ShowDialogOnStart ? vm.ShowProgressDialog() : Task.CompletedTask;

1
StabilityMatrix.Avalonia/Views/Dialogs/NewOneClickInstallDialog.axaml.cs

@ -41,6 +41,7 @@ public partial class NewOneClickInstallDialog : UserControlBase
teachingTip.Target = comfyItem;
teachingTip.IsOpen = true;
teachingTip.CloseButtonCommand = null;
}
}
}

19
StabilityMatrix.Avalonia/Views/Dialogs/RecommendedModelsDialog.axaml

@ -143,8 +143,16 @@
<TextBlock Text="Compatible with most packages, easier to run on less powerful hardware"
FontSize="12"
Margin="8,0,8,8"/>
<controls:ProgressRing IsIndeterminate="True"
Width="96"
Height="96"
Margin="8"
IsVisible="{Binding IsLoading}"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto"
Margin="8">
Margin="8"
IsVisible="{Binding !IsLoading}">
<ItemsControl ItemsSource="{Binding Sd15Models}"
ItemTemplate="{StaticResource PackageTemplate}">
<ItemsControl.ItemsPanel>
@ -163,8 +171,15 @@
<TextBlock Text="Compatible with all packages, requires more powerful hardware"
FontSize="12"
Margin="8,0,8,8"/>
<controls:ProgressRing IsIndeterminate="True"
Width="96"
Height="96"
Margin="8"
IsVisible="{Binding IsLoading}"/>
<ScrollViewer HorizontalScrollBarVisibility="Auto"
Margin="8,8">
Margin="8"
IsVisible="{Binding !IsLoading}">
<ItemsControl ItemsSource="{Binding SdxlModels}"
ItemTemplate="{StaticResource PackageTemplate}">
<ItemsControl.ItemsPanel>

8
StabilityMatrix.Core/Helper/EventManager.cs

@ -30,7 +30,8 @@ public class EventManager
public delegate Task AddPackageInstallEventHandler(
object? sender,
IPackageModificationRunner runner,
IReadOnlyList<IPackageStep> steps
IReadOnlyList<IPackageStep> steps,
Action onCompleted
);
public event AddPackageInstallEventHandler? AddPackageInstallWithoutBlocking;
public event EventHandler? ToggleProgressFlyout;
@ -97,8 +98,9 @@ public class EventManager
public void OnAddPackageInstallWithoutBlocking(
object? sender,
IPackageModificationRunner runner,
IReadOnlyList<IPackageStep> steps
) => AddPackageInstallWithoutBlocking?.Invoke(sender, runner, steps);
IReadOnlyList<IPackageStep> steps,
Action onCompleted
) => AddPackageInstallWithoutBlocking?.Invoke(sender, runner, steps, onCompleted);
public void OnDownloadsTeachingTipRequested() =>
DownloadsTeachingTipRequested?.Invoke(this, EventArgs.Empty);

19
StabilityMatrix.Core/Models/Packages/A3WebUI.cs

@ -190,6 +190,9 @@ public class A3WebUI(
{
progress?.Report(new ProgressReport(-1f, "Setting up venv", isIndeterminate: true));
var venvPath = Path.Combine(installLocation, "venv");
var exists = Directory.Exists(venvPath);
var venvRunner = await SetupVenv(installLocation, forceRecreate: true).ConfigureAwait(false);
await venvRunner.PipInstall("--upgrade pip wheel", onConsoleOutput).ConfigureAwait(false);
@ -197,14 +200,14 @@ public class A3WebUI(
var requirements = new FilePath(installLocation, "requirements_versions.txt");
var pipArgs = new PipInstallArgs()
.WithTorch("==2.0.1")
.WithTorchVision("==0.15.2")
.WithTorch("==2.1.2")
.WithTorchVision("==0.16.2")
.WithTorchExtraIndex(
torchVersion switch
{
TorchVersion.Cpu => "cpu",
TorchVersion.Cuda => "cu118",
TorchVersion.Rocm => "rocm5.1.1",
TorchVersion.Cuda => "cu121",
TorchVersion.Rocm => "rocm5.6",
_ => throw new ArgumentOutOfRangeException(nameof(torchVersion), torchVersion, null)
}
)
@ -215,7 +218,7 @@ public class A3WebUI(
if (torchVersion == TorchVersion.Cuda)
{
pipArgs = pipArgs.WithXFormers("==0.0.20");
pipArgs = pipArgs.WithXFormers("==0.0.23.post1");
}
// v1.6.0 needs a httpx qualifier to fix a gradio issue
@ -227,6 +230,12 @@ public class A3WebUI(
// Add jsonmerge to fix https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/12482
pipArgs = pipArgs.AddArg("jsonmerge");
if (exists)
{
pipArgs = pipArgs.AddArg("--upgrade");
pipArgs = pipArgs.AddArg("--force-reinstall");
}
await venvRunner.PipInstall(pipArgs, onConsoleOutput).ConfigureAwait(false);
progress?.Report(new ProgressReport(-1f, "Updating configuration", isIndeterminate: true));

4
StabilityMatrix.Core/Models/Packages/BaseGitPackage.cs

@ -76,11 +76,13 @@ public abstract class BaseGitPackage : BasePackage
{
if (ShouldIgnoreReleases)
{
var commits = await GithubApi.GetAllCommits(Author, Name, MainBranch).ConfigureAwait(false);
return new DownloadPackageVersionOptions
{
IsLatest = true,
IsPrerelease = false,
BranchName = MainBranch
BranchName = MainBranch,
CommitHash = commits?.FirstOrDefault()?.Sha ?? "unknown"
};
}

43
StabilityMatrix.Core/Models/Packages/Fooocus.cs

@ -75,6 +75,43 @@ public class Fooocus(
Description = "Override the output directory",
Options = { "--output-directory" }
},
new LaunchOptionDefinition
{
Name = "Language",
Type = LaunchOptionType.String,
Description = "Change the language of the UI",
Options = { "--language" }
},
new LaunchOptionDefinition
{
Name = "Auto-Launch",
Type = LaunchOptionType.Bool,
Options = { "--auto-launch" }
},
new LaunchOptionDefinition
{
Name = "Disable Image Log",
Type = LaunchOptionType.Bool,
Options = { "--disable-image-log" }
},
new LaunchOptionDefinition
{
Name = "Disable Analytics",
Type = LaunchOptionType.Bool,
Options = { "--disable-analytics" }
},
new LaunchOptionDefinition
{
Name = "Disable Preset Model Downloads",
Type = LaunchOptionType.Bool,
Options = { "--disable-preset-download" }
},
new LaunchOptionDefinition
{
Name = "Always Download Newer Models",
Type = LaunchOptionType.Bool,
Options = { "--always-download-new-model" }
},
new()
{
Name = "VRAM",
@ -108,12 +145,6 @@ public class Fooocus(
InitialValue = !HardwareHelper.HasNvidiaGpu(),
Options = { "--disable-xformers" }
},
new LaunchOptionDefinition
{
Name = "Auto-Launch",
Type = LaunchOptionType.Bool,
Options = { "--auto-launch" }
},
LaunchOptionDefinition.Extras
};

27
StabilityMatrix.Core/Models/Packages/VladAutomatic.cs

@ -306,20 +306,13 @@ public class VladAutomatic(
Action<ProcessOutput>? onConsoleOutput = null
)
{
progress?.Report(
new ProgressReport(
-1f,
message: "Downloading package update...",
isIndeterminate: true,
type: ProgressType.Update
)
);
await PrerequisiteHelper
.RunGit(
new[] { "checkout", versionOptions.BranchName! },
onConsoleOutput,
installedPackage.FullPath
var baseUpdateResult = await base.Update(
installedPackage,
torchVersion,
versionOptions,
progress,
includePrerelease,
onConsoleOutput
)
.ConfigureAwait(false);
@ -361,11 +354,7 @@ public class VladAutomatic(
);
}
return new InstalledPackageVersion
{
InstalledBranch = installedPackage.Version.InstalledBranch,
IsPrerelease = false
};
return baseUpdateResult;
}
public override Task SetupModelFolders(

Loading…
Cancel
Save