import asyncio import json import os import sys # Add project root to path sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from Util.BananaClient import BananaClient import logging # Configure logging to show info level logging.basicConfig(level=logging.INFO) # 强制刷新 stdout def print_flush(*args, **kwargs): print(*args, **kwargs) sys.stdout.flush() async def main(): print_flush("=== Testing LingYa Image Gen via Util.BananaClient ===") # 使用 LingYa 提供商初始化客户端 # 配置信息会自动从 Config/ExternalCfg.py 读取 client = BananaClient(provider="LingYa") prompt = "A futuristic city with flying bananas" try: # 使用项目配置中的默认模型 (nano-banana) print_flush(f"\nGenerating image with prompt: '{prompt}'...") print_flush(f"Model: {client.model}") # 调用集成后的 generate_image 方法 # Util.BananaClient 统一了接口调用 result = await client.generate_image( prompt, n=1, size="1024x1024" ) print_flush("\n[Generation Result]:") print_flush(json.dumps(result, indent=2, ensure_ascii=False)) # 获取并打印 URL urls = await client.get_image_urls(result) if urls: for url in urls: print_flush(f"\nImage URL: {url}") else: print_flush("\nNo image URLs found in response.") except Exception as e: print_flush(f"Test failed: {e}") if __name__ == "__main__": asyncio.run(main())