mirror of https://github.com/n00mkrad/flowframes
Patreon CSV parser, better py err handling, WIP: Deprecation of Pkg Mgr
This commit is contained in:
parent
320b21f29e
commit
e807f174c0
|
@ -57,11 +57,19 @@ namespace Flowframes
|
||||||
}
|
}
|
||||||
|
|
||||||
void Checks()
|
void Checks()
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
GetWebInfo.LoadNews(newsLabel);
|
GetWebInfo.LoadNews(newsLabel);
|
||||||
GetWebInfo.LoadPatronList(patronsLabel);
|
GetWebInfo.LoadPatronListCsv(patronsLabel);
|
||||||
Updater.AsyncUpdateCheck();
|
Updater.AsyncUpdateCheck();
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Logger.Log("Non-critical error while performing online checks. See logs for details.");
|
||||||
|
Logger.Log(e.Message + "\n" + e.StackTrace, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public HTTabControl GetMainTabControl() { return mainTabControl; }
|
public HTTabControl GetMainTabControl() { return mainTabControl; }
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ namespace Flowframes.Main
|
||||||
{
|
{
|
||||||
public static async Task Export(string path, string outPath, i.OutMode mode)
|
public static async Task Export(string path, string outPath, i.OutMode mode)
|
||||||
{
|
{
|
||||||
Logger.Log("Auto-Encode is off, exporting video...");
|
|
||||||
if (!mode.ToString().ToLower().Contains("vid")) // Copy interp frames out of temp folder and skip video export for image seq export
|
if (!mode.ToString().ToLower().Contains("vid")) // Copy interp frames out of temp folder and skip video export for image seq export
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
@ -271,7 +271,7 @@ namespace Flowframes
|
||||||
if (!hasShownError && line.ToLower().Contains("modulenotfounderror"))
|
if (!hasShownError && line.ToLower().Contains("modulenotfounderror"))
|
||||||
{
|
{
|
||||||
hasShownError = true;
|
hasShownError = true;
|
||||||
InterpolateUtils.ShowMessage($"A python module is missing. Check {logFilename} for details.\n\n{line}\n\nIf you don't want to install it yourself, use the Python package from the Package Installer.", "Error");
|
InterpolateUtils.ShowMessage($"A python module is missing.\nCheck {logFilename} for details.\n\n{line}\n\nIf you don't want to install it yourself, use the Python package from the Package Installer.", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasShownError && line.ToLower().Contains("no longer supports this gpu"))
|
if (!hasShownError && line.ToLower().Contains("no longer supports this gpu"))
|
||||||
|
@ -280,10 +280,10 @@ namespace Flowframes
|
||||||
InterpolateUtils.ShowMessage($"Your GPU seems to be outdated and is not supported!\n\n{line}", "Error");
|
InterpolateUtils.ShowMessage($"Your GPU seems to be outdated and is not supported!\n\n{line}", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasShownError && line.Contains("RuntimeError"))
|
if (!hasShownError && (line.Contains("RuntimeError") || line.Contains("ImportError") || line.Contains("OSError")))
|
||||||
{
|
{
|
||||||
hasShownError = true;
|
hasShownError = true;
|
||||||
InterpolateUtils.ShowMessage($"An error occured during interpolation!\n\n{line}", "Error");
|
InterpolateUtils.ShowMessage($"A python error occured during interpolation!\nCheck {logFilename} for details.\n\n{line}", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasShownError && line.Contains("vkQueueSubmit failed"))
|
if (!hasShownError && line.Contains("vkQueueSubmit failed"))
|
||||||
|
|
|
@ -14,10 +14,14 @@ namespace Flowframes.OS
|
||||||
|
|
||||||
public static string GetPyCmd ()
|
public static string GetPyCmd ()
|
||||||
{
|
{
|
||||||
if (PkgUtils.IsInstalled(Packages.python))
|
if (Directory.Exists(Path.Combine(Paths.GetPkgPath(), "py-tu")) || Directory.Exists(Path.Combine(Paths.GetPkgPath(), "py-ampt")))
|
||||||
{
|
{
|
||||||
Logger.Log("Using embedded Python runtime.");
|
Logger.Log("Using embedded Python runtime.");
|
||||||
string pyPkgDir = Path.Combine(Paths.GetPkgPath(), Path.GetFileNameWithoutExtension(Packages.python.fileName));
|
string pyPkgDir = Path.Combine(Paths.GetPkgPath(), "py-amp");
|
||||||
|
if (!Directory.Exists(pyPkgDir))
|
||||||
|
pyPkgDir = Path.Combine(Paths.GetPkgPath(), "py-tu");
|
||||||
|
if (!Directory.Exists(pyPkgDir))
|
||||||
|
return "";
|
||||||
return Path.Combine(pyPkgDir, "python.exe").Wrap();
|
return Path.Combine(pyPkgDir, "python.exe").Wrap();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -25,5 +25,46 @@ namespace Flowframes.UI
|
||||||
var str = await client.DownloadStringTaskAsync(new Uri(url));
|
var str = await client.DownloadStringTaskAsync(new Uri(url));
|
||||||
patronsLabel.Text = str;
|
patronsLabel.Text = str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async Task LoadPatronListCsv(Label patronsLabel)
|
||||||
|
{
|
||||||
|
string url = $"http://dl.nmkd.de/flowframes/patrons.csv";
|
||||||
|
var client = new WebClient();
|
||||||
|
var csvData = await client.DownloadStringTaskAsync(new Uri(url));
|
||||||
|
patronsLabel.Text = ParsePatreonCsv(csvData);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string ParsePatreonCsv(string csvData)
|
||||||
|
{
|
||||||
|
List<string> goldPatrons = new List<string>();
|
||||||
|
List<string> silverPatrons = new List<string>();
|
||||||
|
string str = "Gold:\n";
|
||||||
|
string[] lines = csvData.SplitIntoLines();
|
||||||
|
for (int i = 0; i < lines.Length; i++)
|
||||||
|
{
|
||||||
|
string line = lines[i];
|
||||||
|
string[] values = line.Split(',');
|
||||||
|
if (i == 0 || line.Length < 10 || values.Length < 5) continue;
|
||||||
|
string name = values[0];
|
||||||
|
float amount = float.Parse(values[7], System.Globalization.CultureInfo.InvariantCulture);
|
||||||
|
if(amount >= 4.5f)
|
||||||
|
{
|
||||||
|
if (amount >= 11f)
|
||||||
|
goldPatrons.Add(name);
|
||||||
|
else
|
||||||
|
silverPatrons.Add(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (string pat in goldPatrons)
|
||||||
|
str += pat + "\n";
|
||||||
|
|
||||||
|
str += "\nSilver:\n";
|
||||||
|
|
||||||
|
foreach (string pat in silverPatrons)
|
||||||
|
str += pat + "\n";
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
# Installation Of Python And Dependencies
|
||||||
|
|
||||||
|
- Make sure your GPU drivers are up to date
|
||||||
|
- Install Python 3.8.6 from the [official website](https://www.python.org/downloads/release/python-386/)
|
||||||
|
- In CMD, run `pip install torch===1.7.0+cu110 torchvision===0.8.1+cu110 -f https://download.pytorch.org/whl/torch_stable.html`
|
||||||
|
- Run `pip install opencv-python sk-video imageio`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This should be sufficient to run RIFE and other Pytorch-based networks on any modern GPU, including the RTX 3000 (Ampere) series.
|
Loading…
Reference in New Issue