ACMX 2.139.0
Dual-Backend Real-Time GPU Video Synthesis
Loading...
Searching...
No Matches
stable-diffusion-settings.hpp
Go to the documentation of this file.
1#ifndef STABLE_DIFFUSION_SETTINGS_HPP
2#define STABLE_DIFFUSION_SETTINGS_HPP
3
4#include <QDialog>
5#include <QList>
6#include <QString>
7#include <QStringList>
8
9class QCheckBox;
10class QComboBox;
11class QDoubleSpinBox;
12class QLineEdit;
13class QListWidget;
14class QPushButton;
15class QSpinBox;
16
18 bool enabled = false;
19 QString model_file;
21 QStringList lora_files;
22 QList<double> lora_multipliers;
23 QString prompt;
25 QString server_executable = "sd-server";
27 int server_port = 1234;
28 int width = 576;
29 int height = 320;
32 int steps = 12;
33 double strength = 0.35;
34 double cfg_scale = 5.0;
35 int seed = 1234;
36 QString sampler = "euler_a";
37 QString scheduler = "discrete";
38 bool upscale = false;
39 bool upscale_only = false;
40};
41
42class StableDiffusionSettingsDialog : public QDialog {
43 Q_OBJECT
44
45 public:
46 explicit StableDiffusionSettingsDialog(QWidget *parent = nullptr);
47 [[nodiscard]] StableDiffusionConfiguration configuration() const;
48
49 signals:
51
52 private slots:
53 void browse_model();
54 void add_lora_models();
55 void remove_lora_models();
56 void select_lora_model();
57 void update_lora_multiplier(double multiplier);
59 void browse_server();
60 void apply_settings();
61 void accept_settings();
62
63 private:
64 [[nodiscard]] bool validate_settings();
65 void load_ui_state();
66 void save_ui_state();
68 void add_lora_item(const QString &filename, double multiplier);
69 void update_lora_item_text(int row);
70
71 QCheckBox *enable_check_box = nullptr;
72 QLineEdit *model_file_edit = nullptr;
73 QPushButton *browse_model_button = nullptr;
74 QLineEdit *prompt_edit = nullptr;
75 QLineEdit *negative_prompt_edit = nullptr;
76 QListWidget *lora_list_widget = nullptr;
77 QPushButton *add_lora_button = nullptr;
78 QPushButton *remove_lora_button = nullptr;
79 QDoubleSpinBox *lora_multiplier_spin_box = nullptr;
80 QLineEdit *server_edit = nullptr;
81 QLineEdit *server_arguments_edit = nullptr;
82 QPushButton *browse_server_button = nullptr;
83 QSpinBox *server_port_spin_box = nullptr;
84 QComboBox *resolution_combo_box = nullptr;
85 QSpinBox *steps_spin_box = nullptr;
86 QDoubleSpinBox *strength_spin_box = nullptr;
87 QDoubleSpinBox *cfg_scale_spin_box = nullptr;
88 QSpinBox *seed_spin_box = nullptr;
89 QComboBox *sampler_combo_box = nullptr;
90 QComboBox *scheduler_combo_box = nullptr;
91 QCheckBox *upscale_check_box = nullptr;
92 QCheckBox *upscale_only_check_box = nullptr;
93 QCheckBox *server_upscale_check_box = nullptr;
94 QLineEdit *upscale_model_edit = nullptr;
95 QPushButton *browse_upscale_model_button = nullptr;
96 QLineEdit *upscale_working_resolution_edit = nullptr;
97};
98
99#endif
StableDiffusionConfiguration configuration() const
StableDiffusionSettingsDialog(QWidget *parent=nullptr)
void add_lora_item(const QString &filename, double multiplier)