From 8ddd9fc2a1e08a68e41b21693375d9644226b816 Mon Sep 17 00:00:00 2001 From: N00MKRAD Date: Wed, 25 Nov 2020 17:27:15 +0100 Subject: [PATCH] Added NCNN threads option, tilesize support for RIFE-NCNN --- Code/Data/AI.cs | 4 +- Code/Data/Networks.cs | 8 +- Code/Form1.Designer.cs | 676 ++++++++++++++-------------- Code/Form1.cs | 26 +- Code/Forms/SettingsForm.Designer.cs | 59 +++ Code/Forms/SettingsForm.cs | 8 +- Code/IO/Config.cs | 40 +- Code/OS/AiProcess.cs | 30 +- 8 files changed, 455 insertions(+), 396 deletions(-) diff --git a/Code/Data/AI.cs b/Code/Data/AI.cs index 799014b..f635134 100644 --- a/Code/Data/AI.cs +++ b/Code/Data/AI.cs @@ -15,8 +15,9 @@ namespace Flowframes.Data public string description; public FlowPackage pkg; public int minPkgVer; + public bool supportsTiling; - public AI(string aiNameArg, string friendlyNameArg, string descArg, FlowPackage pkgArg, int minPkgVerForThisBuild) + public AI(string aiNameArg, string friendlyNameArg, string descArg, FlowPackage pkgArg, int minPkgVerForThisBuild, bool supportsTilingArg) { aiName = aiNameArg; aiNameShort = aiNameArg.Split(' ')[0]; @@ -25,6 +26,7 @@ namespace Flowframes.Data description = descArg; pkg = pkgArg; minPkgVer = minPkgVerForThisBuild; + supportsTiling = supportsTilingArg; } } } diff --git a/Code/Data/Networks.cs b/Code/Data/Networks.cs index 8243592..3406971 100644 --- a/Code/Data/Networks.cs +++ b/Code/Data/Networks.cs @@ -6,10 +6,10 @@ namespace Flowframes.Data { class Networks { - public static AI rifeCuda = new AI("RIFE_CUDA", "RIFE", "CUDA/Pytorch Implementation of RIFE", Packages.rifeCuda, 1); - public static AI rifeNcnn = new AI("RIFE_NCNN", "RIFE (NCNN)", "Vulkan/NCNN Implementation of RIFE", Packages.rifeNcnn, 1); - public static AI dainNcnn = new AI("DAIN_NCNN", "DAIN (NCNN)", "Vulkan/NCNN Implementation of DAIN", Packages.dainNcnn, 0); - public static AI cainNcnn = new AI("CAIN_NCNN", "CAIN (NCNN)", "Vulkan/NCNN Implementation of CAIN", Packages.cainNcnn, 0); + public static AI rifeCuda = new AI("RIFE_CUDA", "RIFE", "CUDA/Pytorch Implementation of RIFE", Packages.rifeCuda, 1, false); + public static AI rifeNcnn = new AI("RIFE_NCNN", "RIFE (NCNN)", "Vulkan/NCNN Implementation of RIFE", Packages.rifeNcnn, 1, true); + public static AI dainNcnn = new AI("DAIN_NCNN", "DAIN (NCNN)", "Vulkan/NCNN Implementation of DAIN", Packages.dainNcnn, 0, true); + public static AI cainNcnn = new AI("CAIN_NCNN", "CAIN (NCNN)", "Vulkan/NCNN Implementation of CAIN", Packages.cainNcnn, 0, true); public static List networks = new List(); diff --git a/Code/Form1.Designer.cs b/Code/Form1.Designer.cs index fbe5a2b..72dde4b 100644 --- a/Code/Form1.Designer.cs +++ b/Code/Form1.Designer.cs @@ -31,13 +31,12 @@ this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.titleLabel = new System.Windows.Forms.Label(); - this.tilesizeComboxCain = new System.Windows.Forms.ComboBox(); + this.tilesize = new System.Windows.Forms.ComboBox(); this.tileSizeInfoLabel = new System.Windows.Forms.Label(); this.aiCombox = new System.Windows.Forms.ComboBox(); this.label13 = new System.Windows.Forms.Label(); this.outModeCombox = new System.Windows.Forms.ComboBox(); this.label9 = new System.Windows.Forms.Label(); - this.tilesizeComboxDain = new System.Windows.Forms.ComboBox(); this.label8 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); @@ -78,6 +77,21 @@ this.panel1 = new System.Windows.Forms.Panel(); this.statusLabel = new System.Windows.Forms.Label(); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.updateBtn = new HTAlt.WinForms.HTButton(); + this.queueBtn = new HTAlt.WinForms.HTButton(); + this.panel7 = new System.Windows.Forms.Panel(); + this.pictureBox4 = new System.Windows.Forms.PictureBox(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.info1 = new System.Windows.Forms.PictureBox(); + this.panel4 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.settingsBtn = new HTAlt.WinForms.HTButton(); + this.patreonBtn = new HTAlt.WinForms.HTButton(); + this.paypalBtn = new HTAlt.WinForms.HTButton(); + this.discordBtn = new HTAlt.WinForms.HTButton(); + this.installerBtn = new HTAlt.WinForms.HTButton(); this.longProgBar = new HTAlt.WinForms.HTProgressBar(); this.cancelBtn = new System.Windows.Forms.Button(); this.mainTabControl = new HTAlt.WinForms.HTTabControl(); @@ -87,41 +101,26 @@ this.browseOutBtn = new HTAlt.WinForms.HTButton(); this.browseInputFileBtn = new HTAlt.WinForms.HTButton(); this.browseInputBtn = new HTAlt.WinForms.HTButton(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); this.videoUtilsTab = new System.Windows.Forms.TabPage(); this.label10 = new System.Windows.Forms.Label(); this.utilsExtractAudioCbox = new System.Windows.Forms.CheckBox(); this.previewTab = new System.Windows.Forms.TabPage(); - this.abtTab = new System.Windows.Forms.TabPage(); - this.updateBtn = new HTAlt.WinForms.HTButton(); - this.htButton1 = new HTAlt.WinForms.HTButton(); - this.queueBtn = new HTAlt.WinForms.HTButton(); - this.panel7 = new System.Windows.Forms.Panel(); - this.pictureBox4 = new System.Windows.Forms.PictureBox(); - this.pictureBox3 = new System.Windows.Forms.PictureBox(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.info1 = new System.Windows.Forms.PictureBox(); - this.panel4 = new System.Windows.Forms.Panel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.panel3 = new System.Windows.Forms.Panel(); this.previewPicturebox = new System.Windows.Forms.PictureBox(); - this.settingsBtn = new HTAlt.WinForms.HTButton(); - this.patreonBtn = new HTAlt.WinForms.HTButton(); - this.paypalBtn = new HTAlt.WinForms.HTButton(); - this.discordBtn = new HTAlt.WinForms.HTButton(); - this.installerBtn = new HTAlt.WinForms.HTButton(); + this.abtTab = new System.Windows.Forms.TabPage(); + this.htButton1 = new HTAlt.WinForms.HTButton(); this.panel1.SuspendLayout(); - this.mainTabControl.SuspendLayout(); - this.interpOptsTab.SuspendLayout(); - this.videoUtilsTab.SuspendLayout(); - this.previewTab.SuspendLayout(); - this.abtTab.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.info1)).BeginInit(); + this.mainTabControl.SuspendLayout(); + this.interpOptsTab.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + this.videoUtilsTab.SuspendLayout(); + this.previewTab.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.previewPicturebox)).BeginInit(); + this.abtTab.SuspendLayout(); this.SuspendLayout(); // // titleLabel @@ -136,22 +135,26 @@ this.titleLabel.TabIndex = 0; this.titleLabel.Text = "Flowframes Video Interpolator"; // - // tilesizeComboxCain + // tilesize // - this.tilesizeComboxCain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.tilesizeComboxCain.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.tilesizeComboxCain.ForeColor = System.Drawing.Color.White; - this.tilesizeComboxCain.FormattingEnabled = true; - this.tilesizeComboxCain.Items.AddRange(new object[] { + this.tilesize.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tilesize.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.tilesize.ForeColor = System.Drawing.Color.White; + this.tilesize.FormattingEnabled = true; + this.tilesize.Items.AddRange(new object[] { + "384", + "512", + "768", "1024", - "1280", "1536", - "1792", - "2048"}); - this.tilesizeComboxCain.Location = new System.Drawing.Point(281, 127); - this.tilesizeComboxCain.Name = "tilesizeComboxCain"; - this.tilesizeComboxCain.Size = new System.Drawing.Size(125, 23); - this.tilesizeComboxCain.TabIndex = 25; + "2048", + "3072", + "4096"}); + this.tilesize.Location = new System.Drawing.Point(281, 127); + this.tilesize.Name = "tilesize"; + this.tilesize.Size = new System.Drawing.Size(125, 23); + this.tilesize.TabIndex = 25; + this.tilesize.SelectedIndexChanged += new System.EventHandler(this.tilesize_SelectedIndexChanged); // // tileSizeInfoLabel // @@ -218,28 +221,6 @@ this.label9.TabIndex = 15; this.label9.Text = "Output Mode"; // - // tilesizeComboxDain - // - this.tilesizeComboxDain.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.tilesizeComboxDain.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.tilesizeComboxDain.ForeColor = System.Drawing.Color.White; - this.tilesizeComboxDain.FormattingEnabled = true; - this.tilesizeComboxDain.Items.AddRange(new object[] { - "256", - "384", - "448", - "512", - "640", - "768", - "832", - "960", - "1024", - "1280"}); - this.tilesizeComboxDain.Location = new System.Drawing.Point(281, 127); - this.tilesizeComboxDain.Name = "tilesizeComboxDain"; - this.tilesizeComboxDain.Size = new System.Drawing.Size(125, 23); - this.tilesizeComboxDain.TabIndex = 14; - // // label8 // this.label8.AutoSize = true; @@ -661,6 +642,7 @@ this.logBox.MinimumSize = new System.Drawing.Size(4, 21); this.logBox.Multiline = true; this.logBox.Name = "logBox"; + this.logBox.ReadOnly = true; this.logBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.logBox.Size = new System.Drawing.Size(701, 111); this.logBox.TabIndex = 5; @@ -705,245 +687,6 @@ this.statusLabel.TabIndex = 7; this.statusLabel.Text = "Ready"; // - // longProgBar - // - this.longProgBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.longProgBar.BorderThickness = 0; - this.longProgBar.Location = new System.Drawing.Point(221, 474); - this.longProgBar.Name = "longProgBar"; - this.longProgBar.Size = new System.Drawing.Size(700, 15); - this.longProgBar.TabIndex = 33; - // - // cancelBtn - // - this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.cancelBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); - this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.cancelBtn.ForeColor = System.Drawing.Color.LightCoral; - this.cancelBtn.Location = new System.Drawing.Point(12, 418); - this.cancelBtn.Name = "cancelBtn"; - this.cancelBtn.Size = new System.Drawing.Size(203, 71); - this.cancelBtn.TabIndex = 34; - this.cancelBtn.Text = "Cancel"; - this.cancelBtn.UseVisualStyleBackColor = false; - this.cancelBtn.Visible = false; - this.cancelBtn.Click += new System.EventHandler(this.cancelBtn_Click); - // - // mainTabControl - // - this.mainTabControl.AllowDrop = true; - this.mainTabControl.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(48))))); - this.mainTabControl.BorderTabLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(122)))), ((int)(((byte)(204))))); - this.mainTabControl.Controls.Add(this.interpOptsTab); - this.mainTabControl.Controls.Add(this.videoUtilsTab); - this.mainTabControl.Controls.Add(this.previewTab); - this.mainTabControl.Controls.Add(this.abtTab); - this.mainTabControl.DisableClose = true; - this.mainTabControl.DisableDragging = true; - this.mainTabControl.Font = new System.Drawing.Font("Segoe UI", 9F); - this.mainTabControl.HoverTabButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(82)))), ((int)(((byte)(176)))), ((int)(((byte)(239))))); - this.mainTabControl.HoverTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(151)))), ((int)(((byte)(234))))); - this.mainTabControl.HoverUnselectedTabButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(85)))), ((int)(((byte)(85)))), ((int)(((byte)(85))))); - this.mainTabControl.Location = new System.Drawing.Point(13, 62); - this.mainTabControl.Name = "mainTabControl"; - this.mainTabControl.Padding = new System.Drawing.Point(14, 4); - this.mainTabControl.SelectedIndex = 0; - this.mainTabControl.SelectedTabButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(151)))), ((int)(((byte)(234))))); - this.mainTabControl.SelectedTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(122)))), ((int)(((byte)(204))))); - this.mainTabControl.Size = new System.Drawing.Size(909, 289); - this.mainTabControl.TabIndex = 4; - this.mainTabControl.TextColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.mainTabControl.UnderBorderTabLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(67)))), ((int)(((byte)(70))))); - this.mainTabControl.UnselectedBorderTabLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70))))); - this.mainTabControl.UnselectedTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70))))); - this.mainTabControl.UpDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70))))); - this.mainTabControl.UpDownTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(112))))); - this.mainTabControl.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.mainTabControl.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); - // - // interpOptsTab - // - this.interpOptsTab.AllowDrop = true; - this.interpOptsTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); - this.interpOptsTab.Controls.Add(this.tilesizeNotAvailLabel); - this.interpOptsTab.Controls.Add(this.panel7); - this.interpOptsTab.Controls.Add(this.label1); - this.interpOptsTab.Controls.Add(this.browseOutBtn); - this.interpOptsTab.Controls.Add(this.browseInputFileBtn); - this.interpOptsTab.Controls.Add(this.browseInputBtn); - this.interpOptsTab.Controls.Add(this.label4); - this.interpOptsTab.Controls.Add(this.pictureBox4); - this.interpOptsTab.Controls.Add(this.tilesizeComboxDain); - this.interpOptsTab.Controls.Add(this.label2); - this.interpOptsTab.Controls.Add(this.pictureBox3); - this.interpOptsTab.Controls.Add(this.label3); - this.interpOptsTab.Controls.Add(this.pictureBox2); - this.interpOptsTab.Controls.Add(this.inputTbox); - this.interpOptsTab.Controls.Add(this.pictureBox1); - this.interpOptsTab.Controls.Add(this.outputTbox); - this.interpOptsTab.Controls.Add(this.info1); - this.interpOptsTab.Controls.Add(this.interpFactorCombox); - this.interpOptsTab.Controls.Add(this.tilesizeComboxCain); - this.interpOptsTab.Controls.Add(this.fpsInTbox); - this.interpOptsTab.Controls.Add(this.tileSizeInfoLabel); - this.interpOptsTab.Controls.Add(this.fpsOutTbox); - this.interpOptsTab.Controls.Add(this.label5); - this.interpOptsTab.Controls.Add(this.aiCombox); - this.interpOptsTab.Controls.Add(this.label6); - this.interpOptsTab.Controls.Add(this.label13); - this.interpOptsTab.Controls.Add(this.label7); - this.interpOptsTab.Controls.Add(this.label8); - this.interpOptsTab.Controls.Add(this.label9); - this.interpOptsTab.Controls.Add(this.outModeCombox); - this.interpOptsTab.Location = new System.Drawing.Point(4, 27); - this.interpOptsTab.Name = "interpOptsTab"; - this.interpOptsTab.Padding = new System.Windows.Forms.Padding(3); - this.interpOptsTab.Size = new System.Drawing.Size(901, 258); - this.interpOptsTab.TabIndex = 0; - this.interpOptsTab.Text = "Interpolation"; - this.interpOptsTab.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.interpOptsTab.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); - // - // tilesizeNotAvailLabel - // - this.tilesizeNotAvailLabel.ForeColor = System.Drawing.Color.Silver; - this.tilesizeNotAvailLabel.Location = new System.Drawing.Point(278, 131); - this.tilesizeNotAvailLabel.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); - this.tilesizeNotAvailLabel.Name = "tilesizeNotAvailLabel"; - this.tilesizeNotAvailLabel.Size = new System.Drawing.Size(203, 24); - this.tilesizeNotAvailLabel.TabIndex = 37; - this.tilesizeNotAvailLabel.Text = "Not available for the selected AI."; - this.tilesizeNotAvailLabel.Visible = false; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.ForeColor = System.Drawing.Color.Silver; - this.label1.Location = new System.Drawing.Point(492, 162); - this.label1.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(360, 15); - this.label1.TabIndex = 36; - this.label1.Text = "Export encoder and quality options can be changed in the Settings."; - // - // browseOutBtn - // - this.browseOutBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.browseOutBtn.FlatAppearance.BorderSize = 0; - this.browseOutBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.browseOutBtn.ForeColor = System.Drawing.Color.White; - this.browseOutBtn.Location = new System.Drawing.Point(689, 68); - this.browseOutBtn.Name = "browseOutBtn"; - this.browseOutBtn.Size = new System.Drawing.Size(206, 23); - this.browseOutBtn.TabIndex = 35; - this.browseOutBtn.Text = "Browse (Folder)"; - this.browseOutBtn.UseVisualStyleBackColor = false; - this.browseOutBtn.Click += new System.EventHandler(this.browseOutBtn_Click); - // - // browseInputFileBtn - // - this.browseInputFileBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.browseInputFileBtn.FlatAppearance.BorderSize = 0; - this.browseInputFileBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.browseInputFileBtn.ForeColor = System.Drawing.Color.White; - this.browseInputFileBtn.Location = new System.Drawing.Point(795, 39); - this.browseInputFileBtn.Name = "browseInputFileBtn"; - this.browseInputFileBtn.Size = new System.Drawing.Size(100, 23); - this.browseInputFileBtn.TabIndex = 34; - this.browseInputFileBtn.Text = "Browse (Video)"; - this.browseInputFileBtn.UseVisualStyleBackColor = false; - this.browseInputFileBtn.Click += new System.EventHandler(this.browseInputFileBtn_Click); - // - // browseInputBtn - // - this.browseInputBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.browseInputBtn.FlatAppearance.BorderSize = 0; - this.browseInputBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.browseInputBtn.ForeColor = System.Drawing.Color.White; - this.browseInputBtn.Location = new System.Drawing.Point(689, 39); - this.browseInputBtn.Name = "browseInputBtn"; - this.browseInputBtn.Size = new System.Drawing.Size(100, 23); - this.browseInputBtn.TabIndex = 33; - this.browseInputBtn.Text = "Browse (Folder)"; - this.browseInputBtn.UseVisualStyleBackColor = false; - this.browseInputBtn.Click += new System.EventHandler(this.browseInputBtn_Click); - // - // videoUtilsTab - // - this.videoUtilsTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); - this.videoUtilsTab.Controls.Add(this.panel4); - this.videoUtilsTab.Controls.Add(this.panel2); - this.videoUtilsTab.Controls.Add(this.panel3); - this.videoUtilsTab.Controls.Add(this.label10); - this.videoUtilsTab.Controls.Add(this.utilsExtractAudioCbox); - this.videoUtilsTab.Controls.Add(this.utilsDedupTestBtn); - this.videoUtilsTab.Controls.Add(this.label16); - this.videoUtilsTab.Controls.Add(this.utilsDedupBtn); - this.videoUtilsTab.Controls.Add(this.debugExtractFramesBtn); - this.videoUtilsTab.Controls.Add(this.label26); - this.videoUtilsTab.Controls.Add(this.label17); - this.videoUtilsTab.Controls.Add(this.utilsLoopVidBtn); - this.videoUtilsTab.Controls.Add(this.label24); - this.videoUtilsTab.Controls.Add(this.label18); - this.videoUtilsTab.Controls.Add(this.utilsConvCrf); - this.videoUtilsTab.Controls.Add(this.utilsLoopTimesCombox); - this.videoUtilsTab.Controls.Add(this.utilsConvertMp4Btn); - this.videoUtilsTab.Controls.Add(this.label19); - this.videoUtilsTab.Controls.Add(this.label23); - this.videoUtilsTab.Controls.Add(this.label20); - this.videoUtilsTab.Controls.Add(this.utilsChangeSpeedBtn); - this.videoUtilsTab.Controls.Add(this.utilsSpeedCombox); - this.videoUtilsTab.Location = new System.Drawing.Point(4, 27); - this.videoUtilsTab.Name = "videoUtilsTab"; - this.videoUtilsTab.Padding = new System.Windows.Forms.Padding(3); - this.videoUtilsTab.Size = new System.Drawing.Size(901, 258); - this.videoUtilsTab.TabIndex = 1; - this.videoUtilsTab.Text = "Video Utilities"; - // - // label10 - // - this.label10.AutoSize = true; - this.label10.ForeColor = System.Drawing.Color.White; - this.label10.Location = new System.Drawing.Point(441, 11); - this.label10.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(107, 15); - this.label10.TabIndex = 35; - this.label10.Text = "Also Extract Audio:"; - // - // utilsExtractAudioCbox - // - this.utilsExtractAudioCbox.AutoSize = true; - this.utilsExtractAudioCbox.Checked = true; - this.utilsExtractAudioCbox.CheckState = System.Windows.Forms.CheckState.Checked; - this.utilsExtractAudioCbox.Location = new System.Drawing.Point(575, 11); - this.utilsExtractAudioCbox.Name = "utilsExtractAudioCbox"; - this.utilsExtractAudioCbox.Size = new System.Drawing.Size(15, 14); - this.utilsExtractAudioCbox.TabIndex = 34; - this.utilsExtractAudioCbox.UseVisualStyleBackColor = true; - // - // previewTab - // - this.previewTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); - this.previewTab.Controls.Add(this.previewPicturebox); - this.previewTab.Location = new System.Drawing.Point(4, 27); - this.previewTab.Margin = new System.Windows.Forms.Padding(0); - this.previewTab.Name = "previewTab"; - this.previewTab.Size = new System.Drawing.Size(901, 258); - this.previewTab.TabIndex = 3; - this.previewTab.Text = "Preview"; - // - // abtTab - // - this.abtTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); - this.abtTab.Controls.Add(this.label14); - this.abtTab.Location = new System.Drawing.Point(4, 27); - this.abtTab.Name = "abtTab"; - this.abtTab.Padding = new System.Windows.Forms.Padding(3); - this.abtTab.Size = new System.Drawing.Size(901, 258); - this.abtTab.TabIndex = 2; - this.abtTab.Text = "About"; - // // updateBtn // this.updateBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); @@ -962,23 +705,6 @@ this.updateBtn.UseVisualStyleBackColor = false; this.updateBtn.Click += new System.EventHandler(this.updateBtn_Click); // - // htButton1 - // - this.htButton1.BackColor = System.Drawing.Color.Transparent; - this.htButton1.ButtonImage = global::Flowframes.Properties.Resources.separatorTest1; - this.htButton1.DrawImage = true; - this.htButton1.Enabled = false; - this.htButton1.FlatAppearance.BorderSize = 0; - this.htButton1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.htButton1.ForeColor = System.Drawing.Color.White; - this.htButton1.ImageIndex = 0; - this.htButton1.ImageSizeMode = HTAlt.WinForms.HTButton.ButtonImageSizeMode.Zoom; - this.htButton1.Location = new System.Drawing.Point(698, 12); - this.htButton1.Name = "htButton1"; - this.htButton1.Size = new System.Drawing.Size(40, 40); - this.htButton1.TabIndex = 40; - this.htButton1.UseVisualStyleBackColor = false; - // // queueBtn // this.queueBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); @@ -1029,16 +755,6 @@ this.pictureBox3.TabStop = false; this.toolTip1.SetToolTip(this.pictureBox3, "Supports drag-n-drop.\r\nGets auto-assigned whenever you set an input file."); // - // pictureBox2 - // - this.pictureBox2.BackgroundImage = global::Flowframes.Properties.Resources.questmark_72px_bordeer; - this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.pictureBox2.Location = new System.Drawing.Point(86, 158); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(29, 21); - this.pictureBox2.TabIndex = 29; - this.pictureBox2.TabStop = false; - // // pictureBox1 // this.pictureBox1.BackgroundImage = global::Flowframes.Properties.Resources.questmark_72px_bordeer; @@ -1093,19 +809,6 @@ this.panel3.TabIndex = 58; this.toolTip1.SetToolTip(this.panel3, "Allows custom input."); // - // previewPicturebox - // - this.previewPicturebox.Dock = System.Windows.Forms.DockStyle.Fill; - this.previewPicturebox.Image = global::Flowframes.Properties.Resources.baseline_image_white_48dp_4x_25pcAlpha; - this.previewPicturebox.Location = new System.Drawing.Point(0, 0); - this.previewPicturebox.Margin = new System.Windows.Forms.Padding(0); - this.previewPicturebox.Name = "previewPicturebox"; - this.previewPicturebox.Size = new System.Drawing.Size(901, 258); - this.previewPicturebox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.previewPicturebox.TabIndex = 0; - this.previewPicturebox.TabStop = false; - this.previewPicturebox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.previewPicturebox_MouseClick); - // // settingsBtn // this.settingsBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); @@ -1196,6 +899,284 @@ this.installerBtn.UseVisualStyleBackColor = false; this.installerBtn.Click += new System.EventHandler(this.installerBtn_Click); // + // longProgBar + // + this.longProgBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.longProgBar.BorderThickness = 0; + this.longProgBar.Location = new System.Drawing.Point(221, 474); + this.longProgBar.Name = "longProgBar"; + this.longProgBar.Size = new System.Drawing.Size(700, 15); + this.longProgBar.TabIndex = 33; + // + // cancelBtn + // + this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.cancelBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.cancelBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cancelBtn.ForeColor = System.Drawing.Color.LightCoral; + this.cancelBtn.Location = new System.Drawing.Point(12, 418); + this.cancelBtn.Name = "cancelBtn"; + this.cancelBtn.Size = new System.Drawing.Size(203, 71); + this.cancelBtn.TabIndex = 34; + this.cancelBtn.Text = "Cancel"; + this.cancelBtn.UseVisualStyleBackColor = false; + this.cancelBtn.Visible = false; + this.cancelBtn.Click += new System.EventHandler(this.cancelBtn_Click); + // + // mainTabControl + // + this.mainTabControl.AllowDrop = true; + this.mainTabControl.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(48))))); + this.mainTabControl.BorderTabLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(122)))), ((int)(((byte)(204))))); + this.mainTabControl.Controls.Add(this.interpOptsTab); + this.mainTabControl.Controls.Add(this.videoUtilsTab); + this.mainTabControl.Controls.Add(this.previewTab); + this.mainTabControl.Controls.Add(this.abtTab); + this.mainTabControl.DisableClose = true; + this.mainTabControl.DisableDragging = true; + this.mainTabControl.Font = new System.Drawing.Font("Segoe UI", 9F); + this.mainTabControl.HoverTabButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(82)))), ((int)(((byte)(176)))), ((int)(((byte)(239))))); + this.mainTabControl.HoverTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(151)))), ((int)(((byte)(234))))); + this.mainTabControl.HoverUnselectedTabButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(85)))), ((int)(((byte)(85)))), ((int)(((byte)(85))))); + this.mainTabControl.Location = new System.Drawing.Point(13, 62); + this.mainTabControl.Name = "mainTabControl"; + this.mainTabControl.Padding = new System.Drawing.Point(14, 4); + this.mainTabControl.SelectedIndex = 0; + this.mainTabControl.SelectedTabButtonColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(151)))), ((int)(((byte)(234))))); + this.mainTabControl.SelectedTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(122)))), ((int)(((byte)(204))))); + this.mainTabControl.Size = new System.Drawing.Size(909, 289); + this.mainTabControl.TabIndex = 4; + this.mainTabControl.TextColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.mainTabControl.UnderBorderTabLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(67)))), ((int)(((byte)(67)))), ((int)(((byte)(70))))); + this.mainTabControl.UnselectedBorderTabLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70))))); + this.mainTabControl.UnselectedTabColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70))))); + this.mainTabControl.UpDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(63)))), ((int)(((byte)(70))))); + this.mainTabControl.UpDownTextColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(112))))); + this.mainTabControl.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); + this.mainTabControl.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); + // + // interpOptsTab + // + this.interpOptsTab.AllowDrop = true; + this.interpOptsTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.interpOptsTab.Controls.Add(this.tilesizeNotAvailLabel); + this.interpOptsTab.Controls.Add(this.panel7); + this.interpOptsTab.Controls.Add(this.label1); + this.interpOptsTab.Controls.Add(this.browseOutBtn); + this.interpOptsTab.Controls.Add(this.browseInputFileBtn); + this.interpOptsTab.Controls.Add(this.browseInputBtn); + this.interpOptsTab.Controls.Add(this.label4); + this.interpOptsTab.Controls.Add(this.pictureBox4); + this.interpOptsTab.Controls.Add(this.label2); + this.interpOptsTab.Controls.Add(this.pictureBox3); + this.interpOptsTab.Controls.Add(this.label3); + this.interpOptsTab.Controls.Add(this.pictureBox2); + this.interpOptsTab.Controls.Add(this.inputTbox); + this.interpOptsTab.Controls.Add(this.pictureBox1); + this.interpOptsTab.Controls.Add(this.outputTbox); + this.interpOptsTab.Controls.Add(this.info1); + this.interpOptsTab.Controls.Add(this.interpFactorCombox); + this.interpOptsTab.Controls.Add(this.tilesize); + this.interpOptsTab.Controls.Add(this.fpsInTbox); + this.interpOptsTab.Controls.Add(this.tileSizeInfoLabel); + this.interpOptsTab.Controls.Add(this.fpsOutTbox); + this.interpOptsTab.Controls.Add(this.label5); + this.interpOptsTab.Controls.Add(this.aiCombox); + this.interpOptsTab.Controls.Add(this.label6); + this.interpOptsTab.Controls.Add(this.label13); + this.interpOptsTab.Controls.Add(this.label7); + this.interpOptsTab.Controls.Add(this.label8); + this.interpOptsTab.Controls.Add(this.label9); + this.interpOptsTab.Controls.Add(this.outModeCombox); + this.interpOptsTab.Location = new System.Drawing.Point(4, 27); + this.interpOptsTab.Name = "interpOptsTab"; + this.interpOptsTab.Padding = new System.Windows.Forms.Padding(3); + this.interpOptsTab.Size = new System.Drawing.Size(901, 258); + this.interpOptsTab.TabIndex = 0; + this.interpOptsTab.Text = "Interpolation"; + this.interpOptsTab.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); + this.interpOptsTab.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); + // + // tilesizeNotAvailLabel + // + this.tilesizeNotAvailLabel.ForeColor = System.Drawing.Color.Silver; + this.tilesizeNotAvailLabel.Location = new System.Drawing.Point(278, 131); + this.tilesizeNotAvailLabel.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); + this.tilesizeNotAvailLabel.Name = "tilesizeNotAvailLabel"; + this.tilesizeNotAvailLabel.Size = new System.Drawing.Size(203, 24); + this.tilesizeNotAvailLabel.TabIndex = 37; + this.tilesizeNotAvailLabel.Text = "Not available for the selected AI."; + this.tilesizeNotAvailLabel.Visible = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.ForeColor = System.Drawing.Color.Silver; + this.label1.Location = new System.Drawing.Point(492, 162); + this.label1.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(360, 15); + this.label1.TabIndex = 36; + this.label1.Text = "Export encoder and quality options can be changed in the Settings."; + // + // browseOutBtn + // + this.browseOutBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.browseOutBtn.FlatAppearance.BorderSize = 0; + this.browseOutBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.browseOutBtn.ForeColor = System.Drawing.Color.White; + this.browseOutBtn.Location = new System.Drawing.Point(689, 68); + this.browseOutBtn.Name = "browseOutBtn"; + this.browseOutBtn.Size = new System.Drawing.Size(206, 23); + this.browseOutBtn.TabIndex = 35; + this.browseOutBtn.Text = "Browse (Folder)"; + this.browseOutBtn.UseVisualStyleBackColor = false; + this.browseOutBtn.Click += new System.EventHandler(this.browseOutBtn_Click); + // + // browseInputFileBtn + // + this.browseInputFileBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.browseInputFileBtn.FlatAppearance.BorderSize = 0; + this.browseInputFileBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.browseInputFileBtn.ForeColor = System.Drawing.Color.White; + this.browseInputFileBtn.Location = new System.Drawing.Point(795, 39); + this.browseInputFileBtn.Name = "browseInputFileBtn"; + this.browseInputFileBtn.Size = new System.Drawing.Size(100, 23); + this.browseInputFileBtn.TabIndex = 34; + this.browseInputFileBtn.Text = "Browse (Video)"; + this.browseInputFileBtn.UseVisualStyleBackColor = false; + this.browseInputFileBtn.Click += new System.EventHandler(this.browseInputFileBtn_Click); + // + // browseInputBtn + // + this.browseInputBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.browseInputBtn.FlatAppearance.BorderSize = 0; + this.browseInputBtn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.browseInputBtn.ForeColor = System.Drawing.Color.White; + this.browseInputBtn.Location = new System.Drawing.Point(689, 39); + this.browseInputBtn.Name = "browseInputBtn"; + this.browseInputBtn.Size = new System.Drawing.Size(100, 23); + this.browseInputBtn.TabIndex = 33; + this.browseInputBtn.Text = "Browse (Folder)"; + this.browseInputBtn.UseVisualStyleBackColor = false; + this.browseInputBtn.Click += new System.EventHandler(this.browseInputBtn_Click); + // + // pictureBox2 + // + this.pictureBox2.BackgroundImage = global::Flowframes.Properties.Resources.questmark_72px_bordeer; + this.pictureBox2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.pictureBox2.Location = new System.Drawing.Point(86, 158); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(29, 21); + this.pictureBox2.TabIndex = 29; + this.pictureBox2.TabStop = false; + // + // videoUtilsTab + // + this.videoUtilsTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.videoUtilsTab.Controls.Add(this.panel4); + this.videoUtilsTab.Controls.Add(this.panel2); + this.videoUtilsTab.Controls.Add(this.panel3); + this.videoUtilsTab.Controls.Add(this.label10); + this.videoUtilsTab.Controls.Add(this.utilsExtractAudioCbox); + this.videoUtilsTab.Controls.Add(this.utilsDedupTestBtn); + this.videoUtilsTab.Controls.Add(this.label16); + this.videoUtilsTab.Controls.Add(this.utilsDedupBtn); + this.videoUtilsTab.Controls.Add(this.debugExtractFramesBtn); + this.videoUtilsTab.Controls.Add(this.label26); + this.videoUtilsTab.Controls.Add(this.label17); + this.videoUtilsTab.Controls.Add(this.utilsLoopVidBtn); + this.videoUtilsTab.Controls.Add(this.label24); + this.videoUtilsTab.Controls.Add(this.label18); + this.videoUtilsTab.Controls.Add(this.utilsConvCrf); + this.videoUtilsTab.Controls.Add(this.utilsLoopTimesCombox); + this.videoUtilsTab.Controls.Add(this.utilsConvertMp4Btn); + this.videoUtilsTab.Controls.Add(this.label19); + this.videoUtilsTab.Controls.Add(this.label23); + this.videoUtilsTab.Controls.Add(this.label20); + this.videoUtilsTab.Controls.Add(this.utilsChangeSpeedBtn); + this.videoUtilsTab.Controls.Add(this.utilsSpeedCombox); + this.videoUtilsTab.Location = new System.Drawing.Point(4, 27); + this.videoUtilsTab.Name = "videoUtilsTab"; + this.videoUtilsTab.Padding = new System.Windows.Forms.Padding(3); + this.videoUtilsTab.Size = new System.Drawing.Size(901, 258); + this.videoUtilsTab.TabIndex = 1; + this.videoUtilsTab.Text = "Video Utilities"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.ForeColor = System.Drawing.Color.White; + this.label10.Location = new System.Drawing.Point(441, 11); + this.label10.Margin = new System.Windows.Forms.Padding(8, 0, 3, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(107, 15); + this.label10.TabIndex = 35; + this.label10.Text = "Also Extract Audio:"; + // + // utilsExtractAudioCbox + // + this.utilsExtractAudioCbox.AutoSize = true; + this.utilsExtractAudioCbox.Checked = true; + this.utilsExtractAudioCbox.CheckState = System.Windows.Forms.CheckState.Checked; + this.utilsExtractAudioCbox.Location = new System.Drawing.Point(575, 11); + this.utilsExtractAudioCbox.Name = "utilsExtractAudioCbox"; + this.utilsExtractAudioCbox.Size = new System.Drawing.Size(15, 14); + this.utilsExtractAudioCbox.TabIndex = 34; + this.utilsExtractAudioCbox.UseVisualStyleBackColor = true; + // + // previewTab + // + this.previewTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.previewTab.Controls.Add(this.previewPicturebox); + this.previewTab.Location = new System.Drawing.Point(4, 27); + this.previewTab.Margin = new System.Windows.Forms.Padding(0); + this.previewTab.Name = "previewTab"; + this.previewTab.Size = new System.Drawing.Size(901, 258); + this.previewTab.TabIndex = 3; + this.previewTab.Text = "Preview"; + // + // previewPicturebox + // + this.previewPicturebox.Dock = System.Windows.Forms.DockStyle.Fill; + this.previewPicturebox.Image = global::Flowframes.Properties.Resources.baseline_image_white_48dp_4x_25pcAlpha; + this.previewPicturebox.Location = new System.Drawing.Point(0, 0); + this.previewPicturebox.Margin = new System.Windows.Forms.Padding(0); + this.previewPicturebox.Name = "previewPicturebox"; + this.previewPicturebox.Size = new System.Drawing.Size(901, 258); + this.previewPicturebox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.previewPicturebox.TabIndex = 0; + this.previewPicturebox.TabStop = false; + this.previewPicturebox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.previewPicturebox_MouseClick); + // + // abtTab + // + this.abtTab.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.abtTab.Controls.Add(this.label14); + this.abtTab.Location = new System.Drawing.Point(4, 27); + this.abtTab.Name = "abtTab"; + this.abtTab.Padding = new System.Windows.Forms.Padding(3); + this.abtTab.Size = new System.Drawing.Size(901, 258); + this.abtTab.TabIndex = 2; + this.abtTab.Text = "About"; + // + // htButton1 + // + this.htButton1.BackColor = System.Drawing.Color.Transparent; + this.htButton1.ButtonImage = global::Flowframes.Properties.Resources.separatorTest1; + this.htButton1.DrawImage = true; + this.htButton1.Enabled = false; + this.htButton1.FlatAppearance.BorderSize = 0; + this.htButton1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.htButton1.ForeColor = System.Drawing.Color.White; + this.htButton1.ImageIndex = 0; + this.htButton1.ImageSizeMode = HTAlt.WinForms.HTButton.ButtonImageSizeMode.Zoom; + this.htButton1.Location = new System.Drawing.Point(698, 12); + this.htButton1.Name = "htButton1"; + this.htButton1.Size = new System.Drawing.Size(40, 40); + this.htButton1.TabIndex = 40; + this.htButton1.UseVisualStyleBackColor = false; + // // Form1 // this.AllowDrop = true; @@ -1231,19 +1212,19 @@ this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.info1)).EndInit(); this.mainTabControl.ResumeLayout(false); this.interpOptsTab.ResumeLayout(false); this.interpOptsTab.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); this.videoUtilsTab.ResumeLayout(false); this.videoUtilsTab.PerformLayout(); this.previewTab.ResumeLayout(false); - this.abtTab.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.info1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.previewPicturebox)).EndInit(); + this.abtTab.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -1264,7 +1245,6 @@ private System.Windows.Forms.Label label5; private System.Windows.Forms.TextBox fpsOutTbox; private System.Windows.Forms.TextBox fpsInTbox; - private System.Windows.Forms.ComboBox tilesizeComboxDain; private System.Windows.Forms.Label label8; private System.Windows.Forms.ComboBox outModeCombox; private System.Windows.Forms.Label label9; @@ -1279,7 +1259,7 @@ private System.Windows.Forms.ComboBox aiCombox; private System.Windows.Forms.Label label13; private System.Windows.Forms.Label tileSizeInfoLabel; - private System.Windows.Forms.ComboBox tilesizeComboxCain; + private System.Windows.Forms.ComboBox tilesize; private System.Windows.Forms.Label label14; private System.Windows.Forms.Button debugExtractFramesBtn; private System.Windows.Forms.Label label16; diff --git a/Code/Form1.cs b/Code/Form1.cs index 6c9121c..032d0fb 100644 --- a/Code/Form1.cs +++ b/Code/Form1.cs @@ -33,8 +33,8 @@ namespace Flowframes // Main Tab UIUtils.InitCombox(interpFactorCombox, 0); UIUtils.InitCombox(outModeCombox, 0); - UIUtils.InitCombox(tilesizeComboxDain, 3); - UIUtils.InitCombox(tilesizeComboxCain, 4); + //ConfigParser.LoadGuiElement(tilesize); + UIUtils.InitCombox(tilesize, 4); // Video Utils UIUtils.InitCombox(utilsLoopTimesCombox, 0); UIUtils.InitCombox(utilsSpeedCombox, 0); @@ -165,12 +165,7 @@ namespace Flowframes Interpolate.interpFactor = interpFactorCombox.GetInt(); string inPath = inputTbox.Text.Trim(); string outPath = outputTbox.Text.Trim(); - Interpolate.OutMode outMode = GetOutMode(); - AI ai = GetAi(); - int tilesize = tilesizeComboxDain.GetInt(); - if (ai.aiName == Networks.cainNcnn.aiName) - tilesize = tilesizeComboxCain.GetInt(); - Interpolate.Start(inPath, outPath, tilesize, outMode, ai); + Interpolate.Start(inPath, outPath, tilesize.GetInt(), GetOutMode(), GetAi()); } Interpolate.OutMode GetOutMode() @@ -249,11 +244,12 @@ namespace Flowframes private void aiCombox_SelectedIndexChanged(object sender, EventArgs e) { - tilesizeComboxCain.Visible = GetAi().aiName == Networks.cainNcnn.aiName; - tilesizeComboxDain.Visible = GetAi().aiName == Networks.dainNcnn.aiName; - tileSizeInfoLabel.Visible = (tilesizeComboxCain.Visible || tilesizeComboxDain.Visible); - tilesizeNotAvailLabel.Visible = !tileSizeInfoLabel.Visible; + tilesize.Visible = GetAi().supportsTiling; + tileSizeInfoLabel.Visible = tilesize.Visible; + tilesizeNotAvailLabel.Visible = !tilesize.Visible; interpFactorCombox_SelectedIndexChanged(null, null); + if(GetAi().supportsTiling) + tilesize.Text = Config.GetInt($"tilesize_{GetAi().aiName}").ToString(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) @@ -366,5 +362,11 @@ namespace Flowframes { new UpdaterForm().ShowDialog(); } + + private void tilesize_SelectedIndexChanged(object sender, EventArgs e) + { + if (!initialized || !GetAi().supportsTiling) return; + Config.Set($"tilesize_{GetAi().aiName}", tilesize.GetInt().ToString()); + } } } diff --git a/Code/Forms/SettingsForm.Designer.cs b/Code/Forms/SettingsForm.Designer.cs index 31bb373..d4e0012 100644 --- a/Code/Forms/SettingsForm.Designer.cs +++ b/Code/Forms/SettingsForm.Designer.cs @@ -122,6 +122,10 @@ this.cmdDebugMode = new System.Windows.Forms.ComboBox(); this.titleLabel = new System.Windows.Forms.Label(); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.label43 = new System.Windows.Forms.Label(); + this.ncnnThreads = new System.Windows.Forms.ComboBox(); + this.label44 = new System.Windows.Forms.Label(); + this.panel12 = new System.Windows.Forms.Panel(); this.settingsTabList.SuspendLayout(); this.generalTab.SuspendLayout(); this.tabListPage2.SuspendLayout(); @@ -600,6 +604,10 @@ // aiOptsPage // this.aiOptsPage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.aiOptsPage.Controls.Add(this.panel12); + this.aiOptsPage.Controls.Add(this.label44); + this.aiOptsPage.Controls.Add(this.ncnnThreads); + this.aiOptsPage.Controls.Add(this.label43); this.aiOptsPage.Controls.Add(this.panel2); this.aiOptsPage.Controls.Add(this.panel1); this.aiOptsPage.Controls.Add(this.torchGpus); @@ -1255,6 +1263,53 @@ this.titleLabel.TabIndex = 1; this.titleLabel.Text = "Settings"; // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(10, 190); + 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); + this.label43.TabIndex = 58; + this.label43.Text = "NCNN Processing Threads"; + // + // ncnnThreads + // + this.ncnnThreads.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.ncnnThreads.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.ncnnThreads.ForeColor = System.Drawing.Color.White; + this.ncnnThreads.FormattingEnabled = true; + this.ncnnThreads.Items.AddRange(new object[] { + "1", + "2", + "3", + "4"}); + this.ncnnThreads.Location = new System.Drawing.Point(280, 187); + this.ncnnThreads.Name = "ncnnThreads"; + this.ncnnThreads.Size = new System.Drawing.Size(50, 21); + this.ncnnThreads.TabIndex = 59; + // + // label44 + // + this.label44.AutoSize = true; + this.label44.ForeColor = System.Drawing.Color.Silver; + this.label44.Location = new System.Drawing.Point(370, 191); + 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); + this.label44.TabIndex = 60; + this.label44.Text = "Use 1 for small videos, 2 for >1080p, higher values might cause slowdown!"; + // + // panel12 + // + 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, 187); + this.panel12.Name = "panel12"; + this.panel12.Size = new System.Drawing.Size(21, 21); + this.panel12.TabIndex = 58; + this.toolTip1.SetToolTip(this.panel12, "Allows custom input."); + // // SettingsForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -1384,5 +1439,9 @@ private System.Windows.Forms.ComboBox mpdecimateMode; private System.Windows.Forms.Label label42; private System.Windows.Forms.Panel magickDedupePanel; + private System.Windows.Forms.Label label44; + private System.Windows.Forms.ComboBox ncnnThreads; + private System.Windows.Forms.Label label43; + private System.Windows.Forms.Panel panel12; } } \ No newline at end of file diff --git a/Code/Forms/SettingsForm.cs b/Code/Forms/SettingsForm.cs index 23f70a2..74e5fa1 100644 --- a/Code/Forms/SettingsForm.cs +++ b/Code/Forms/SettingsForm.cs @@ -34,14 +34,16 @@ namespace Flowframes.Forms void SaveSettings () { + // Clamp... h264Crf.Text = h264Crf.GetInt().Clamp(0, 40).ToString(); h265Crf.Text = h265Crf.GetInt().Clamp(0, 40).ToString(); gifskiQ.Text = gifskiQ.GetInt().Clamp(0, 100).ToString(); - + // Remove spaces... torchGpus.Text = torchGpus.Text.Replace(" ", ""); ncnnGpus.Text = ncnnGpus.Text.Replace(" ", ""); - + // Force numbers... ffEncThreads.Text = ffEncThreads.GetInt().ToString(); + ncnnThreads.Text = ncnnThreads.GetInt().ToString(); // General ConfigParser.SaveGuiElement(maxVidHeight); @@ -60,6 +62,7 @@ namespace Flowframes.Forms ConfigParser.SaveComboxIndex(rifeMode); ConfigParser.SaveGuiElement(torchGpus); ConfigParser.SaveGuiElement(ncnnGpus); + ConfigParser.SaveGuiElement(ncnnThreads); // Video Export ConfigParser.SaveGuiElement(minOutVidLength, ConfigParser.StringMode.Int); ConfigParser.SaveComboxIndex(mp4Enc); @@ -97,6 +100,7 @@ namespace Flowframes.Forms ConfigParser.LoadComboxIndex(rifeMode); ConfigParser.LoadGuiElement(torchGpus); ConfigParser.LoadGuiElement(ncnnGpus); + ConfigParser.LoadGuiElement(ncnnThreads); // Video Export ConfigParser.LoadGuiElement(minOutVidLength); ConfigParser.LoadComboxIndex(mp4Enc); diff --git a/Code/IO/Config.cs b/Code/IO/Config.cs index 750f5c7..cd71e2c 100644 --- a/Code/IO/Config.cs +++ b/Code/IO/Config.cs @@ -76,34 +76,36 @@ namespace Flowframes.IO return float.Parse(Get(key)); } - private static string WriteDefaultValIfExists(string key) + private static string WriteDefaultValIfExists(string key) // DEFAULTS TO 0, which means key that use 0 as default are not listed here { - if (key == "dedupMode") return WriteDefault("dedupMode", "2"); - if (key == "dedupThresh") return WriteDefault("dedupThresh", "2"); - if (key == "keepFrames") return WriteDefault("keepFrames", "False"); - if (key == "enableAudio") return WriteDefault("enableAudio", "True"); - if (key == "logProcessOutput") return WriteDefault("logProcessOutput", "False"); - if (key == "cmdDebugMode") return WriteDefault("cmdDebugMode", "0"); - if (key == "enableLoop") return WriteDefault("enableLoop", "False"); - if (key == "ncnnGpus") return WriteDefault("ncnnGpus", "0"); - if (key == "torchGpus") return WriteDefault("torchGpus", "0"); + if (key == "maxVidHeight") return WriteDefault("maxVidHeight", "2160"); if (key == "keepTempFolder") return WriteDefault("keepTempFolder", "False"); if (key == "deleteLogsOnStartup") return WriteDefault("deleteLogsOnStartup", "True"); + if (key == "keepFrames") return WriteDefault("keepFrames", "False"); + if (key == "tempDirCustom") return WriteDefault("tempDirCustom", "C:/"); + // Interpolation + if (key == "dedupMode") return WriteDefault("dedupMode", "2"); + if (key == "dedupThresh") return WriteDefault("dedupThresh", "2"); + if (key == "enableAudio") return WriteDefault("enableAudio", "True"); + if (key == "enableLoop") return WriteDefault("enableLoop", "False"); if (key == "autoDedupFrames") return WriteDefault("autoDedupFrames", "15"); - if (key == "minOutVidLength") return WriteDefault("minOutVidLength", "2"); - if (key == "mp4Enc") return WriteDefault("mp4Enc", "0"); + if (key == "vfrDedupe") return WriteDefault("vfrDedupe", "True"); + if (key == "jpegInterps") return WriteDefault("jpegInterps", "False"); + if (key == "timingMode") return WriteDefault("timingMode", "1"); + // Video Export if (key == "h264Crf") return WriteDefault("h264Crf", "20"); if (key == "h265Crf") return WriteDefault("h265Crf", "22"); if (key == "gifskiQ") return WriteDefault("gifskiQ", "95"); - if (key == "maxFps") return WriteDefault("maxFps", "0"); - if (key == "maxFpsMode") return WriteDefault("maxFpsMode", "0"); - if (key == "jpegInterps") return WriteDefault("jpegInterps", "False"); + if (key == "minOutVidLength") return WriteDefault("minOutVidLength", "2"); + // AI if (key == "rifeMode") return WriteDefault("rifeMode", ((NvApi.GetVramGb() > 5f) ? 1 : 0).ToString()); // Enable by default if GPU has >5gb VRAM - if (key == "maxVidHeight") return WriteDefault("maxVidHeight", "2160"); - if (key == "timingMode") return WriteDefault("timingMode", "1"); - if (key == "tempDirCustom") return WriteDefault("tempDirCustom", "C:/"); + if (key == "ncnnThreads") return WriteDefault("ncnnThreads", "2"); + // Debug / Other / Experimental if (key == "ffprobeCountFrames") return WriteDefault("ffprobeCountFrames", "False"); - if (key == "vfrDedupe") return WriteDefault("vfrDedupe", "True"); + // Tile Sizes + if (key == "tilesize_RIFE_NCNN") return WriteDefault("tilesize_RIFE_NCNN", "2048"); + if (key == "tilesize_DAIN_NCNN") return WriteDefault("tilesize_DAIN_NCNN", "512"); + if (key == "tilesize_CAIN_NCNN") return WriteDefault("tilesize_CAIN_NCNN", "2048"); return WriteDefault(key, "0"); } diff --git a/Code/OS/AiProcess.cs b/Code/OS/AiProcess.cs index 835e895..afecab6 100644 --- a/Code/OS/AiProcess.cs +++ b/Code/OS/AiProcess.cs @@ -45,7 +45,7 @@ namespace Flowframes Logger.Log("cmd.exe " + dain.StartInfo.Arguments, true); if (!OSUtils.ShowHiddenCmd()) { - dain.OutputDataReceived += (sender, outLine) => { LogOutput(outLine.Data, "dain-ncnn-log.txt"); }; + dain.OutputDataReceived += (sender, outLine) => { LogOutput("[O] " + outLine.Data, "dain-ncnn-log.txt"); }; dain.ErrorDataReceived += (sender, outLine) => { LogOutput("[E] " + outLine.Data, "dain-ncnn-log.txt"); }; } dain.Start(); @@ -56,6 +56,9 @@ namespace Flowframes } while (!dain.HasExited) await Task.Delay(1); + + if (Interpolate.canceled) return; + Magick.MagickDedupe.ZeroPadDir(outPath, InterpolateUtils.lastExt, 8); Logger.Log($"Done running DAIN - Interpolation took " + FormatUtils.Time(processTime.Elapsed)); processTime.Stop(); } @@ -69,6 +72,7 @@ namespace Flowframes if(times == 4 || times == 8) // #2 { + if (Interpolate.canceled) return; Logger.Log("Re-Running CAIN for 4x interpolation...", false); string run1ResultsPath = outPath + "-run1"; IOUtils.TryDeleteIfExists(run1ResultsPath); @@ -81,6 +85,7 @@ namespace Flowframes if (times == 8) // #3 { + if (Interpolate.canceled) return; Logger.Log("Re-Running CAIN for 8x interpolation...", false); string run2ResultsPath = outPath + "-run2"; IOUtils.TryDeleteIfExists(run2ResultsPath); @@ -91,6 +96,9 @@ namespace Flowframes Directory.Delete(run2ResultsPath, true); } + if (Interpolate.canceled) return; + Magick.MagickDedupe.ZeroPadDir(outPath, InterpolateUtils.lastExt, 8); + Logger.Log($"Done running CAIN - Interpolation took " + FormatUtils.Time(processTime.Elapsed)); processTime.Stop(); } @@ -105,7 +113,7 @@ namespace Flowframes Logger.Log("cmd.exe " + cain.StartInfo.Arguments, true); if (!OSUtils.ShowHiddenCmd()) { - cain.OutputDataReceived += (sender, outLine) => { LogOutput(outLine.Data, "cain-ncnn-log.txt"); }; + cain.OutputDataReceived += (sender, outLine) => { LogOutput("[O] " + outLine.Data, "cain-ncnn-log.txt"); }; cain.ErrorDataReceived += (sender, outLine) => { LogOutput("[E] " + outLine.Data, "cain-ncnn-log.txt"); }; } cain.Start(); @@ -126,6 +134,7 @@ namespace Flowframes string rifeDir = Path.Combine(Paths.GetPkgPath(), Path.GetFileNameWithoutExtension(Packages.rifeCuda.fileName)); Process rifePy = OSUtils.NewProcess(!OSUtils.ShowHiddenCmd()); + Logger.Log("HIDDEN: " + !OSUtils.ShowHiddenCmd()); Init(rifePy, 3000, "png", true); string args = $" --input {framesPath.Wrap()} --times {(int)Math.Log(interpFactor, 2)}"; rifePy.StartInfo.Arguments = $"{OSUtils.GetHiddenCmdArg()} cd /D {rifeDir.Wrap()} & " + @@ -134,7 +143,7 @@ namespace Flowframes Logger.Log("cmd.exe " + rifePy.StartInfo.Arguments, true); if (!OSUtils.ShowHiddenCmd()) { - rifePy.OutputDataReceived += (sender, outLine) => { LogOutput(outLine.Data, "rife-cuda-log.txt"); }; + rifePy.OutputDataReceived += (sender, outLine) => { LogOutput("[O] " + outLine.Data, "rife-cuda-log.txt"); }; rifePy.ErrorDataReceived += (sender, outLine) => { LogOutput("[E] " + outLine.Data, "rife-cuda-log.txt"); }; } rifePy.Start(); @@ -151,17 +160,17 @@ namespace Flowframes public static async Task RunRifeNcnn (string framesPath, string outPath, int interpFactor, int tilesize) { - string args = $" -v -i {framesPath.Wrap()} -o {outPath.Wrap()} -t {tilesize} -g {Config.Get("ncnnGpus")}"; + string args = $" -v -i {framesPath.Wrap()} -o {outPath.Wrap()} -t {tilesize} -g {Config.Get("ncnnGpus")} -f {InterpolateUtils.lastExt} -j 4:{Config.Get("ncnnThreads")}:4"; string dir = Path.Combine(Paths.GetPkgPath(), Path.GetFileNameWithoutExtension(Packages.rifeNcnn.fileName)); Process rifeNcnn = OSUtils.NewProcess(!OSUtils.ShowHiddenCmd()); Init(rifeNcnn, 750); - rifeNcnn.StartInfo.Arguments = $"{OSUtils.GetHiddenCmdArg()} cd /D {dir.Wrap()} & rife-ncnn-vulkan.exe {args} -f {InterpolateUtils.lastExt}"; + rifeNcnn.StartInfo.Arguments = $"{OSUtils.GetHiddenCmdArg()} cd /D {dir.Wrap()} & rife-ncnn-vulkan.exe {args}"; Logger.Log("Running RIFE...", false); Logger.Log("cmd.exe " + rifeNcnn.StartInfo.Arguments, true); if (!OSUtils.ShowHiddenCmd()) { - rifeNcnn.OutputDataReceived += (sender, outLine) => { LogOutput(outLine.Data, "rife-ncnn-log.txt"); }; + rifeNcnn.OutputDataReceived += (sender, outLine) => { LogOutput("[O] " + outLine.Data, "rife-ncnn-log.txt"); }; rifeNcnn.ErrorDataReceived += (sender, outLine) => { LogOutput("[E] " + outLine.Data, "rife-ncnn-log.txt"); }; } rifeNcnn.Start(); @@ -173,6 +182,7 @@ namespace Flowframes while (!rifeNcnn.HasExited) await Task.Delay(1); + if (Interpolate.canceled) return; Magick.MagickDedupe.ZeroPadDir(outPath, InterpolateUtils.lastExt, 8); Logger.Log($"Done running RIFE - Interpolation took " + FormatUtils.Time(processTime.Elapsed)); processTime.Stop(); @@ -180,11 +190,14 @@ namespace Flowframes static void LogOutput (string line, string logFilename) { - if (line == null) + if (string.IsNullOrWhiteSpace(line)) return; Logger.LogToFile(line, false, logFilename); + if (line.Contains("ff:nocuda-cpu")) + Logger.Log("WARNING: CUDA-capable GPU device is not available, running on CPU instead!"); + if (!hasShownError && line.ToLower().Contains("out of memory")) { hasShownError = true; @@ -197,9 +210,6 @@ namespace Flowframes InterpolateUtils.ShowMessage($"A python module is missing. Check {logFilename} for details.\n\n{line}", "Error"); } - if (!hasShownError && line.ToLower().Contains("ff:nocuda-cpu")) - Logger.Log($"WARNING: CUDA-capable GPU device is not available, running on CPU instead!"); - if (!hasShownError && line.ToLower().Contains("no longer supports this gpu")) { hasShownError = true;