NAIA / utils /constants.py
baqu2213's picture
Upload constants.py
1d47c5f verified
"""
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"