mirror of
				https://github.com/KoboldAI/KoboldAI-Client.git
				synced 2025-06-05 21:59:24 +02:00 
			
		
		
		
	Fix for Redo (#94)
* Corrected redo to skip blank steps (blank from "deleting" the chunk with the edit function) * Removed debug code
This commit is contained in:
		
							
								
								
									
										28
									
								
								aiserver.py
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								aiserver.py
									
									
									
									
									
								
							| @@ -2899,12 +2899,30 @@ def actionback(): | ||||
|          | ||||
| def actionredo(): | ||||
|     i = 0 | ||||
|     if vars.actions.get_last_key()+1 in vars.actions_metadata: | ||||
|         genout = [{"generated_text": item['Text']} for item in vars.actions_metadata[vars.actions.get_last_key()+1]['Alternative Text'] if (item["Previous Selection"]==True)] | ||||
|     #First we need to find the next valid key | ||||
|     #We might have deleted text so we don't want to show a redo for that blank chunk | ||||
|      | ||||
|     restore_id = vars.actions.get_last_key()+1 | ||||
|     if restore_id in vars.actions_metadata: | ||||
|         ok_to_use = False | ||||
|         while not ok_to_use: | ||||
|             for item in vars.actions_metadata[restore_id]['Alternative Text']: | ||||
|                 if item['Previous Selection'] and item['Text'] != "": | ||||
|                     ok_to_use = True | ||||
|             if not ok_to_use: | ||||
|                 restore_id+=1 | ||||
|                 if restore_id not in vars.actions_metadata: | ||||
|                     return | ||||
|             else: | ||||
|                 vars.actions.set_next_id(restore_id) | ||||
|                  | ||||
|      | ||||
|     if restore_id in vars.actions_metadata: | ||||
|         genout = [{"generated_text": item['Text']} for item in vars.actions_metadata[restore_id]['Alternative Text'] if (item["Previous Selection"]==True)] | ||||
|         if len(genout) > 0: | ||||
|             genout = genout + [{"generated_text": item['Text']} for item in vars.actions_metadata[vars.actions.get_last_key()+1]['Alternative Text'] if (item["Pinned"]==True) and (item["Previous Selection"]==False)] | ||||
|             genout = genout + [{"generated_text": item['Text']} for item in vars.actions_metadata[restore_id]['Alternative Text'] if (item["Pinned"]==True) and (item["Previous Selection"]==False)] | ||||
|             if len(genout) == 1: | ||||
|                 vars.actions_metadata[vars.actions.get_last_key()+1]['Alternative Text'] = [item for item in vars.actions_metadata[vars.actions.get_last_key()+1]['Alternative Text'] if (item["Previous Selection"]!=True)] | ||||
|                 vars.actions_metadata[restore_id]['Alternative Text'] = [item for item in vars.actions_metadata[restore_id]['Alternative Text'] if (item["Previous Selection"]!=True)] | ||||
|                 genresult(genout[0]['generated_text'], flash=True, ignore_formatting=True) | ||||
|             else: | ||||
|                 # Store sequences in memory until selection is made | ||||
| @@ -2912,7 +2930,7 @@ def actionredo(): | ||||
|                  | ||||
|                  | ||||
|                 # Send sequences to UI for selection | ||||
|                 genout = [[item['Text'], "redo"] for item in vars.actions_metadata[vars.actions.get_last_key()+1]['Alternative Text'] if (item["Previous Selection"]==True)] | ||||
|                 genout = [[item['Text'], "redo"] for item in vars.actions_metadata[restore_id]['Alternative Text'] if (item["Previous Selection"]==True)] | ||||
|                  | ||||
|                 emit('from_server', {'cmd': 'genseqs', 'data': genout}, broadcast=True) | ||||
|     else: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user