GUI 2.0 design and basic functionalities finished

This commit is contained in:
k4yt3x 2020-05-06 13:24:10 -04:00
parent e3cfe13b5c
commit 3bce37416b
2 changed files with 573 additions and 2 deletions

View File

@ -150,6 +150,7 @@ class Video2XMainWindow(QtWidgets.QMainWindow):
# waifu2x-converter-cpp
self.waifu2x_converter_cpp_path_line_edit = self.findChild(QtWidgets.QLineEdit, 'waifu2xConverterCppPathLineEdit')
self.waifu2x_converter_cpp_path_edit_button = self.findChild(QtWidgets.QLineEdit, 'waifu2xConverterCppPathSelectButton')
self.waifu2x_converter_cpp_png_compression_spin_box = self.findChild(QtWidgets.QSpinBox, 'waifu2xConverterCppPngCompressionSpinBox')
self.waifu2x_converter_cpp_processor_spin_box = self.findChild(QtWidgets.QSpinBox, 'waifu2xConverterCppProcessorSpinBox')
self.waifu2x_converter_cpp_model_combo_box = self.findChild(QtWidgets.QComboBox, 'waifu2xConverterCppModelComboBox')
@ -157,6 +158,43 @@ class Video2XMainWindow(QtWidgets.QMainWindow):
self.waifu2x_converter_cpp_disable_gpu_check_box = self.findChild(QtWidgets.QCheckBox, 'disableGpuCheckBox')
self.waifu2x_converter_cpp_tta_check_box = self.findChild(QtWidgets.QCheckBox, 'ttaCheckBox')
# waifu2x-ncnn-vulkan
self.waifu2x_ncnn_vulkan_path_line_edit = self.findChild(QtWidgets.QLineEdit, 'waifu2xNcnnVulkanPathLineEdit')
self.waifu2x_ncnn_vulkan_path_select_button = self.findChild(QtWidgets.QPushButton, 'waifu2xNcnnVulkanPathSelectButton')
self.waifu2x_ncnn_vulkan_noise_level_spin_box = self.findChild(QtWidgets.QSpinBox, 'waifu2xNcnnVulkanNoiseLevelSpinBox')
self.waifu2x_ncnn_vulkan_tile_size_spin_box = self.findChild(QtWidgets.QSpinBox, 'waifu2xNcnnVulkanTileSizeSpinBox')
self.waifu2x_ncnn_vulkan_model_combo_box = self.findChild(QtWidgets.QComboBox, 'waifu2xNcnnVulkanModelComboBox')
self.waifu2x_ncnn_vulkan_gpu_id_spin_box = self.findChild(QtWidgets.QSpinBox, 'waifu2xNcnnVulkanGpuIdSpinBox')
self.waifu2x_ncnn_vulkan_jobs_line_edit = self.findChild(QtWidgets.QLineEdit, 'waifu2xNcnnVulkanJobsLineEdit')
self.waifu2x_ncnn_vulkan_tta_check_box = self.findChild(QtWidgets.QCheckBox, 'waifu2xNcnnVulkanTtaCheckBox')
# srmd-ncnn-vulkan
self.srmd_ncnn_vulkan_path_line_edit = self.findChild(QtWidgets.QLineEdit, 'srmdNcnnVulkanPathLineEdit')
self.srmd_ncnn_vulkan_path_select_button = self.findChild(QtWidgets.QPushButton, 'srmdNcnnVulkanPathSelectButton')
self.srmd_ncnn_vulkan_noise_level_spin_box = self.findChild(QtWidgets.QSpinBox, 'srmdNcnnVulkanNoiseLevelSpinBox')
self.srmd_ncnn_vulkan_tile_size_spin_box = self.findChild(QtWidgets.QSpinBox, 'srmdNcnnVulkanTileSizeSpinBox')
self.srmd_ncnn_vulkan_model_combo_box = self.findChild(QtWidgets.QComboBox, 'srmdNcnnVulkanModelComboBox')
self.srmd_ncnn_vulkan_gpu_id_spin_box = self.findChild(QtWidgets.QSpinBox, 'srmdNcnnVulkanGpuIdSpinBox')
self.srmd_ncnn_vulkan_jobs_line_edit = self.findChild(QtWidgets.QLineEdit, 'srmdNcnnVulkanJobsLineEdit')
self.srmd_ncnn_vulkan_tta_check_box = self.findChild(QtWidgets.QCheckBox, 'srmdNcnnVulkanTtaCheckBox')
# anime4k
self.anime4kcpp_path_line_edit = self.findChild(QtWidgets.QLineEdit, 'anime4kCppPathLineEdit')
self.anime4kcpp_path_select_button = self.findChild(QtWidgets.QPushButton, 'anime4kCppPathSelectButton')
self.anime4kcpp_passes_spin_box = self.findChild(QtWidgets.QSpinBox, 'anime4kCppPassesSpinBox')
self.anime4kcpp_push_color_count_spin_box = self.findChild(QtWidgets.QSpinBox, 'anime4kCppPushColorCountSpinBox')
self.anime4kcpp_strength_color_spin_box = self.findChild(QtWidgets.QDoubleSpinBox, 'anime4kCppStrengthColorSpinBox')
self.anime4kcpp_strength_gradient_spin_box = self.findChild(QtWidgets.QDoubleSpinBox, 'anime4kCppStrengthGradientSpinBox')
self.anime4kcpp_threads_spin_box = self.findChild(QtWidgets.QSpinBox, 'anime4kCppThreadsSpinBox')
self.anime4kcpp_pre_filters_spin_box = self.findChild(QtWidgets.QSpinBox, 'anime4kCppPreFiltersSpinBox')
self.anime4kcpp_post_filters_spin_box = self.findChild(QtWidgets.QSpinBox, 'anime4kCppPostFiltersSpinBox')
self.anime4kcpp_platform_id_spin_box = self.findChild(QtWidgets.QSpinBox, 'anime4kCppPlatformIdSpinBox')
self.anime4kcpp_device_id_spin_box = self.findChild(QtWidgets.QSpinBox, 'anime4kCppDeviceIdSpinBox')
self.anime4kcpp_fast_mode_check_box = self.findChild(QtWidgets.QCheckBox, 'anime4kCppFastModeCheckBox')
self.anime4kcpp_pre_processing_check_box = self.findChild(QtWidgets.QCheckBox, 'anime4kCppPreProcessingCheckBox')
self.anime4kcpp_post_processing_check_box = self.findChild(QtWidgets.QCheckBox, 'anime4kCppPostProcessingCheckBox')
self.anime4kcpp_gpu_mode_check_box = self.findChild(QtWidgets.QCheckBox, 'anime4kCppGpuModeCheckBox')
# load configurations
self.load_configurations()
@ -236,6 +274,41 @@ class Video2XMainWindow(QtWidgets.QMainWindow):
self.waifu2x_converter_cpp_disable_gpu_check_box.setChecked(settings['disable-gpu'])
self.waifu2x_converter_cpp_tta_check_box.setChecked(bool(settings['tta']))
# waifu2x-ncnn-vulkan
settings = self.config['waifu2x_ncnn_vulkan']
self.waifu2x_ncnn_vulkan_path_line_edit.setText(str(pathlib.Path(settings['path']).absolute()))
self.waifu2x_ncnn_vulkan_noise_level_spin_box.setValue(settings['n'])
self.waifu2x_ncnn_vulkan_tile_size_spin_box.setValue(settings['t'])
self.waifu2x_ncnn_vulkan_gpu_id_spin_box.setValue(settings['g'])
self.waifu2x_ncnn_vulkan_jobs_line_edit.setText(settings['j'])
self.waifu2x_ncnn_vulkan_tta_check_box.setChecked(settings['x'])
# srmd-ncnn-vulkan
settings = self.config['srmd_ncnn_vulkan']
self.srmd_ncnn_vulkan_path_line_edit.setText(str(pathlib.Path(settings['path']).absolute()))
self.srmd_ncnn_vulkan_noise_level_spin_box.setValue(settings['n'])
self.srmd_ncnn_vulkan_tile_size_spin_box.setValue(settings['t'])
self.srmd_ncnn_vulkan_gpu_id_spin_box.setValue(settings['g'])
self.srmd_ncnn_vulkan_jobs_line_edit.setText(settings['j'])
self.srmd_ncnn_vulkan_tta_check_box.setChecked(settings['x'])
# anime4k
settings = self.config['anime4kcpp']
self.anime4kcpp_path_line_edit.setText(str(pathlib.Path(settings['path']).absolute()))
self.anime4kcpp_passes_spin_box.setValue(settings['passes'])
self.anime4kcpp_push_color_count_spin_box.setValue(settings['pushColorCount'])
self.anime4kcpp_strength_color_spin_box.setValue(settings['strengthColor'])
self.anime4kcpp_strength_gradient_spin_box.setValue(settings['strengthGradient'])
self.anime4kcpp_threads_spin_box.setValue(settings['threads'])
self.anime4kcpp_pre_filters_spin_box.setValue(settings['preFilters'])
self.anime4kcpp_post_filters_spin_box.setValue(settings['postFilters'])
self.anime4kcpp_platform_id_spin_box.setValue(settings['platformID'])
self.anime4kcpp_device_id_spin_box.setValue(settings['deviceID'])
self.anime4kcpp_fast_mode_check_box.setChecked(settings['fastMode'])
self.anime4kcpp_pre_processing_check_box.setChecked(settings['preProcessing'])
self.anime4kcpp_post_processing_check_box.setChecked(settings['postProcessing'])
self.anime4kcpp_gpu_mode_check_box.setChecked(settings['GPUMode'])
def resolve_driver_settings(self):
# waifu2x-caffe
@ -260,6 +333,41 @@ class Video2XMainWindow(QtWidgets.QMainWindow):
self.config['waifu2x_converter_cpp']['disable-gpu'] = bool(self.waifu2x_converter_cpp_disable_gpu_check_box.checkState())
self.config['waifu2x_converter_cpp']['tta'] = int(self.waifu2x_converter_cpp_tta_check_box.checkState())
# waifu2x-ncnn-vulkan
self.config['waifu2x_ncnn_vulkan']['path'] = self.waifu2x_ncnn_vulkan_path_line_edit.text()
self.config['waifu2x_ncnn_vulkan']['n'] = self.waifu2x_ncnn_vulkan_noise_level_spin_box.value()
self.config['waifu2x_ncnn_vulkan']['t'] = self.waifu2x_ncnn_vulkan_tile_size_spin_box.value()
self.config['waifu2x_ncnn_vulkan']['m'] = str((pathlib.Path(self.config['waifu2x_ncnn_vulkan']['path']).parent / self.waifu2x_ncnn_vulkan_model_combo_box.currentText()).absolute())
self.config['waifu2x_ncnn_vulkan']['g'] = self.waifu2x_ncnn_vulkan_gpu_id_spin_box.value()
self.config['waifu2x_ncnn_vulkan']['j'] = self.waifu2x_ncnn_vulkan_jobs_line_edit.text()
self.config['waifu2x_ncnn_vulkan']['x'] = self.waifu2x_ncnn_vulkan_tta_check_box.checkState()
# srmd-ncnn-vulkan
self.config['srmd_ncnn_vulkan']['path'] = self.srmd_ncnn_vulkan_path_line_edit.text()
self.config['srmd_ncnn_vulkan']['n'] = self.srmd_ncnn_vulkan_noise_level_spin_box.value()
self.config['srmd_ncnn_vulkan']['t'] = self.srmd_ncnn_vulkan_tile_size_spin_box.value()
self.config['srmd_ncnn_vulkan']['m'] = str((pathlib.Path(self.config['srmd_ncnn_vulkan']['path']).parent / self.srmd_ncnn_vulkan_model_combo_box.currentText()).absolute())
self.config['srmd_ncnn_vulkan']['g'] = self.srmd_ncnn_vulkan_gpu_id_spin_box.value()
self.config['srmd_ncnn_vulkan']['j'] = self.srmd_ncnn_vulkan_jobs_line_edit.text()
self.config['srmd_ncnn_vulkan']['x'] = self.srmd_ncnn_vulkan_tta_check_box.checkState()
# anime4k
self.config['anime4kcpp']['path'] = self.anime4kcpp_path_line_edit.text()
self.config['anime4kcpp']['passes'] = self.anime4kcpp_passes_spin_box.value()
self.config['anime4kcpp']['pushColorCount'] = self.anime4kcpp_push_color_count_spin_box.value()
self.config['anime4kcpp']['strengthColor'] = self.anime4kcpp_strength_color_spin_box.value()
self.config['anime4kcpp']['strengthGradient'] = self.anime4kcpp_strength_gradient_spin_box.value()
self.config['anime4kcpp']['threads'] = self.anime4kcpp_threads_spin_box.value()
self.config['anime4kcpp']['preFilters'] = self.anime4kcpp_pre_filters_spin_box.value()
self.config['anime4kcpp']['postFilters'] = self.anime4kcpp_post_filters_spin_box.value()
self.config['anime4kcpp']['platformID'] = self.anime4kcpp_platform_id_spin_box.value()
self.config['anime4kcpp']['deviceID'] = self.anime4kcpp_device_id_spin_box.value()
self.config['anime4kcpp']['fastMode'] = bool(self.anime4kcpp_fast_mode_check_box.checkState())
self.config['anime4kcpp']['preProcessing'] = bool(self.anime4kcpp_pre_processing_check_box.checkState())
self.config['anime4kcpp']['postProcessing'] = bool(self.anime4kcpp_post_processing_check_box.checkState())
self.config['anime4kcpp']['GPUMode'] = bool(self.anime4kcpp_gpu_mode_check_box.checkState())
def select_input_file(self):
input_file = QtWidgets.QFileDialog.getOpenFileName(self, 'Select Input File', )
if not isinstance(input_file, tuple) or input_file[0] == '':

View File

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>622</width>
<width>617</width>
<height>474</height>
</rect>
</property>
@ -707,16 +707,479 @@
<attribute name="title">
<string>Waifu2X NCNN Vulkan</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<layout class="QHBoxLayout" name="waifu2xNcnnVulkanPathHorizontalLayout">
<item>
<widget class="QLineEdit" name="waifu2xNcnnVulkanPathLineEdit"/>
</item>
<item>
<widget class="QPushButton" name="waifu2xNcnnVulkanPathSelectButton">
<property name="text">
<string>Select Binary Path</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="waifu2xNcnnVulkanNoiseLevelHorizontalLayout">
<item>
<widget class="QLabel" name="waifu2xNcnnVulkanNoiseLevelLabel">
<property name="text">
<string>Noise Level</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="waifu2xNcnnVulkanNoiseLevelSpinBox">
<property name="minimum">
<number>-1</number>
</property>
<property name="maximum">
<number>3</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="waifu2xNcnnVulkanTileSizeHorizontalLayout">
<item>
<widget class="QLabel" name="waifu2xNcnnVulkanTileSizeLabel">
<property name="text">
<string>Tile Size</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="waifu2xNcnnVulkanTileSizeSpinBox">
<property name="minimum">
<number>32</number>
</property>
<property name="maximum">
<number>99999</number>
</property>
<property name="value">
<number>400</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="waifu2xNcnnVulkanModelHorizontalLayout">
<item>
<widget class="QLabel" name="waifu2xNcnnVulkanModelLabel">
<property name="text">
<string>Model</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="waifu2xNcnnVulkanModelComboBox">
<item>
<property name="text">
<string>models-cunet</string>
</property>
</item>
<item>
<property name="text">
<string>models-upconv_7_anime_style_art_rgb</string>
</property>
</item>
<item>
<property name="text">
<string>models-upconv_7_photo</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="waifu2xNcnnVulkanGpuIdHorizontalLayout">
<item>
<widget class="QLabel" name="waifu2xNcnnVulkanGpuIdLabel">
<property name="text">
<string>GPU ID</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="waifu2xNcnnVulkanGpuIdSpinBox"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="waifu2xNcnnVulkanJobsHorizontalLayout">
<item>
<widget class="QLabel" name="waifu2xNcnnVulkanJobsLabel">
<property name="text">
<string>Jobs</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="waifu2xNcnnVulkanJobsLineEdit">
<property name="text">
<string>1:2:2</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="waifu2xNcnnVulkanOptionsHorizontalLayout">
<item>
<widget class="QCheckBox" name="waifu2xNcnnVulkanTtaCheckBox">
<property name="text">
<string>TTA (Test-Time Augmentation)</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="srmdNcnnVulkanTab">
<attribute name="title">
<string>SRMD NCNN Vulkan</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<layout class="QHBoxLayout" name="srmdNcnnVulkanPathHorizontalLayout">
<item>
<widget class="QLineEdit" name="srmdNcnnVulkanPathLineEdit"/>
</item>
<item>
<widget class="QPushButton" name="srmdNcnnVulkanPathSelectButton">
<property name="text">
<string>Select Binary Path</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="srmdNcnnVulkanNoiseLevelHorizontalLayout">
<item>
<widget class="QLabel" name="srmdNcnnVulkanNoiseLevelLabel">
<property name="text">
<string>Noise Level</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="srmdNcnnVulkanNoiseLevelSpinBox">
<property name="minimum">
<number>-1</number>
</property>
<property name="maximum">
<number>10</number>
</property>
<property name="value">
<number>3</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="srmdNcnnVulkanTileSizeHorizontalLayout">
<item>
<widget class="QLabel" name="srmdNcnnVulkanTileSizeLabel">
<property name="text">
<string>Tile Size</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="srmdNcnnVulkanTileSizeSpinBox">
<property name="minimum">
<number>32</number>
</property>
<property name="maximum">
<number>99999</number>
</property>
<property name="value">
<number>400</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="srmdNcnnVulkanModelHorizontalLayout">
<item>
<widget class="QLabel" name="srmdNcnnVulkanModelLabel">
<property name="text">
<string>Model</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="srmdNcnnVulkanModelComboBox">
<item>
<property name="text">
<string>models-srmd</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="srmdNcnnVulkanGpuIdHorizontalLayout">
<item>
<widget class="QLabel" name="srmdNcnnVulkanGpuIdLabel">
<property name="text">
<string>GPU ID</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="srmdNcnnVulkanGpuIdSpinBox"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="srmdNcnnVulkanJobsHorizontalLayout">
<item>
<widget class="QLabel" name="srmdNcnnVulkanJobsLabel">
<property name="text">
<string>Jobs</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="srmdNcnnVulkanJobsLineEdit">
<property name="text">
<string>1:2:2</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="srmdNcnnVulkanOptionsHorizontalLayout">
<item>
<widget class="QCheckBox" name="srmdNcnnVulkanTtaCheckBox">
<property name="text">
<string>TTA (Test-Time Augmentation)</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="anime4kCppTab">
<attribute name="title">
<string>Anime4K CPP</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="3" column="0">
<layout class="QHBoxLayout" name="anime4kCppStrengthColorHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppStrengthColorLabel">
<property name="text">
<string>Strength Color</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="anime4kCppStrengthColorSpinBox">
<property name="value">
<double>0.300000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0" colspan="2">
<layout class="QHBoxLayout" name="anime4kCppPathHorizontalLayout">
<item>
<widget class="QLineEdit" name="anime4kCppPathLineEdit"/>
</item>
<item>
<widget class="QPushButton" name="anime4kCppPathSelectButton">
<property name="text">
<string>Select Binary Path</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="7" column="0">
<layout class="QHBoxLayout" name="anime4kCppThreadsHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppThreadsLabel">
<property name="text">
<string>Threads</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="anime4kCppThreadsSpinBox">
<property name="maximum">
<number>999</number>
</property>
<property name="value">
<number>16</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="4" column="0">
<layout class="QHBoxLayout" name="anime4kCppStrengthGradientHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppStrengthGradientLabel">
<property name="text">
<string>Strength Gradient</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="anime4kCppStrengthGradientSpinBox">
<property name="value">
<double>1.000000000000000</double>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="anime4kCppPassesHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppPassesLabel">
<property name="text">
<string>Passes</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="anime4kCppPassesSpinBox">
<property name="value">
<number>2</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="anime4kCppPushColorCountHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppPushColorLabel">
<property name="text">
<string>Push Color Count</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="anime4kCppPushColorCountSpinBox">
<property name="value">
<number>2</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="9" column="0" colspan="2">
<widget class="QGroupBox" name="anime4kCppSwitchesGroupBox">
<property name="title">
<string>Switches</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<widget class="QCheckBox" name="anime4kCppFastModeCheckBox">
<property name="text">
<string>Fast Mode</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="anime4kCppPreProcessingCheckBox">
<property name="text">
<string>Pre-Processing</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="anime4kCppPostProcessingCheckBox">
<property name="text">
<string>Post-Processing</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="anime4kCppGpuModeCheckBox">
<property name="text">
<string>GPU Mode</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="anime4kCppPreFiltersHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppPreFiltersLabel">
<property name="text">
<string>Pre-Filters</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="anime4kCppPreFiltersSpinBox"/>
</item>
</layout>
</item>
<item row="2" column="1">
<layout class="QHBoxLayout" name="anime4kCppPostFiltersHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppPostFiltersLabel">
<property name="text">
<string>Post-Filters</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="anime4kCppPostFiltersSpinBox"/>
</item>
</layout>
</item>
<item row="3" column="1">
<layout class="QHBoxLayout" name="anime4kCppPlatformIdHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppPlatformIdLabel">
<property name="text">
<string>Platform ID</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="anime4kCppPlatformIdSpinBox"/>
</item>
</layout>
</item>
<item row="4" column="1">
<layout class="QHBoxLayout" name="anime4kCppDeviceIdHorizontalLayout">
<item>
<widget class="QLabel" name="anime4kCppDeviceIdLabel">
<property name="text">
<string>Device ID</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="anime4kCppDeviceIdSpinBox"/>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
@ -762,7 +1225,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>622</width>
<width>617</width>
<height>21</height>
</rect>
</property>