case0 / src /case_zero /schemas /visual.py
HusseinEid's picture
Case Zero - initial public release (fully local: Qwen2.5-1.5B via llama.cpp + Supertonic, custom pixel-noir SPA via gradio.Server)
414dc55
raw
history blame
914 Bytes
"""The visual descriptor the model emits per character / scene / prop.
It drives the offline PIL compositor: the model creatively specifies appearance and
the code only renders that specification into pixel art.
"""
from __future__ import annotations
from pydantic import BaseModel, ConfigDict
from .enums import SubjectType
class VisualDescriptor(BaseModel):
model_config = ConfigDict(frozen=True)
subject_type: SubjectType
# Free-form, model-authored tags the compositor maps onto its layer library.
palette: str = "noir"
gender: str = "" # "male" / "female" -> gendered sprite features + TTS voice
age_band: str | None = None
build: str | None = None
hair: str | None = None
attire: str | None = None
mood: str | None = None
accent_color: str | None = None
location_tags: tuple[str, ...] = ()
prop_tags: tuple[str, ...] = ()
prompt_hint: str = ""