diff --git a/.gitignore b/.gitignore
index 9fda62d..0ef2c96 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,10 +30,12 @@ bld/
[Oo]bj/
[Ll]og/
[Ll]ogs/
+Flowframes*.7z
# NMKD Python Redist Pkg
[Pp]y*/
+
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
diff --git a/Build/7za.dll b/Build/7za.dll
new file mode 100644
index 0000000..3617f86
Binary files /dev/null and b/Build/7za.dll differ
diff --git a/Build/7za.exe b/Build/7za.exe
new file mode 100644
index 0000000..02655ee
Binary files /dev/null and b/Build/7za.exe differ
diff --git a/Build/Build-Distributable.bat b/Build/Build-Distributable.bat
new file mode 100644
index 0000000..ebec986
--- /dev/null
+++ b/Build/Build-Distributable.bat
@@ -0,0 +1,37 @@
+@echo off
+
+echo ===============================
+echo == NMKD'S FLOWFRAMES BUILDER ==
+echo ===============================
+echo.
+echo This script makes a build ready for distribution by creating two 7z archives, one with and one without embedded python.
+echo.
+
+set "ver=16"
+set /p ver="Enter the version number: "
+
+cd ..\Code\bin\x64\Release
+
+rmdir /s/q FlowframesApp%ver%
+mkdir FlowframesApp%ver%
+mkdir FlowframesApp%ver%/FlowframesData
+mkdir FlowframesApp%ver%/FlowframesData/pkgs
+
+xcopy "../../../../pkgs" "FlowframesApp%ver%/FlowframesData\pkgs\" /E
+
+echo %ver% >> "FlowframesApp%ver%/FlowframesData/ver.ini"
+
+xcopy Flowframes.exe FlowframesApp%ver%
+
+cd ../../../../Build
+
+7za.exe a FlowframesApp%ver%-Full.7z -m0=flzma2 -mx7 "..\Code\bin\x64\Release\FlowframesApp%ver%"
+rmdir /s/q ..\Code\bin\x64\Release\FlowframesApp%ver%\FlowframesData\pkgs\py
+rmdir /s/q ..\Code\bin\x64\Release\FlowframesApp%ver%\FlowframesData\pkgs\py-tu
+rmdir /s/q ..\Code\bin\x64\Release\FlowframesApp%ver%\FlowframesData\pkgs\py-amp
+7za.exe a FlowframesApp%ver%-NoPython.7z -m0=flzma2 -mx5 "..\Code\bin\x64\Release\FlowframesApp%ver%"
+
+rmdir /s/q ..\Code\bin\x64\Release\FlowframesApp%ver%
+
+
+pause
\ No newline at end of file
diff --git a/Build/HowToInstall.txt b/Build/HowToInstall.txt
new file mode 100644
index 0000000..41bf7e0
--- /dev/null
+++ b/Build/HowToInstall.txt
@@ -0,0 +1,9 @@
+1) Download the 7z file with "-Full" if you want all dependencies (Python/Pytorch, etc) included, or the file with "-NoPython" if you already have a system pytorch installation, or if you have an AMD GPU that can't use pytorch anyway
+2) Extract the 7z file using 7zip or any other program that supports it
+3) Run Flowframes.exe
+
+If you updated from an older version, you can optionally copy "FlowframesData/config.ini" to your new installation if you want to keep your settings.
+You can delete your old installation after updating.
+
+IT IS NOT RECOMMENDED TO OVERWRITE YOUR OLD INSTALLATION!
+Instead, delete it first or install the new one to a different/empty folder.
\ No newline at end of file
diff --git a/Code/Flowframes.csproj b/Code/Flowframes.csproj
index 42c15e7..2bbd236 100644
--- a/Code/Flowframes.csproj
+++ b/Code/Flowframes.csproj
@@ -56,6 +56,28 @@
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ 7.3
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+
+
+ bin\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ 7.3
+ prompt
+ MinimumRecommendedRules.ruleset
+ true
+
packages\7z.NET.1.0.3\lib\net463\7z.NET.dll
diff --git a/Code/Flowframes.sln b/Code/Flowframes.sln
index 6a61d73..163ede5 100644
--- a/Code/Flowframes.sln
+++ b/Code/Flowframes.sln
@@ -8,13 +8,19 @@ EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{389E42DD-A163-49D7-9E0A-AE41090A07B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{389E42DD-A163-49D7-9E0A-AE41090A07B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {389E42DD-A163-49D7-9E0A-AE41090A07B3}.Debug|x64.ActiveCfg = Debug|x64
+ {389E42DD-A163-49D7-9E0A-AE41090A07B3}.Debug|x64.Build.0 = Debug|x64
{389E42DD-A163-49D7-9E0A-AE41090A07B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{389E42DD-A163-49D7-9E0A-AE41090A07B3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {389E42DD-A163-49D7-9E0A-AE41090A07B3}.Release|x64.ActiveCfg = Release|x64
+ {389E42DD-A163-49D7-9E0A-AE41090A07B3}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Code/Forms/SettingsForm.Designer.cs b/Code/Forms/SettingsForm.Designer.cs
index c2ea92e..cde8fe6 100644
--- a/Code/Forms/SettingsForm.Designer.cs
+++ b/Code/Forms/SettingsForm.Designer.cs
@@ -44,7 +44,7 @@
this.panel10 = new System.Windows.Forms.Panel();
this.maxVidHeight = new System.Windows.Forms.ComboBox();
this.label31 = new System.Windows.Forms.Label();
- this.deleteLogsOnStartup = new System.Windows.Forms.CheckBox();
+ this.delLogsOnStartup = new System.Windows.Forms.CheckBox();
this.label11 = new System.Windows.Forms.Label();
this.tabListPage2 = new Cyotek.Windows.Forms.TabListPage();
this.sbsAllowAutoEnc = new System.Windows.Forms.CheckBox();
@@ -90,10 +90,6 @@
this.ncnnGpus = new System.Windows.Forms.ComboBox();
this.label5 = new System.Windows.Forms.Label();
this.label32 = new System.Windows.Forms.Label();
- this.label30 = new System.Windows.Forms.Label();
- this.rifeMode = new System.Windows.Forms.ComboBox();
- this.label28 = new System.Windows.Forms.Label();
- this.label29 = new System.Windows.Forms.Label();
this.vidExportTab = new Cyotek.Windows.Forms.TabListPage();
this.loopMode = new System.Windows.Forms.ComboBox();
this.label55 = new System.Windows.Forms.Label();
@@ -182,7 +178,7 @@
this.generalTab.Controls.Add(this.panel10);
this.generalTab.Controls.Add(this.maxVidHeight);
this.generalTab.Controls.Add(this.label31);
- this.generalTab.Controls.Add(this.deleteLogsOnStartup);
+ this.generalTab.Controls.Add(this.delLogsOnStartup);
this.generalTab.Controls.Add(this.label11);
this.generalTab.Name = "generalTab";
this.generalTab.Size = new System.Drawing.Size(762, 419);
@@ -334,14 +330,14 @@
this.label31.TabIndex = 62;
this.label31.Text = "Maximum Video Input Size (Height)";
//
- // deleteLogsOnStartup
+ // delLogsOnStartup
//
- this.deleteLogsOnStartup.AutoSize = true;
- this.deleteLogsOnStartup.Location = new System.Drawing.Point(280, 130);
- this.deleteLogsOnStartup.Name = "deleteLogsOnStartup";
- this.deleteLogsOnStartup.Size = new System.Drawing.Size(15, 14);
- this.deleteLogsOnStartup.TabIndex = 23;
- this.deleteLogsOnStartup.UseVisualStyleBackColor = true;
+ this.delLogsOnStartup.AutoSize = true;
+ this.delLogsOnStartup.Location = new System.Drawing.Point(280, 130);
+ this.delLogsOnStartup.Name = "delLogsOnStartup";
+ this.delLogsOnStartup.Size = new System.Drawing.Size(15, 14);
+ this.delLogsOnStartup.TabIndex = 23;
+ this.delLogsOnStartup.UseVisualStyleBackColor = true;
//
// label11
//
@@ -754,10 +750,6 @@
this.aiOptsPage.Controls.Add(this.ncnnGpus);
this.aiOptsPage.Controls.Add(this.label5);
this.aiOptsPage.Controls.Add(this.label32);
- this.aiOptsPage.Controls.Add(this.label30);
- this.aiOptsPage.Controls.Add(this.rifeMode);
- this.aiOptsPage.Controls.Add(this.label28);
- this.aiOptsPage.Controls.Add(this.label29);
this.aiOptsPage.Name = "aiOptsPage";
this.aiOptsPage.Size = new System.Drawing.Size(762, 419);
this.aiOptsPage.Text = "AI Specific Settings";
@@ -766,7 +758,7 @@
//
this.panel12.BackgroundImage = global::Flowframes.Properties.Resources.baseline_create_white_18dp_semiTransparent;
this.panel12.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.panel12.Location = new System.Drawing.Point(336, 177);
+ this.panel12.Location = new System.Drawing.Point(336, 97);
this.panel12.Name = "panel12";
this.panel12.Size = new System.Drawing.Size(21, 21);
this.panel12.TabIndex = 58;
@@ -776,7 +768,7 @@
//
this.label44.AutoSize = true;
this.label44.ForeColor = System.Drawing.Color.Silver;
- this.label44.Location = new System.Drawing.Point(370, 181);
+ this.label44.Location = new System.Drawing.Point(370, 101);
this.label44.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label44.Name = "label44";
this.label44.Size = new System.Drawing.Size(358, 13);
@@ -794,7 +786,7 @@
"2",
"3",
"4"});
- this.ncnnThreads.Location = new System.Drawing.Point(280, 177);
+ this.ncnnThreads.Location = new System.Drawing.Point(280, 97);
this.ncnnThreads.Name = "ncnnThreads";
this.ncnnThreads.Size = new System.Drawing.Size(50, 21);
this.ncnnThreads.TabIndex = 59;
@@ -802,7 +794,7 @@
// label43
//
this.label43.AutoSize = true;
- this.label43.Location = new System.Drawing.Point(10, 180);
+ this.label43.Location = new System.Drawing.Point(10, 100);
this.label43.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label43.Name = "label43";
this.label43.Size = new System.Drawing.Size(135, 13);
@@ -813,7 +805,7 @@
//
this.panel2.BackgroundImage = global::Flowframes.Properties.Resources.baseline_create_white_18dp_semiTransparent;
this.panel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.panel2.Location = new System.Drawing.Point(536, 147);
+ this.panel2.Location = new System.Drawing.Point(536, 67);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(21, 21);
this.panel2.TabIndex = 57;
@@ -823,7 +815,7 @@
//
this.panel1.BackgroundImage = global::Flowframes.Properties.Resources.baseline_create_white_18dp_semiTransparent;
this.panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
- this.panel1.Location = new System.Drawing.Point(536, 117);
+ this.panel1.Location = new System.Drawing.Point(536, 37);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(21, 21);
this.panel1.TabIndex = 56;
@@ -839,7 +831,7 @@
"0",
"1",
"0,1"});
- this.torchGpus.Location = new System.Drawing.Point(280, 117);
+ this.torchGpus.Location = new System.Drawing.Point(280, 37);
this.torchGpus.Name = "torchGpus";
this.torchGpus.Size = new System.Drawing.Size(250, 21);
this.torchGpus.TabIndex = 55;
@@ -847,7 +839,7 @@
// label33
//
this.label33.AutoSize = true;
- this.label33.Location = new System.Drawing.Point(10, 120);
+ this.label33.Location = new System.Drawing.Point(10, 40);
this.label33.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label33.Name = "label33";
this.label33.Size = new System.Drawing.Size(205, 13);
@@ -864,7 +856,7 @@
"0",
"1",
"0,1"});
- this.ncnnGpus.Location = new System.Drawing.Point(280, 147);
+ this.ncnnGpus.Location = new System.Drawing.Point(280, 67);
this.ncnnGpus.Name = "ncnnGpus";
this.ncnnGpus.Size = new System.Drawing.Size(250, 21);
this.ncnnGpus.TabIndex = 53;
@@ -872,7 +864,7 @@
// label5
//
this.label5.AutoSize = true;
- this.label5.Location = new System.Drawing.Point(10, 150);
+ this.label5.Location = new System.Drawing.Point(10, 70);
this.label5.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(200, 13);
@@ -883,60 +875,13 @@
//
this.label32.AutoSize = true;
this.label32.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold);
- this.label32.Location = new System.Drawing.Point(10, 90);
+ this.label32.Location = new System.Drawing.Point(10, 10);
this.label32.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
this.label32.Name = "label32";
this.label32.Size = new System.Drawing.Size(162, 16);
this.label32.TabIndex = 51;
this.label32.Text = "AI Framework Settings";
//
- // label30
- //
- this.label30.AutoSize = true;
- this.label30.ForeColor = System.Drawing.Color.Silver;
- this.label30.Location = new System.Drawing.Point(543, 41);
- this.label30.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
- this.label30.Name = "label30";
- this.label30.Size = new System.Drawing.Size(190, 13);
- this.label30.TabIndex = 49;
- this.label30.Text = "An 8 GB GPU is recommended for this.";
- //
- // rifeMode
- //
- this.rifeMode.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
- this.rifeMode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.rifeMode.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.rifeMode.ForeColor = System.Drawing.Color.White;
- this.rifeMode.FormattingEnabled = true;
- this.rifeMode.Items.AddRange(new object[] {
- "Disabled - Slower, but needs less VRAM",
- "Enabled - Up to 2x as fast, needs more VRAM"});
- this.rifeMode.Location = new System.Drawing.Point(280, 37);
- this.rifeMode.Name = "rifeMode";
- this.rifeMode.Size = new System.Drawing.Size(250, 21);
- this.rifeMode.TabIndex = 48;
- //
- // label28
- //
- this.label28.AutoSize = true;
- this.label28.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label28.Location = new System.Drawing.Point(10, 10);
- this.label28.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
- this.label28.Name = "label28";
- this.label28.Size = new System.Drawing.Size(42, 16);
- this.label28.TabIndex = 47;
- this.label28.Text = "RIFE";
- //
- // label29
- //
- this.label29.AutoSize = true;
- this.label29.Location = new System.Drawing.Point(10, 40);
- this.label29.Margin = new System.Windows.Forms.Padding(10, 10, 10, 7);
- this.label29.Name = "label29";
- this.label29.Size = new System.Drawing.Size(116, 13);
- this.label29.TabIndex = 45;
- this.label29.Text = "Use Fast Parallel Mode";
- //
// vidExportTab
//
this.vidExportTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48)))));
@@ -1588,7 +1533,7 @@
private Cyotek.Windows.Forms.TabListPage tabListPage2;
private Cyotek.Windows.Forms.TabListPage debugTab;
private System.Windows.Forms.Label titleLabel;
- private System.Windows.Forms.CheckBox deleteLogsOnStartup;
+ private System.Windows.Forms.CheckBox delLogsOnStartup;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.CheckBox enableAudio;
@@ -1630,10 +1575,6 @@
private System.Windows.Forms.Label label26;
private System.Windows.Forms.Label label24;
private Cyotek.Windows.Forms.TabListPage aiOptsPage;
- private System.Windows.Forms.Label label30;
- private System.Windows.Forms.ComboBox rifeMode;
- private System.Windows.Forms.Label label28;
- private System.Windows.Forms.Label label29;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ComboBox torchGpus;
private System.Windows.Forms.Label label33;
diff --git a/Code/Forms/SettingsForm.cs b/Code/Forms/SettingsForm.cs
index 6a6710f..73dd678 100644
--- a/Code/Forms/SettingsForm.cs
+++ b/Code/Forms/SettingsForm.cs
@@ -50,7 +50,7 @@ namespace Flowframes.Forms
ConfigParser.SaveGuiElement(maxVidHeight);
ConfigParser.SaveComboxIndex(tempFolderLoc);
ConfigParser.SaveGuiElement(keepTempFolder);
- ConfigParser.SaveGuiElement(deleteLogsOnStartup);
+ ConfigParser.SaveGuiElement(delLogsOnStartup);
// Interpolation
ConfigParser.SaveGuiElement(enableAudio);
ConfigParser.SaveComboxIndex(dedupMode);
@@ -64,7 +64,6 @@ namespace Flowframes.Forms
ConfigParser.SaveComboxIndex(autoEncMode);
ConfigParser.SaveGuiElement(sbsAllowAutoEnc);
// AI
- ConfigParser.SaveComboxIndex(rifeMode);
ConfigParser.SaveGuiElement(torchGpus);
ConfigParser.SaveGuiElement(ncnnGpus);
ConfigParser.SaveGuiElement(ncnnThreads);
@@ -91,7 +90,7 @@ namespace Flowframes.Forms
ConfigParser.LoadComboxIndex(processingMode);
ConfigParser.LoadGuiElement(maxVidHeight);
ConfigParser.LoadComboxIndex(tempFolderLoc); ConfigParser.LoadGuiElement(tempDirCustom);
- ConfigParser.LoadGuiElement(deleteLogsOnStartup);
+ ConfigParser.LoadGuiElement(delLogsOnStartup);
ConfigParser.LoadGuiElement(keepTempFolder);
// Interpolation
ConfigParser.LoadGuiElement(enableAudio);
@@ -106,7 +105,6 @@ namespace Flowframes.Forms
ConfigParser.LoadComboxIndex(autoEncMode);
ConfigParser.LoadGuiElement(sbsAllowAutoEnc);
// AI
- ConfigParser.LoadComboxIndex(rifeMode);
ConfigParser.LoadGuiElement(torchGpus);
ConfigParser.LoadGuiElement(ncnnGpus);
ConfigParser.LoadGuiElement(ncnnThreads);
diff --git a/Code/IO/Config.cs b/Code/IO/Config.cs
index d9774c7..872f702 100644
--- a/Code/IO/Config.cs
+++ b/Code/IO/Config.cs
@@ -105,7 +105,7 @@ namespace Flowframes.IO
if (key == "gifColors") return WriteDefault(key, "128 (High)");
if (key == "minVidLength") return WriteDefault(key, "2");
// AI
- if (key == "rifeMode") return WriteDefault(key, ((NvApi.GetVramGb() > 7f) ? 1 : 0).ToString()); // Enable by default if GPU has >7gb VRAM
+ //if (key == "rifeMode") return WriteDefault(key, ((NvApi.GetVramGb() > 7f) ? 1 : 0).ToString()); // Enable by default if GPU has >7gb VRAM
if (key == "ncnnThreads") return WriteDefault(key, "1");
// Debug / Other / Experimental
if (key == "ffEncPreset") return WriteDefault(key, "medium");