Rain9's picture
add config
d88f57b verified
Raw
History Blame Contribute Delete
2.8 kB
"""
配置和常量定义
"""
import os
import json
from pathlib import Path
# ==================== 目录配置 ====================
BASE_DIR = Path(__file__).parent
OUTPUT_DIR = BASE_DIR / "outputs"
CONFIG_FILE = BASE_DIR / ".config.json"
HISTORY_FILE = BASE_DIR / "history.json"
OUTPUT_DIR.mkdir(exist_ok=True)
# ==================== API 配置 ====================
DEFAULT_BASE_URL = "https://apihub.agnes-ai.com/v1"
_cached = {}
if CONFIG_FILE.exists():
try:
_cached = json.loads(CONFIG_FILE.read_text(encoding="utf-8"))
except Exception:
pass
DEFAULT_API_KEY = os.getenv("AGNES_API_KEY", "") or _cached.get("api_key", "")
DEFAULT_MODEL = _cached.get("model", "agnes-image-2.1-flash")
# ==================== 模型配置 ====================
T2I_MODEL = "agnes-image-2.1-flash"
IMG2IMG_MODEL = "agnes-image-2.1-flash" # 图生图也使用同一个模型
VIDEO_MODEL = "agnes-video-v2.0"
# ==================== 图像尺寸选项 ====================
IMAGE_SIZE_OPTIONS = [
"1024x1024",
"1024x1792",
"1792x1024",
]
# ==================== 视频参数 ====================
VIDEO_RATIO_OPTIONS = [
"16:9",
"9:16",
"1:1",
"4:3",
"3:4",
]
# 比例到标准分辨率映射
RATIO_TO_SIZE = {
"16:9": {"width": 1152, "height": 768},
"9:16": {"width": 768, "height": 1152},
"1:1": {"width": 768, "height": 768},
"4:3": {"width": 1024, "height": 768},
"3:4": {"width": 768, "height": 1024},
}
# 时长到帧数映射 (frame_rate=24, 满足 8n+1)
DURATION_TO_FRAMES = {
3: 81,
5: 121,
8: 201,
10: 241,
15: 361,
18: 441,
}
VIDEO_DURATION_CHOICES = [3, 5, 8, 10, 15, 18]
VIDEO_FRAME_RATE_CHOICES = [12, 24, 30, 60]
# 视频生成模式
VIDEO_MODE_OPTIONS = [
"ti2vid", # 文/图生视频(默认)
"keyframes", # 关键帧动画
]
# 分辨率预设(用户友好名称 -> width/height)
VIDEO_RESOLUTION_PRESETS = {
"480p": {
"16:9": {"width": 854, "height": 480},
"9:16": {"width": 480, "height": 854},
"1:1": {"width": 480, "height": 480},
"4:3": {"width": 640, "height": 480},
"3:4": {"width": 480, "height": 640},
},
"720p": {
"16:9": {"width": 1280, "height": 720},
"9:16": {"width": 720, "height": 1280},
"1:1": {"width": 720, "height": 720},
"4:3": {"width": 960, "height": 720},
"3:4": {"width": 720, "height": 960},
},
"1080p": {
"16:9": {"width": 1920, "height": 1080},
"9:16": {"width": 1080, "height": 1920},
"1:1": {"width": 1080, "height": 1080},
"4:3": {"width": 1440, "height": 1080},
"3:4": {"width": 1080, "height": 1440},
},
}
VIDEO_RESOLUTION_CHOICES = ["480p", "720p", "1080p"]