diff --git a/model_tools.py b/model_tools.py index cf0bf74b4..26cf2aae1 100644 --- a/model_tools.py +++ b/model_tools.py @@ -581,8 +581,21 @@ def handle_image_function_call(function_name: str, function_args: Dict[str, Any] allow_nsfw_images = True seed = None - # Run async function in event loop - return asyncio.run(image_generate_tool( + # Run async function in event loop with proper handling for multiprocessing + try: + # Try to get existing event loop + loop = asyncio.get_event_loop() + if loop.is_closed(): + # If closed, create a new one + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + except RuntimeError: + # No event loop in current thread, create one + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + + # Run the coroutine in the event loop + result = loop.run_until_complete(image_generate_tool( prompt=prompt, image_size=image_size, num_inference_steps=num_inference_steps, @@ -594,6 +607,8 @@ def handle_image_function_call(function_name: str, function_args: Dict[str, Any] allow_nsfw_images=allow_nsfw_images, seed=seed )) + + return result else: return json.dumps({"error": f"Unknown image generation function: {function_name}"}) diff --git a/tools/image_generation_tool.py b/tools/image_generation_tool.py index 09d4e51d6..998db9326 100644 --- a/tools/image_generation_tool.py +++ b/tools/image_generation_tool.py @@ -319,9 +319,6 @@ async def image_generate_tool( if not prompt or not isinstance(prompt, str) or len(prompt.strip()) == 0: raise ValueError("Prompt is required and must be a non-empty string") - if len(prompt) > 1000: - raise ValueError("Prompt must be 1000 characters or less") - # Check API key availability if not os.getenv("FAL_KEY"): raise ValueError("FAL_KEY environment variable not set") diff --git a/toolset_distributions.py b/toolset_distributions.py index 41d093498..526d0afa0 100644 --- a/toolset_distributions.py +++ b/toolset_distributions.py @@ -43,10 +43,11 @@ DISTRIBUTIONS = { "image_gen": { "description": "Heavy focus on image generation with vision and web support", "toolsets": { - "image_gen": 80, # 80% chance of image generation tools - "vision": 60, # 60% chance of vision tools - "web": 40, # 40% chance of web tools - "moa": 20 # 20% chance of reasoning tools + "image_gen": 90, # 80% chance of image generation tools + "vision": 90, # 60% chance of vision tools + "web": 55, # 40% chance of web tools + "terminal": 45, + "moa": 10 # 20% chance of reasoning tools } },