| 
									
										
										
										
											2023-01-21 08:36:07 +03:00
										 |  |  | import os | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-11 15:46:20 +03:00
										 |  |  | from modules import ui_extra_networks, sd_hijack, shared | 
					
						
							| 
									
										
										
										
											2023-07-16 09:25:32 +03:00
										 |  |  | from modules.ui_extra_networks import quote_js | 
					
						
							| 
									
										
										
										
											2023-01-21 08:36:07 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ExtraNetworksPageTextualInversion(ui_extra_networks.ExtraNetworksPage): | 
					
						
							|  |  |  |     def __init__(self): | 
					
						
							|  |  |  |         super().__init__('Textual Inversion') | 
					
						
							|  |  |  |         self.allow_negative_prompt = True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def refresh(self): | 
					
						
							|  |  |  |         sd_hijack.model_hijack.embedding_db.load_textual_inversion_embeddings(force_reload=True) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-03 22:46:57 +03:00
										 |  |  |     def create_item(self, name, index=None, enable_filter=True): | 
					
						
							| 
									
										
										
										
											2023-07-16 08:38:23 +03:00
										 |  |  |         embedding = sd_hijack.model_hijack.embedding_db.word_embeddings.get(name) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         path, ext = os.path.splitext(embedding.filename) | 
					
						
							|  |  |  |         return { | 
					
						
							|  |  |  |             "name": name, | 
					
						
							|  |  |  |             "filename": embedding.filename, | 
					
						
							|  |  |  |             "preview": self.find_preview(path), | 
					
						
							|  |  |  |             "description": self.find_description(path), | 
					
						
							|  |  |  |             "search_term": self.search_terms_from_path(embedding.filename), | 
					
						
							| 
									
										
										
										
											2023-07-16 09:25:32 +03:00
										 |  |  |             "prompt": quote_js(embedding.name), | 
					
						
							| 
									
										
										
										
											2023-07-16 08:38:23 +03:00
										 |  |  |             "local_preview": f"{path}.preview.{shared.opts.samples_format}", | 
					
						
							|  |  |  |             "sort_keys": {'default': index, **self.get_sort_keys(embedding.filename)}, | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-21 08:36:07 +03:00
										 |  |  |     def list_items(self): | 
					
						
							| 
									
										
										
										
											2023-07-16 08:38:23 +03:00
										 |  |  |         for index, name in enumerate(sd_hijack.model_hijack.embedding_db.word_embeddings): | 
					
						
							|  |  |  |             yield self.create_item(name, index) | 
					
						
							| 
									
										
										
										
											2023-01-21 08:36:07 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def allowed_directories_for_previews(self): | 
					
						
							|  |  |  |         return list(sd_hijack.model_hijack.embedding_db.embedding_dirs) |