File size: 3,430 Bytes
e660f29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1d47c5f
 
 
 
 
 
 
 
e660f29
 
 
 
1d47c5f
e660f29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
"""

NAIA-WEB Constants and Configuration

"""

# Resolution presets (width x height)
DEFAULT_RESOLUTIONS = [
    "1024 x 1024",  # Square
    "960 x 1088",   # Slight portrait
    "896 x 1152",   # Portrait
    "832 x 1216",   # Tall portrait (default)
    "1088 x 960",   # Slight landscape
    "1152 x 896",   # Landscape
    "1216 x 832",   # Wide landscape
]

# Model choices (display name)
MODEL_CHOICES = ["NAID4.5F", "NAID4.5C"]

# Model ID mapping (display name -> NAI API model ID)
MODEL_ID_MAP = {
    "NAID4.5F": "nai-diffusion-4-5-full",
    "NAID4.5C": "nai-diffusion-4-5-curated",
}

# Sampler choices
SAMPLER_CHOICES = [
    "k_euler",
    "k_euler_ancestral",
    "k_dpmpp_2s_ancestral",
    "k_dpmpp_2m",
    "k_dpmpp_sde",
    "ddim_v3",
]

# Noise Schedule choices (NAIA2.0 order: karras first as default)
NOISE_SCHEDULE_CHOICES = [
    "karras",
    "native",
    "exponential",
    "polyexponential",
]

# Default generation parameters
DEFAULT_STEPS = 28
DEFAULT_SCALE = 5.0
DEFAULT_SAMPLER = "k_euler"
DEFAULT_NOISE_SCHEDULE = "karras"
DEFAULT_RESOLUTION = "832 x 1216"
DEFAULT_MODEL = "NAID4.5F"

# Quality tags (automatically added)
QUALITY_TAGS_POSITIVE = "best quality, amazing quality, very aesthetic, absurdres"

QUALITY_TAGS_NEGATIVE = (
    "lowres, {bad}, error, fewer, extra, missing, worst quality, "
    "jpeg artifacts, bad quality, watermark, unfinished, displeasing, "
    "chromatic aberration, signature, extra digits, artistic error, "
    "username, scan, [abstract]"
)

# Quick Search - Person categories
PERSON_CATEGORIES = [
    '1girl_solo', '1boy_solo', '1girl', '1boy', '1girl_1boy',
    '1girl_multiple_boys', '1boy_multiple_girls',
    '2girls', '2boys', 'multiple_girls', 'multiple_boys',
    'multiple_girls_multiple_boys', 'other',
]

# Person category labels (for display)
PERSON_LABELS = {
    '1girl_solo': '1 Girl Solo',
    '1boy_solo': '1 Boy Solo',
    '1girl': '1 Girl',
    '1boy': '1 Boy',
    '1girl_1boy': '1 Girl + 1 Boy',
    '1girl_multiple_boys': '1 Girl + Boys',
    '1boy_multiple_girls': '1 Boy + Girls',
    '2girls': '2 Girls',
    '2boys': '2 Boys',
    'multiple_girls': 'Multiple Girls',
    'multiple_boys': 'Multiple Boys',
    'multiple_girls_multiple_boys': 'Multiple Mixed',
    'other': 'Other',
}

# Person category auto-tags (tags automatically added when category selected)
PERSON_AUTO_TAGS = {
    '1girl_solo': ['1girl', 'solo'],
    '1boy_solo': ['1boy', 'solo'],
    '1girl': ['1girl'],
    '1boy': ['1boy'],
    '1girl_1boy': ['1girl', '1boy'],
    '1girl_multiple_boys': ['1girl'],
    '1boy_multiple_girls': ['1boy'],
    '2girls': ['2girls'],
    '2boys': ['2boys'],
    'multiple_girls': ['multiple girls'],
    'multiple_boys': ['multiple boys'],
    'multiple_girls_multiple_boys': [],
    'other': [],
}

# Rating options (code -> display name)
RATING_OPTIONS = ['g', 's', 'q', 'e']

RATING_LABELS = {
    'g': 'General',
    's': 'Sensitive',
    'q': 'Questionable',
    'e': 'Explicit',
}

# Rating suffix tags (added to end of prompt when generating random prompts)
RATING_SUFFIX_TAGS = {
    'g': ['rating:general'],
    's': ['rating:sensitive'],
    'q': ['rating:questionable'],
    'e': ['rating:explicit', 'nsfw'],
}

# NAI API configuration
NAI_API_URL = "https://image.novelai.net/ai/generate-image"