From cc78da372b11dd3665e7d7cd46e32381dbab4efb Mon Sep 17 00:00:00 2001 From: Adam Mikulis Date: Thu, 9 May 2024 12:16:21 -0600 Subject: [PATCH 1/3] minor UI changes, plugin now properly adds/removes from bottom bar --- MindGame.csproj | 10 +-- MindGame.csproj.old | 12 --- .../assets/themes/background_panel_theme.tres | 4 + .../controllers/MindManagerController.tscn | 74 ++++++++++--------- .../SingleAgentChatController.tscn | 35 ++++++--- addons/mind_game/plugin.cfg | 2 +- .../mind_game/scripts/MindGameEditorPlugin.cs | 6 +- .../controllers/MindManagerController.cs | 16 ++-- .../controllers/SingleAgentChatController.cs | 11 ++- .../scripts/model_classes/MindAgent.cs | 4 +- .../scripts/model_classes/MindManager.cs | 13 +--- 11 files changed, 97 insertions(+), 90 deletions(-) delete mode 100644 MindGame.csproj.old create mode 100644 addons/mind_game/assets/themes/background_panel_theme.tres diff --git a/MindGame.csproj b/MindGame.csproj index 933325f..fcc85fa 100644 --- a/MindGame.csproj +++ b/MindGame.csproj @@ -1,17 +1,17 @@ - + net8.0 true - true - MindGame - MindGame + true + MindGame + MindGame - + \ No newline at end of file diff --git a/MindGame.csproj.old b/MindGame.csproj.old deleted file mode 100644 index b1a62c9..0000000 --- a/MindGame.csproj.old +++ /dev/null @@ -1,12 +0,0 @@ - - - net8.0 - net8.0 - net8.0 - true - - - - - - \ No newline at end of file diff --git a/addons/mind_game/assets/themes/background_panel_theme.tres b/addons/mind_game/assets/themes/background_panel_theme.tres new file mode 100644 index 0000000..0b84a4c --- /dev/null +++ b/addons/mind_game/assets/themes/background_panel_theme.tres @@ -0,0 +1,4 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://di4hk4lax1dfs"] + +[resource] +bg_color = Color(0.308777, 0.403237, 0.472183, 1) diff --git a/addons/mind_game/controllers/MindManagerController.tscn b/addons/mind_game/controllers/MindManagerController.tscn index 59a32c7..24dcb4b 100644 --- a/addons/mind_game/controllers/MindManagerController.tscn +++ b/addons/mind_game/controllers/MindManagerController.tscn @@ -1,10 +1,16 @@ -[gd_scene load_steps=9 format=3 uid="uid://cfvr575wuu42a"] +[gd_scene load_steps=11 format=3 uid="uid://cfvr575wuu42a"] [ext_resource type="Script" path="res://addons/mind_game/scripts/controllers/MindManagerController.cs" id="1_h6wpt"] [ext_resource type="Theme" uid="uid://brptib3mp8h1o" path="res://addons/mind_game/assets/themes/config_header_theme.tres" id="2_rmdwv"] [ext_resource type="Texture2D" uid="uid://dnp0lvxevsc4m" path="res://addons/mind_game/assets/game_icons/PNG/White/1x/plus.png" id="3_smjaw"] [ext_resource type="Texture2D" uid="uid://5ga0x3yawju4" path="res://addons/mind_game/assets/game_icons/PNG/White/1x/trashcan.png" id="4_gqbp7"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5gu4u"] +bg_color = Color(0.318487, 0.312277, 0.317023, 1) + +[sub_resource type="LabelSettings" id="LabelSettings_osrau"] +font_size = 24 + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pcrja"] bg_color = Color(0.419813, 0.419813, 0.419813, 1) @@ -36,6 +42,7 @@ anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_5gu4u") [node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"] layout_mode = 2 @@ -48,6 +55,7 @@ layout_mode = 2 size_flags_horizontal = 3 theme = ExtResource("2_rmdwv") text = "Model Manager" +label_settings = SubResource("LabelSettings_osrau") horizontal_alignment = 1 [node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] @@ -92,73 +100,67 @@ unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 -[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer"] +[node name="AddDeleteConfigHBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer"] layout_mode = 2 -[node name="AddNewConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/HBoxContainer"] +[node name="AddNewConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/AddDeleteConfigHBoxContainer"] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 3 icon = ExtResource("3_smjaw") icon_alignment = 1 -[node name="DeleteConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/HBoxContainer"] +[node name="DeleteConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/AddDeleteConfigHBoxContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 icon = ExtResource("4_gqbp7") icon_alignment = 1 -[node name="SavedConfigsMarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer"] +[node name="BackLoadUnloadBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer"] layout_mode = 2 -size_flags_vertical = 3 -theme_override_constants/margin_left = 5 -theme_override_constants/margin_top = 5 -theme_override_constants/margin_right = 5 -theme_override_constants/margin_bottom = 5 -[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer"] +[node name="BackButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/BackLoadUnloadBoxContainer"] +unique_name_in_owner = true layout_mode = 2 -size_flags_vertical = 3 +size_flags_horizontal = 3 +text = "Back" +icon_alignment = 1 -[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer/PanelContainer"] +[node name="LoadConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/BackLoadUnloadBoxContainer"] +unique_name_in_owner = true layout_mode = 2 -horizontal_scroll_mode = 0 +size_flags_horizontal = 3 +text = "Load Config" -[node name="SavedConfigsItemList" type="ItemList" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer/PanelContainer/ScrollContainer"] +[node name="UnloadConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/BackLoadUnloadBoxContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 -size_flags_vertical = 3 +text = "Unload Config" -[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer"] +[node name="SavedConfigsMarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer"] layout_mode = 2 +size_flags_vertical = 3 theme_override_constants/margin_left = 5 theme_override_constants/margin_top = 5 theme_override_constants/margin_right = 5 theme_override_constants/margin_bottom = 5 -[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/MarginContainer"] -layout_mode = 2 - -[node name="BackButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/MarginContainer/HBoxContainer"] -unique_name_in_owner = true +[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer"] layout_mode = 2 -size_flags_horizontal = 3 -text = "Back" -icon_alignment = 1 +size_flags_vertical = 3 -[node name="LoadModelsButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/MarginContainer/HBoxContainer"] -unique_name_in_owner = true +[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer/PanelContainer"] layout_mode = 2 -size_flags_horizontal = 3 -text = "Load Model(s)" +horizontal_scroll_mode = 0 -[node name="UnloadModelsButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/MarginContainer/HBoxContainer"] +[node name="SavedConfigsItemList" type="ItemList" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer/PanelContainer/ScrollContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 -text = "Unload Model(s)" +size_flags_vertical = 3 +item_count = 1 +item_0/text = "phi3" [node name="ModelConfigMarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 @@ -210,7 +212,7 @@ columns = 3 auto_translate_mode = 1 layout_mode = 2 size_flags_vertical = 8 -text = "Chat Context Size:" +text = "Context Size:" [node name="ChatContextSizeHSlider" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer/ModelConfigMarginContainer/ModelConfigVBoxContainer/ChatModelPanelContainer/MarginContainer/ChatModelVBoxContainer/ChatGridContainer"] unique_name_in_owner = true @@ -235,7 +237,7 @@ horizontal_alignment = 1 auto_translate_mode = 1 layout_mode = 2 size_flags_vertical = 8 -text = "Num Layers to Load to GPU:" +text = "Num GPU Layers:" [node name="ChatModelGpuLayerCountHSlider" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer/ModelConfigMarginContainer/ModelConfigVBoxContainer/ChatModelPanelContainer/MarginContainer/ChatModelVBoxContainer/ChatGridContainer"] unique_name_in_owner = true @@ -336,7 +338,7 @@ columns = 3 auto_translate_mode = 1 layout_mode = 2 size_flags_vertical = 8 -text = "Embedder Context Size:" +text = "Context Size:" [node name="EmbedderContextSizeHSlider" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer/ModelConfigMarginContainer/ModelConfigVBoxContainer/EmbedderModelPanelContainer/MarginContainer/EmbeddingModelVBoxContainer/EmbedderGridContainer"] unique_name_in_owner = true @@ -361,7 +363,7 @@ horizontal_alignment = 1 auto_translate_mode = 1 layout_mode = 2 size_flags_vertical = 8 -text = "Num Layers to Load to GPU:" +text = "Num GPU Layers:" [node name="EmbedderGpuLayerCountHSlider" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer/ModelConfigMarginContainer/ModelConfigVBoxContainer/EmbedderModelPanelContainer/MarginContainer/EmbeddingModelVBoxContainer/EmbedderGridContainer"] unique_name_in_owner = true diff --git a/addons/mind_game/controllers/SingleAgentChatController.tscn b/addons/mind_game/controllers/SingleAgentChatController.tscn index 9cf3ffb..71ef176 100644 --- a/addons/mind_game/controllers/SingleAgentChatController.tscn +++ b/addons/mind_game/controllers/SingleAgentChatController.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=4 format=3 uid="uid://bew4jlihie8s0"] +[gd_scene load_steps=5 format=3 uid="uid://bew4jlihie8s0"] [ext_resource type="Script" path="res://addons/mind_game/scripts/controllers/SingleAgentChatController.cs" id="1_48rj6"] [ext_resource type="Script" path="res://addons/mind_game/scripts/model_classes/MindAgent.cs" id="2_4a0p2"] [ext_resource type="PackedScene" uid="uid://cfvr575wuu42a" path="res://addons/mind_game/controllers/MindManagerController.tscn" id="3_7pvjl"] +[ext_resource type="StyleBox" uid="uid://di4hk4lax1dfs" path="res://addons/mind_game/assets/themes/background_panel_theme.tres" id="4_rgt6s"] [node name="SingleAgentChatController" type="Control"] layout_mode = 3 @@ -13,41 +14,51 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_48rj6") -[node name="VBoxContainer" type="VBoxContainer" parent="."] +[node name="MindAgent" type="Node" parent="."] +unique_name_in_owner = true +script = ExtResource("2_4a0p2") + +[node name="PanelContainer" type="PanelContainer" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +theme_override_styles/panel = ExtResource("4_rgt6s") + +[node name="MarginContainer" type="MarginContainer" parent="PanelContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 5 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 5 -[node name="ModelOutputRichTextLabel" type="RichTextLabel" parent="VBoxContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer"] +layout_mode = 2 + +[node name="ModelOutputRichTextLabel" type="RichTextLabel" parent="PanelContainer/MarginContainer/VBoxContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 3 scroll_following = true -[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer"] custom_minimum_size = Vector2(0, 150) layout_mode = 2 -[node name="ModelInputLineEdit" type="LineEdit" parent="VBoxContainer/HBoxContainer"] +[node name="ModelInputLineEdit" type="LineEdit" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 -placeholder_text = "Type your prompt and hit Enter" +placeholder_text = "Load a model to chat!" -[node name="ConfigAndLoadModelsButton" type="Button" parent="VBoxContainer/HBoxContainer"] +[node name="ConfigAndLoadModelsButton" type="Button" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] unique_name_in_owner = true layout_mode = 2 text = "Config and Load Models" -[node name="MindAgent" type="Node" parent="."] -unique_name_in_owner = true -script = ExtResource("2_4a0p2") - [node name="MindManagerController" parent="." instance=ExtResource("3_7pvjl")] unique_name_in_owner = true -visible = false layout_mode = 1 diff --git a/addons/mind_game/plugin.cfg b/addons/mind_game/plugin.cfg index e5cdf40..e7f5998 100644 --- a/addons/mind_game/plugin.cfg +++ b/addons/mind_game/plugin.cfg @@ -3,5 +3,5 @@ name="Mind Game" description="An editor tool to run GPT models locally." author="Adam Mikulis" -version="0.2.0-dev" +version="0.2.0" script="scripts/MindGameEditorPlugin.cs" diff --git a/addons/mind_game/scripts/MindGameEditorPlugin.cs b/addons/mind_game/scripts/MindGameEditorPlugin.cs index 4b95c75..1f9b35a 100644 --- a/addons/mind_game/scripts/MindGameEditorPlugin.cs +++ b/addons/mind_game/scripts/MindGameEditorPlugin.cs @@ -22,7 +22,7 @@ public override void _EnterTree() { PackedScene singleAgentChatControllerScene = (PackedScene)GD.Load("res://addons/mind_game/controllers/SingleAgentChatController.tscn"); singleAgentChatScene = singleAgentChatControllerScene.Instantiate(); - // AddControlToBottomPanel(singleAgentChatScene, "Mind Game"); + AddControlToBottomPanel(singleAgentChatScene, "Mind Game"); AddCustomType("MindAgent", "Node", mindAgentScript, mindAgentIcon); @@ -45,8 +45,8 @@ public override void _Process(double delta) public override void _ExitTree() { - // RemoveControlFromBottomPanel(editorInterface); - // editorInterface.QueueFree(); + RemoveControlFromBottomPanel(singleAgentChatScene); + singleAgentChatScene.QueueFree(); } } #endif \ No newline at end of file diff --git a/addons/mind_game/scripts/controllers/MindManagerController.cs b/addons/mind_game/scripts/controllers/MindManagerController.cs index b17a82e..4d8c797 100644 --- a/addons/mind_game/scripts/controllers/MindManagerController.cs +++ b/addons/mind_game/scripts/controllers/MindManagerController.cs @@ -13,7 +13,7 @@ public partial class MindManagerController : Control private string modelConfigListPath = "res://addons/mind_game/model_configs.tres"; // UI elements - private Button addNewConfigButton, deleteConfigButton, selectChatPathButton, clearChatPathButton, selectEmbedderPathButton, clearEmbedderPathButton, selectClipPathButton, clearClipPathButton, backButton, loadModelsButton, unloadModelsButton; + private Button addNewConfigButton, deleteConfigButton, selectChatPathButton, clearChatPathButton, selectEmbedderPathButton, clearEmbedderPathButton, selectClipPathButton, clearClipPathButton, backButton, loadConfigButton, unloadConfigButton; private Label chatContextSizeLabel, chatGpuLayerCountLabel, embedderContextSizeLabel, embedderGpuLayerCountLabel, chatCurrentModelPathLabel, embedderCurrentModelPathLabel, clipCurrentModelPathLabel; private FileDialog selectChatPathFileDialog, selectClipPathFileDialog, selectEmbedderPathFileDialog; private HSlider chatContextSizeHSlider, chatGpuLayerCountHSlider, embedderContextSizeHSlider, embedderGpuLayerCountHSlider; @@ -91,8 +91,8 @@ private void InitializeNodeRefs() addNewConfigButton = GetNode