Skip to content

Commit

Permalink
Merge pull request #355 from Capsize-Games/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
w4ffl35 authored Jan 9, 2024
2 parents f2d0c5c + 8555cae commit 1a82cac
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 45 deletions.
3 changes: 1 addition & 2 deletions src/airunner/widgets/canvas_plus/canvas_plus_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ def paint(self, painter: QPainter, option, widget=None):
self.pixmap.fill(QColor(0, 0, 0, 1))

if self.settings_manager.active_grid_settings.render_border:
print(self.active_grid_area_rect)
size = 4
painter.setPen(QPen(
self.active_grid_area_color,
Expand Down Expand Up @@ -187,8 +188,6 @@ def change_fill_opacity(self, value):
def mouseReleaseEvent(self, event):
super().mouseReleaseEvent(event)
pos = self.pos()
self.settings_manager.set_value("active_grid_settings.pos_x", pos.x())
self.settings_manager.set_value("active_grid_settings.pos_y", pos.y())


class CanvasPlusWidget(CanvasBaseWidget):
Expand Down
4 changes: 4 additions & 0 deletions src/airunner/widgets/canvas_plus/standard_image_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ def canvas_widget(self):

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.ui.settings_tab_widget.tabBar().hide()
self.ui.advanced_settings.hide()
self.load_upscale_options()
self.set_controlnet_settings_properties()
Expand Down Expand Up @@ -107,6 +108,7 @@ def handle_image_data(self, data):
def load_image_from_path(self, image_path):
image = Image.open(image_path)
self.load_image_from_object(image=image, image_path=image_path)
self.app.ui.image_browser.add_image(image_path)

def load_image_from_object(self, image, image_path=NotImplemented):
self.set_pixmap(image=image, image_path=image_path)
Expand Down Expand Up @@ -401,6 +403,8 @@ def initialize_generator_form(self, override_id=None):
def handle_settings_manager_changed(self, key, val, settings_manager):
if key == "generator_settings_override_id":
self.initialize_generator_form(val)
elif key == "ai_mode":
self.ui.settings_tab_widget.setCurrentIndex(1 if self.settings_manager.ai_mode else 0)

def initialize(self):
self.set_form_values()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@
<enum>Qt::LeftToRight</enum>
</property>
<property name="currentIndex">
<number>0</number>
<number>5</number>
</property>
<widget class="QWidget" name="tab_5">
<attribute name="title">
Expand Down Expand Up @@ -353,16 +353,17 @@
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget_2">
<widget class="QTabWidget" name="settings_tab_widget">
<property name="tabPosition">
<enum>QTabWidget::East</enum>
</property>
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="tab_7">
<attribute name="icon">
<iconset theme="applications-graphics"/>
<iconset theme="applications-graphics">
<normaloff>.</normaloff>.</iconset>
</attribute>
<attribute name="title">
<string>Image</string>
Expand Down Expand Up @@ -762,7 +763,8 @@
</widget>
<widget class="QWidget" name="tab_8">
<attribute name="icon">
<iconset theme="emblem-documents"/>
<iconset theme="emblem-documents">
<normaloff>.</normaloff>.</iconset>
</attribute>
<attribute name="title">
<string>Text</string>
Expand Down Expand Up @@ -831,15 +833,15 @@
</widget>
<customwidgets>
<customwidget>
<class>LLMSettingsWidget</class>
<class>SliderWidget</class>
<extends>QWidget</extends>
<header>airunner/widgets/llm/llm_settings_widget</header>
<header>airunner/widgets/slider/slider_widget</header>
<container>1</container>
</customwidget>
<customwidget>
<class>SliderWidget</class>
<class>LLMSettingsWidget</class>
<extends>QWidget</extends>
<header>airunner/widgets/slider/slider_widget</header>
<header>airunner/widgets/llm/llm_settings_widget</header>
<container>1</container>
</customwidget>
<customwidget>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,9 +150,9 @@ def setupUi(self, standard_image_widget):
self.gridLayout_11 = QtWidgets.QGridLayout(self.tab_6)
self.gridLayout_11.setContentsMargins(0, 0, 0, 0)
self.gridLayout_11.setObjectName("gridLayout_11")
self.tabWidget_2 = QtWidgets.QTabWidget(parent=self.tab_6)
self.tabWidget_2.setTabPosition(QtWidgets.QTabWidget.TabPosition.East)
self.tabWidget_2.setObjectName("tabWidget_2")
self.settings_tab_widget = QtWidgets.QTabWidget(parent=self.tab_6)
self.settings_tab_widget.setTabPosition(QtWidgets.QTabWidget.TabPosition.East)
self.settings_tab_widget.setObjectName("settings_tab_widget")
self.tab_7 = QtWidgets.QWidget()
self.tab_7.setObjectName("tab_7")
self.gridLayout_13 = QtWidgets.QGridLayout(self.tab_7)
Expand Down Expand Up @@ -324,7 +324,7 @@ def setupUi(self, standard_image_widget):
self.scrollArea_2.setWidget(self.scrollAreaWidgetContents_2)
self.gridLayout_13.addWidget(self.scrollArea_2, 0, 0, 1, 1)
icon = QtGui.QIcon.fromTheme("applications-graphics")
self.tabWidget_2.addTab(self.tab_7, icon, "")
self.settings_tab_widget.addTab(self.tab_7, icon, "")
self.tab_8 = QtWidgets.QWidget()
self.tab_8.setObjectName("tab_8")
self.gridLayout_12 = QtWidgets.QGridLayout(self.tab_8)
Expand All @@ -333,8 +333,8 @@ def setupUi(self, standard_image_widget):
self.llm_settings_widget.setObjectName("llm_settings_widget")
self.gridLayout_12.addWidget(self.llm_settings_widget, 0, 0, 1, 1)
icon = QtGui.QIcon.fromTheme("emblem-documents")
self.tabWidget_2.addTab(self.tab_8, icon, "")
self.gridLayout_11.addWidget(self.tabWidget_2, 0, 0, 1, 1)
self.settings_tab_widget.addTab(self.tab_8, icon, "")
self.gridLayout_11.addWidget(self.settings_tab_widget, 0, 0, 1, 1)
icon = QtGui.QIcon.fromTheme("document-properties")
self.tabWidget.addTab(self.tab_6, icon, "")
self.gridLayout_7.addWidget(self.tabWidget, 0, 0, 1, 1)
Expand All @@ -358,8 +358,8 @@ def setupUi(self, standard_image_widget):
self.gridLayout_2.addWidget(self.splitter, 0, 0, 1, 1)

self.retranslateUi(standard_image_widget)
self.tabWidget.setCurrentIndex(0)
self.tabWidget_2.setCurrentIndex(1)
self.tabWidget.setCurrentIndex(5)
self.settings_tab_widget.setCurrentIndex(0)
self.upscale_model.currentTextChanged['QString'].connect(standard_image_widget.upscale_model_changed) # type: ignore
self.face_enhance.clicked['bool'].connect(standard_image_widget.face_enhance_toggled) # type: ignore
self.comboBox.currentIndexChanged['int'].connect(standard_image_widget.upscale_number_changed) # type: ignore
Expand Down Expand Up @@ -412,8 +412,8 @@ def retranslateUi(self, standard_image_widget):
self.label_6.setText(_translate("standard_image_widget", "Version"))
self.label_3.setText(_translate("standard_image_widget", "Model"))
self.label_4.setText(_translate("standard_image_widget", "Scheduler"))
self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_7), _translate("standard_image_widget", "Image"))
self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_8), _translate("standard_image_widget", "Text"))
self.settings_tab_widget.setTabText(self.settings_tab_widget.indexOf(self.tab_7), _translate("standard_image_widget", "Image"))
self.settings_tab_widget.setTabText(self.settings_tab_widget.indexOf(self.tab_8), _translate("standard_image_widget", "Text"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_6), _translate("standard_image_widget", "Settings"))
self.tabWidget.setTabToolTip(self.tabWidget.indexOf(self.tab_6), _translate("standard_image_widget", "Stable Diffusion settings"))
from airunner.widgets.brushes.brushes_container import BrushesContainer
Expand Down
2 changes: 2 additions & 0 deletions src/airunner/widgets/generator_form/generator_form_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ def handle_changed_signal(self, key, value):
self.ui.seed_widget_latents.update_seed()
elif key == "enable_advanced_mode":
self.toggle_advanced_generation()
elif key == "ai_mode":
self.activate_ai_mode()

"""
Slot functions
Expand Down
35 changes: 16 additions & 19 deletions src/airunner/widgets/image/image_panel_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,31 +38,24 @@ def __init__(self, *args, **kwargs):
if self.settings_manager.path_settings.image_path != "":
self.show_files()

self.initialize_watcher()
self.load_files()
self.show_files()
self.display_thread = threading.Thread(target=self.display_thumbnails)

def initialize_watcher(self):
def add_image(self, image_path):
"""
Initializes the file system watcher to monitor changes in the image directory.
Adds an image to the image panel widget.
This method adds the image directory and its subdirectories to the file system watcher,
and connects the directoryChanged and fileChanged signals to their respective handler methods.
Args:
image_path (str): The path of the image to be added.
Returns:
None
"""
self.watcher = QFileSystemWatcher()
for root, dirs, files in os.walk(self.settings_manager.path_settings.image_path):
self.watcher.addPath(root)
self.watcher.directoryChanged.connect(self.handle_directory_changed)
self.watcher.fileChanged.connect(self.handle_files_changed)

def handle_directory_changed(self, event):
#self.show_files()
pass

def handle_files_changed(self, event):
#self.show_files()
pass
image_widget = ImageWidget(self, is_thumbnail=True)
image_widget.set_image(image_path)

self.ui.scrollAreaWidgetContents.layout().addWidget(image_widget)

def clear_files(self):
self.page = 0
Expand Down Expand Up @@ -102,7 +95,11 @@ def load_files(self):
if os.path.isdir(os.path.join(self.settings_manager.path_settings.image_path, file)):
sorted_files[file] = []
for root, dirs, files_in_dir in os.walk(os.path.join(self.settings_manager.path_settings.image_path, file)):
sorted_files[file].extend([os.path.join(root, f) for f in files_in_dir])
files = []
for f in files_in_dir:
if ".png.thumbnail.png" not in f:
files.append(os.path.join(root, f))
sorted_files[file].extend(files)

section = "txt2img"
files = sorted_files[section]
Expand Down
17 changes: 13 additions & 4 deletions src/airunner/widgets/llm/llm_settings_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def generator_settings(self):
@property
def current_generator(self):
return self.settings_manager.get_value("current_llm_generator")

def initialize(self):
self.initialize_form()

Expand Down Expand Up @@ -72,6 +72,9 @@ def initialize_form(self):
self.ui.early_stopping.blockSignals(True)
self.ui.use_gpu_checkbox.blockSignals(True)
self.ui.override_parameters.blockSignals(True)
self.ui.leave_in_vram.blockSignals(True)
self.ui.move_to_cpu.blockSignals(True)
self.ui.unload_model.blockSignals(True)
self.ui.top_p.initialize_properties()
self.ui.max_length.initialize_properties()
self.ui.max_length.initialize_properties()
Expand All @@ -88,6 +91,10 @@ def initialize_form(self):
self.ui.prompt_template.clear()
self.ui.prompt_template.addItems(prompt_templates)

self.ui.leave_in_vram.setChecked(not self.settings_manager.unload_unused_model and not self.settings_manager.move_unused_model_to_cpu)
self.ui.move_to_cpu.setChecked(self.settings_manager.move_unused_model_to_cpu)
self.ui.unload_model.setChecked(self.settings_manager.unload_unused_model)

if self.generator:
self.ui.radio_button_2bit.setChecked(self.generator.generator_settings[0].dtype == "2bit")
self.ui.radio_button_4bit.setChecked(self.generator.generator_settings[0].dtype == "4bit")
Expand Down Expand Up @@ -125,6 +132,9 @@ def initialize_form(self):
self.ui.use_gpu_checkbox.blockSignals(False)
self.ui.override_parameters.blockSignals(False)
self.ui.prompt_template.blockSignals(False)
self.ui.leave_in_vram.blockSignals(False)
self.ui.move_to_cpu.blockSignals(False)
self.ui.unload_model.blockSignals(False)

def model_text_changed(self, val):
print("model_text_changed", val)
Expand Down Expand Up @@ -191,13 +201,12 @@ def use_gpu_toggled(self, val):

def set_dtype_by_gpu(self, use_gpu):
if not use_gpu:
if self.generator.generator_settings[0].dtype in ["2bit","4bit", "8bit"]:
self.ui.radio_button_16bit.setChecked(True)
self.ui.radio_button_2bit.setEnabled(False)
self.ui.radio_button_4bit.setEnabled(False)
self.ui.radio_button_8bit.setEnabled(False)
self.ui.radio_button_32bit.setEnabled(True)

if self.generator.generator_settings[0].dtype in ["4bit", "8bit"]:
self.ui.radio_button_16bit.setChecked(True)
else:
self.ui.radio_button_2bit.setEnabled(True)
self.ui.radio_button_4bit.setEnabled(True)
Expand Down
1 change: 0 additions & 1 deletion src/airunner/windows/main/main_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -1425,4 +1425,3 @@ def action_center_clicked(self):

def action_ai_toggled(self, val):
self.settings_manager.set_value("ai_mode", val)
self.generator_tab_widget.activate_ai_mode()

0 comments on commit 1a82cac

Please sign in to comment.