File size: 914 Bytes
414dc55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""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 = ""