Spaces:
Sleeping
Sleeping
File size: 1,431 Bytes
6db48b4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
"""图片生成器抽象基类"""
from abc import ABC, abstractmethod
from typing import Dict, Any, Optional
class ImageGeneratorBase(ABC):
"""图片生成器抽象基类"""
def __init__(self, config: Dict[str, Any]):
"""
初始化生成器
Args:
config: 配置字典
"""
self.config = config
self.api_key = config.get('api_key')
self.base_url = config.get('base_url')
@abstractmethod
def generate_image(
self,
prompt: str,
**kwargs
) -> bytes:
"""
生成图片
Args:
prompt: 提示词
**kwargs: 其他参数(如分辨率、宽高比等)
Returns:
图片二进制数据
"""
pass
@abstractmethod
def validate_config(self) -> bool:
"""
验证配置是否有效
Returns:
配置是否有效
"""
pass
def get_supported_sizes(self) -> list:
"""
获取支持的图片尺寸
Returns:
支持的尺寸列表
"""
return self.config.get('supported_sizes', ['1024x1024'])
def get_supported_aspect_ratios(self) -> list:
"""
获取支持的宽高比
Returns:
支持的宽高比列表
"""
return self.config.get('supported_aspect_ratios', ['1:1', '3:4', '16:9'])
|