1
0
Fork 0
taleweave-ai/adventure/models/config.py

106 lines
2.1 KiB
Python
Raw Normal View History

from typing import Dict, List
from .base import IntRange, dataclass
@dataclass
class Size:
width: int
height: int
@dataclass
class DiscordBotConfig:
channels: List[str]
content_intent: bool = False
@dataclass
class BotConfig:
discord: DiscordBotConfig
@dataclass
class RenderConfig:
cfg: int | IntRange
checkpoints: List[str]
path: str
sizes: Dict[str, Size]
steps: int | IntRange
2024-05-18 21:58:11 +00:00
@dataclass
class WebsocketServerConfig:
host: str
port: int
@dataclass
class ServerConfig:
websocket: WebsocketServerConfig
@dataclass
class WorldActorConfig:
conversation_limit: int
event_limit: int
note_limit: int
@dataclass
class WorldSizeConfig:
actor_items: int | IntRange
item_effects: int | IntRange
portals: int | IntRange
room_actors: int | IntRange
room_items: int | IntRange
rooms: int | IntRange
@dataclass
class WorldConfig:
actor: WorldActorConfig
size: WorldSizeConfig
@dataclass
class Config:
bot: BotConfig
render: RenderConfig
2024-05-18 21:58:11 +00:00
server: ServerConfig
world: WorldConfig
DEFAULT_CONFIG = Config(
bot=BotConfig(discord=DiscordBotConfig(channels=["adventure"])),
render=RenderConfig(
cfg=IntRange(min=5, max=8),
checkpoints=[
"diffusion-sdxl-dynavision-0-5-5-7.safetensors",
],
path="/tmp/adventure-images",
sizes={
"landscape": Size(width=1024, height=768),
"portrait": Size(width=768, height=1024),
"square": Size(width=768, height=768),
},
steps=IntRange(min=30, max=30),
),
server=ServerConfig(websocket=WebsocketServerConfig(host="localhost", port=8001)),
world=WorldConfig(
actor=WorldActorConfig(
conversation_limit=2,
event_limit=5,
note_limit=10,
),
size=WorldSizeConfig(
actor_items=IntRange(min=0, max=2),
item_effects=IntRange(min=1, max=1),
portals=IntRange(min=1, max=3),
rooms=IntRange(min=3, max=6),
room_actors=IntRange(min=1, max=3),
room_items=IntRange(min=1, max=3),
),
),
)