58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
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())
|