From 5d067608559f90a9c6aa99ce741457f114fb568a Mon Sep 17 00:00:00 2001
From: w4ffl35 <25737761+w4ffl35@users.noreply.github.com>
Date: Tue, 9 Jan 2024 13:17:48 -0700
Subject: [PATCH 1/3] fixes active grid area size scrolling
---
.../widgets/canvas_plus/canvas_plus_widget.py | 59 ++++++++++++++++++-
1 file changed, 57 insertions(+), 2 deletions(-)
diff --git a/src/airunner/widgets/canvas_plus/canvas_plus_widget.py b/src/airunner/widgets/canvas_plus/canvas_plus_widget.py
index 61294b7e5..521d9e9f6 100644
--- a/src/airunner/widgets/canvas_plus/canvas_plus_widget.py
+++ b/src/airunner/widgets/canvas_plus/canvas_plus_widget.py
@@ -8,6 +8,7 @@
from PyQt6.QtCore import Qt, QPoint, QPointF, QRect
from PyQt6.QtGui import QBrush, QColor, QPen, QPixmap, QPainter, QCursor
from PyQt6.QtWidgets import QGraphicsScene, QGraphicsItem, QGraphicsPixmapItem, QGraphicsLineItem
+from PyQt6 import QtWidgets, QtCore
from airunner.aihandler.logger import Logger
from airunner.aihandler.settings_manager import SettingsManager
@@ -28,6 +29,8 @@ def __init__(self, parent, pixmap):
self.pixmap = pixmap
self.setFlag(QGraphicsItem.GraphicsItemFlag.ItemIsMovable, True)
+
+
def snap_to_grid(self):
grid_size = self.settings_manager.grid_settings.size
x = round(self.x() / grid_size) * grid_size
@@ -300,10 +303,13 @@ def current_layer_index(self, value):
def layer_container_widget(self):
return self.app.ui.layer_widget
+ @property
+ def active_grid_settings(self):
+ return self.settings_manager.active_grid_settings
+
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.canvas_settings = session.query(CanvasSettings).first()
- self.active_grid_settings = session.query(ActiveGridSettings).first()
self.ui.central_widget.resizeEvent = self.resizeEvent
self.app.add_image_to_canvas_signal.connect(self.handle_add_image_to_canvas)
self.app.image_data.connect(self.handle_image_data)
@@ -320,6 +326,56 @@ def __init__(self, *args, **kwargs):
self.settings_manager.changed_signal.connect(self.handle_changed_signal)
self.app.loaded.connect(self.handle_loaded)
+ def increase_active_grid_height(self, amount):
+ height = self.settings_manager.working_height + self.settings_manager.grid_settings.size * amount
+ if height > 4096:
+ height = 4096
+ self.settings_manager.set_value("working_height", height)
+ self.do_draw()
+
+ def decrease_active_grid_height(self, amount):
+ height = self.settings_manager.working_height - self.settings_manager.grid_settings.size * amount
+ if height < 512:
+ height = 512
+ self.settings_manager.set_value("working_height", height)
+ self.do_draw()
+
+ def increase_active_grid_width(self, amount):
+ width = self.settings_manager.working_width + self.settings_manager.grid_settings.size * amount
+ if width > 4096:
+ width = 4096
+ self.settings_manager.set_value("working_width", width)
+ self.do_draw()
+
+ def decrease_active_grid_width(self, amount):
+ width = self.settings_manager.working_width - self.settings_manager.grid_settings.size * amount
+ if width < 512:
+ width = 512
+ self.settings_manager.set_value("working_width", width)
+ self.do_draw()
+
+ def wheelEvent(self, event):
+ modifiers = QtWidgets.QApplication.keyboardModifiers()
+ if modifiers == QtCore.Qt.KeyboardModifier.ControlModifier:
+ if event.angleDelta().y() > 0:
+ self.increase_active_grid_height(int(abs(event.angleDelta().y()) / 120))
+ else:
+ self.decrease_active_grid_height(int(abs(event.angleDelta().y()) / 120))
+ elif modifiers == QtCore.Qt.KeyboardModifier.ShiftModifier:
+ if event.angleDelta().y() > 0:
+ self.increase_active_grid_width(int(abs(event.angleDelta().y()) / 120))
+ else:
+ self.decrease_active_grid_width(int(abs(event.angleDelta().y()) / 120))
+ elif modifiers == QtCore.Qt.KeyboardModifier.ControlModifier | QtCore.Qt.KeyboardModifier.ShiftModifier:
+ if event.angleDelta().y() > 0:
+ self.increase_active_grid_height(int(abs(event.angleDelta().y()) / 120))
+ self.increase_active_grid_width(int(abs(event.angleDelta().y()) / 120))
+ else:
+ self.decrease_active_grid_height(int(abs(event.angleDelta().y()) / 120))
+ self.decrease_active_grid_width(int(abs(event.angleDelta().y()) / 120))
+ else:
+ super().wheelEvent(event) # Propagate the event to the base class if no modifier keys are pressed
+
def handle_changed_signal(self, key, value):
if key == "current_tab":
self.do_draw()
@@ -453,7 +509,6 @@ def draw_active_grid_area_container(self):
"""
Draw a rectangle around the active grid area of
"""
- print(self.active_grid_area_rect)
if not self.active_grid_area:
self.active_grid_area = ActiveGridArea(
parent=self,
From a9d4a21dac1d48fef01540d864ee50e9334e566c Mon Sep 17 00:00:00 2001
From: w4ffl35 <25737761+w4ffl35@users.noreply.github.com>
Date: Tue, 9 Jan 2024 13:18:22 -0700
Subject: [PATCH 2/3] Removes tool menu
---
src/airunner/windows/main/main_window.py | 5 ++--
.../windows/main/templates/main_window.ui | 25 ++-----------------
.../windows/main/templates/main_window_ui.py | 23 ++---------------
3 files changed, 6 insertions(+), 47 deletions(-)
diff --git a/src/airunner/windows/main/main_window.py b/src/airunner/windows/main/main_window.py
index a661e3cba..f9837267a 100644
--- a/src/airunner/windows/main/main_window.py
+++ b/src/airunner/windows/main/main_window.py
@@ -428,7 +428,7 @@ def action_show_model_manager(self):
self.activate_model_manager_section()
def action_show_prompt_builder(self):
- self.show_section("Prompt Builder")
+ self.toggle_prompt_builder(True)
def action_show_controlnet(self):
self.show_section("controlnet")
@@ -893,8 +893,7 @@ def set_splitter_sizes(self):
def show_section(self, section):
section_lists = {
"center": [self.ui.center_tab.tabText(i) for i in range(self.ui.center_tab.count())],
- "right": [self.ui.tool_tab_widget.tabText(i) for i in range(self.ui.tool_tab_widget.count())],
- "bottom": [self.ui.bottom_panel_tab_widget.tabText(i) for i in range(self.ui.bottom_panel_tab_widget.count())]
+ "right": [self.ui.tool_tab_widget.tabText(i) for i in range(self.ui.tool_tab_widget.count())]
}
for k, v in section_lists.items():
if section in v:
diff --git a/src/airunner/windows/main/templates/main_window.ui b/src/airunner/windows/main/templates/main_window.ui
index 9df4feef8..b675e7222 100644
--- a/src/airunner/windows/main/templates/main_window.ui
+++ b/src/airunner/windows/main/templates/main_window.ui
@@ -8,7 +8,7 @@
0
0
1201
- 970
+ 1024
@@ -674,7 +674,7 @@
0
0
407
- 841
+ 895
@@ -1278,26 +1278,6 @@
-
diff --git a/src/airunner/windows/main/templates/main_window_ui.py b/src/airunner/windows/main/templates/main_window_ui.py
index a85a04c2e..303aa659c 100644
--- a/src/airunner/windows/main/templates/main_window_ui.py
+++ b/src/airunner/windows/main/templates/main_window_ui.py
@@ -12,7 +12,7 @@
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
- MainWindow.resize(1201, 970)
+ MainWindow.resize(1201, 1024)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.MinimumExpanding, QtWidgets.QSizePolicy.Policy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -253,7 +253,7 @@ def setupUi(self, MainWindow):
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
- self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 407, 841))
+ self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 407, 895))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.gridLayout = QtWidgets.QGridLayout(self.scrollAreaWidgetContents)
self.gridLayout.setObjectName("gridLayout")
@@ -496,8 +496,6 @@ def setupUi(self, MainWindow):
self.menuAbout = QtWidgets.QMenu(parent=self.menubar)
self.menuAbout.setTearOffEnabled(False)
self.menuAbout.setObjectName("menuAbout")
- self.menuModel_merge = QtWidgets.QMenu(parent=self.menubar)
- self.menuModel_merge.setObjectName("menuModel_merge")
self.menuImage = QtWidgets.QMenu(parent=self.menubar)
self.menuImage.setObjectName("menuImage")
self.menuView = QtWidgets.QMenu(parent=self.menubar)
@@ -736,21 +734,6 @@ def setupUi(self, MainWindow):
self.menuAbout.addAction(self.actionBug_report)
self.menuAbout.addAction(self.actionReport_vulnerability)
self.menuAbout.addAction(self.actionDiscord)
- self.menuModel_merge.addAction(self.actionModel_Merger)
- self.menuModel_merge.addSeparator()
- self.menuModel_merge.addAction(self.actionStableDiffusion)
- self.menuModel_merge.addSeparator()
- self.menuModel_merge.addAction(self.actionPrompt_Builder)
- self.menuModel_merge.addAction(self.actionModel_Manager_2)
- self.menuModel_merge.addSeparator()
- self.menuModel_merge.addAction(self.actionEmbeddings)
- self.menuModel_merge.addAction(self.actionLoRA)
- self.menuModel_merge.addAction(self.actionPen)
- self.menuModel_merge.addAction(self.actionActive_Grid)
- self.menuModel_merge.addSeparator()
- self.menuModel_merge.addAction(self.actionStandard_Batches)
- self.menuModel_merge.addSeparator()
- self.menuModel_merge.addAction(self.actionLLM_beta)
self.menuImage.addAction(self.actionImport)
self.menuImage.addAction(self.actionExport)
self.menuImage.addSeparator()
@@ -774,7 +757,6 @@ def setupUi(self, MainWindow):
self.menubar.addAction(self.menuEdit.menuAction())
self.menubar.addAction(self.menuView.menuAction())
self.menubar.addAction(self.menuImage.menuAction())
- self.menubar.addAction(self.menuModel_merge.menuAction())
self.menubar.addAction(self.menuFilters.menuAction())
self.menubar.addAction(self.menuAbout.menuAction())
@@ -864,7 +846,6 @@ def retranslateUi(self, MainWindow):
self.menuEdit.setTitle(_translate("MainWindow", "Edit"))
self.menuFilters.setTitle(_translate("MainWindow", "Filters"))
self.menuAbout.setTitle(_translate("MainWindow", "Help"))
- self.menuModel_merge.setTitle(_translate("MainWindow", "Tools"))
self.menuImage.setTitle(_translate("MainWindow", "Image"))
self.menuView.setTitle(_translate("MainWindow", "View"))
self.menuBrowse_Models_Path.setTitle(_translate("MainWindow", "Browse Models Paths"))
From dd9bb6a825e9b7e0cefe636e196388cbbbd00622 Mon Sep 17 00:00:00 2001
From: w4ffl35 <25737761+w4ffl35@users.noreply.github.com>
Date: Tue, 9 Jan 2024 13:18:31 -0700
Subject: [PATCH 3/3] fixes pipe to cpu
---
src/airunner/aihandler/mixins/memory_efficient_mixin.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/airunner/aihandler/mixins/memory_efficient_mixin.py b/src/airunner/aihandler/mixins/memory_efficient_mixin.py
index f4d95890d..b036bb081 100644
--- a/src/airunner/aihandler/mixins/memory_efficient_mixin.py
+++ b/src/airunner/aihandler/mixins/memory_efficient_mixin.py
@@ -232,15 +232,17 @@ def move_pipe_to_cpu(self):
if not self.pipe:
return
try:
- self.pipe.to("cpu", self.data_type).float32()
+ self.pipe.to("cpu", self.data_type)
except NotImplementedError:
logger.warning("Not implemented error when moving to cpu")
if hasattr(self.pipe, "controlnet"):
try:
- self.pipe.controlnet.to("cpu", self.data_type).float32()
+ self.pipe.controlnet.to("cpu", self.data_type)
except NotImplementedError:
logger.warning("Not implemented error when moving to cpu")
+ except AttributeError:
+ pass
def apply_cpu_offload(self):
if self.cpu_offload_applied == self.enable_model_cpu_offload: