Воркед
This commit is contained in:
1 parent
ac32c55ab9
commit
ee94d8e529
1138 files changed
+55771
-77901
No files matched your search
@@ -0,0 +1,71 @@
|
||||
from enum import Enum, auto
|
||||
from typing import List, Dict
|
||||
|
||||
class NegativePromptCategory(Enum):
|
||||
"""Категории негативных промптов"""
|
||||
QUALITY = auto()
|
||||
ARTIFACTS = auto()
|
||||
COMPOSITION = auto()
|
||||
ANATOMY = auto()
|
||||
STYLE = auto()
|
||||
|
||||
class NegativePromptData:
|
||||
"""Класс для хранения данных о негативном промпте"""
|
||||
def __init__(self, text: str, description: str = "", weight: float = 1.0):
|
||||
self.text = text
|
||||
self.description = description
|
||||
self.weight = weight
|
||||
|
||||
class NegativePromptCategories:
|
||||
"""Класс для работы с категориями негативных промптов"""
|
||||
|
||||
@staticmethod
|
||||
def get_prompts() -> Dict[NegativePromptCategory, List[NegativePromptData]]:
|
||||
"""Возвращает словарь с негативными промптами по категориям"""
|
||||
return {
|
||||
NegativePromptCategory.QUALITY: [
|
||||
NegativePromptData("low quality", "Низкое качество"),
|
||||
NegativePromptData("blurry", "Размытое изображение"),
|
||||
NegativePromptData("pixelated", "Пикселизация"),
|
||||
NegativePromptData("jpeg artifacts", "JPEG артефакты"),
|
||||
NegativePromptData("compression artifacts", "Артефакты сжатия"),
|
||||
],
|
||||
NegativePromptCategory.ARTIFACTS: [
|
||||
NegativePromptData("watermark", "Водяные знаки"),
|
||||
NegativePromptData("signature", "Подписи"),
|
||||
NegativePromptData("text", "Текст на изображении"),
|
||||
NegativePromptData("frame", "Рамки"),
|
||||
NegativePromptData("duplicate", "Дубликаты элементов"),
|
||||
],
|
||||
NegativePromptCategory.COMPOSITION: [
|
||||
NegativePromptData("bad composition", "Плохая композиция"),
|
||||
NegativePromptData("unbalanced", "Несбалансированная композиция"),
|
||||
NegativePromptData("cropped", "Обрезанное изображение"),
|
||||
NegativePromptData("out of frame", "Выход за пределы кадра"),
|
||||
],
|
||||
NegativePromptCategory.ANATOMY: [
|
||||
NegativePromptData("bad anatomy", "Неправильная анатомия"),
|
||||
NegativePromptData("extra limbs", "Лишние конечности"),
|
||||
NegativePromptData("missing limbs", "Отсутствующие конечности"),
|
||||
NegativePromptData("deformed", "Деформации"),
|
||||
NegativePromptData("mutated", "Мутации"),
|
||||
],
|
||||
NegativePromptCategory.STYLE: [
|
||||
NegativePromptData("3d render", "3D рендер"),
|
||||
NegativePromptData("cartoon", "Мультяшный стиль"),
|
||||
NegativePromptData("painting", "Живопись"),
|
||||
NegativePromptData("sketch", "Набросок"),
|
||||
NegativePromptData("anime", "Аниме"),
|
||||
],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def get_category_name(category: NegativePromptCategory) -> str:
|
||||
"""Возвращает название категории на русском"""
|
||||
return {
|
||||
NegativePromptCategory.QUALITY: "Качество",
|
||||
NegativePromptCategory.ARTIFACTS: "Артефакты",
|
||||
NegativePromptCategory.COMPOSITION: "Композиция",
|
||||
NegativePromptCategory.ANATOMY: "Анатомия",
|
||||
NegativePromptCategory.STYLE: "Стиль",
|
||||
}[category]
|
||||
@@ -0,0 +1,86 @@
|
||||
from enum import Enum, auto
|
||||
from typing import List, Dict
|
||||
|
||||
class PromptCategory(Enum):
|
||||
"""Категории промптов"""
|
||||
STYLE = auto()
|
||||
LIGHTING = auto()
|
||||
COMPOSITION = auto()
|
||||
CAMERA = auto()
|
||||
COLORS = auto()
|
||||
MOOD = auto()
|
||||
QUALITY = auto()
|
||||
|
||||
class PromptData:
|
||||
"""Класс для хранения данных о промпте"""
|
||||
def __init__(self, text: str, description: str = "", weight: float = 1.0):
|
||||
self.text = text
|
||||
self.description = description
|
||||
self.weight = weight
|
||||
|
||||
class PromptCategories:
|
||||
"""Класс для работы с категориями промптов"""
|
||||
|
||||
@staticmethod
|
||||
def get_prompts() -> Dict[PromptCategory, List[PromptData]]:
|
||||
"""Возвращает словарь с промптами по категориям"""
|
||||
return {
|
||||
PromptCategory.STYLE: [
|
||||
PromptData("digital art", "Цифровое искусство"),
|
||||
PromptData("oil painting", "Масляная живопись"),
|
||||
PromptData("watercolor", "Акварель"),
|
||||
PromptData("pencil sketch", "Карандашный набросок"),
|
||||
PromptData("anime style", "Аниме стиль"),
|
||||
PromptData("photorealistic", "Фотореалистичный"),
|
||||
],
|
||||
PromptCategory.LIGHTING: [
|
||||
PromptData("soft lighting", "Мягкое освещение"),
|
||||
PromptData("dramatic lighting", "Драматическое освещение"),
|
||||
PromptData("cinematic lighting", "Кинематографическое освещение"),
|
||||
PromptData("natural light", "Естественное освещение"),
|
||||
PromptData("studio lighting", "Студийное освещение"),
|
||||
],
|
||||
PromptCategory.COMPOSITION: [
|
||||
PromptData("rule of thirds", "Правило третей"),
|
||||
PromptData("symmetrical", "Симметричная композиция"),
|
||||
PromptData("centered composition", "Центральная композиция"),
|
||||
PromptData("dynamic pose", "Динамичная поза"),
|
||||
],
|
||||
PromptCategory.CAMERA: [
|
||||
PromptData("close-up shot", "Крупный план"),
|
||||
PromptData("wide angle", "Широкий угол"),
|
||||
PromptData("bokeh", "Боке"),
|
||||
PromptData("depth of field", "Глубина резкости"),
|
||||
],
|
||||
PromptCategory.COLORS: [
|
||||
PromptData("vibrant colors", "Яркие цвета"),
|
||||
PromptData("pastel colors", "Пастельные цвета"),
|
||||
PromptData("monochrome", "Монохром"),
|
||||
PromptData("high contrast", "Высокий контраст"),
|
||||
],
|
||||
PromptCategory.MOOD: [
|
||||
PromptData("peaceful", "Умиротворенное"),
|
||||
PromptData("mysterious", "Таинственное"),
|
||||
PromptData("energetic", "Энергичное"),
|
||||
PromptData("melancholic", "Меланхоличное"),
|
||||
],
|
||||
PromptCategory.QUALITY: [
|
||||
PromptData("highly detailed", "Высокая детализация"),
|
||||
PromptData("8k uhd", "Высокое разрешение"),
|
||||
PromptData("masterpiece", "Шедевр"),
|
||||
PromptData("best quality", "Лучшее качество"),
|
||||
],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def get_category_name(category: PromptCategory) -> str:
|
||||
"""Возвращает название категории на русском"""
|
||||
return {
|
||||
PromptCategory.STYLE: "Стили",
|
||||
PromptCategory.LIGHTING: "Освещение",
|
||||
PromptCategory.COMPOSITION: "Композиция",
|
||||
PromptCategory.CAMERA: "Камера",
|
||||
PromptCategory.COLORS: "Цвета",
|
||||
PromptCategory.MOOD: "Настроение",
|
||||
PromptCategory.QUALITY: "Качество",
|
||||
}[category]
|
||||
@@ -0,0 +1,86 @@
|
||||
from typing import Dict
|
||||
|
||||
class PromptTranslations:
|
||||
"""Класс для работы с переводами промптов"""
|
||||
|
||||
@staticmethod
|
||||
def get_translations() -> Dict[str, str]:
|
||||
"""Возвращает словарь с переводами промптов"""
|
||||
return {
|
||||
# Стили
|
||||
"digital art": "цифровое искусство",
|
||||
"oil painting": "масляная живопись",
|
||||
"watercolor": "акварель",
|
||||
"pencil sketch": "карандашный набросок",
|
||||
"anime style": "аниме стиль",
|
||||
"photorealistic": "фотореалистичный",
|
||||
|
||||
# Освещение
|
||||
"soft lighting": "мягкое освещение",
|
||||
"dramatic lighting": "драматическое освещение",
|
||||
"cinematic lighting": "кинематографическое освещение",
|
||||
"natural light": "естественное освещение",
|
||||
"studio lighting": "студийное освещение",
|
||||
|
||||
# Композиция
|
||||
"rule of thirds": "правило третей",
|
||||
"symmetrical": "симметричный",
|
||||
"centered composition": "центральная композиция",
|
||||
"dynamic pose": "динамичная поза",
|
||||
|
||||
# Камера
|
||||
"close-up shot": "крупный план",
|
||||
"wide angle": "широкий угол",
|
||||
"bokeh": "боке",
|
||||
"depth of field": "глубина резкости",
|
||||
|
||||
# Цвета
|
||||
"vibrant colors": "яркие цвета",
|
||||
"pastel colors": "пастельные цвета",
|
||||
"monochrome": "монохром",
|
||||
"high contrast": "высокий контраст",
|
||||
|
||||
# Настроение
|
||||
"peaceful": "умиротворенный",
|
||||
"mysterious": "таинственный",
|
||||
"energetic": "энергичный",
|
||||
"melancholic": "меланхоличный",
|
||||
|
||||
# Качество
|
||||
"highly detailed": "высокая детализация",
|
||||
"8k uhd": "8k uhd",
|
||||
"masterpiece": "шедевр",
|
||||
"best quality": "лучшее качество",
|
||||
|
||||
# Негативные промпты
|
||||
"low quality": "низкое качество",
|
||||
"blurry": "размытый",
|
||||
"pixelated": "пикселизированный",
|
||||
"jpeg artifacts": "jpeg артефакты",
|
||||
"compression artifacts": "артефакты сжатия",
|
||||
"watermark": "водяной знак",
|
||||
"signature": "подпись",
|
||||
"text": "текст",
|
||||
"frame": "рамка",
|
||||
"duplicate": "дубликат",
|
||||
"bad composition": "плохая композиция",
|
||||
"unbalanced": "несбалансированный",
|
||||
"cropped": "обрезанный",
|
||||
"out of frame": "за пределами кадра",
|
||||
"bad anatomy": "плохая анатомия",
|
||||
"extra limbs": "лишние конечности",
|
||||
"missing limbs": "отсутствующие конечности",
|
||||
"deformed": "деформированный",
|
||||
"mutated": "мутированный",
|
||||
"3d render": "3d рендер",
|
||||
"cartoon": "мультяшный",
|
||||
"painting": "живопись",
|
||||
"sketch": "набросок",
|
||||
"anime": "аниме",
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def translate(text: str) -> str:
|
||||
"""Переводит промпт на русский язык"""
|
||||
translations = PromptTranslations.get_translations()
|
||||
return translations.get(text.lower(), text)
|
||||
Reference in new issue
Block a user