Make fattn off the default due to vulkan issues

This commit is contained in:
Carl Philipp Klemm 2026-04-15 11:52:58 +02:00
parent 55be24b36f
commit e3fb4761b0
2 changed files with 263 additions and 260 deletions

View file

@ -1,260 +1,260 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>AdvancedSettingsDialog</class> <class>AdvancedSettingsDialog</class>
<widget class="QDialog" name="AdvancedSettingsDialog"> <widget class="QDialog" name="AdvancedSettingsDialog">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>600</width> <width>600</width>
<height>450</height> <height>450</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Advanced Settings</string> <string>Advanced Settings</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QTabWidget" name="tabWidget"> <widget class="QTabWidget" name="tabWidget">
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="performanceTab"> <widget class="QWidget" name="performanceTab">
<attribute name="title"> <attribute name="title">
<string>Performance</string> <string>Performance</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="performanceLayout"> <layout class="QVBoxLayout" name="performanceLayout">
<item> <item>
<widget class="QCheckBox" name="lowVramCheckBox"> <widget class="QCheckBox" name="lowVramCheckBox">
<property name="text"> <property name="text">
<string>Low VRAM Mode</string> <string>Low VRAM Mode</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="lowVramLabel"> <widget class="QLabel" name="lowVramLabel">
<property name="text"> <property name="text">
<string>Unload models between generation phases to save VRAM. Slower but uses less memory.</string> <string>Unload models between generation phases to save VRAM. Slower but uses less memory.</string>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="flashAttentionCheckBox"> <widget class="QCheckBox" name="flashAttentionCheckBox">
<property name="text"> <property name="text">
<string>Flash Attention</string> <string>Flash Attention</string>
</property> </property>
<property name="checked"> <property name="checked">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="flashAttentionLabel"> <widget class="QLabel" name="flashAttentionLabel">
<property name="text"> <property name="text">
<string>Use flash attention for faster generation. Disable if experiencing issues.</string> <string>Use flash attention for faster generation. Disable if experiencing poor output quality on vulkan.</string>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Orientation::Vertical</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>40</height> <height>40</height>
</size> </size>
</property> </property>
</spacer> </spacer>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="jsonTab"> <widget class="QWidget" name="jsonTab">
<attribute name="title"> <attribute name="title">
<string>JSON Template</string> <string>JSON Template</string>
</attribute> </attribute>
<layout class="QVBoxLayout" name="jsonLayout"> <layout class="QVBoxLayout" name="jsonLayout">
<item> <item>
<widget class="QLabel" name="jsonLabel"> <widget class="QLabel" name="jsonLabel">
<property name="text"> <property name="text">
<string>JSON Template for AceStep generation:</string> <string>JSON Template for AceStep generation:</string>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QTextEdit" name="jsonTemplateEdit"/> <widget class="QTextEdit" name="jsonTemplateEdit"/>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="pathsTab"> <widget class="QWidget" name="pathsTab">
<attribute name="title"> <attribute name="title">
<string>Model Paths</string> <string>Model Paths</string>
</attribute> </attribute>
<layout class="QFormLayout" name="pathsLayout"> <layout class="QFormLayout" name="pathsLayout">
<property name="fieldGrowthPolicy"> <property name="fieldGrowthPolicy">
<enum>QFormLayout::FieldGrowthPolicy::AllNonFixedFieldsGrow</enum> <enum>QFormLayout::FieldGrowthPolicy::AllNonFixedFieldsGrow</enum>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="aceStepLabel"> <widget class="QLabel" name="aceStepLabel">
<property name="text"> <property name="text">
<string>AceStep Path:</string> <string>AceStep Path:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
<layout class="QHBoxLayout" name="aceStepLayout"> <layout class="QHBoxLayout" name="aceStepLayout">
<item> <item>
<widget class="QLineEdit" name="aceStepPathEdit"/> <widget class="QLineEdit" name="aceStepPathEdit"/>
</item> </item>
<item> <item>
<widget class="QPushButton" name="aceStepBrowseButton"> <widget class="QPushButton" name="aceStepBrowseButton">
<property name="text"> <property name="text">
<string>Browse...</string> <string>Browse...</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="qwen3Label"> <widget class="QLabel" name="qwen3Label">
<property name="text"> <property name="text">
<string>Qwen3 Model:</string> <string>Qwen3 Model:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
<layout class="QHBoxLayout" name="qwen3Layout"> <layout class="QHBoxLayout" name="qwen3Layout">
<item> <item>
<widget class="QLineEdit" name="qwen3ModelEdit"/> <widget class="QLineEdit" name="qwen3ModelEdit"/>
</item> </item>
<item> <item>
<widget class="QPushButton" name="qwen3BrowseButton"> <widget class="QPushButton" name="qwen3BrowseButton">
<property name="text"> <property name="text">
<string>Browse...</string> <string>Browse...</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="textEncoderLabel"> <widget class="QLabel" name="textEncoderLabel">
<property name="text"> <property name="text">
<string>Text Encoder Model:</string> <string>Text Encoder Model:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="2" column="1">
<layout class="QHBoxLayout" name="textEncoderLayout"> <layout class="QHBoxLayout" name="textEncoderLayout">
<item> <item>
<widget class="QLineEdit" name="textEncoderEdit"/> <widget class="QLineEdit" name="textEncoderEdit"/>
</item> </item>
<item> <item>
<widget class="QPushButton" name="textEncoderBrowseButton"> <widget class="QPushButton" name="textEncoderBrowseButton">
<property name="text"> <property name="text">
<string>Browse...</string> <string>Browse...</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QLabel" name="ditLabel"> <widget class="QLabel" name="ditLabel">
<property name="text"> <property name="text">
<string>DiT Model:</string> <string>DiT Model:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="3" column="1">
<layout class="QHBoxLayout" name="ditLayout"> <layout class="QHBoxLayout" name="ditLayout">
<item> <item>
<widget class="QLineEdit" name="ditModelEdit"/> <widget class="QLineEdit" name="ditModelEdit"/>
</item> </item>
<item> <item>
<widget class="QPushButton" name="ditBrowseButton"> <widget class="QPushButton" name="ditBrowseButton">
<property name="text"> <property name="text">
<string>Browse...</string> <string>Browse...</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
<item row="4" column="0"> <item row="4" column="0">
<widget class="QLabel" name="vaeLabel"> <widget class="QLabel" name="vaeLabel">
<property name="text"> <property name="text">
<string>VAE Model:</string> <string>VAE Model:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1"> <item row="4" column="1">
<layout class="QHBoxLayout" name="vaeLayout"> <layout class="QHBoxLayout" name="vaeLayout">
<item> <item>
<widget class="QLineEdit" name="vaeModelEdit"/> <widget class="QLineEdit" name="vaeModelEdit"/>
</item> </item>
<item> <item>
<widget class="QPushButton" name="vaeBrowseButton"> <widget class="QPushButton" name="vaeBrowseButton">
<property name="text"> <property name="text">
<string>Browse...</string> <string>Browse...</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QDialogButtonBox" name="buttonBox"> <widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons"> <property name="standardButtons">
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Save</set> <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Save</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<resources/> <resources/>
<connections> <connections>
<connection> <connection>
<sender>buttonBox</sender> <sender>buttonBox</sender>
<signal>accepted()</signal> <signal>accepted()</signal>
<receiver>AdvancedSettingsDialog</receiver> <receiver>AdvancedSettingsDialog</receiver>
<slot>accept()</slot> <slot>accept()</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">
<x>248</x> <x>248</x>
<y>254</y> <y>254</y>
</hint> </hint>
<hint type="destinationlabel"> <hint type="destinationlabel">
<x>157</x> <x>157</x>
<y>254</y> <y>254</y>
</hint> </hint>
</hints> </hints>
</connection> </connection>
<connection> <connection>
<sender>buttonBox</sender> <sender>buttonBox</sender>
<signal>rejected()</signal> <signal>rejected()</signal>
<receiver>AdvancedSettingsDialog</receiver> <receiver>AdvancedSettingsDialog</receiver>
<slot>reject()</slot> <slot>reject()</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">
<x>316</x> <x>316</x>
<y>260</y> <y>260</y>
</hint> </hint>
<hint type="destinationlabel"> <hint type="destinationlabel">
<x>286</x> <x>286</x>
<y>260</y> <y>260</y>
</hint> </hint>
</hints> </hints>
</connection> </connection>
</connections> </connections>
</ui> </ui>

View file

@ -29,6 +29,7 @@ MainWindow::MainWindow(QWidget *parent)
isGeneratingNext(false) isGeneratingNext(false)
{ {
aceStep->moveToThread(&aceThread); aceStep->moveToThread(&aceThread);
aceThread.setObjectName("AceStep Woker Thread");
ui->setupUi(this); ui->setupUi(this);
@ -110,6 +111,8 @@ MainWindow::MainWindow(QWidget *parent)
MainWindow::~MainWindow() MainWindow::~MainWindow()
{ {
aceStep->cancelGeneration(); aceStep->cancelGeneration();
aceThread.quit();
aceThread.wait();
autoSavePlaylist(); autoSavePlaylist();
saveSettings(); saveSettings();
@ -165,7 +168,7 @@ void MainWindow::loadSettings()
aceStep->setLowVramMode(lowVram); aceStep->setLowVramMode(lowVram);
// Load flash attention setting // Load flash attention setting
bool flashAttention = settings.value("flashAttention", true).toBool(); bool flashAttention = settings.value("flashAttention", false).toBool();
aceStep->setFlashAttention(flashAttention); aceStep->setFlashAttention(flashAttention);
} }