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");