| 
					
				 | 
			
			
				@@ -27,7 +27,7 @@ DRAW_TEXT_OPTIONS = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "seed_resize_from_w": -1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # Samplers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # "sampler_name": "DPM++ 2M", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "sampler_name": "DPM++ 2M", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # "scheduler": "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # "sampler_index": "Automatic", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -178,6 +178,23 @@ class StableDiffusionTool(BuiltinTool): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return [d['model_name'] for d in response.json()] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def get_sample_methods(self) -> list[str]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            get sample method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            base_url = self.runtime.credentials.get('base_url', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if not base_url: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            api_url = str(URL(base_url) / 'sdapi' / 'v1' / 'samplers') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            response = get(url=api_url, timeout=(2, 10)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if response.status_code != 200: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return [d['name'] for d in response.json()] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def img2img(self, base_url: str, tool_parameters: dict[str, Any]) \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         -> Union[ToolInvokeMessage, list[ToolInvokeMessage]]: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -339,7 +356,27 @@ class StableDiffusionTool(BuiltinTool): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                          label=I18nObject(en_US=i, zh_Hans=i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                      ) for i in models]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             except: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sample_methods = self.get_sample_methods() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if len(sample_methods) != 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                parameters.append( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ToolParameter(name='sampler_name', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     label=I18nObject(en_US='Sampling method', zh_Hans='Sampling method'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     human_description=I18nObject( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        en_US='Sampling method of Stable Diffusion, you can check the official documentation of Stable Diffusion', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        zh_Hans='Stable Diffusion 的Sampling method,您可以查看 Stable Diffusion 的官方文档', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     type=ToolParameter.ToolParameterType.SELECT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     form=ToolParameter.ToolParameterForm.FORM, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     llm_description='Sampling method of Stable Diffusion, you can check the official documentation of Stable Diffusion', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     required=True, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     default=sample_methods[0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     options=[ToolParameterOption( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                         value=i, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                         label=I18nObject(en_US=i, zh_Hans=i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     ) for i in sample_methods]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return parameters 
			 |