mirror of
https://github.com/n00mkrad/flowframes.git
synced 2025-12-22 19:29:24 +01:00
Split into legacy (Framework 4.8) and .NET 8 projects, WIP .NET 8 fixes
This commit is contained in:
88
Flowframes/MiscUtils/ModelDownloadFormUtils.cs
Normal file
88
Flowframes/MiscUtils/ModelDownloadFormUtils.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using Flowframes.Data;
|
||||
using Flowframes.Forms;
|
||||
using Flowframes.IO;
|
||||
using Flowframes.Main;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Flowframes.MiscUtils
|
||||
{
|
||||
class ModelDownloadFormUtils
|
||||
{
|
||||
public static ModelDownloadForm form;
|
||||
static int taskCounter = 0;
|
||||
static int tasksToDo = 0;
|
||||
static bool canceled = false;
|
||||
|
||||
public static async Task DownloadModels (bool rifeC, bool rifeN, bool dainN, bool flavrC, bool xvfiC)
|
||||
{
|
||||
form.SetDownloadBtnEnabled(true);
|
||||
canceled = false;
|
||||
List<AI> ais = new List<AI>();
|
||||
|
||||
if (rifeC) ais.Add(Implementations.rifeCuda);
|
||||
if (rifeN) ais.Add(Implementations.rifeNcnn);
|
||||
if (dainN) ais.Add(Implementations.dainNcnn);
|
||||
if (flavrC) ais.Add(Implementations.flavrCuda);
|
||||
if (xvfiC) ais.Add(Implementations.xvfiCuda);
|
||||
|
||||
if (ais.Count < 1)
|
||||
return;
|
||||
|
||||
taskCounter = 1;
|
||||
tasksToDo = GetTaskCount(ais) + 1;
|
||||
form.SetWorking(true);
|
||||
await Task.Delay(10);
|
||||
UpdateProgressBar();
|
||||
|
||||
foreach (AI ai in ais)
|
||||
await DownloadForAi(ai);
|
||||
|
||||
form.SetWorking(false);
|
||||
form.SetStatus($"Done.");
|
||||
form.SetDownloadBtnEnabled(false);
|
||||
}
|
||||
|
||||
public static async Task DownloadForAi(AI ai)
|
||||
{
|
||||
ModelCollection modelCollection = AiModels.GetModels(ai);
|
||||
|
||||
for (int i = 0; i < modelCollection.Models.Count; i++)
|
||||
{
|
||||
if (canceled)
|
||||
return;
|
||||
|
||||
ModelCollection.ModelInfo modelInfo = modelCollection.Models[i];
|
||||
form.SetStatus($"Downloading files for {modelInfo.Ai.NameInternal.Replace("_", "-")}...");
|
||||
await ModelDownloader.DownloadModelFiles(ai, modelInfo.Dir, false);
|
||||
taskCounter++;
|
||||
UpdateProgressBar();
|
||||
}
|
||||
}
|
||||
|
||||
static void UpdateProgressBar ()
|
||||
{
|
||||
form.SetProgress((((float)taskCounter / tasksToDo) * 100f).RoundToInt());
|
||||
}
|
||||
|
||||
public static void Cancel ()
|
||||
{
|
||||
canceled = true;
|
||||
ModelDownloader.canceled = true;
|
||||
}
|
||||
|
||||
public static int GetTaskCount (List<AI> ais)
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
foreach(AI ai in ais)
|
||||
{
|
||||
ModelCollection modelCollection = AiModels.GetModels(ai);
|
||||
count += modelCollection.Models.Count;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user