Restored image recognition
This commit is contained in:
parent
4647e1ba47
commit
0999a64356
@ -83,6 +83,7 @@ class model_selector_button(Gtk.MenuButton):
|
|||||||
elif len(list(listbox)) == 0:
|
elif len(list(listbox)) == 0:
|
||||||
self.get_child().set_label(_("Select a Model"))
|
self.get_child().set_label(_("Select a Model"))
|
||||||
self.set_tooltip_text(_("Select a Model"))
|
self.set_tooltip_text(_("Select a Model"))
|
||||||
|
window.model_manager.verify_if_image_can_be_used()
|
||||||
|
|
||||||
def add_model(self, model_name:str):
|
def add_model(self, model_name:str):
|
||||||
model_row = Gtk.ListBoxRow(
|
model_row = Gtk.ListBoxRow(
|
||||||
@ -472,6 +473,23 @@ class model_manager_container(Gtk.Box):
|
|||||||
def change_model(self, model_name:str):
|
def change_model(self, model_name:str):
|
||||||
self.model_selector.change_model(model_name)
|
self.model_selector.change_model(model_name)
|
||||||
|
|
||||||
|
def verify_if_image_can_be_used(self):
|
||||||
|
logger.debug("Verifying if image can be used")
|
||||||
|
selected = self.get_selected_model()
|
||||||
|
if selected == None:
|
||||||
|
return False
|
||||||
|
selected = selected.split(":")[0]
|
||||||
|
with open(os.path.join(source_dir, 'available_models.json'), 'r', encoding="utf-8") as f:
|
||||||
|
if selected in [key for key, value in json.load(f).items() if value["image"]]:
|
||||||
|
for name, content in window.attachments.items():
|
||||||
|
if content['type'] == 'image':
|
||||||
|
content['button'].set_css_classes(["flat"])
|
||||||
|
return True
|
||||||
|
for name, content in window.attachments.items():
|
||||||
|
if content['type'] == 'image':
|
||||||
|
content['button'].set_css_classes(["flat", "error"])
|
||||||
|
return False
|
||||||
|
|
||||||
#Important: Call this using a thread, if not the app crashes
|
#Important: Call this using a thread, if not the app crashes
|
||||||
def pull_model(self, url:str, model_name:str, modelfile:str=None): ##TODO, once you make an instance manager remove the url from this
|
def pull_model(self, url:str, model_name:str, modelfile:str=None): ##TODO, once you make an instance manager remove the url from this
|
||||||
if ':' not in model_name:
|
if ':' not in model_name:
|
||||||
|
@ -156,8 +156,8 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
attached_files = {}
|
attached_files = {}
|
||||||
for name, content in self.attachments.items():
|
for name, content in self.attachments.items():
|
||||||
if content["type"] == 'image':
|
if content["type"] == 'image':
|
||||||
if self.verify_if_image_can_be_used():
|
if self.model_manager.verify_if_image_can_be_used():
|
||||||
attached_images.append(name)
|
attached_images.append(os.path.join(self.data_dir, "chats", current_chat.get_name(), message_id, name))
|
||||||
else:
|
else:
|
||||||
attached_files[name] = content['type']
|
attached_files[name] = content['type']
|
||||||
if not os.path.exists(os.path.join(self.data_dir, "chats", current_chat.get_name(), message_id)):
|
if not os.path.exists(os.path.join(self.data_dir, "chats", current_chat.get_name(), message_id)):
|
||||||
@ -322,22 +322,6 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
self.model_scroller.set_visible(True)
|
self.model_scroller.set_visible(True)
|
||||||
self.no_results_page.set_visible(False)
|
self.no_results_page.set_visible(False)
|
||||||
|
|
||||||
def verify_if_image_can_be_used(self):
|
|
||||||
logger.debug("Verifying if image can be used")
|
|
||||||
selected = self.model_manager.get_selected_model()
|
|
||||||
if selected == None:
|
|
||||||
return True
|
|
||||||
selected = selected.split(":")[0]
|
|
||||||
if selected in [key for key, value in self.available_models.items() if value["image"]]:
|
|
||||||
for name, content in self.attachments.items():
|
|
||||||
if content['type'] == 'image':
|
|
||||||
content['button'].set_css_classes(["flat"])
|
|
||||||
return True
|
|
||||||
for name, content in self.attachments.items():
|
|
||||||
if content['type'] == 'image':
|
|
||||||
content['button'].set_css_classes(["flat", "error"])
|
|
||||||
return False
|
|
||||||
|
|
||||||
def convert_model_name(self, name:str, mode:int) -> str: # mode=0 name:tag -> Name (tag) | mode=1 Name (tag) -> name:tag
|
def convert_model_name(self, name:str, mode:int) -> str: # mode=0 name:tag -> Name (tag) | mode=1 Name (tag) -> name:tag
|
||||||
try:
|
try:
|
||||||
if mode == 0:
|
if mode == 0:
|
||||||
@ -817,7 +801,7 @@ Generate a title following these rules:
|
|||||||
try:
|
try:
|
||||||
texture = clipboard.read_texture_finish(result)
|
texture = clipboard.read_texture_finish(result)
|
||||||
if texture:
|
if texture:
|
||||||
if self.verify_if_image_can_be_used():
|
if self.model_manager.verify_if_image_can_be_used():
|
||||||
pixbuf = Gdk.pixbuf_get_from_texture(texture)
|
pixbuf = Gdk.pixbuf_get_from_texture(texture)
|
||||||
if not os.path.exists(os.path.join(self.cache_dir, 'tmp/images/')):
|
if not os.path.exists(os.path.join(self.cache_dir, 'tmp/images/')):
|
||||||
os.makedirs(os.path.join(self.cache_dir, 'tmp/images/'))
|
os.makedirs(os.path.join(self.cache_dir, 'tmp/images/'))
|
||||||
@ -937,11 +921,4 @@ Generate a title following these rules:
|
|||||||
self.model_manager.update_local_list()
|
self.model_manager.update_local_list()
|
||||||
self.model_manager.update_available_list()
|
self.model_manager.update_available_list()
|
||||||
|
|
||||||
"""
|
|
||||||
response = connection_handler.simple_get(f"{connection_handler.URL}/api/tags")
|
|
||||||
self.model_selector.clear_list()
|
|
||||||
|
|
||||||
to update local models
|
|
||||||
"""
|
|
||||||
|
|
||||||
self.load_history()
|
self.load_history()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user