Spaces:
Runtime error
Runtime error
Upload folder using huggingface_hub
Browse files- .github/workflows/update_space.yml +28 -0
- .gitignore +161 -0
- .idea/inspectionProfiles/Project_Default.xml +747 -0
- .idea/inspectionProfiles/profiles_settings.xml +6 -0
- .idea/misc.xml +4 -0
- .idea/shelf/Uncommitted_changes_before_Checkout_at_2023_8_28,_21_02_[Changes]/shelved.patch +40 -0
- .idea/shelf/Uncommitted_changes_before_Checkout_at_2023_8_28__21_02__Changes_.xml +4 -0
- .idea/vcs.xml +6 -0
- .idea/workspace.xml +465 -0
- LICENSE +24 -0
- README.md +69 -8
- install.py +4 -0
- model_guide.png +0 -0
- promptsModules/__pycache__/basePromptBuilder.cpython-310.pyc +0 -0
- promptsModules/__pycache__/basePromptBuilder.cpython-39.pyc +0 -0
- promptsModules/__pycache__/configDB.cpython-310.pyc +0 -0
- promptsModules/__pycache__/configDB.cpython-39.pyc +0 -0
- promptsModules/__pycache__/lora.cpython-310.pyc +0 -0
- promptsModules/__pycache__/lora.cpython-39.pyc +0 -0
- promptsModules/__pycache__/model_manager.cpython-310.pyc +0 -0
- promptsModules/__pycache__/model_manager.cpython-39.pyc +0 -0
- promptsModules/__pycache__/promptGen.cpython-310.pyc +0 -0
- promptsModules/__pycache__/promptGen.cpython-39.pyc +0 -0
- promptsModules/__pycache__/sd_command_gen.cpython-310.pyc +0 -0
- promptsModules/__pycache__/sd_command_gen.cpython-39.pyc +0 -0
- promptsModules/__pycache__/web_api.cpython-310.pyc +0 -0
- promptsModules/__pycache__/web_api.cpython-39.pyc +0 -0
- promptsModules/basePromptBuilder.py +1373 -0
- promptsModules/configDB.py +118 -0
- promptsModules/lora.py +136 -0
- promptsModules/model_manager.py +152 -0
- promptsModules/modelsConfig.xlsx +0 -0
- promptsModules/promptGen.py +282 -0
- promptsModules/sd_command_gen.py +188 -0
- promptsModules/web_api.py +12 -0
- requirements.txt +1 -0
- scripts/.DS_Store +0 -0
- scripts/.github/workflows/update_space.yml +28 -0
- scripts/README.md +6 -0
- scripts/__pycache__/prompt_rg.cpython-310.pyc +0 -0
- scripts/prompt_rg.py +367 -0
- scripts/requirements.txt +1 -0
- snap_Shot.png +0 -0
- ui_lora.png +0 -0
.github/workflows/update_space.yml
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: Run Python script
|
2 |
+
|
3 |
+
on:
|
4 |
+
push:
|
5 |
+
branches:
|
6 |
+
- main
|
7 |
+
|
8 |
+
jobs:
|
9 |
+
build:
|
10 |
+
runs-on: ubuntu-latest
|
11 |
+
|
12 |
+
steps:
|
13 |
+
- name: Checkout
|
14 |
+
uses: actions/checkout@v2
|
15 |
+
|
16 |
+
- name: Set up Python
|
17 |
+
uses: actions/setup-python@v2
|
18 |
+
with:
|
19 |
+
python-version: '3.9'
|
20 |
+
|
21 |
+
- name: Install Gradio
|
22 |
+
run: python -m pip install gradio
|
23 |
+
|
24 |
+
- name: Log in to Hugging Face
|
25 |
+
run: python -c 'import huggingface_hub; huggingface_hub.login(token="${{ secrets.hf_token }}")'
|
26 |
+
|
27 |
+
- name: Deploy to Spaces
|
28 |
+
run: gradio deploy
|
.gitignore
ADDED
@@ -0,0 +1,161 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Byte-compiled / optimized / DLL files
|
2 |
+
__pycache__/
|
3 |
+
*.py[cod]
|
4 |
+
*$py.class
|
5 |
+
|
6 |
+
# C extensions
|
7 |
+
*.so
|
8 |
+
|
9 |
+
# Distribution / packaging
|
10 |
+
.Python
|
11 |
+
build/
|
12 |
+
develop-eggs/
|
13 |
+
dist/
|
14 |
+
downloads/
|
15 |
+
eggs/
|
16 |
+
.eggs/
|
17 |
+
lib/
|
18 |
+
lib64/
|
19 |
+
parts/
|
20 |
+
sdist/
|
21 |
+
var/
|
22 |
+
wheels/
|
23 |
+
share/python-wheels/
|
24 |
+
*.egg-info/
|
25 |
+
.installed.cfg
|
26 |
+
*.egg
|
27 |
+
MANIFEST
|
28 |
+
|
29 |
+
# PyInstaller
|
30 |
+
# Usually these files are written by a python script from a template
|
31 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
32 |
+
*.manifest
|
33 |
+
*.spec
|
34 |
+
|
35 |
+
# Installer logs
|
36 |
+
pip-log.txt
|
37 |
+
pip-delete-this-directory.txt
|
38 |
+
|
39 |
+
# Unit test / coverage reports
|
40 |
+
htmlcov/
|
41 |
+
.tox/
|
42 |
+
.nox/
|
43 |
+
.coverage
|
44 |
+
.coverage.*
|
45 |
+
.cache
|
46 |
+
nosetests.xml
|
47 |
+
coverage.xml
|
48 |
+
*.cover
|
49 |
+
*.py,cover
|
50 |
+
.hypothesis/
|
51 |
+
.pytest_cache/
|
52 |
+
cover/
|
53 |
+
|
54 |
+
# Translations
|
55 |
+
*.mo
|
56 |
+
*.pot
|
57 |
+
|
58 |
+
# Django stuff:
|
59 |
+
*.log
|
60 |
+
local_settings.py
|
61 |
+
db.sqlite3
|
62 |
+
db.sqlite3-journal
|
63 |
+
|
64 |
+
# Flask stuff:
|
65 |
+
instance/
|
66 |
+
.webassets-cache
|
67 |
+
|
68 |
+
# Scrapy stuff:
|
69 |
+
.scrapy
|
70 |
+
|
71 |
+
# Sphinx documentation
|
72 |
+
docs/_build/
|
73 |
+
|
74 |
+
# PyBuilder
|
75 |
+
.pybuilder/
|
76 |
+
target/
|
77 |
+
|
78 |
+
# Jupyter Notebook
|
79 |
+
.ipynb_checkpoints
|
80 |
+
|
81 |
+
# IPython
|
82 |
+
profile_default/
|
83 |
+
ipython_config.py
|
84 |
+
|
85 |
+
# pyenv
|
86 |
+
# For a library or package, you might want to ignore these files since the code is
|
87 |
+
# intended to run in multiple environments; otherwise, check them in:
|
88 |
+
# .python-version
|
89 |
+
|
90 |
+
# pipenv
|
91 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
92 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
93 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
94 |
+
# install all needed dependencies.
|
95 |
+
#Pipfile.lock
|
96 |
+
|
97 |
+
# poetry
|
98 |
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
99 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
100 |
+
# commonly ignored for libraries.
|
101 |
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
102 |
+
#poetry.lock
|
103 |
+
|
104 |
+
# pdm
|
105 |
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
106 |
+
#pdm.lock
|
107 |
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
108 |
+
# in version control.
|
109 |
+
# https://pdm.fming.dev/#use-with-ide
|
110 |
+
.pdm.toml
|
111 |
+
|
112 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
113 |
+
__pypackages__/
|
114 |
+
|
115 |
+
# Celery stuff
|
116 |
+
celerybeat-schedule
|
117 |
+
celerybeat.pid
|
118 |
+
|
119 |
+
# SageMath parsed files
|
120 |
+
*.sage.py
|
121 |
+
|
122 |
+
# Environments
|
123 |
+
.env
|
124 |
+
.venv
|
125 |
+
env/
|
126 |
+
venv/
|
127 |
+
ENV/
|
128 |
+
env.bak/
|
129 |
+
venv.bak/
|
130 |
+
|
131 |
+
# Spyder project settings
|
132 |
+
.spyderproject
|
133 |
+
.spyproject
|
134 |
+
|
135 |
+
# Rope project settings
|
136 |
+
.ropeproject
|
137 |
+
|
138 |
+
# mkdocs documentation
|
139 |
+
/site
|
140 |
+
|
141 |
+
# mypy
|
142 |
+
.mypy_cache/
|
143 |
+
.dmypy.json
|
144 |
+
dmypy.json
|
145 |
+
|
146 |
+
# Pyre type checker
|
147 |
+
.pyre/
|
148 |
+
|
149 |
+
# pytype static type analyzer
|
150 |
+
.pytype/
|
151 |
+
|
152 |
+
# Cython debug symbols
|
153 |
+
cython_debug/
|
154 |
+
|
155 |
+
# PyCharm
|
156 |
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
157 |
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
158 |
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
159 |
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
160 |
+
.idea/
|
161 |
+
promptsModules/prompts.txt
|
.idea/inspectionProfiles/Project_Default.xml
ADDED
@@ -0,0 +1,747 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<component name="InspectionProjectProfileManager">
|
2 |
+
<profile version="1.0" is_locked="true">
|
3 |
+
<option name="myName" value="Project Default" />
|
4 |
+
<inspection_tool class="AlphaUnsortedPropertiesFile" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
5 |
+
<inspection_tool class="AngularAmbiguousComponentTag" enabled="false" level="ERROR" enabled_by_default="false" />
|
6 |
+
<inspection_tool class="AngularCliAddDependency" enabled="false" level="WARNING" enabled_by_default="false" />
|
7 |
+
<inspection_tool class="AngularInaccessibleComponentMemberInAotMode" enabled="false" level="WARNING" enabled_by_default="false" />
|
8 |
+
<inspection_tool class="AngularIncorrectTemplateDefinition" enabled="false" level="ERROR" enabled_by_default="false" />
|
9 |
+
<inspection_tool class="AngularInsecureBindingToEvent" enabled="false" level="WARNING" enabled_by_default="false" />
|
10 |
+
<inspection_tool class="AngularInvalidAnimationTriggerAssignment" enabled="false" level="ERROR" enabled_by_default="false" />
|
11 |
+
<inspection_tool class="AngularInvalidEntryComponent" enabled="false" level="ERROR" enabled_by_default="false" />
|
12 |
+
<inspection_tool class="AngularInvalidI18nAttribute" enabled="false" level="WARNING" enabled_by_default="false" />
|
13 |
+
<inspection_tool class="AngularInvalidImportedOrDeclaredSymbol" enabled="false" level="ERROR" enabled_by_default="false" />
|
14 |
+
<inspection_tool class="AngularInvalidSelector" enabled="false" level="ERROR" enabled_by_default="false" />
|
15 |
+
<inspection_tool class="AngularInvalidTemplateReferenceVariable" enabled="false" level="ERROR" enabled_by_default="false" />
|
16 |
+
<inspection_tool class="AngularMissingEventHandler" enabled="false" level="ERROR" enabled_by_default="false" />
|
17 |
+
<inspection_tool class="AngularMissingOrInvalidDeclarationInModule" enabled="false" level="ERROR" enabled_by_default="false" />
|
18 |
+
<inspection_tool class="AngularMissingRequiredDirectiveInputBinding" enabled="false" level="ERROR" enabled_by_default="false" />
|
19 |
+
<inspection_tool class="AngularMultipleStructuralDirectives" enabled="false" level="ERROR" enabled_by_default="false" />
|
20 |
+
<inspection_tool class="AngularNgOptimizedImage" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
21 |
+
<inspection_tool class="AngularNonEmptyNgContent" enabled="false" level="ERROR" enabled_by_default="false" />
|
22 |
+
<inspection_tool class="AngularRecursiveModuleImportExport" enabled="false" level="ERROR" enabled_by_default="false" />
|
23 |
+
<inspection_tool class="AngularUndefinedBinding" enabled="false" level="ERROR" enabled_by_default="false" />
|
24 |
+
<inspection_tool class="AngularUndefinedModuleExport" enabled="false" level="ERROR" enabled_by_default="false" />
|
25 |
+
<inspection_tool class="AngularUndefinedTag" enabled="false" level="ERROR" enabled_by_default="false" />
|
26 |
+
<inspection_tool class="Annotator" enabled="false" level="ERROR" enabled_by_default="false" />
|
27 |
+
<inspection_tool class="AnonymousFunctionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
28 |
+
<inspection_tool class="AppEngineThreadsafeCGIHandlerInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
29 |
+
<inspection_tool class="AppEngineThreadsafeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
30 |
+
<inspection_tool class="AssignmentResultUsedJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
31 |
+
<inspection_tool class="AssignmentToForLoopParameterJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
32 |
+
<inspection_tool class="AssignmentToFunctionParameterJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
33 |
+
<inspection_tool class="BadExpressionStatementJS" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
34 |
+
<inspection_tool class="BlockStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
35 |
+
<inspection_tool class="BreakStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
36 |
+
<inspection_tool class="BreakStatementWithLabelJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
37 |
+
<inspection_tool class="CallerJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
38 |
+
<inspection_tool class="ChainedEqualityJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
39 |
+
<inspection_tool class="ChainedFunctionCallJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
40 |
+
<inspection_tool class="CheckDtdRefs" enabled="false" level="ERROR" enabled_by_default="false" />
|
41 |
+
<inspection_tool class="CheckEmptyScriptTag" enabled="false" level="WARNING" enabled_by_default="false" />
|
42 |
+
<inspection_tool class="CheckImageSize" enabled="false" level="WARNING" enabled_by_default="false" />
|
43 |
+
<inspection_tool class="CheckTagEmptyBody" enabled="false" level="WARNING" enabled_by_default="false" />
|
44 |
+
<inspection_tool class="CheckValidXmlInScriptTagBody" enabled="false" level="ERROR" enabled_by_default="false" />
|
45 |
+
<inspection_tool class="CheckXmlFileWithXercesValidator" enabled="false" level="ERROR" enabled_by_default="false" />
|
46 |
+
<inspection_tool class="CoffeeScriptFunctionSignatures" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
47 |
+
<inspection_tool class="CoffeeScriptInfiniteLoop" enabled="false" level="WARNING" enabled_by_default="false" />
|
48 |
+
<inspection_tool class="CoffeeScriptLiteralNotFunction" enabled="false" level="ERROR" enabled_by_default="false" />
|
49 |
+
<inspection_tool class="CoffeeScriptModulesDependencies" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
50 |
+
<inspection_tool class="CoffeeScriptSillyAssignment" enabled="false" level="WARNING" enabled_by_default="false" />
|
51 |
+
<inspection_tool class="CoffeeScriptSwitchStatementWithNoDefaultBranch" enabled="false" level="WARNING" enabled_by_default="false" />
|
52 |
+
<inspection_tool class="CoffeeScriptUnusedLocalSymbols" enabled="false" level="WARNING" enabled_by_default="false" />
|
53 |
+
<inspection_tool class="CommaExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
54 |
+
<inspection_tool class="CommandLineInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
55 |
+
<inspection_tool class="ComposeMissingKeys" enabled="false" level="ERROR" enabled_by_default="false" />
|
56 |
+
<inspection_tool class="ComposeUnknownKeys" enabled="false" level="ERROR" enabled_by_default="false" />
|
57 |
+
<inspection_tool class="ComposeUnknownValues" enabled="false" level="ERROR" enabled_by_default="false" />
|
58 |
+
<inspection_tool class="ComposeUnquotedPorts" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
59 |
+
<inspection_tool class="ConditionalExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
60 |
+
<inspection_tool class="ConditionalExpressionWithIdenticalBranchesJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
61 |
+
<inspection_tool class="ConfusingFloatingPointLiteralJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
62 |
+
<inspection_tool class="ConfusingPlusesOrMinusesJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
63 |
+
<inspection_tool class="ConstantConditionalExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
64 |
+
<inspection_tool class="ConstantOnLHSOfComparisonJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
65 |
+
<inspection_tool class="ConstantOnRHSOfComparisonJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
66 |
+
<inspection_tool class="ContinueOrBreakFromFinallyBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
67 |
+
<inspection_tool class="ContinueStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
68 |
+
<inspection_tool class="ContinueStatementWithLabelJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
69 |
+
<inspection_tool class="CssBrowserCompatibilityForProperties" enabled="false" level="WARNING" enabled_by_default="false" />
|
70 |
+
<inspection_tool class="CssConvertColorToHexInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
71 |
+
<inspection_tool class="CssConvertColorToRgbInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
72 |
+
<inspection_tool class="CssInvalidAtRule" enabled="false" level="ERROR" enabled_by_default="false" />
|
73 |
+
<inspection_tool class="CssInvalidCharsetRule" enabled="false" level="WARNING" enabled_by_default="false" />
|
74 |
+
<inspection_tool class="CssInvalidFunction" enabled="false" level="ERROR" enabled_by_default="false" />
|
75 |
+
<inspection_tool class="CssInvalidHtmlTagReference" enabled="false" level="WARNING" enabled_by_default="false" />
|
76 |
+
<inspection_tool class="CssInvalidImport" enabled="false" level="WARNING" enabled_by_default="false" />
|
77 |
+
<inspection_tool class="CssInvalidMediaFeature" enabled="false" level="ERROR" enabled_by_default="false" />
|
78 |
+
<inspection_tool class="CssInvalidNestedSelector" enabled="false" level="WARNING" enabled_by_default="false" />
|
79 |
+
<inspection_tool class="CssInvalidPropertyValue" enabled="false" level="ERROR" enabled_by_default="false" />
|
80 |
+
<inspection_tool class="CssInvalidPseudoSelector" enabled="false" level="ERROR" enabled_by_default="false" />
|
81 |
+
<inspection_tool class="CssMissingComma" enabled="false" level="WARNING" enabled_by_default="false" />
|
82 |
+
<inspection_tool class="CssMissingSemicolon" enabled="false" level="WARNING" enabled_by_default="false" />
|
83 |
+
<inspection_tool class="CssNegativeValue" enabled="false" level="ERROR" enabled_by_default="false" />
|
84 |
+
<inspection_tool class="CssNoGenericFontName" enabled="false" level="WARNING" enabled_by_default="false" />
|
85 |
+
<inspection_tool class="CssNonIntegerLengthInPixels" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
86 |
+
<inspection_tool class="CssOverwrittenProperties" enabled="false" level="WARNING" enabled_by_default="false" />
|
87 |
+
<inspection_tool class="CssRedundantUnit" enabled="false" level="WARNING" enabled_by_default="false" />
|
88 |
+
<inspection_tool class="CssReplaceWithShorthandSafely" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
89 |
+
<inspection_tool class="CssReplaceWithShorthandUnsafely" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
90 |
+
<inspection_tool class="CssUnknownProperty" enabled="false" level="WARNING" enabled_by_default="false">
|
91 |
+
<option name="myCustomPropertiesEnabled" value="false" />
|
92 |
+
<option name="myIgnoreVendorSpecificProperties" value="false" />
|
93 |
+
<option name="myCustomPropertiesList">
|
94 |
+
<value>
|
95 |
+
<list size="0" />
|
96 |
+
</value>
|
97 |
+
</option>
|
98 |
+
</inspection_tool>
|
99 |
+
<inspection_tool class="CssUnknownTarget" enabled="false" level="ERROR" enabled_by_default="false" />
|
100 |
+
<inspection_tool class="CssUnresolvedClassInComposesRule" enabled="false" level="ERROR" enabled_by_default="false" />
|
101 |
+
<inspection_tool class="CssUnresolvedCustomProperty" enabled="false" level="ERROR" enabled_by_default="false" />
|
102 |
+
<inspection_tool class="CssUnusedSymbol" enabled="false" level="WARNING" enabled_by_default="false" />
|
103 |
+
<inspection_tool class="CucumberExamplesColon" enabled="false" level="ERROR" enabled_by_default="false" />
|
104 |
+
<inspection_tool class="CucumberMissedExamples" enabled="false" level="ERROR" enabled_by_default="false" />
|
105 |
+
<inspection_tool class="CucumberTableInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
106 |
+
<inspection_tool class="CucumberUndefinedStep" enabled="false" level="WARNING" enabled_by_default="false" />
|
107 |
+
<inspection_tool class="CustomRegExpInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
108 |
+
<inspection_tool class="CyclomaticComplexityJS" enabled="false" level="WARNING" enabled_by_default="false">
|
109 |
+
<option name="m_limit" value="10" />
|
110 |
+
</inspection_tool>
|
111 |
+
<inspection_tool class="CythonUsageBeforeDeclarationInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
112 |
+
<inspection_tool class="DebuggerStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
113 |
+
<inspection_tool class="DefaultNotLastCaseInSwitchJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
114 |
+
<inspection_tool class="DivideByZeroJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
115 |
+
<inspection_tool class="DjangoBrokenLineCommentInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
116 |
+
<inspection_tool class="DjangoCloseTagInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
117 |
+
<inspection_tool class="DjangoIncompatibleInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
118 |
+
<inspection_tool class="DjangoOrmInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
119 |
+
<inspection_tool class="DjangoRelationInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
120 |
+
<inspection_tool class="DjangoUnresolvedFilterInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
121 |
+
<inspection_tool class="DjangoUnresolvedLoadInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
122 |
+
<inspection_tool class="DjangoUnresolvedStaticReferenceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
123 |
+
<inspection_tool class="DjangoUnresolvedTagInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
124 |
+
<inspection_tool class="DjangoUnresolvedTemplateReferenceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
125 |
+
<inspection_tool class="DjangoUnresolvedUrlInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
126 |
+
<inspection_tool class="DjangoUrlArgumentsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
127 |
+
<inspection_tool class="DockerFileAddOrCopyPaths" enabled="false" level="WARNING" enabled_by_default="false" />
|
128 |
+
<inspection_tool class="DockerFileArgumentCount" enabled="false" level="ERROR" enabled_by_default="false" />
|
129 |
+
<inspection_tool class="DockerFileAssignments" enabled="false" level="ERROR" enabled_by_default="false" />
|
130 |
+
<inspection_tool class="DockerFileRunCommandMissingContinuation" enabled="false" level="ERROR" enabled_by_default="false" />
|
131 |
+
<inspection_tool class="DockerJsonFormStringLiterals" enabled="false" level="WARNING" enabled_by_default="false" />
|
132 |
+
<inspection_tool class="DocumentWriteJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
133 |
+
<inspection_tool class="DuplicateConditionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
134 |
+
<inspection_tool class="DuplicateKeyInSection" enabled="false" level="WARNING" enabled_by_default="false" />
|
135 |
+
<inspection_tool class="DuplicatePropertyInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
136 |
+
<inspection_tool class="DuplicateSectionInFile" enabled="false" level="WARNING" enabled_by_default="false" />
|
137 |
+
<inspection_tool class="DuplicatedBlockNamesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
138 |
+
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
139 |
+
<inspection_tool class="DynamicallyGeneratedCodeJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
140 |
+
<inspection_tool class="ES6BindWithArrowFunction" enabled="false" level="WARNING" enabled_by_default="false" />
|
141 |
+
<inspection_tool class="ES6ClassMemberInitializationOrder" enabled="false" level="WARNING" enabled_by_default="false" />
|
142 |
+
<inspection_tool class="ES6ConvertIndexedForToForOf" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
143 |
+
<inspection_tool class="ES6ConvertLetToConst" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
144 |
+
<inspection_tool class="ES6ConvertModuleExportToExport" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
145 |
+
<inspection_tool class="ES6ConvertRequireIntoImport" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
146 |
+
<inspection_tool class="ES6ConvertToForOf" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
147 |
+
<inspection_tool class="ES6ConvertVarToLetConst" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
148 |
+
<inspection_tool class="ES6DestructuringVariablesMerge" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
149 |
+
<inspection_tool class="ES6MissingAwait" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
150 |
+
<inspection_tool class="ES6PossiblyAsyncFunction" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
151 |
+
<inspection_tool class="ES6PreferShortImport" enabled="false" level="WARNING" enabled_by_default="false" />
|
152 |
+
<inspection_tool class="ES6RedundantAwait" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
153 |
+
<inspection_tool class="ES6RedundantNestingInTemplateLiteral" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
154 |
+
<inspection_tool class="ES6ShorthandObjectProperty" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
155 |
+
<inspection_tool class="ES6TopLevelAwaitExpression" enabled="false" level="ERROR" enabled_by_default="false" />
|
156 |
+
<inspection_tool class="ES6UnusedImports" enabled="false" level="WARNING" enabled_by_default="false" />
|
157 |
+
<inspection_tool class="EditorConfigCharClassLetterRedundancy" enabled="false" level="WARNING" enabled_by_default="false" />
|
158 |
+
<inspection_tool class="EditorConfigCharClassRedundancy" enabled="false" level="WARNING" enabled_by_default="false" />
|
159 |
+
<inspection_tool class="EditorConfigDeprecatedDescriptor" enabled="false" level="WARNING" enabled_by_default="false" />
|
160 |
+
<inspection_tool class="EditorConfigEmptyHeader" enabled="false" level="ERROR" enabled_by_default="false" />
|
161 |
+
<inspection_tool class="EditorConfigEmptySection" enabled="false" level="WARNING" enabled_by_default="false" />
|
162 |
+
<inspection_tool class="EditorConfigEncoding" enabled="false" level="WARNING" enabled_by_default="false" />
|
163 |
+
<inspection_tool class="EditorConfigHeaderUniqueness" enabled="false" level="WARNING" enabled_by_default="false" />
|
164 |
+
<inspection_tool class="EditorConfigKeyCorrectness" enabled="false" level="WARNING" enabled_by_default="false" />
|
165 |
+
<inspection_tool class="EditorConfigListAcceptability" enabled="false" level="ERROR" enabled_by_default="false" />
|
166 |
+
<inspection_tool class="EditorConfigMissingRequiredDeclaration" enabled="false" level="ERROR" enabled_by_default="false" />
|
167 |
+
<inspection_tool class="EditorConfigNoMatchingFiles" enabled="false" level="WARNING" enabled_by_default="false" />
|
168 |
+
<inspection_tool class="EditorConfigNumerousWildcards" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
169 |
+
<inspection_tool class="EditorConfigOptionRedundancy" enabled="false" level="WARNING" enabled_by_default="false" />
|
170 |
+
<inspection_tool class="EditorConfigPairAcceptability" enabled="false" level="ERROR" enabled_by_default="false" />
|
171 |
+
<inspection_tool class="EditorConfigPartialOverride" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
172 |
+
<inspection_tool class="EditorConfigPatternEnumerationRedundancy" enabled="false" level="ERROR" enabled_by_default="false" />
|
173 |
+
<inspection_tool class="EditorConfigPatternRedundancy" enabled="false" level="WARNING" enabled_by_default="false" />
|
174 |
+
<inspection_tool class="EditorConfigReferenceCorrectness" enabled="false" level="ERROR" enabled_by_default="false" />
|
175 |
+
<inspection_tool class="EditorConfigRootDeclarationCorrectness" enabled="false" level="ERROR" enabled_by_default="false" />
|
176 |
+
<inspection_tool class="EditorConfigRootDeclarationUniqueness" enabled="false" level="ERROR" enabled_by_default="false" />
|
177 |
+
<inspection_tool class="EditorConfigShadowedOption" enabled="false" level="WARNING" enabled_by_default="false" />
|
178 |
+
<inspection_tool class="EditorConfigShadowingOption" enabled="false" level="WARNING" enabled_by_default="false" />
|
179 |
+
<inspection_tool class="EditorConfigSpaceInHeader" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
180 |
+
<inspection_tool class="EditorConfigUnexpectedComma" enabled="false" level="ERROR" enabled_by_default="false" />
|
181 |
+
<inspection_tool class="EditorConfigUnusedDeclaration" enabled="false" level="WARNING" enabled_by_default="false" />
|
182 |
+
<inspection_tool class="EditorConfigValueCorrectness" enabled="false" level="ERROR" enabled_by_default="false" />
|
183 |
+
<inspection_tool class="EditorConfigValueUniqueness" enabled="false" level="ERROR" enabled_by_default="false" />
|
184 |
+
<inspection_tool class="EditorConfigVerifyByCore" enabled="false" level="ERROR" enabled_by_default="false" />
|
185 |
+
<inspection_tool class="EditorConfigWildcardRedundancy" enabled="false" level="WARNING" enabled_by_default="false" />
|
186 |
+
<inspection_tool class="EmptyCatchBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
187 |
+
<inspection_tool class="EmptyDirectory" enabled="false" level="WARNING" enabled_by_default="false" />
|
188 |
+
<inspection_tool class="EmptyFinallyBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
189 |
+
<inspection_tool class="EmptyStatementBodyJS" enabled="false" level="WARNING" enabled_by_default="false">
|
190 |
+
<option name="m_reportEmptyBlocks" value="false" />
|
191 |
+
</inspection_tool>
|
192 |
+
<inspection_tool class="EmptyTryBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
193 |
+
<inspection_tool class="EndBlockNamesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
194 |
+
<inspection_tool class="Eslint" enabled="false" level="WARNING" enabled_by_default="false" />
|
195 |
+
<inspection_tool class="ExceptionCaughtLocallyJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
196 |
+
<inspection_tool class="ExtendsTagPositionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
197 |
+
<inspection_tool class="FallThroughInSwitchStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
198 |
+
<inspection_tool class="FlowJSConfig" enabled="false" level="WARNING" enabled_by_default="false" />
|
199 |
+
<inspection_tool class="FlowJSCoverage" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
200 |
+
<inspection_tool class="FlowJSError" enabled="false" level="ERROR" enabled_by_default="false" />
|
201 |
+
<inspection_tool class="FlowJSFlagCommentPlacement" enabled="false" level="WARNING" enabled_by_default="false" />
|
202 |
+
<inspection_tool class="ForLoopReplaceableByWhileJS" enabled="false" level="WARNING" enabled_by_default="false">
|
203 |
+
<option name="m_ignoreLoopsWithoutConditions" value="false" />
|
204 |
+
</inspection_tool>
|
205 |
+
<inspection_tool class="ForLoopThatDoesntUseLoopVariableJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
206 |
+
<inspection_tool class="FunctionNamingConventionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
207 |
+
<option name="m_regex" value="[a-z][A-Za-z]*" />
|
208 |
+
<option name="m_minLength" value="4" />
|
209 |
+
<option name="m_maxLength" value="32" />
|
210 |
+
</inspection_tool>
|
211 |
+
<inspection_tool class="FunctionWithInconsistentReturnsJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
212 |
+
<inspection_tool class="FunctionWithMultipleLoopsJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
213 |
+
<inspection_tool class="FunctionWithMultipleReturnPointsJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
214 |
+
<inspection_tool class="GherkinBrokenTableInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
215 |
+
<inspection_tool class="GherkinMisplacedBackground" enabled="false" level="ERROR" enabled_by_default="false" />
|
216 |
+
<inspection_tool class="GherkinScenarioToScenarioOutline" enabled="false" level="ERROR" enabled_by_default="false" />
|
217 |
+
<inspection_tool class="GrazieInspection" enabled="false" level="GRAMMAR_ERROR" enabled_by_default="false" />
|
218 |
+
<inspection_tool class="HtmlDeprecatedAttribute" enabled="false" level="WARNING" enabled_by_default="false" />
|
219 |
+
<inspection_tool class="HtmlDeprecatedTag" enabled="false" level="WARNING" enabled_by_default="false" />
|
220 |
+
<inspection_tool class="HtmlExtraClosingTag" enabled="false" level="WARNING" enabled_by_default="false" />
|
221 |
+
<inspection_tool class="HtmlFormInputWithoutLabel" enabled="false" level="WARNING" enabled_by_default="false" />
|
222 |
+
<inspection_tool class="HtmlMissingClosingTag" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
223 |
+
<inspection_tool class="HtmlNonExistentInternetResource" enabled="false" level="WARNING" enabled_by_default="false" />
|
224 |
+
<inspection_tool class="HtmlPresentationalElement" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
225 |
+
<inspection_tool class="HtmlRequiredAltAttribute" enabled="false" level="WARNING" enabled_by_default="false" />
|
226 |
+
<inspection_tool class="HtmlRequiredLangAttribute" enabled="false" level="WARNING" enabled_by_default="false" />
|
227 |
+
<inspection_tool class="HtmlRequiredSummaryAttribute" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
228 |
+
<inspection_tool class="HtmlRequiredTitleAttribute" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
229 |
+
<inspection_tool class="HtmlRequiredTitleElement" enabled="false" level="WARNING" enabled_by_default="false" />
|
230 |
+
<inspection_tool class="HtmlUnknownAnchorTarget" enabled="false" level="WARNING" enabled_by_default="false" />
|
231 |
+
<inspection_tool class="HtmlUnknownAttribute" enabled="false" level="WARNING" enabled_by_default="false">
|
232 |
+
<option name="myValues">
|
233 |
+
<value>
|
234 |
+
<list size="0" />
|
235 |
+
</value>
|
236 |
+
</option>
|
237 |
+
<option name="myCustomValuesEnabled" value="true" />
|
238 |
+
</inspection_tool>
|
239 |
+
<inspection_tool class="HtmlUnknownBooleanAttribute" enabled="false" level="WARNING" enabled_by_default="false" />
|
240 |
+
<inspection_tool class="HtmlUnknownTag" enabled="false" level="WARNING" enabled_by_default="false">
|
241 |
+
<option name="myValues">
|
242 |
+
<value>
|
243 |
+
<list size="6">
|
244 |
+
<item index="0" class="java.lang.String" itemvalue="nobr" />
|
245 |
+
<item index="1" class="java.lang.String" itemvalue="noembed" />
|
246 |
+
<item index="2" class="java.lang.String" itemvalue="comment" />
|
247 |
+
<item index="3" class="java.lang.String" itemvalue="noscript" />
|
248 |
+
<item index="4" class="java.lang.String" itemvalue="embed" />
|
249 |
+
<item index="5" class="java.lang.String" itemvalue="script" />
|
250 |
+
</list>
|
251 |
+
</value>
|
252 |
+
</option>
|
253 |
+
<option name="myCustomValuesEnabled" value="true" />
|
254 |
+
</inspection_tool>
|
255 |
+
<inspection_tool class="HtmlUnknownTarget" enabled="false" level="WARNING" enabled_by_default="false" />
|
256 |
+
<inspection_tool class="HtmlWrongAttributeValue" enabled="false" level="WARNING" enabled_by_default="false" />
|
257 |
+
<inspection_tool class="HttpClientUnresolvedVariable" enabled="false" level="WARNING" enabled_by_default="false" />
|
258 |
+
<inspection_tool class="HttpRequestContentLengthIsIgnored" enabled="false" level="WARNING" enabled_by_default="false" />
|
259 |
+
<inspection_tool class="HttpRequestPlaceholder" enabled="false" level="WARNING" enabled_by_default="false" />
|
260 |
+
<inspection_tool class="HttpRequestWhitespaceInsideRequestTargetPath" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
261 |
+
<inspection_tool class="HttpUrlsUsage" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
262 |
+
<inspection_tool class="IfStatementWithIdenticalBranchesJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
263 |
+
<inspection_tool class="IfStatementWithTooManyBranchesJS" enabled="false" level="WARNING" enabled_by_default="false">
|
264 |
+
<option name="m_limit" value="3" />
|
265 |
+
</inspection_tool>
|
266 |
+
<inspection_tool class="IgnoreFileDuplicateEntry" enabled="false" level="WARNING" enabled_by_default="false" />
|
267 |
+
<inspection_tool class="IncompatibleMaskJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
268 |
+
<inspection_tool class="InconsistentLineSeparators" enabled="false" level="WARNING" enabled_by_default="false" />
|
269 |
+
<inspection_tool class="IncorrectFormatting" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
270 |
+
<inspection_tool class="IncorrectHttpHeaderInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
271 |
+
<inspection_tool class="IncrementDecrementResultUsedJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
272 |
+
<inspection_tool class="InfiniteLoopJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
273 |
+
<inspection_tool class="InfiniteRecursionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
274 |
+
<inspection_tool class="InjectedReferences" enabled="false" level="ERROR" enabled_by_default="false" />
|
275 |
+
<inspection_tool class="InnerHTMLJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
276 |
+
<inspection_tool class="JSAccessibilityCheck" enabled="false" level="WARNING" enabled_by_default="false" />
|
277 |
+
<inspection_tool class="JSAnnotator" enabled="false" level="ERROR" enabled_by_default="false" />
|
278 |
+
<inspection_tool class="JSArrowFunctionBracesCanBeRemoved" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
279 |
+
<inspection_tool class="JSAssignmentUsedAsCondition" enabled="false" level="WARNING" enabled_by_default="false" />
|
280 |
+
<inspection_tool class="JSBitwiseOperatorUsage" enabled="false" level="WARNING" enabled_by_default="false" />
|
281 |
+
<inspection_tool class="JSCheckFunctionSignatures" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
282 |
+
<inspection_tool class="JSClassNamingConvention" enabled="false" level="WARNING" enabled_by_default="false" />
|
283 |
+
<inspection_tool class="JSClosureCompilerSyntax" enabled="false" level="WARNING" enabled_by_default="false" />
|
284 |
+
<inspection_tool class="JSCommentMatchesSignature" enabled="false" level="WARNING" enabled_by_default="false" />
|
285 |
+
<inspection_tool class="JSComparisonWithNaN" enabled="false" level="WARNING" enabled_by_default="false" />
|
286 |
+
<inspection_tool class="JSConsecutiveCommasInArrayLiteral" enabled="false" level="WARNING" enabled_by_default="false" />
|
287 |
+
<inspection_tool class="JSConstantReassignment" enabled="false" level="ERROR" enabled_by_default="false" />
|
288 |
+
<inspection_tool class="JSConstructorReturnsPrimitive" enabled="false" level="WARNING" enabled_by_default="false" />
|
289 |
+
<inspection_tool class="JSDeclarationsAtScopeStart" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
290 |
+
<inspection_tool class="JSDeprecatedSymbols" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
291 |
+
<inspection_tool class="JSDuplicateCaseLabel" enabled="false" level="WARNING" enabled_by_default="false" />
|
292 |
+
<inspection_tool class="JSDuplicatedDeclaration" enabled="false" level="WARNING" enabled_by_default="false" />
|
293 |
+
<inspection_tool class="JSEqualityComparisonWithCoercion" enabled="false" level="WARNING" enabled_by_default="false" />
|
294 |
+
<inspection_tool class="JSEqualityComparisonWithCoercion.TS" enabled="false" level="WARNING" enabled_by_default="false" />
|
295 |
+
<inspection_tool class="JSFileReferences" enabled="false" level="WARNING" enabled_by_default="false" />
|
296 |
+
<inspection_tool class="JSFunctionExpressionToArrowFunction" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
297 |
+
<inspection_tool class="JSHint" enabled="false" level="ERROR" enabled_by_default="false" />
|
298 |
+
<inspection_tool class="JSIgnoredPromiseFromCall" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
299 |
+
<inspection_tool class="JSIncompatibleTypesComparison" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
300 |
+
<inspection_tool class="JSJQueryEfficiency" enabled="false" level="WARNING" enabled_by_default="false" />
|
301 |
+
<inspection_tool class="JSJoinVariableDeclarationAndAssignment" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
302 |
+
<inspection_tool class="JSLastCommaInArrayLiteral" enabled="false" level="WARNING" enabled_by_default="false" />
|
303 |
+
<inspection_tool class="JSLastCommaInObjectLiteral" enabled="false" level="WARNING" enabled_by_default="false" />
|
304 |
+
<inspection_tool class="JSMethodCanBeStatic" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
305 |
+
<inspection_tool class="JSMismatchedCollectionQueryUpdate" enabled="false" level="WARNING" enabled_by_default="false">
|
306 |
+
<option name="queries" value="trace,write,forEach,length,size" />
|
307 |
+
<option name="updates" value="pop,push,shift,splice,unshift,add,insert,remove,reverse,copyWithin,fill,sort" />
|
308 |
+
</inspection_tool>
|
309 |
+
<inspection_tool class="JSMissingSwitchBranches" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
310 |
+
<inspection_tool class="JSMissingSwitchDefault" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
311 |
+
<inspection_tool class="JSNonASCIINames" enabled="false" level="WARNING" enabled_by_default="false" />
|
312 |
+
<inspection_tool class="JSNonStrictModeUsed" enabled="false" level="WARNING" enabled_by_default="false" />
|
313 |
+
<inspection_tool class="JSObjectNullOrUndefined" enabled="false" level="WARNING" enabled_by_default="false" />
|
314 |
+
<inspection_tool class="JSOctalInteger" enabled="false" level="ERROR" enabled_by_default="false" />
|
315 |
+
<inspection_tool class="JSPotentiallyInvalidConstructorUsage" enabled="false" level="WARNING" enabled_by_default="false">
|
316 |
+
<option name="myConsiderUppercaseFunctionsToBeConstructors" value="true" />
|
317 |
+
</inspection_tool>
|
318 |
+
<inspection_tool class="JSPotentiallyInvalidTargetOfIndexedPropertyAccess" enabled="false" level="WARNING" enabled_by_default="false" />
|
319 |
+
<inspection_tool class="JSPotentiallyInvalidUsageOfClassThis" enabled="false" level="WARNING" enabled_by_default="false" />
|
320 |
+
<inspection_tool class="JSPotentiallyInvalidUsageOfThis" enabled="false" level="WARNING" enabled_by_default="false" />
|
321 |
+
<inspection_tool class="JSPrimitiveTypeWrapperUsage" enabled="false" level="WARNING" enabled_by_default="false" />
|
322 |
+
<inspection_tool class="JSRedundantSwitchStatement" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
323 |
+
<inspection_tool class="JSReferencingMutableVariableFromClosure" enabled="false" level="WARNING" enabled_by_default="false" />
|
324 |
+
<inspection_tool class="JSRemoveUnnecessaryParentheses" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
325 |
+
<inspection_tool class="JSStringConcatenationToES6Template" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
326 |
+
<inspection_tool class="JSSuspiciousEqPlus" enabled="false" level="WARNING" enabled_by_default="false" />
|
327 |
+
<inspection_tool class="JSSuspiciousNameCombination" enabled="false" level="WARNING" enabled_by_default="false">
|
328 |
+
<group names="x,width,left,right" />
|
329 |
+
<group names="y,height,top,bottom" />
|
330 |
+
<exclude classes="Math" />
|
331 |
+
</inspection_tool>
|
332 |
+
<inspection_tool class="JSSwitchVariableDeclarationIssue" enabled="false" level="WARNING" enabled_by_default="false" />
|
333 |
+
<inspection_tool class="JSTestFailedLine" enabled="false" level="WARNING" enabled_by_default="false" />
|
334 |
+
<inspection_tool class="JSTypeOfValues" enabled="false" level="WARNING" enabled_by_default="false" />
|
335 |
+
<inspection_tool class="JSUndeclaredVariable" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
336 |
+
<inspection_tool class="JSUndefinedPropertyAssignment" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
337 |
+
<inspection_tool class="JSUnfilteredForInLoop" enabled="false" level="WARNING" enabled_by_default="false" />
|
338 |
+
<inspection_tool class="JSUnnecessarySemicolon" enabled="false" level="WARNING" enabled_by_default="false" />
|
339 |
+
<inspection_tool class="JSUnreachableSwitchBranches" enabled="false" level="WARNING" enabled_by_default="false" />
|
340 |
+
<inspection_tool class="JSUnresolvedExtXType" enabled="false" level="WARNING" enabled_by_default="false" />
|
341 |
+
<inspection_tool class="JSUnresolvedLibraryURL" enabled="false" level="WARNING" enabled_by_default="false" />
|
342 |
+
<inspection_tool class="JSUnresolvedReference" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
343 |
+
<inspection_tool class="JSUnusedAssignment" enabled="false" level="WARNING" enabled_by_default="false" />
|
344 |
+
<inspection_tool class="JSUnusedGlobalSymbols" enabled="false" level="WARNING" enabled_by_default="false" />
|
345 |
+
<inspection_tool class="JSUnusedLocalSymbols" enabled="false" level="WARNING" enabled_by_default="false" />
|
346 |
+
<inspection_tool class="JSUrlImportUsage" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
347 |
+
<inspection_tool class="JSValidateJSDoc" enabled="false" level="WARNING" enabled_by_default="false" />
|
348 |
+
<inspection_tool class="JSValidateTypes" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
349 |
+
<inspection_tool class="JSVoidFunctionReturnValueUsed" enabled="false" level="WARNING" enabled_by_default="false" />
|
350 |
+
<inspection_tool class="JSXDomNesting" enabled="false" level="WARNING" enabled_by_default="false" />
|
351 |
+
<inspection_tool class="JSXNamespaceValidation" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
352 |
+
<inspection_tool class="JSXSyntaxUsed" enabled="false" level="ERROR" enabled_by_default="false" />
|
353 |
+
<inspection_tool class="JSXUnresolvedComponent" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
354 |
+
<inspection_tool class="JsCoverageInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
355 |
+
<inspection_tool class="Json5StandardCompliance" enabled="false" level="ERROR" enabled_by_default="false" />
|
356 |
+
<inspection_tool class="JsonDuplicatePropertyKeys" enabled="false" level="WARNING" enabled_by_default="false" />
|
357 |
+
<inspection_tool class="JsonPathEvaluateUnknownKey" enabled="false" level="WARNING" enabled_by_default="false" />
|
358 |
+
<inspection_tool class="JsonPathUnknownFunction" enabled="false" level="WARNING" enabled_by_default="false" />
|
359 |
+
<inspection_tool class="JsonPathUnknownOperator" enabled="false" level="WARNING" enabled_by_default="false" />
|
360 |
+
<inspection_tool class="JsonSchemaCompliance" enabled="false" level="WARNING" enabled_by_default="false" />
|
361 |
+
<inspection_tool class="JsonSchemaDeprecation" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
362 |
+
<inspection_tool class="JsonSchemaRefReference" enabled="false" level="WARNING" enabled_by_default="false" />
|
363 |
+
<inspection_tool class="JsonStandardCompliance" enabled="false" level="ERROR" enabled_by_default="false" />
|
364 |
+
<inspection_tool class="JupyterPackageInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
365 |
+
<inspection_tool class="KarmaConfigFile" enabled="false" level="WARNING" enabled_by_default="false" />
|
366 |
+
<inspection_tool class="LabeledStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
367 |
+
<inspection_tool class="LanguageDetectionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
368 |
+
<inspection_tool class="LessResolvedByNameOnly" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
369 |
+
<inspection_tool class="LessUnresolvedMixin" enabled="false" level="WARNING" enabled_by_default="false" />
|
370 |
+
<inspection_tool class="LessUnresolvedVariable" enabled="false" level="WARNING" enabled_by_default="false" />
|
371 |
+
<inspection_tool class="LocalVariableNamingConventionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
372 |
+
<option name="m_regex" value="[a-z][A-Za-z]*" />
|
373 |
+
<option name="m_minLength" value="1" />
|
374 |
+
<option name="m_maxLength" value="32" />
|
375 |
+
</inspection_tool>
|
376 |
+
<inspection_tool class="LongLine" enabled="false" level="WARNING" enabled_by_default="false" />
|
377 |
+
<inspection_tool class="LoopStatementThatDoesntLoopJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
378 |
+
<inspection_tool class="LossyEncoding" enabled="false" level="WARNING" enabled_by_default="false" />
|
379 |
+
<inspection_tool class="MagicNumberJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
380 |
+
<inspection_tool class="MarkdownIncorrectTableFormatting" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
381 |
+
<inspection_tool class="MarkdownIncorrectlyNumberedListItem" enabled="false" level="WARNING" enabled_by_default="false" />
|
382 |
+
<inspection_tool class="MarkdownLinkDestinationWithSpaces" enabled="false" level="WARNING" enabled_by_default="false" />
|
383 |
+
<inspection_tool class="MarkdownNoTableBorders" enabled="false" level="ERROR" enabled_by_default="false" />
|
384 |
+
<inspection_tool class="MarkdownOutdatedTableOfContents" enabled="false" level="WARNING" enabled_by_default="false" />
|
385 |
+
<inspection_tool class="MarkdownUnresolvedFileReference" enabled="false" level="WARNING" enabled_by_default="false" />
|
386 |
+
<inspection_tool class="MarkdownUnresolvedHeaderReference" enabled="false" level="WARNING" enabled_by_default="false" />
|
387 |
+
<inspection_tool class="MarkdownUnresolvedLinkLabel" enabled="false" level="WARNING" enabled_by_default="false" />
|
388 |
+
<inspection_tool class="MongoJSDeprecationInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
389 |
+
<inspection_tool class="MongoJSExtDeprecationInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
390 |
+
<inspection_tool class="MongoJSExtResolveInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
391 |
+
<inspection_tool class="MongoJSExtSideEffectsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
392 |
+
<inspection_tool class="MongoJSResolveInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
393 |
+
<inspection_tool class="MongoJSSideEffectsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
394 |
+
<inspection_tool class="MsBuiltinInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
395 |
+
<inspection_tool class="MsOrderByInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
396 |
+
<inspection_tool class="MysqlLoadDataPathInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
397 |
+
<inspection_tool class="MysqlParsingInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
398 |
+
<inspection_tool class="MysqlSpaceAfterFunctionNameInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
399 |
+
<inspection_tool class="NegatedConditionalExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
400 |
+
<inspection_tool class="NegatedIfStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
401 |
+
<inspection_tool class="NestedAssignmentJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
402 |
+
<inspection_tool class="NestedConditionalExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
403 |
+
<inspection_tool class="NestedFunctionCallJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
404 |
+
<inspection_tool class="NestedFunctionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
405 |
+
<option name="m_includeAnonymousFunctions" value="false" />
|
406 |
+
</inspection_tool>
|
407 |
+
<inspection_tool class="NestedSwitchStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
408 |
+
<inspection_tool class="NestingDepthJS" enabled="false" level="WARNING" enabled_by_default="false">
|
409 |
+
<option name="m_limit" value="5" />
|
410 |
+
</inspection_tool>
|
411 |
+
<inspection_tool class="NodeCoreCodingAssistance" enabled="false" level="WARNING" enabled_by_default="false" />
|
412 |
+
<inspection_tool class="NonAsciiCharacters" enabled="false" level="WARNING" enabled_by_default="false" />
|
413 |
+
<inspection_tool class="NonBlockStatementBodyJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
414 |
+
<inspection_tool class="NpmUsedModulesInstalled" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
415 |
+
<inspection_tool class="ObjectAllocationIgnoredJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
416 |
+
<inspection_tool class="OraMissingBodyInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
417 |
+
<inspection_tool class="OraOverloadInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
418 |
+
<inspection_tool class="OraUnmatchedForwardDeclarationInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
419 |
+
<inspection_tool class="OverlyComplexArithmeticExpressionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
420 |
+
<option name="m_limit" value="6" />
|
421 |
+
</inspection_tool>
|
422 |
+
<inspection_tool class="OverlyComplexBooleanExpressionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
423 |
+
<option name="m_limit" value="3" />
|
424 |
+
</inspection_tool>
|
425 |
+
<inspection_tool class="PackageJsonMismatchedDependency" enabled="false" level="WARNING" enabled_by_default="false" />
|
426 |
+
<inspection_tool class="ParameterNamingConventionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
427 |
+
<option name="m_regex" value="[a-z][A-Za-z]*" />
|
428 |
+
<option name="m_minLength" value="1" />
|
429 |
+
<option name="m_maxLength" value="32" />
|
430 |
+
</inspection_tool>
|
431 |
+
<inspection_tool class="ParametersPerFunctionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
432 |
+
<option name="m_limit" value="5" />
|
433 |
+
</inspection_tool>
|
434 |
+
<inspection_tool class="PgSelectFromProcedureInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
435 |
+
<inspection_tool class="PlatformDetectionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
436 |
+
<inspection_tool class="PoetryPackageVersionsInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
437 |
+
<inspection_tool class="PointlessArithmeticExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
438 |
+
<inspection_tool class="PointlessBitwiseExpressionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
439 |
+
<option name="m_ignoreExpressionsContainingConstants" value="false" />
|
440 |
+
</inspection_tool>
|
441 |
+
<inspection_tool class="PointlessBooleanExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
442 |
+
<inspection_tool class="PostCssCustomMedia" enabled="false" level="ERROR" enabled_by_default="false" />
|
443 |
+
<inspection_tool class="PostCssCustomSelector" enabled="false" level="ERROR" enabled_by_default="false" />
|
444 |
+
<inspection_tool class="PostCssMediaRange" enabled="false" level="ERROR" enabled_by_default="false" />
|
445 |
+
<inspection_tool class="PostCssNesting" enabled="false" level="WARNING" enabled_by_default="false" />
|
446 |
+
<inspection_tool class="PostCssUnresolvedModuleValueReference" enabled="false" level="ERROR" enabled_by_default="false" />
|
447 |
+
<inspection_tool class="ProblematicWhitespace" enabled="false" level="WARNING" enabled_by_default="false" />
|
448 |
+
<inspection_tool class="Puppet3Deprecations" enabled="false" level="WARNING" enabled_by_default="false" />
|
449 |
+
<inspection_tool class="Puppet4Deprecations" enabled="false" level="WARNING" enabled_by_default="false" />
|
450 |
+
<inspection_tool class="PuppetMultipleHashSetParamsPerResourceInstance" enabled="false" level="ERROR" enabled_by_default="false" />
|
451 |
+
<inspection_tool class="PuppetUnresolved" enabled="false" level="WARNING" enabled_by_default="false" />
|
452 |
+
<inspection_tool class="PyAbstractClassInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
453 |
+
<inspection_tool class="PyArgumentEqualDefaultInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
454 |
+
<inspection_tool class="PyArgumentListInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
455 |
+
<inspection_tool class="PyAssignmentToLoopOrWithParameterInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
456 |
+
<inspection_tool class="PyAsyncCallInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
457 |
+
<inspection_tool class="PyAttributeOutsideInitInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
458 |
+
<inspection_tool class="PyAugmentAssignmentInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
459 |
+
<inspection_tool class="PyBDDParametersInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
460 |
+
<inspection_tool class="PyBehaveInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
461 |
+
<inspection_tool class="PyBroadExceptionInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
462 |
+
<inspection_tool class="PyByteLiteralInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
463 |
+
<inspection_tool class="PyCallingNonCallableInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
464 |
+
<inspection_tool class="PyChainedComparisonsInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
465 |
+
<inspection_tool class="PyClassHasNoInitInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
466 |
+
<inspection_tool class="PyClassVarInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
467 |
+
<inspection_tool class="PyClassicStyleClassInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
468 |
+
<inspection_tool class="PyComparisonWithNoneInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
469 |
+
<inspection_tool class="PyCompatibilityInspection" enabled="false" level="WARNING" enabled_by_default="false">
|
470 |
+
<option name="ourVersions">
|
471 |
+
<value>
|
472 |
+
<list size="2">
|
473 |
+
<item index="0" class="java.lang.String" itemvalue="2.7" />
|
474 |
+
<item index="1" class="java.lang.String" itemvalue="3.12" />
|
475 |
+
</list>
|
476 |
+
</value>
|
477 |
+
</option>
|
478 |
+
</inspection_tool>
|
479 |
+
<inspection_tool class="PyDataclassInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
480 |
+
<inspection_tool class="PyDecoratorInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
481 |
+
<inspection_tool class="PyDefaultArgumentInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
482 |
+
<inspection_tool class="PyDeprecationInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
483 |
+
<inspection_tool class="PyDictCreationInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
484 |
+
<inspection_tool class="PyDictDuplicateKeysInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
485 |
+
<inspection_tool class="PyDocstringTypesInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
486 |
+
<inspection_tool class="PyDunderSlotsInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
487 |
+
<inspection_tool class="PyExceptClausesOrderInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
488 |
+
<inspection_tool class="PyExceptionInheritInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
489 |
+
<inspection_tool class="PyFinalInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
490 |
+
<inspection_tool class="PyFromFutureImportInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
491 |
+
<inspection_tool class="PyGlobalUndefinedInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
492 |
+
<inspection_tool class="PyInconsistentIndentationInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
493 |
+
<inspection_tool class="PyIncorrectDocstringInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
494 |
+
<inspection_tool class="PyInitNewSignatureInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
495 |
+
<inspection_tool class="PyInterpreterInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
496 |
+
<inspection_tool class="PyListCreationInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
497 |
+
<inspection_tool class="PyMandatoryEncodingInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
498 |
+
<inspection_tool class="PyMethodFirstArgAssignmentInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
499 |
+
<inspection_tool class="PyMethodMayBeStaticInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
500 |
+
<inspection_tool class="PyMethodOverridingInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
501 |
+
<inspection_tool class="PyMethodParametersInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
502 |
+
<inspection_tool class="PyMissingConstructorInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
503 |
+
<inspection_tool class="PyMissingOrEmptyDocstringInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
504 |
+
<inspection_tool class="PyMissingTypeHintsInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
505 |
+
<inspection_tool class="PyNamedTupleInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
506 |
+
<inspection_tool class="PyNestedDecoratorsInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
507 |
+
<inspection_tool class="PyNonAsciiCharInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
508 |
+
<inspection_tool class="PyNoneFunctionAssignmentInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
509 |
+
<inspection_tool class="PyOldStyleClassesInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
510 |
+
<inspection_tool class="PyOverloadsInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
511 |
+
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
512 |
+
<option name="ignoredPackages">
|
513 |
+
<value>
|
514 |
+
<list size="0" />
|
515 |
+
</value>
|
516 |
+
</option>
|
517 |
+
</inspection_tool>
|
518 |
+
<inspection_tool class="PyPandasSeriesToListInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
519 |
+
<inspection_tool class="PyPep8Inspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
520 |
+
<inspection_tool class="PyPep8NamingInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
521 |
+
<inspection_tool class="PyPropertyAccessInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
522 |
+
<inspection_tool class="PyPropertyDefinitionInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
523 |
+
<inspection_tool class="PyProtectedMemberInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
524 |
+
<inspection_tool class="PyProtocolInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
525 |
+
<inspection_tool class="PyRedeclarationInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
526 |
+
<inspection_tool class="PyRedundantParenthesesInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
527 |
+
<inspection_tool class="PyRelativeImportInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
528 |
+
<inspection_tool class="PyReturnFromInitInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
529 |
+
<inspection_tool class="PySetFunctionToLiteralInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
530 |
+
<inspection_tool class="PyShadowingBuiltinsInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
531 |
+
<inspection_tool class="PyShadowingNamesInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
532 |
+
<inspection_tool class="PySimplifyBooleanCheckInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
533 |
+
<inspection_tool class="PySingleQuotedDocstringInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
534 |
+
<inspection_tool class="PyStatementEffectInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
535 |
+
<inspection_tool class="PyStringFormatInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
536 |
+
<inspection_tool class="PyStubPackagesAdvertiser" enabled="true" level="WARNING" enabled_by_default="true" />
|
537 |
+
<inspection_tool class="PyStubPackagesCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
538 |
+
<inspection_tool class="PySuperArgumentsInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
539 |
+
<inspection_tool class="PyTestParametrizedInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
540 |
+
<inspection_tool class="PyTrailingSemicolonInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
541 |
+
<inspection_tool class="PyTupleAssignmentBalanceInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
542 |
+
<inspection_tool class="PyTupleItemAssignmentInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
543 |
+
<inspection_tool class="PyTypeCheckerInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
544 |
+
<inspection_tool class="PyTypeHintsInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
545 |
+
<inspection_tool class="PyTypedDictInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
546 |
+
<inspection_tool class="PyUnboundLocalVariableInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
547 |
+
<inspection_tool class="PyUnnecessaryBackslashInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
548 |
+
<inspection_tool class="PyUnreachableCodeInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
549 |
+
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
550 |
+
<inspection_tool class="PyUnusedLocalInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
|
551 |
+
<inspection_tool class="PyprojectInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
552 |
+
<inspection_tool class="PyramidSetupInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
553 |
+
<inspection_tool class="QodanaSanity" enabled="false" level="ERROR" enabled_by_default="false" />
|
554 |
+
<inspection_tool class="QodanaServiceMessage" enabled="false" level="ERROR" enabled_by_default="false" />
|
555 |
+
<inspection_tool class="Query_bound_parameters" enabled="false" level="WARNING" enabled_by_default="false" />
|
556 |
+
<inspection_tool class="Query_index_required" enabled="false" level="WARNING" enabled_by_default="false" />
|
557 |
+
<inspection_tool class="Query_restricted" enabled="false" level="WARNING" enabled_by_default="false" />
|
558 |
+
<inspection_tool class="ReassignedToPlainText" enabled="false" level="WARNING" enabled_by_default="false" />
|
559 |
+
<inspection_tool class="RedundantSuppression" enabled="false" level="WARNING" enabled_by_default="false" />
|
560 |
+
<inspection_tool class="RegExpAnonymousGroup" enabled="false" level="WARNING" enabled_by_default="false" />
|
561 |
+
<inspection_tool class="RegExpDuplicateAlternationBranch" enabled="false" level="WARNING" enabled_by_default="false" />
|
562 |
+
<inspection_tool class="RegExpDuplicateCharacterInClass" enabled="false" level="WARNING" enabled_by_default="false" />
|
563 |
+
<inspection_tool class="RegExpEmptyAlternationBranch" enabled="false" level="WARNING" enabled_by_default="false" />
|
564 |
+
<inspection_tool class="RegExpEscapedMetaCharacter" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
565 |
+
<inspection_tool class="RegExpOctalEscape" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
566 |
+
<inspection_tool class="RegExpRedundantClassElement" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
567 |
+
<inspection_tool class="RegExpRedundantEscape" enabled="false" level="WARNING" enabled_by_default="false" />
|
568 |
+
<inspection_tool class="RegExpRedundantNestedCharacterClass" enabled="false" level="WARNING" enabled_by_default="false" />
|
569 |
+
<inspection_tool class="RegExpRepeatedSpace" enabled="false" level="WARNING" enabled_by_default="false" />
|
570 |
+
<inspection_tool class="RegExpSimplifiable" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
571 |
+
<inspection_tool class="RegExpSingleCharAlternation" enabled="false" level="WARNING" enabled_by_default="false" />
|
572 |
+
<inspection_tool class="RegExpSuspiciousBackref" enabled="false" level="WARNING" enabled_by_default="false" />
|
573 |
+
<inspection_tool class="RegExpUnexpectedAnchor" enabled="false" level="WARNING" enabled_by_default="false" />
|
574 |
+
<inspection_tool class="RegExpUnnecessaryNonCapturingGroup" enabled="false" level="WARNING" enabled_by_default="false" />
|
575 |
+
<inspection_tool class="ReplaceAssignmentWithOperatorAssignmentJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
576 |
+
<inspection_tool class="RequiredAttributes" enabled="false" level="WARNING" enabled_by_default="false">
|
577 |
+
<option name="myAdditionalRequiredHtmlAttributes" value="" />
|
578 |
+
</inspection_tool>
|
579 |
+
<inspection_tool class="ReservedWordUsedAsNameJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
580 |
+
<inspection_tool class="RestRoleInspection" enabled="false" level="WARNING" enabled_by_default="false">
|
581 |
+
<option name="ignoredRoles">
|
582 |
+
<value>
|
583 |
+
<list size="0" />
|
584 |
+
</value>
|
585 |
+
</option>
|
586 |
+
</inspection_tool>
|
587 |
+
<inspection_tool class="Restricted_Python_calls" enabled="false" level="WARNING" enabled_by_default="false" />
|
588 |
+
<inspection_tool class="ReturnFromFinallyBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
589 |
+
<inspection_tool class="ReuseOfLocalVariableJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
590 |
+
<inspection_tool class="SSBasedInspection" enabled="true" level="WARNING" enabled_by_default="true" />
|
591 |
+
<inspection_tool class="SassScssResolvedByNameOnly" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
592 |
+
<inspection_tool class="SassScssUnresolvedMixin" enabled="false" level="WARNING" enabled_by_default="false" />
|
593 |
+
<inspection_tool class="SassScssUnresolvedPlaceholderSelector" enabled="false" level="WARNING" enabled_by_default="false" />
|
594 |
+
<inspection_tool class="SassScssUnresolvedVariable" enabled="false" level="WARNING" enabled_by_default="false" />
|
595 |
+
<inspection_tool class="ShellCheck" enabled="false" level="ERROR" enabled_by_default="false" />
|
596 |
+
<inspection_tool class="ShiftOutOfRangeJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
597 |
+
<inspection_tool class="SillyAssignmentJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
598 |
+
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
|
599 |
+
<option name="processCode" value="true" />
|
600 |
+
<option name="processLiterals" value="true" />
|
601 |
+
<option name="processComments" value="true" />
|
602 |
+
</inspection_tool>
|
603 |
+
<inspection_tool class="SqlAddNotNullColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
604 |
+
<inspection_tool class="SqlAggregatesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
605 |
+
<inspection_tool class="SqlAmbiguousColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
606 |
+
<inspection_tool class="SqlAutoIncrementDuplicateInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
607 |
+
<inspection_tool class="SqlCallNotationInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
608 |
+
<inspection_tool class="SqlCaseVsCoalesceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
609 |
+
<inspection_tool class="SqlCaseVsIfInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
610 |
+
<inspection_tool class="SqlCheckUsingColumnsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
611 |
+
<inspection_tool class="SqlConstantConditionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
612 |
+
<inspection_tool class="SqlConstantExpressionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
613 |
+
<inspection_tool class="SqlCurrentSchemaInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
614 |
+
<inspection_tool class="SqlDeprecateTypeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
615 |
+
<inspection_tool class="SqlDerivedTableAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
616 |
+
<inspection_tool class="SqlDialectInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
617 |
+
<inspection_tool class="SqlDropIndexedColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
618 |
+
<inspection_tool class="SqlDtInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
619 |
+
<inspection_tool class="SqlDuplicateColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
620 |
+
<inspection_tool class="SqlGotoInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
621 |
+
<inspection_tool class="SqlIdentifierInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
622 |
+
<inspection_tool class="SqlIllegalCursorStateInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
623 |
+
<inspection_tool class="SqlInsertIntoGeneratedColumnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
624 |
+
<inspection_tool class="SqlInsertNullIntoNotNullInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
625 |
+
<inspection_tool class="SqlInsertValuesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
626 |
+
<inspection_tool class="SqlJoinWithoutOnInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
627 |
+
<inspection_tool class="SqlMisleadingReferenceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
628 |
+
<inspection_tool class="SqlMissingColumnAliasesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
629 |
+
<inspection_tool class="SqlMissingReturnInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
630 |
+
<inspection_tool class="SqlMultipleLimitClausesInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
631 |
+
<inspection_tool class="SqlNamedArgumentsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
632 |
+
<inspection_tool class="SqlNoDataSourceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
633 |
+
<inspection_tool class="SqlNullComparisonInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
634 |
+
<inspection_tool class="SqlRedundantAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
635 |
+
<inspection_tool class="SqlRedundantCodeInCoalesceInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
636 |
+
<inspection_tool class="SqlRedundantElseNullInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
637 |
+
<inspection_tool class="SqlRedundantLimitInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
638 |
+
<inspection_tool class="SqlRedundantOrderingDirectionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
639 |
+
<inspection_tool class="SqlResolveInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
640 |
+
<inspection_tool class="SqlShadowingAliasInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
641 |
+
<inspection_tool class="SqlShouldBeInGroupByInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
642 |
+
<inspection_tool class="SqlSideEffectsInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
643 |
+
<inspection_tool class="SqlSignatureInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
644 |
+
<inspection_tool class="SqlStorageInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
645 |
+
<inspection_tool class="SqlStringLengthExceededInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
646 |
+
<inspection_tool class="SqlTransactionStatementInTriggerInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
647 |
+
<inspection_tool class="SqlTriggerTransitionInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
648 |
+
<inspection_tool class="SqlTypeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
649 |
+
<inspection_tool class="SqlUnicodeStringLiteralInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
650 |
+
<inspection_tool class="SqlUnreachableCodeInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
651 |
+
<inspection_tool class="SqlUnusedCteInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
652 |
+
<inspection_tool class="SqlUnusedSubqueryItemInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
653 |
+
<inspection_tool class="SqlUnusedVariableInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
654 |
+
<inspection_tool class="SqlWithoutWhereInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
655 |
+
<inspection_tool class="StandardJS" enabled="false" level="ERROR" enabled_by_default="false" />
|
656 |
+
<inspection_tool class="StatementsPerFunctionJS" enabled="false" level="WARNING" enabled_by_default="false">
|
657 |
+
<option name="m_limit" value="30" />
|
658 |
+
</inspection_tool>
|
659 |
+
<inspection_tool class="StringLiteralBreaksHTMLJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
660 |
+
<inspection_tool class="Stylelint" enabled="false" level="ERROR" enabled_by_default="false" />
|
661 |
+
<inspection_tool class="SuspiciousTypeOfGuard" enabled="false" level="WARNING" enabled_by_default="false" />
|
662 |
+
<inspection_tool class="SwJsonMaybeSpecificationInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
663 |
+
<inspection_tool class="SwJsonUnresolvedReferencesInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
664 |
+
<inspection_tool class="SwYamlMaybeSpecificationInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
665 |
+
<inspection_tool class="SwYamlUnresolvedReferencesInspection" enabled="false" level="ERROR" enabled_by_default="false" />
|
666 |
+
<inspection_tool class="TailRecursionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
667 |
+
<inspection_tool class="TaskProblemsInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
668 |
+
<inspection_tool class="TextLabelInSwitchStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
669 |
+
<inspection_tool class="ThisExpressionReferencesGlobalObjectJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
670 |
+
<inspection_tool class="ThreeNegationsPerFunctionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
671 |
+
<inspection_tool class="ThrowFromFinallyBlockJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
672 |
+
<inspection_tool class="TodoComment" enabled="false" level="WARNING" enabled_by_default="false" />
|
673 |
+
<inspection_tool class="TomlUnresolvedReference" enabled="false" level="WARNING" enabled_by_default="false" />
|
674 |
+
<inspection_tool class="TrailingSpacesInProperty" enabled="false" level="WARNING" enabled_by_default="false" />
|
675 |
+
<inspection_tool class="TrivialConditionalJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
676 |
+
<inspection_tool class="TrivialIfJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
677 |
+
<inspection_tool class="TsLint" enabled="false" level="WARNING" enabled_by_default="false" />
|
678 |
+
<inspection_tool class="TypeScriptAbstractClassConstructorCanBeMadeProtected" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
679 |
+
<inspection_tool class="TypeScriptCheckImport" enabled="false" level="ERROR" enabled_by_default="false" />
|
680 |
+
<inspection_tool class="TypeScriptConfig" enabled="false" level="WARNING" enabled_by_default="false" />
|
681 |
+
<inspection_tool class="TypeScriptDuplicateUnionOrIntersectionType" enabled="false" level="WARNING" enabled_by_default="false" />
|
682 |
+
<inspection_tool class="TypeScriptExplicitMemberType" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
683 |
+
<inspection_tool class="TypeScriptFieldCanBeMadeReadonly" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
684 |
+
<inspection_tool class="TypeScriptJSXUnresolvedComponent" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
685 |
+
<inspection_tool class="TypeScriptLibrary" enabled="false" level="ERROR" enabled_by_default="false" />
|
686 |
+
<inspection_tool class="TypeScriptMissingAugmentationImport" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
687 |
+
<inspection_tool class="TypeScriptMissingConfigOption" enabled="false" level="WARNING" enabled_by_default="false" />
|
688 |
+
<inspection_tool class="TypeScriptRedundantGenericType" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
689 |
+
<inspection_tool class="TypeScriptSmartCast" enabled="false" level="WARNING" enabled_by_default="false" />
|
690 |
+
<inspection_tool class="TypeScriptSuspiciousConstructorParameterAssignment" enabled="false" level="WARNING" enabled_by_default="false" />
|
691 |
+
<inspection_tool class="TypeScriptUMDGlobal" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
692 |
+
<inspection_tool class="TypeScriptUnresolvedReference" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
693 |
+
<inspection_tool class="TypeScriptValidateGenericTypes" enabled="false" level="ERROR" enabled_by_default="false" />
|
694 |
+
<inspection_tool class="TypeScriptValidateJSTypes" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
695 |
+
<inspection_tool class="TypeScriptValidateTypes" enabled="false" level="ERROR" enabled_by_default="false" />
|
696 |
+
<inspection_tool class="UnnecessaryContinueJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
697 |
+
<inspection_tool class="UnnecessaryLabelJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
698 |
+
<inspection_tool class="UnnecessaryLabelOnBreakStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
699 |
+
<inspection_tool class="UnnecessaryLabelOnContinueStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
700 |
+
<inspection_tool class="UnnecessaryLocalVariableJS" enabled="false" level="WARNING" enabled_by_default="false">
|
701 |
+
<option name="m_ignoreImmediatelyReturnedVariables" value="false" />
|
702 |
+
<option name="m_ignoreAnnotatedVariables" value="false" />
|
703 |
+
</inspection_tool>
|
704 |
+
<inspection_tool class="UnnecessaryReturnJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
705 |
+
<inspection_tool class="UnreachableCodeJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
706 |
+
<inspection_tool class="UnresolvedReference" enabled="false" level="ERROR" enabled_by_default="false" />
|
707 |
+
<inspection_tool class="UnterminatedStatementJS" enabled="false" level="WARNING" enabled_by_default="false">
|
708 |
+
<option name="ignoreSemicolonAtEndOfBlock" value="true" />
|
709 |
+
</inspection_tool>
|
710 |
+
<inspection_tool class="UnusedCatchParameterJS" enabled="false" level="WARNING" enabled_by_default="false">
|
711 |
+
<option name="m_ignoreCatchBlocksWithComments" value="false" />
|
712 |
+
</inspection_tool>
|
713 |
+
<inspection_tool class="UnusedDefine" enabled="false" level="WARNING" enabled_by_default="false" />
|
714 |
+
<inspection_tool class="UnusedProperty" enabled="false" level="WARNING" enabled_by_default="false" />
|
715 |
+
<inspection_tool class="UpdateDependencyToLatestVersion" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
716 |
+
<inspection_tool class="UseEllipsisInPropertyInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
717 |
+
<inspection_tool class="VoidExpressionJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
718 |
+
<inspection_tool class="VueDataFunction" enabled="false" level="WARNING" enabled_by_default="false" />
|
719 |
+
<inspection_tool class="VueDeprecatedSymbol" enabled="false" level="WARNING" enabled_by_default="false" />
|
720 |
+
<inspection_tool class="VueDuplicateTag" enabled="false" level="WARNING" enabled_by_default="false" />
|
721 |
+
<inspection_tool class="VueMissingComponentImportInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
722 |
+
<inspection_tool class="VueUnrecognizedDirective" enabled="false" level="WARNING" enabled_by_default="false" />
|
723 |
+
<inspection_tool class="VueUnrecognizedSlot" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
724 |
+
<inspection_tool class="VulnerableLibrariesGlobal" enabled="false" level="WARNING" enabled_by_default="false" />
|
725 |
+
<inspection_tool class="VulnerableLibrariesLocal" enabled="false" level="WARNING" enabled_by_default="false" />
|
726 |
+
<inspection_tool class="WebpackConfigHighlighting" enabled="false" level="WARNING" enabled_by_default="false" />
|
727 |
+
<inspection_tool class="WithStatementJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
728 |
+
<inspection_tool class="WrongPropertyKeyValueDelimiter" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
729 |
+
<inspection_tool class="XHTMLIncompatabilitiesJS" enabled="false" level="WARNING" enabled_by_default="false" />
|
730 |
+
<inspection_tool class="XmlDefaultAttributeValue" enabled="false" level="WARNING" enabled_by_default="false" />
|
731 |
+
<inspection_tool class="XmlDeprecatedElement" enabled="false" level="WARNING" enabled_by_default="false" />
|
732 |
+
<inspection_tool class="XmlDuplicatedId" enabled="false" level="ERROR" enabled_by_default="false" />
|
733 |
+
<inspection_tool class="XmlHighlighting" enabled="false" level="ERROR" enabled_by_default="false" />
|
734 |
+
<inspection_tool class="XmlInvalidId" enabled="false" level="ERROR" enabled_by_default="false" />
|
735 |
+
<inspection_tool class="XmlPathReference" enabled="false" level="ERROR" enabled_by_default="false" />
|
736 |
+
<inspection_tool class="XmlUnboundNsPrefix" enabled="false" level="WARNING" enabled_by_default="false" />
|
737 |
+
<inspection_tool class="XmlUnusedNamespaceDeclaration" enabled="false" level="WARNING" enabled_by_default="false" />
|
738 |
+
<inspection_tool class="XmlWrongRootElement" enabled="false" level="ERROR" enabled_by_default="false" />
|
739 |
+
<inspection_tool class="YAMLDuplicatedKeys" enabled="false" level="ERROR" enabled_by_default="false" />
|
740 |
+
<inspection_tool class="YAMLIncompatibleTypes" enabled="false" level="WARNING" enabled_by_default="false" />
|
741 |
+
<inspection_tool class="YAMLRecursiveAlias" enabled="false" level="ERROR" enabled_by_default="false" />
|
742 |
+
<inspection_tool class="YAMLSchemaDeprecation" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
743 |
+
<inspection_tool class="YAMLSchemaValidation" enabled="false" level="WARNING" enabled_by_default="false" />
|
744 |
+
<inspection_tool class="YAMLUnresolvedAlias" enabled="false" level="ERROR" enabled_by_default="false" />
|
745 |
+
<inspection_tool class="YAMLUnusedAnchor" enabled="false" level="WARNING" enabled_by_default="false" />
|
746 |
+
</profile>
|
747 |
+
</component>
|
.idea/inspectionProfiles/profiles_settings.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<component name="InspectionProjectProfileManager">
|
2 |
+
<settings>
|
3 |
+
<option name="USE_PROJECT_PROFILE" value="false" />
|
4 |
+
<version value="1.0" />
|
5 |
+
</settings>
|
6 |
+
</component>
|
.idea/misc.xml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9" project-jdk-type="Python SDK" />
|
4 |
+
</project>
|
.idea/shelf/Uncommitted_changes_before_Checkout_at_2023_8_28,_21_02_[Changes]/shelved.patch
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Index: scripts/prompt_rg.py
|
2 |
+
IDEA additional info:
|
3 |
+
Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
|
4 |
+
<+>import importlib\n\nimport gradio as gr\n\nfrom promptsModules.sd_command_gen import project_config as gen_config\nfrom promptsModules.web_api import (create_prompts)\nfrom promptsModules.model_manager import (LoraConfigManager)\n\nproject_config = gen_config\nt2i_text_box = None\nIS_PLUGIN = True\n\n\ndef get_model_input(com_value):\n arr = com_value.split(\",\")\n target_list = []\n if len(arr) > 0:\n target_list = [x.strip() for x in arr if x.strip()]\n return target_list\n\n\n######### gen #########\n# 我有史以来写的最长的方法\ndef gen_action(gen_times, widget_lora, widget_lyco, widget_embeddings, model_order, additional_prompt, angle, body_framing, location,\n pose_type,\n dynamic_mode, breasts_size, body_wear, top_wear, bottom_wear, leg_wear, panties, shoes_type, body_with,\n body_status, body_desc, cloth_trim, profession, hair_color, add_hair_style, enable_eye_color,\n face_expression, add_girl_beautyful, has_girl_desc, nsfw_type, is_nsfw, is_uncensored, is_simple_nude,\n nude_strong, sexual_list_random_index_times, nude_list_random_index_times, has_starting, is_realistic,\n add_colors, enable_day_weather, enable_light_effect, enable_image_tech, accessories_random_tims,\n object_random_times, suffix_words_random_times, assign_angle, assign_body_framing, assign_place,\n assign_pose, assign_job, assigin_expression, assign_clothes, assign_leg_wear, assign_shoes,\n assign_leg_wear_color, assign_shoes_color, assign_hair_color, hair_accessories, neck_accessories,\n earrings, has_ending, hair_length, people_cnt):\n if angle:\n project_config[\"angle\"] = \"\"\n else:\n project_config[\"angle\"] = assign_angle\n\n if body_framing:\n project_config[\"body_framing\"] = \"\"\n else:\n project_config[\"body_framing\"] = assign_body_framing\n\n if location:\n project_config[\"place\"] = \"\"\n else:\n project_config[\"place\"] = assign_place\n\n if pose_type == 2:\n project_config[\"assign_pose\"] = assign_pose\n else:\n project_config[\"assign_pose\"] = \"\"\n project_config[\"pose_type\"] = pose_type + 1\n\n project_config[\"dynamic_mode\"] = dynamic_mode\n if breasts_size == \"空NULL\":\n project_config[\"breasts_size\"] = \"null\"\n else:\n project_config[\"breasts_size\"] = breasts_size\n\n project_config[\"body_wear\"] = body_wear + 1\n project_config[\"top_wear\"] = top_wear + 1\n project_config[\"bottom_wear\"] = bottom_wear + 1\n project_config[\"leg_wear\"] = leg_wear + 1\n project_config[\"panties\"] = panties\n project_config[\"shoes_type\"] = shoes_type + 1\n project_config[\"body_with\"] = body_with\n project_config[\"body_status\"] = body_status\n project_config[\"body_description\"] = body_desc\n project_config[\"cloth_trim\"] = cloth_trim\n if profession:\n project_config[\"assign_profession\"] = \"\"\n else:\n project_config[\"assign_profession\"] = assign_job\n\n if hair_color and assign_hair_color == \"\":\n project_config[\"hair_color\"] = \"random\"\n else:\n if assign_hair_color == \"\":\n project_config[\"hair_color\"] = \"null\"\n else:\n project_config[\"hair_color\"] = assign_hair_color\n project_config[\"add_hair_style\"] = add_hair_style\n project_config[\"add_hair_length\"] = hair_length\n project_config[\"enable_eye_color\"] = enable_eye_color\n project_config[\"has_girl_desc\"] = has_girl_desc\n project_config[\"add_girl_beautyful\"] = add_girl_beautyful\n\n if face_expression <= 4:\n project_config[\"face_expression\"] = face_expression + 1\n else:\n project_config[\"assign_expression\"] = assigin_expression\n\n project_config[\"nsfw_type\"] = nsfw_type + 1\n project_config[\"is_nsfw\"] = is_nsfw\n project_config[\"is_uncensored\"] = is_uncensored\n project_config[\"is_simple_nude\"] = is_simple_nude\n project_config[\"nude_strong\"] = nude_strong\n\n project_config[\"sexual_list_random_index_times\"] = sexual_list_random_index_times\n project_config[\"nude_list_random_index_times\"] = nude_list_random_index_times\n\n project_config[\"use_starting\"] = has_starting\n project_config[\"is_realistic\"] = is_realistic\n project_config[\"add_colors\"] = add_colors\n project_config[\"enable_day_weather\"] = enable_day_weather\n project_config[\"enable_light_effect\"] = enable_light_effect\n project_config[\"enable_image_tech\"] = enable_image_tech\n project_config[\"accessories_random_tims\"] = accessories_random_tims\n project_config[\"object_random_times\"] = object_random_times\n project_config[\"suffix_words_random_times\"] = suffix_words_random_times\n\n project_config[\"assign_body_clothes\"] = assign_clothes\n project_config[\"assign_leg_wear\"] = assign_leg_wear\n project_config[\"assign_shoes\"] = assign_shoes\n project_config[\"leg_wear_color\"] = assign_leg_wear_color\n project_config[\"shoes_color\"] = assign_shoes_color\n\n project_config[\"add_hair_accessories\"] = hair_accessories\n project_config[\"add_neck_accessories\"] = neck_accessories\n project_config[\"add_earrings\"] = earrings\n project_config[\"add_detail_suffix\"] = has_ending\n project_config[\"girl_cnt\"] = people_cnt\n\n lora_config = get_model_input(widget_lora)\n lyco_config = get_model_input(widget_lyco)\n embeddings_config = get_model_input(widget_embeddings)\n project_config[\"lora\"] = lora_config\n project_config[\"lyco\"] = lyco_config\n project_config[\"embeddings\"] = embeddings_config\n if model_order is None or model_order == '':\n model_order = \"xyz\"\n project_config[\"models_order\"] = model_order\n project_config[\"additional_prompt\"] = additional_prompt\n return create_prompts(gen_times, project_config)\n\n\ndef send_action(result_text):\n if t2i_text_box is not None:\n lines = result_text.split(\"\\n\")\n stripped_lines = [line.strip() for line in lines]\n if len(stripped_lines) > 0:\n return stripped_lines[0]\n\n\ndef load_config_action():\n return LoraConfigManager().export_to_data_frame()\n\n\n######### UI #########\ndef on_ui_tabs():\n with gr.Blocks(analytics_enabled=False) as ui_component:\n with gr.Tab(\"生成prompt\"):\n with gr.Row():\n with gr.Column(scale=3):\n gr.Markdown(\"请修改以下配置\")\n\n with gr.Box():\n with gr.Row():\n time_slider = gr.Slider(1, 6, value=4, label=\"随机生成条数\", step=1, interactive=True)\n\n with gr.Box():\n gr.Markdown(\"视角、地点、动作\")\n with gr.Row():\n angle = gr.Checkbox(False, label=\"视角\", info=\"正面,侧面,背面...\")\n body_framing = gr.Checkbox(False, label=\"身体框架\", info=\"肖像,半身,全身...\")\n location = gr.Checkbox(False, label=\"地点\", info=\"随机地点\")\n pose_type = gr.Dropdown(['基础', '全身', '空NULL'], value='空NULL', type=\"index\",\n label=\"动作类型\",\n interactive=True,\n info=\"人物动作,站、坐、躺...\")\n dynamic_mode = gr.Checkbox(False, label=\"动态模式\",\n info=\"使用dynamic pose, angle,需对应配置勾选\")\n with gr.Box():\n gr.Markdown(\"身体穿着描述, 选择空NULL则不生成该tag\")\n with gr.Column():\n with gr.Row():\n breasts_size = gr.Dropdown([\"medium\", \"large\", \"huge\", \"gigantic\", \"空NULL\"],\n value=\"空NULL\",\n label=\"胸大小描述\", info=\"依次增大= =#\", interactive=True)\n body_wear = gr.Dropdown(\n [\"裙子dress\", \"制服UNIFORM\", \"紧身衣BODYSUIT\", \"传统服饰TRADITIONAL\",\n \"上下搭配(如上身体恤下身短裙)\", \"以上随机\", \"空NULL\"], value=\"空NULL\",\n type=\"index\", label=\"衣服\", info=\"\", interactive=True)\n top_wear = gr.Dropdown(\n [\"衬衫SHIRTS\", \"外套COAT\", \"毛衣SWEATER\", \"其他OTHERS\", \"以上随机RANDOM\"],\n value=\"衬衫SHIRTS\", type=\"index\", label=\"上身衣物\",\n info=\"选择上下搭配(如上身体恤下身短裙)该配置生效\", interactive=True)\n bottom_wear = gr.Dropdown([\"裤子PANTS\", \"短裙SKIRT\", \"短裤SHORTS\", \"以上随机RANDOM\"],\n value=\"短裙SKIRT\", type=\"index\", label=\"下身衣物\",\n info=\"选择上下搭配(如上身体恤下身短裙)该配置生效\",\n interactive=True)\n with gr.Row():\n leg_wear = gr.Dropdown(\n [\"短袜SOCKS\", \"小腿袜KNEEHIGHS\", \"过膝袜OVERKNEEHIGHS\", \"大腿袜THIGHHIGHS\",\n \"连裤袜PANTYHOSE\",\n \"光腿BARE\", \"空NULL\", \"以上随机RANDOM\"], value=\"空NULL\", type=\"index\",\n label=\"袜子\",\n interactive=True)\n panties = gr.Checkbox(False, label=\"内裤\", info=\"勾选则随机给生成一种内裤类型\")\n shoes_type = gr.Dropdown(\n [\"靴子BOOTS\", \"高跟鞋HIGHHEELS\", \"凉鞋SANDALS\", \"拖鞋SLIPPERS\", \"光脚BARE\",\n \"空NULL\"],\n value=\"空NULL\", type=\"index\", label=\"鞋子\", info=\"\", interactive=True)\n with gr.Row():\n body_with = gr.Checkbox(False, label=\"身体缠绕物\", info=\"缠绕一些东西,束缚,丝带,链条\")\n body_status = gr.Checkbox(False, label=\"身体状态\", info=\"湿身、出汗...\")\n body_desc = gr.Checkbox(False, label=\"身体描述\", info=\"完美身材,纤细身体...\")\n cloth_trim = gr.Checkbox(False, label=\"衣服装饰\", info=\"蕾丝,丝带,金色,花等等...\")\n with gr.Box():\n gr.Markdown(\"人物描述\")\n with gr.Row():\n profession = gr.Checkbox(False, label=\"职业\")\n people_cnt = gr.Slider(0, 8, value=1, label=\"人物数量\", step=1, interactive=True)\n with gr.Row():\n hair_length = gr.Checkbox(True, label=\"头发长度\")\n hair_color = gr.Checkbox(True, label=\"头发颜色\", interactive=True)\n add_hair_style = gr.Checkbox(False, label=\"头发风格\")\n enable_eye_color = gr.Checkbox(True, label=\"眼睛颜色\")\n with gr.Row():\n hair_accessories = gr.Checkbox(True, label=\"头饰\")\n neck_accessories = gr.Checkbox(True, label=\"颈部饰物\")\n earrings = gr.Checkbox(True, label=\"耳环\")\n with gr.Row():\n face_expression = gr.Dropdown(\n [\"情绪EMOTIONS\", \"诱惑的SEXUAL\", \"笑容SMILE\", \"俏皮的SMUG\", \"以上随机\", \"空NULL\"],\n value=\"笑容SMILE\",\n type=\"index\", label=\"表情\", interactive=True)\n add_girl_beautyful = gr.Checkbox(False, label=\"描述妹子的短词缀\", info=\"\")\n has_girl_desc = gr.Checkbox(False, label=\"描述妹子的长词缀\", info=\"\")\n\n with gr.Accordion(\"NSFW配置\", open=False):\n with gr.Box():\n with gr.Row():\n nsfw_type = gr.Dropdown([\"裸NUDE\", \"性感SEXUAL\", \"常规NOTNSFW\"], value=\"常规NOTNSFW\",\n type=\"index\",\n label=\"NSFW等级\",\n info=\"请确保你知道自己在干嘛!选择非常规类型,上面的人物衣服设置不生效\",\n interactive=True)\n is_nsfw = gr.Checkbox(False, label=\"是否添加nfsw词缀\")\n is_uncensored = gr.Checkbox(False, label=\"是否添加uncensored词缀\")\n is_simple_nude = gr.Checkbox(False, label=\"是否是简单的nude模式\", info=\"裸模式生效\")\n nude_strong = gr.Checkbox(False, label=\"是否加强nude模式\", info=\"裸模式生效\")\n with gr.Row():\n sexual_list_random_index_times = gr.Slider(0, 5, value=0, step=1,\n label=\"性感词缀随机数\",\n interactive=True)\n nude_list_random_index_times = gr.Slider(0, 9, value=0, step=1, label=\"裸体词缀随机数\",\n interactive=True)\n with gr.Accordion(\"Lora Loha embedding控制\", open=False):\n gr.Markdown(\n \"\"\"\n 关于lora/loha/embedding详细配置使用:[点我查看](https://github.com/HeathWang/prompt-r-gen-sd#loralohaembedding%E6%8E%A7%E5%88%B6%E8%AF%B4%E6%98%8E)\n \"\"\"\n )\n with gr.Box():\n with gr.Row():\n widget_lora = gr.Textbox(\"\", label=\"Lora【x】\",\n info=\"格式如下:101, 101:0.6, 路易斯:0.65\", elem_id=\"rp_widget_lora\")\n widget_lyco = gr.Textbox(\"\", label=\"lyco【y】\",\n info=\"格式如下:101, 101:0.6, 添加细节:1\", elem_id=\"rp_widget_lyco\")\n with gr.Row():\n widget_embeddings = gr.Textbox(\"\", label=\"embeddings【z】\",\n info=\"格式如下:100, ul:0.6\", elem_id=\"rp_widget_embeddings\")\n model_order = gr.Textbox(\"xyz\", label=\"lora,lyco,embed顺序\",\n info=\"默认为xyz顺序,即按照lora,lyco,emb顺序\")\n with gr.Box():\n gr.Markdown(\"其他\")\n with gr.Row():\n has_starting = gr.Checkbox(True, label=\"是否使用起手式\", info=\"best quality, absurdres,\")\n has_ending = gr.Checkbox(True, label=\"添加细节\", info=\"jewelry, ultra-detailed, 8k,\")\n is_realistic = gr.Checkbox(False, label=\"是否添加真实词缀\",\n info=\"realistic, photorealistic\")\n add_colors = gr.Checkbox(False, label=\"是否添加多彩词缀\")\n with gr.Row():\n enable_day_weather = gr.Checkbox(False, label=\"是否添加天气信息\")\n enable_light_effect = gr.Checkbox(True, label=\"是否添加灯光效果\")\n enable_image_tech = gr.Checkbox(False, label=\"是否开启图像技术,如模糊\")\n with gr.Row():\n accessories_random_tims = gr.Slider(0, 8, value=0, step=1, label=\"饰物随机数\",\n interactive=True,\n info=\"戒指,袜带等\")\n object_random_times = gr.Slider(0, 8, value=0, step=1, label=\"物品随机数\",\n info=\"花,冰火元素等\",\n interactive=True)\n suffix_words_random_times = gr.Slider(0, 10, value=0, step=1, label=\"形容词缀随机数\",\n info=\"一些描述奇幻,美丽相关的词缀\",\n interactive=True)\n\n with gr.Accordion(\"精准控制项\", open=False):\n with gr.Box():\n with gr.Row():\n assign_angle = gr.Textbox(\"null\", label=\"指定视角\")\n assign_body_framing = gr.Textbox(\"null\", label=\"指定身体框架\")\n assign_place = gr.Textbox(\"null\", label=\"指定地点\")\n with gr.Row():\n assign_pose = gr.Textbox(\"null\", label=\"指定人物动作\")\n assign_job = gr.Textbox(\"null\", label=\"指定角色\")\n assigin_expression = gr.Textbox(\"null\", label=\"指定人物表情\")\n with gr.Row():\n assign_clothes = gr.Textbox(\"\", label=\"指定衣服\")\n assign_leg_wear = gr.Textbox(\"\", label=\"指定袜子类型\")\n assign_shoes = gr.Textbox(\"\", label=\"指定鞋子类型\")\n with gr.Row():\n assign_leg_wear_color = gr.Textbox(\"\", label=\"指定袜子颜色\")\n assign_shoes_color = gr.Textbox(\"\", label=\"指定鞋子颜色\")\n assign_hair_color = gr.Textbox(\"\", label=\"指定头发颜色\")\n\n with gr.Box():\n gr.Markdown(\"手动输入项\")\n with gr.Row():\n additional_prompt = gr.Textbox(\"\", label=\"额外的prompt\")\n with gr.Column(scale=1):\n gr.Markdown(\"prompt输出:\")\n results = gr.Textbox(\"\", label=\"生成的prompt\", lines=20, show_copy_button=True, interactive=False)\n with gr.Row():\n gen_button = gr.Button(\"生成prompt\")\n send_button = gr.Button(\"发送到文生图\")\n with gr.Tab(\"查看配置\"):\n review_btn = gr.Button(\"加载excel配置\")\n data_sheet = gr.DataFrame(\n headers=[\"id\", \"类型\", \"模型名\", \"描述\"],\n datatype=[\"number\", \"str\", \"str\", \"str\"],\n col_count=4,\n interactive=False,\n )\n review_btn.click(load_config_action, outputs=data_sheet)\n\n gen_button.click(gen_action,\n inputs=[time_slider, widget_lora, widget_lyco, widget_embeddings, model_order, additional_prompt, angle,\n body_framing, location,\n pose_type, dynamic_mode, breasts_size, body_wear, top_wear, bottom_wear, leg_wear,\n panties, shoes_type, body_with, body_status, body_desc, cloth_trim, profession,\n hair_color, add_hair_style, enable_eye_color, face_expression, add_girl_beautyful,\n has_girl_desc, nsfw_type, is_nsfw, is_uncensored, is_simple_nude,\n nude_strong, sexual_list_random_index_times, nude_list_random_index_times,\n has_starting, is_realistic,\n add_colors, enable_day_weather, enable_light_effect, enable_image_tech,\n accessories_random_tims,\n object_random_times, suffix_words_random_times, assign_angle, assign_body_framing,\n assign_place, assign_pose, assign_job, assigin_expression, assign_clothes,\n assign_leg_wear, assign_shoes, assign_leg_wear_color, assign_shoes_color,\n assign_hair_color, hair_accessories, neck_accessories, earrings, has_ending,\n hair_length, people_cnt], outputs=results)\n send_button.click(send_action, inputs=results, outputs=t2i_text_box)\n if IS_PLUGIN:\n return [(ui_component, \"随机提示词RP\", \"随机提示词RP\")]\n else:\n return ui_component\n\n\ndef after_component(component, **kwargs):\n # Find the text2img textbox component\n global t2i_text_box\n if kwargs.get(\"elem_id\") == \"txt2img_prompt\": # postive prompt textbox\n t2i_text_box = component\n\n\nif IS_PLUGIN:\n module_plugin1 = \"modules.script_callbacks\"\n script_module = importlib.import_module(module_plugin1)\n script_module.on_ui_tabs(on_ui_tabs)\n script_module.on_after_component(after_component)\n\nelse:\n on_ui_tabs().launch(debug=True)\n
|
5 |
+
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
6 |
+
<+>UTF-8
|
7 |
+
===================================================================
|
8 |
+
diff --git a/scripts/prompt_rg.py b/scripts/prompt_rg.py
|
9 |
+
--- a/scripts/prompt_rg.py (revision 9db67b30a7ec244451f9e604fc40383e7b22396c)
|
10 |
+
+++ b/scripts/prompt_rg.py (date 1693225532658)
|
11 |
+
@@ -8,7 +8,7 @@
|
12 |
+
|
13 |
+
project_config = gen_config
|
14 |
+
t2i_text_box = None
|
15 |
+
-IS_PLUGIN = True
|
16 |
+
+IS_PLUGIN = False
|
17 |
+
|
18 |
+
|
19 |
+
def get_model_input(com_value):
|
20 |
+
Index: promptsModules/prompts.txt
|
21 |
+
IDEA additional info:
|
22 |
+
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
|
23 |
+
<+>UTF-8
|
24 |
+
===================================================================
|
25 |
+
diff --git a/promptsModules/prompts.txt b/promptsModules/prompts.txt
|
26 |
+
new file mode 100644
|
27 |
+
--- /dev/null (date 1692860198757)
|
28 |
+
+++ b/promptsModules/prompts.txt (date 1692860198757)
|
29 |
+
@@ -0,0 +1,11 @@
|
30 |
+
+{'angle': 'null', 'body_framing': 'null', 'assign_focus_on': 'null', 'add_focus': False, 'face_expression': <FaceExpression.SMILE: 3>, 'pose_type': 1, 'place': 'null', 'dynamic_mode': False, 'breasts_size': 'large', 'body_wear': 7, 'top_wear': <TopWearType.SHIRTS: 1>, 'bottom_wear': <BottomWearType.SKIRT: 2>, 'leg_wear': 7, 'panties': False, 'shoes_type': 6, 'body_with': False, 'body_status': False, 'body_description': False, 'cloth_trim': False, 'leg_wear_color': '', 'shoes_color': '', 'hair_color': 'null', 'enable_eye_color': True, 'disable_all_color': True, 'assign_pose': 'null', 'assign_profession': 'null', 'assign_expression': '', 'assign_shoes': '', 'assign_leg_wear': '', 'assign_body_clothes': '', 'assign_panties': '', 'assign_girl_description': '', 'accessories_random_tims': 0, 'object_random_times': 0, 'suffix_words_random_times': 0, 'nsfw_type': 3, 'sexual_list_random_index_times': 0, 'nude_list_random_index_times': 0, 'is_nsfw': False, 'is_uncensored': False, 'is_simple_nude': True, 'nude_strong': False, 'sex_mode': False, 'sex_type': <SexActType.SEX: 1>, 'man_random': False, 'has_girl_desc': False, 'add_girl_beautyful': False, 'add_hair_style': False, 'is_realistic': False, 'use_starting': True, 'add_colors': False, 'additional_prompt': '', 'enable_day_weather': False, 'enable_light_effect': True, 'enable_image_tech': False, 'lora': [101], 'lyco': [], 'lora_weights_random': True, 'embeddings': [], 'models_order': 'xyz'}
|
31 |
+
+
|
32 |
+
+
|
33 |
+
+fashi-g, makeup, mature female, <lora:fashigirl-v5.5-lora-naivae-64dim:0.76>, 1girl, cute smile, large breasts, absurdly long hair, blue eyes, eyeliner, best quality, absurdres, beautiful lighting, bell hair ornament, neck ribbon, stud earrings, jewelry, ultra-detailed, 8k,
|
34 |
+
+
|
35 |
+
+fashi-g, makeup, mature female, <lora:fashigirl-v5.5-lora-naivae-64dim:0.63>, 1girl, kind smile, large breasts, long hair, amethyst eyes, beautiful detailed eyes, best quality, absurdres, sunlight, star hair ornament, neck ribbon, stud earrings, jewelry, ultra-detailed, 8k,
|
36 |
+
+
|
37 |
+
+fashi-g, makeup, mature female, <lora:fashigirl-v5.5-lora-naivae-64dim:0.73>, 1girl, smile, large breasts, long hair, aquamarine eyes, best quality, absurdres, volumetric lighting, bell hair ornament, flower necklace, hoop earrings, jewelry, ultra-detailed, 8k,
|
38 |
+
+
|
39 |
+
+fashi-g, makeup, mature female, <lora:fashigirl-v5.5-lora-naivae-64dim:0.43>, 1girl, kind smile, large breasts, very long hair, amethyst eyes, best quality, absurdres, volumetric lighting, hair ribbon, choker, ear piercing, jewelry, ultra-detailed, 8k,
|
40 |
+
+
|
.idea/shelf/Uncommitted_changes_before_Checkout_at_2023_8_28__21_02__Changes_.xml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<changelist name="Uncommitted_changes_before_Checkout_at_2023_8_28,_21_02_[Changes]" date="1693227733295" recycled="true" deleted="true">
|
2 |
+
<option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Checkout_at_2023_8_28,_21_02_[Changes]/shelved.patch" />
|
3 |
+
<option name="DESCRIPTION" value="Uncommitted changes before Checkout at 2023/8/28, 21:02 [Changes]" />
|
4 |
+
</changelist>
|
.idea/vcs.xml
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="VcsDirectoryMappings">
|
4 |
+
<mapping directory="" vcs="Git" />
|
5 |
+
</component>
|
6 |
+
</project>
|
.idea/workspace.xml
ADDED
@@ -0,0 +1,465 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="AutoImportSettings">
|
4 |
+
<option name="autoReloadType" value="SELECTIVE" />
|
5 |
+
</component>
|
6 |
+
<component name="ChangeListManager">
|
7 |
+
<list default="true" id="f6135bf8-df9e-43b2-aa89-fa6954211078" name="Changes" comment="lora issue">
|
8 |
+
<change beforePath="$PROJECT_DIR$/scripts/prompt_rg.py" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/prompt_rg.py" afterDir="false" />
|
9 |
+
</list>
|
10 |
+
<option name="SHOW_DIALOG" value="false" />
|
11 |
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
12 |
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
13 |
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
14 |
+
</component>
|
15 |
+
<component name="FileTemplateManagerImpl">
|
16 |
+
<option name="RECENT_TEMPLATES">
|
17 |
+
<list>
|
18 |
+
<option value="Python Script" />
|
19 |
+
</list>
|
20 |
+
</option>
|
21 |
+
</component>
|
22 |
+
<component name="Git.Settings">
|
23 |
+
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
24 |
+
<map>
|
25 |
+
<entry key="$PROJECT_DIR$" value="lora-issue" />
|
26 |
+
</map>
|
27 |
+
</option>
|
28 |
+
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
29 |
+
</component>
|
30 |
+
<component name="MarkdownSettingsMigration">
|
31 |
+
<option name="stateVersion" value="1" />
|
32 |
+
</component>
|
33 |
+
<component name="ProjectId" id="2UI7RTgpXsbt4yCNpaetL7S0Lza" />
|
34 |
+
<component name="ProjectLevelVcsManager">
|
35 |
+
<ConfirmationsSetting value="2" id="Add" />
|
36 |
+
</component>
|
37 |
+
<component name="ProjectViewState">
|
38 |
+
<option name="hideEmptyMiddlePackages" value="true" />
|
39 |
+
<option name="showLibraryContents" value="true" />
|
40 |
+
</component>
|
41 |
+
<component name="PropertiesComponent">{
|
42 |
+
"keyToString": {
|
43 |
+
"ASKED_ADD_EXTERNAL_FILES": "true",
|
44 |
+
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
45 |
+
"RunOnceActivity.ShowReadmeOnStart": "true",
|
46 |
+
"WebServerToolWindowFactoryState": "false",
|
47 |
+
"last_opened_file_path": "/Users/hb/Documents/Mycode/prompt-r-gen-sd",
|
48 |
+
"node.js.detected.package.eslint": "true",
|
49 |
+
"node.js.detected.package.tslint": "true",
|
50 |
+
"node.js.selected.package.eslint": "(autodetect)",
|
51 |
+
"node.js.selected.package.tslint": "(autodetect)",
|
52 |
+
"settings.editor.selected.configurable": "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable",
|
53 |
+
"vue.rearranger.settings.migration": "true"
|
54 |
+
}
|
55 |
+
}</component>
|
56 |
+
<component name="RecentsManager">
|
57 |
+
<key name="MoveFile.RECENT_KEYS">
|
58 |
+
<recent name="$PROJECT_DIR$/promptsModules" />
|
59 |
+
</key>
|
60 |
+
</component>
|
61 |
+
<component name="RunManager" selected="Python.prompt_rg">
|
62 |
+
<configuration name="model_manager" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
63 |
+
<module name="prompt-r-gen-sd" />
|
64 |
+
<option name="INTERPRETER_OPTIONS" value="" />
|
65 |
+
<option name="PARENT_ENVS" value="true" />
|
66 |
+
<envs>
|
67 |
+
<env name="PYTHONUNBUFFERED" value="1" />
|
68 |
+
</envs>
|
69 |
+
<option name="SDK_HOME" value="" />
|
70 |
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/promptsModules" />
|
71 |
+
<option name="IS_MODULE_SDK" value="true" />
|
72 |
+
<option name="ADD_CONTENT_ROOTS" value="true" />
|
73 |
+
<option name="ADD_SOURCE_ROOTS" value="true" />
|
74 |
+
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
75 |
+
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/promptsModules/model_manager.py" />
|
76 |
+
<option name="PARAMETERS" value="" />
|
77 |
+
<option name="SHOW_COMMAND_LINE" value="false" />
|
78 |
+
<option name="EMULATE_TERMINAL" value="false" />
|
79 |
+
<option name="MODULE_MODE" value="false" />
|
80 |
+
<option name="REDIRECT_INPUT" value="false" />
|
81 |
+
<option name="INPUT_FILE" value="" />
|
82 |
+
<method v="2" />
|
83 |
+
</configuration>
|
84 |
+
<configuration name="prompt_rg" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
85 |
+
<module name="prompt-r-gen-sd" />
|
86 |
+
<option name="INTERPRETER_OPTIONS" value="" />
|
87 |
+
<option name="PARENT_ENVS" value="true" />
|
88 |
+
<envs>
|
89 |
+
<env name="PYTHONUNBUFFERED" value="1" />
|
90 |
+
</envs>
|
91 |
+
<option name="SDK_HOME" value="" />
|
92 |
+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/scripts" />
|
93 |
+
<option name="IS_MODULE_SDK" value="true" />
|
94 |
+
<option name="ADD_CONTENT_ROOTS" value="true" />
|
95 |
+
<option name="ADD_SOURCE_ROOTS" value="true" />
|
96 |
+
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
97 |
+
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/scripts/prompt_rg.py" />
|
98 |
+
<option name="PARAMETERS" value="" />
|
99 |
+
<option name="SHOW_COMMAND_LINE" value="false" />
|
100 |
+
<option name="EMULATE_TERMINAL" value="false" />
|
101 |
+
<option name="MODULE_MODE" value="false" />
|
102 |
+
<option name="REDIRECT_INPUT" value="false" />
|
103 |
+
<option name="INPUT_FILE" value="" />
|
104 |
+
<method v="2" />
|
105 |
+
</configuration>
|
106 |
+
<list>
|
107 |
+
<item itemvalue="Python.model_manager" />
|
108 |
+
<item itemvalue="Python.prompt_rg" />
|
109 |
+
</list>
|
110 |
+
<recent_temporary>
|
111 |
+
<list>
|
112 |
+
<item itemvalue="Python.prompt_rg" />
|
113 |
+
<item itemvalue="Python.model_manager" />
|
114 |
+
<item itemvalue="Python.prompt_rg" />
|
115 |
+
<item itemvalue="Python.model_manager" />
|
116 |
+
<item itemvalue="Python.prompt_rg" />
|
117 |
+
</list>
|
118 |
+
</recent_temporary>
|
119 |
+
</component>
|
120 |
+
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
121 |
+
<component name="TaskManager">
|
122 |
+
<task active="true" id="Default" summary="Default task">
|
123 |
+
<changelist id="f6135bf8-df9e-43b2-aa89-fa6954211078" name="Changes" comment="" />
|
124 |
+
<created>1692615234602</created>
|
125 |
+
<option name="number" value="Default" />
|
126 |
+
<option name="presentableId" value="Default" />
|
127 |
+
<updated>1692615234602</updated>
|
128 |
+
<workItem from="1692615236142" duration="286000" />
|
129 |
+
<workItem from="1692615536697" duration="18041000" />
|
130 |
+
<workItem from="1692702972930" duration="946000" />
|
131 |
+
<workItem from="1692780961157" duration="2029000" />
|
132 |
+
<workItem from="1692783135633" duration="5838000" />
|
133 |
+
<workItem from="1692845101473" duration="4394000" />
|
134 |
+
<workItem from="1692928928342" duration="1993000" />
|
135 |
+
<workItem from="1692951952892" duration="8672000" />
|
136 |
+
<workItem from="1692972214626" duration="13000" />
|
137 |
+
<workItem from="1693012175145" duration="12207000" />
|
138 |
+
<workItem from="1693150214399" duration="2341000" />
|
139 |
+
<workItem from="1693192262404" duration="7760000" />
|
140 |
+
<workItem from="1693222831729" duration="4650000" />
|
141 |
+
<workItem from="1693227796818" duration="194000" />
|
142 |
+
<workItem from="1693228084357" duration="1997000" />
|
143 |
+
</task>
|
144 |
+
<task id="LOCAL-00001" summary="init">
|
145 |
+
<option name="closed" value="true" />
|
146 |
+
<created>1692621137459</created>
|
147 |
+
<option name="number" value="00001" />
|
148 |
+
<option name="presentableId" value="LOCAL-00001" />
|
149 |
+
<option name="project" value="LOCAL" />
|
150 |
+
<updated>1692621137459</updated>
|
151 |
+
</task>
|
152 |
+
<task id="LOCAL-00002" summary="deploy">
|
153 |
+
<option name="closed" value="true" />
|
154 |
+
<created>1692624399625</created>
|
155 |
+
<option name="number" value="00002" />
|
156 |
+
<option name="presentableId" value="LOCAL-00002" />
|
157 |
+
<option name="project" value="LOCAL" />
|
158 |
+
<updated>1692624399625</updated>
|
159 |
+
</task>
|
160 |
+
<task id="LOCAL-00003" summary="fix error">
|
161 |
+
<option name="closed" value="true" />
|
162 |
+
<created>1692624848074</created>
|
163 |
+
<option name="number" value="00003" />
|
164 |
+
<option name="presentableId" value="LOCAL-00003" />
|
165 |
+
<option name="project" value="LOCAL" />
|
166 |
+
<updated>1692624848074</updated>
|
167 |
+
</task>
|
168 |
+
<task id="LOCAL-00004" summary="fix error">
|
169 |
+
<option name="closed" value="true" />
|
170 |
+
<created>1692625861011</created>
|
171 |
+
<option name="number" value="00004" />
|
172 |
+
<option name="presentableId" value="LOCAL-00004" />
|
173 |
+
<option name="project" value="LOCAL" />
|
174 |
+
<updated>1692625861011</updated>
|
175 |
+
</task>
|
176 |
+
<task id="LOCAL-00005" summary="update">
|
177 |
+
<option name="closed" value="true" />
|
178 |
+
<created>1692677271234</created>
|
179 |
+
<option name="number" value="00005" />
|
180 |
+
<option name="presentableId" value="LOCAL-00005" />
|
181 |
+
<option name="project" value="LOCAL" />
|
182 |
+
<updated>1692677271234</updated>
|
183 |
+
</task>
|
184 |
+
<task id="LOCAL-00006" summary="发送文生图逻辑处理">
|
185 |
+
<option name="closed" value="true" />
|
186 |
+
<created>1692682666388</created>
|
187 |
+
<option name="number" value="00006" />
|
188 |
+
<option name="presentableId" value="LOCAL-00006" />
|
189 |
+
<option name="project" value="LOCAL" />
|
190 |
+
<updated>1692682666388</updated>
|
191 |
+
</task>
|
192 |
+
<task id="LOCAL-00007" summary="修改tab名">
|
193 |
+
<option name="closed" value="true" />
|
194 |
+
<created>1692683317399</created>
|
195 |
+
<option name="number" value="00007" />
|
196 |
+
<option name="presentableId" value="LOCAL-00007" />
|
197 |
+
<option name="project" value="LOCAL" />
|
198 |
+
<updated>1692683317399</updated>
|
199 |
+
</task>
|
200 |
+
<task id="LOCAL-00008" summary="code update">
|
201 |
+
<option name="closed" value="true" />
|
202 |
+
<created>1692782619215</created>
|
203 |
+
<option name="number" value="00008" />
|
204 |
+
<option name="presentableId" value="LOCAL-00008" />
|
205 |
+
<option name="project" value="LOCAL" />
|
206 |
+
<updated>1692782619215</updated>
|
207 |
+
</task>
|
208 |
+
<task id="LOCAL-00009" summary="update ignore">
|
209 |
+
<option name="closed" value="true" />
|
210 |
+
<created>1692782979128</created>
|
211 |
+
<option name="number" value="00009" />
|
212 |
+
<option name="presentableId" value="LOCAL-00009" />
|
213 |
+
<option name="project" value="LOCAL" />
|
214 |
+
<updated>1692782979128</updated>
|
215 |
+
</task>
|
216 |
+
<task id="LOCAL-00010" summary="format code">
|
217 |
+
<option name="closed" value="true" />
|
218 |
+
<created>1692788758678</created>
|
219 |
+
<option name="number" value="00010" />
|
220 |
+
<option name="presentableId" value="LOCAL-00010" />
|
221 |
+
<option name="project" value="LOCAL" />
|
222 |
+
<updated>1692788758678</updated>
|
223 |
+
</task>
|
224 |
+
<task id="LOCAL-00011" summary="add more inputs to control prompts">
|
225 |
+
<option name="closed" value="true" />
|
226 |
+
<created>1692797290602</created>
|
227 |
+
<option name="number" value="00011" />
|
228 |
+
<option name="presentableId" value="LOCAL-00011" />
|
229 |
+
<option name="project" value="LOCAL" />
|
230 |
+
<updated>1692797290602</updated>
|
231 |
+
</task>
|
232 |
+
<task id="LOCAL-00012" summary="deploy test">
|
233 |
+
<option name="closed" value="true" />
|
234 |
+
<created>1692856539359</created>
|
235 |
+
<option name="number" value="00012" />
|
236 |
+
<option name="presentableId" value="LOCAL-00012" />
|
237 |
+
<option name="project" value="LOCAL" />
|
238 |
+
<updated>1692856539359</updated>
|
239 |
+
</task>
|
240 |
+
<task id="LOCAL-00013" summary="Optimize file import">
|
241 |
+
<option name="closed" value="true" />
|
242 |
+
<created>1692929575474</created>
|
243 |
+
<option name="number" value="00013" />
|
244 |
+
<option name="presentableId" value="LOCAL-00013" />
|
245 |
+
<option name="project" value="LOCAL" />
|
246 |
+
<updated>1692929575474</updated>
|
247 |
+
</task>
|
248 |
+
<task id="LOCAL-00014" summary="update layout">
|
249 |
+
<option name="closed" value="true" />
|
250 |
+
<created>1692930901280</created>
|
251 |
+
<option name="number" value="00014" />
|
252 |
+
<option name="presentableId" value="LOCAL-00014" />
|
253 |
+
<option name="project" value="LOCAL" />
|
254 |
+
<updated>1692930901280</updated>
|
255 |
+
</task>
|
256 |
+
<task id="LOCAL-00015" summary="implement load excel lora info function">
|
257 |
+
<option name="closed" value="true" />
|
258 |
+
<created>1692965072135</created>
|
259 |
+
<option name="number" value="00015" />
|
260 |
+
<option name="presentableId" value="LOCAL-00015" />
|
261 |
+
<option name="project" value="LOCAL" />
|
262 |
+
<updated>1692965072135</updated>
|
263 |
+
</task>
|
264 |
+
<task id="LOCAL-00016" summary="update code">
|
265 |
+
<option name="closed" value="true" />
|
266 |
+
<created>1692965729490</created>
|
267 |
+
<option name="number" value="00016" />
|
268 |
+
<option name="presentableId" value="LOCAL-00016" />
|
269 |
+
<option name="project" value="LOCAL" />
|
270 |
+
<updated>1692965729490</updated>
|
271 |
+
</task>
|
272 |
+
<task id="LOCAL-00017" summary="change load excel config logic">
|
273 |
+
<option name="closed" value="true" />
|
274 |
+
<created>1693015380139</created>
|
275 |
+
<option name="number" value="00017" />
|
276 |
+
<option name="presentableId" value="LOCAL-00017" />
|
277 |
+
<option name="project" value="LOCAL" />
|
278 |
+
<updated>1693015380139</updated>
|
279 |
+
</task>
|
280 |
+
<task id="LOCAL-00018" summary="remove my custom model info">
|
281 |
+
<option name="closed" value="true" />
|
282 |
+
<created>1693064356248</created>
|
283 |
+
<option name="number" value="00018" />
|
284 |
+
<option name="presentableId" value="LOCAL-00018" />
|
285 |
+
<option name="project" value="LOCAL" />
|
286 |
+
<updated>1693064356248</updated>
|
287 |
+
</task>
|
288 |
+
<task id="LOCAL-00019" summary="check special imp">
|
289 |
+
<option name="closed" value="true" />
|
290 |
+
<created>1693129630400</created>
|
291 |
+
<option name="number" value="00019" />
|
292 |
+
<option name="presentableId" value="LOCAL-00019" />
|
293 |
+
<option name="project" value="LOCAL" />
|
294 |
+
<updated>1693129630400</updated>
|
295 |
+
</task>
|
296 |
+
<task id="LOCAL-00020" summary="add check config excel">
|
297 |
+
<option name="closed" value="true" />
|
298 |
+
<created>1693144495995</created>
|
299 |
+
<option name="number" value="00020" />
|
300 |
+
<option name="presentableId" value="LOCAL-00020" />
|
301 |
+
<option name="project" value="LOCAL" />
|
302 |
+
<updated>1693144495995</updated>
|
303 |
+
</task>
|
304 |
+
<task id="LOCAL-00021" summary="update ui">
|
305 |
+
<option name="closed" value="true" />
|
306 |
+
<created>1693146264520</created>
|
307 |
+
<option name="number" value="00021" />
|
308 |
+
<option name="presentableId" value="LOCAL-00021" />
|
309 |
+
<option name="project" value="LOCAL" />
|
310 |
+
<updated>1693146264520</updated>
|
311 |
+
</task>
|
312 |
+
<task id="LOCAL-00022" summary="change some pint info">
|
313 |
+
<option name="closed" value="true" />
|
314 |
+
<created>1693146753655</created>
|
315 |
+
<option name="number" value="00022" />
|
316 |
+
<option name="presentableId" value="LOCAL-00022" />
|
317 |
+
<option name="project" value="LOCAL" />
|
318 |
+
<updated>1693146753655</updated>
|
319 |
+
</task>
|
320 |
+
<task id="LOCAL-00023" summary="fix loading excel error info">
|
321 |
+
<option name="closed" value="true" />
|
322 |
+
<created>1693148187897</created>
|
323 |
+
<option name="number" value="00023" />
|
324 |
+
<option name="presentableId" value="LOCAL-00023" />
|
325 |
+
<option name="project" value="LOCAL" />
|
326 |
+
<updated>1693148187897</updated>
|
327 |
+
</task>
|
328 |
+
<task id="LOCAL-00024" summary="model now support any key words">
|
329 |
+
<option name="closed" value="true" />
|
330 |
+
<created>1693190214581</created>
|
331 |
+
<option name="number" value="00024" />
|
332 |
+
<option name="presentableId" value="LOCAL-00024" />
|
333 |
+
<option name="project" value="LOCAL" />
|
334 |
+
<updated>1693190214581</updated>
|
335 |
+
</task>
|
336 |
+
<task id="LOCAL-00025" summary="update md">
|
337 |
+
<option name="closed" value="true" />
|
338 |
+
<created>1693193437582</created>
|
339 |
+
<option name="number" value="00025" />
|
340 |
+
<option name="presentableId" value="LOCAL-00025" />
|
341 |
+
<option name="project" value="LOCAL" />
|
342 |
+
<updated>1693193437582</updated>
|
343 |
+
</task>
|
344 |
+
<task id="LOCAL-00026" summary="update code">
|
345 |
+
<option name="closed" value="true" />
|
346 |
+
<created>1693194296245</created>
|
347 |
+
<option name="number" value="00026" />
|
348 |
+
<option name="presentableId" value="LOCAL-00026" />
|
349 |
+
<option name="project" value="LOCAL" />
|
350 |
+
<updated>1693194296245</updated>
|
351 |
+
</task>
|
352 |
+
<task id="LOCAL-00027" summary="update screen shot">
|
353 |
+
<option name="closed" value="true" />
|
354 |
+
<created>1693196678963</created>
|
355 |
+
<option name="number" value="00027" />
|
356 |
+
<option name="presentableId" value="LOCAL-00027" />
|
357 |
+
<option name="project" value="LOCAL" />
|
358 |
+
<updated>1693196678963</updated>
|
359 |
+
</task>
|
360 |
+
<task id="LOCAL-00028" summary="update ui and func">
|
361 |
+
<option name="closed" value="true" />
|
362 |
+
<created>1693208339318</created>
|
363 |
+
<option name="number" value="00028" />
|
364 |
+
<option name="presentableId" value="LOCAL-00028" />
|
365 |
+
<option name="project" value="LOCAL" />
|
366 |
+
<updated>1693208339318</updated>
|
367 |
+
</task>
|
368 |
+
<task id="LOCAL-00029" summary="fix error">
|
369 |
+
<option name="closed" value="true" />
|
370 |
+
<created>1693208653363</created>
|
371 |
+
<option name="number" value="00029" />
|
372 |
+
<option name="presentableId" value="LOCAL-00029" />
|
373 |
+
<option name="project" value="LOCAL" />
|
374 |
+
<updated>1693208653363</updated>
|
375 |
+
</task>
|
376 |
+
<task id="LOCAL-00030" summary="rename code">
|
377 |
+
<option name="closed" value="true" />
|
378 |
+
<created>1693223504736</created>
|
379 |
+
<option name="number" value="00030" />
|
380 |
+
<option name="presentableId" value="LOCAL-00030" />
|
381 |
+
<option name="project" value="LOCAL" />
|
382 |
+
<updated>1693223504736</updated>
|
383 |
+
</task>
|
384 |
+
<task id="LOCAL-00031" summary="rename module">
|
385 |
+
<option name="closed" value="true" />
|
386 |
+
<created>1693224059529</created>
|
387 |
+
<option name="number" value="00031" />
|
388 |
+
<option name="presentableId" value="LOCAL-00031" />
|
389 |
+
<option name="project" value="LOCAL" />
|
390 |
+
<updated>1693224059529</updated>
|
391 |
+
</task>
|
392 |
+
<task id="LOCAL-00032" summary="lora issue">
|
393 |
+
<option name="closed" value="true" />
|
394 |
+
<created>1693226277283</created>
|
395 |
+
<option name="number" value="00032" />
|
396 |
+
<option name="presentableId" value="LOCAL-00032" />
|
397 |
+
<option name="project" value="LOCAL" />
|
398 |
+
<updated>1693226277283</updated>
|
399 |
+
</task>
|
400 |
+
<option name="localTasksCounter" value="33" />
|
401 |
+
<servers />
|
402 |
+
</component>
|
403 |
+
<component name="TypeScriptGeneratedFilesManager">
|
404 |
+
<option name="version" value="3" />
|
405 |
+
</component>
|
406 |
+
<component name="Vcs.Log.History.Properties">
|
407 |
+
<option name="COLUMN_ID_ORDER">
|
408 |
+
<list>
|
409 |
+
<option value="Default.Root" />
|
410 |
+
<option value="Default.Author" />
|
411 |
+
<option value="Default.Date" />
|
412 |
+
<option value="Default.Subject" />
|
413 |
+
<option value="Space.CommitStatus" />
|
414 |
+
</list>
|
415 |
+
</option>
|
416 |
+
</component>
|
417 |
+
<component name="VcsManagerConfiguration">
|
418 |
+
<option name="CHECK_NEW_TODO" value="false" />
|
419 |
+
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
|
420 |
+
<MESSAGE value="code update" />
|
421 |
+
<MESSAGE value="修改tab名" />
|
422 |
+
<MESSAGE value="update ignore" />
|
423 |
+
<MESSAGE value="format code" />
|
424 |
+
<MESSAGE value="add more inputs to control prompts" />
|
425 |
+
<MESSAGE value="deploy test" />
|
426 |
+
<MESSAGE value="Optimize file import" />
|
427 |
+
<MESSAGE value="update layout" />
|
428 |
+
<MESSAGE value="implement load excel lora info function" />
|
429 |
+
<MESSAGE value="change load excel config logic" />
|
430 |
+
<MESSAGE value="remove my custom model info" />
|
431 |
+
<MESSAGE value="add check config excel" />
|
432 |
+
<MESSAGE value="update ui" />
|
433 |
+
<MESSAGE value="change some pint info" />
|
434 |
+
<MESSAGE value="fix loading excel error info" />
|
435 |
+
<MESSAGE value="model now support any key words" />
|
436 |
+
<MESSAGE value="check special imp" />
|
437 |
+
<MESSAGE value="update md" />
|
438 |
+
<MESSAGE value="update code" />
|
439 |
+
<MESSAGE value="update screen shot" />
|
440 |
+
<MESSAGE value="update ui and func" />
|
441 |
+
<MESSAGE value="fix error" />
|
442 |
+
<MESSAGE value="rename code" />
|
443 |
+
<MESSAGE value="rename module" />
|
444 |
+
<MESSAGE value="lora issue" />
|
445 |
+
<option name="LAST_COMMIT_MESSAGE" value="lora issue" />
|
446 |
+
</component>
|
447 |
+
<component name="XDebuggerManager">
|
448 |
+
<breakpoint-manager>
|
449 |
+
<breakpoints>
|
450 |
+
<line-breakpoint suspend="THREAD" type="python-line">
|
451 |
+
<url>file://$PROJECT_DIR$/scripts/promptsModules/model_manager.py</url>
|
452 |
+
<line>109</line>
|
453 |
+
<option name="timeStamp" value="1" />
|
454 |
+
</line-breakpoint>
|
455 |
+
</breakpoints>
|
456 |
+
</breakpoint-manager>
|
457 |
+
</component>
|
458 |
+
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
459 |
+
<SUITE FILE_PATH="coverage/prompt_r_gen_sd$prompt_rg.coverage" NAME="prompt_rg Coverage Results" MODIFIED="1693226013078" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/scripts" />
|
460 |
+
<SUITE FILE_PATH="coverage/prompt_r_gen_sd$model_manager.coverage" NAME="model_manager Coverage Results" MODIFIED="1693226005740" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/promptsModules" />
|
461 |
+
<SUITE FILE_PATH="coverage/prompt_r_gen_sd$web_api.coverage" NAME="web_api Coverage Results" MODIFIED="1693223797704" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/scripts/promptsModules" />
|
462 |
+
<SUITE FILE_PATH="coverage/prompt_r_gen_sd$sd_nsfw_random.coverage" NAME="sd_nsfw_random Coverage Results" MODIFIED="1692616884549" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/scripts/module" />
|
463 |
+
<SUITE FILE_PATH="coverage/prompt_r_gen_sd$model_manager__1_.coverage" NAME="model_manager (1) Coverage Results" MODIFIED="1693225915251" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/promptsModules" />
|
464 |
+
</component>
|
465 |
+
</project>
|
LICENSE
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
BSD 2-Clause License
|
2 |
+
|
3 |
+
Copyright (c) 2023, Heath Wang
|
4 |
+
|
5 |
+
Redistribution and use in source and binary forms, with or without
|
6 |
+
modification, are permitted provided that the following conditions are met:
|
7 |
+
|
8 |
+
1. Redistributions of source code must retain the above copyright notice, this
|
9 |
+
list of conditions and the following disclaimer.
|
10 |
+
|
11 |
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
12 |
+
this list of conditions and the following disclaimer in the documentation
|
13 |
+
and/or other materials provided with the distribution.
|
14 |
+
|
15 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
16 |
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
17 |
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
18 |
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
19 |
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
20 |
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
21 |
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
22 |
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
23 |
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
24 |
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
README.md
CHANGED
@@ -1,12 +1,73 @@
|
|
1 |
---
|
2 |
-
title:
|
3 |
-
|
4 |
-
colorFrom: green
|
5 |
-
colorTo: red
|
6 |
sdk: gradio
|
7 |
-
sdk_version: 3.
|
8 |
-
app_file: app.py
|
9 |
-
pinned: false
|
10 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
1 |
---
|
2 |
+
title: prompt-r-gen-sd
|
3 |
+
app_file: scripts/prompt_rg.py
|
|
|
|
|
4 |
sdk: gradio
|
5 |
+
sdk_version: 3.40.1
|
|
|
|
|
6 |
---
|
7 |
+
# prompt-r-gen-sd
|
8 |
+
|
9 |
+
## 介绍
|
10 |
+
这是一个[stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui) 插件(extension),主要用来生成随机的文生图提示词。
|
11 |
+
做这个的初衷是自己懒得写提示词,但是又想提示词可以一键生成且具有一定的随机性,所以有了这个插件。
|
12 |
+
|
13 |
+
~~目前仅支持画女孩提示词~~,其他待开发。
|
14 |
+
|
15 |
+
功能预览:https://huggingface.co/spaces/heath1989/prompt-rp
|
16 |
+
|
17 |
+
## 功能
|
18 |
+
|
19 |
+
<img src="https://github.com/HeathWang/prompt-r-gen-sd/blob/master/snap_Shot.png" alt="ui" width="100%">
|
20 |
+
|
21 |
+
1. 可配置一次生成的提示词数量,最小1,最大6
|
22 |
+
2. 可随机视角、地点、人物动作
|
23 |
+
3. 可随机人物衣着:衣服,鞋子,袜子,内裤等
|
24 |
+
4. 可随机人物描述:职业,发型,发色,眼睛,眼睛颜色,面部表情(无负面表情)
|
25 |
+
5. 可配置NSFW,~~自行尝试~~
|
26 |
+
6. 可配置其他增强项:是否是真实照片,多彩,天气,灯光效果,摄影技术, 物品,饰品等
|
27 |
+
7. 可配置本地安装的lora/loha/embedding,实现简单输入即可生成提示词
|
28 |
+
8. 可输入额外提示词
|
29 |
+
9. 可精细手动输入,精细控制人物,视角等。
|
30 |
+
10. 可将生成内容一键发送到文生图
|
31 |
+
|
32 |
+
## Lora/Loha/embedding控制说明
|
33 |
+
|
34 |
+
### 配置修改
|
35 |
+
该功能可实现输入个人自定义的文字来生成本地Lora/Loha/embedding提示词。
|
36 |
+
安装本extension成功后,可以在extensions/prompt-r-gen-sd/scripts 文件中找到`modelsConfig.xlsx`,打开该excel,直接进行编辑。
|
37 |
+
|
38 |
+
你也可以通过下面的地址下载:https://huggingface.co/spaces/heath1989/prompt-rp/resolve/main/modelsConfig.xlsx
|
39 |
+
|
40 |
+
参照下面的图示添加你本地的lora等模型配置:
|
41 |
+
|
42 |
+
<img src="https://github.com/HeathWang/prompt-r-gen-sd/blob/master/model_guide.png" alt="guide" width="100%">
|
43 |
+
修改excel保存后,配置可实时生效。
|
44 |
+
对于云端部署的,需要云端覆盖`modelsConfig.xlsx`方可生效。
|
45 |
+
|
46 |
+
### 使用说明
|
47 |
+
<img src="https://github.com/HeathWang/prompt-r-gen-sd/blob/master/ui_lora.png" alt="lora" width="100%">
|
48 |
+
点开“Lora Loha embedding控制”下拉菜单,以本地下载的`st louis epoch5.safetensors`为例,
|
49 |
+
在lora框输入:
|
50 |
+
|
51 |
+
1. "圣姨",则表示“lora模型按照指定权重随机”
|
52 |
+
2. "圣姨:0.6",则说明"lora模型固定0.6权重"
|
53 |
+
|
54 |
+
对于使用多个模型,中间以“,”分割即可
|
55 |
+
如:
|
56 |
+
1. "圣姨,666:0.8,xyz",则表示"生成这3个配置lora的提示词"
|
57 |
+
|
58 |
+
### Lora/Loha/embedding输出顺序
|
59 |
+
默认情况下,按照Lora/Loha/embedding顺序输出,你可以在顺序更改输入框更改它们的输出顺序。
|
60 |
+
1. xyz:Lora/Loha/embedding
|
61 |
+
2. yxz:Loha/Lora/embedding
|
62 |
+
3. zxy:embedding/Lora/loha
|
63 |
+
......
|
64 |
+
|
65 |
+
|
66 |
+
|
67 |
+
## 后续功能
|
68 |
+
|
69 |
+
1. ~~添加精细控制模块,可自定义输入覆盖随机配置 [DONE]~~
|
70 |
+
2. 存储默认配置项,下次启动自动载入
|
71 |
+
3. 可查看历史生成记录📝。
|
72 |
+
|
73 |
|
|
install.py
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import launch
|
2 |
+
|
3 |
+
if not launch.is_installed("openpyxl"):
|
4 |
+
launch.run_pip("install openpyxl==3.1.2", "requirements for prompt rp")
|
model_guide.png
ADDED
promptsModules/__pycache__/basePromptBuilder.cpython-310.pyc
ADDED
Binary file (37.8 kB). View file
|
|
promptsModules/__pycache__/basePromptBuilder.cpython-39.pyc
ADDED
Binary file (38 kB). View file
|
|
promptsModules/__pycache__/configDB.cpython-310.pyc
ADDED
Binary file (3.07 kB). View file
|
|
promptsModules/__pycache__/configDB.cpython-39.pyc
ADDED
Binary file (3.09 kB). View file
|
|
promptsModules/__pycache__/lora.cpython-310.pyc
ADDED
Binary file (12.1 kB). View file
|
|
promptsModules/__pycache__/lora.cpython-39.pyc
ADDED
Binary file (3.17 kB). View file
|
|
promptsModules/__pycache__/model_manager.cpython-310.pyc
ADDED
Binary file (3.07 kB). View file
|
|
promptsModules/__pycache__/model_manager.cpython-39.pyc
ADDED
Binary file (4.41 kB). View file
|
|
promptsModules/__pycache__/promptGen.cpython-310.pyc
ADDED
Binary file (5.92 kB). View file
|
|
promptsModules/__pycache__/promptGen.cpython-39.pyc
ADDED
Binary file (5.66 kB). View file
|
|
promptsModules/__pycache__/sd_command_gen.cpython-310.pyc
ADDED
Binary file (4.04 kB). View file
|
|
promptsModules/__pycache__/sd_command_gen.cpython-39.pyc
ADDED
Binary file (3.57 kB). View file
|
|
promptsModules/__pycache__/web_api.cpython-310.pyc
ADDED
Binary file (597 Bytes). View file
|
|
promptsModules/__pycache__/web_api.cpython-39.pyc
ADDED
Binary file (450 Bytes). View file
|
|
promptsModules/basePromptBuilder.py
ADDED
@@ -0,0 +1,1373 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding:utf-8 -*-
|
2 |
+
import random
|
3 |
+
from enum import IntEnum
|
4 |
+
|
5 |
+
angle = ["view from above", "view from behind", "view from below", "view from side", "straight-on", "pov", "sideways"]
|
6 |
+
|
7 |
+
depth = ["atmospheric perspective", "fisheye", "panorama", "perspective", "vanishing point", "wide shot"]
|
8 |
+
|
9 |
+
body_framing = ["face", "portrait", "upper body", "lower body", "cowboy shot", "close-up", "half body",
|
10 |
+
"head out of frame", "feet out of frame", "profile"]
|
11 |
+
|
12 |
+
focus = ["ass focus", "back focus", "breast focus", "eye focus", "foot focus", "hip focus", "navel focus",
|
13 |
+
"pectoral focus", "thigh focus"]
|
14 |
+
|
15 |
+
beautifier = ["young", "cute", "monster", "japanese", "school", "fox", "demon", "cat", "magical", "20yo", "tall",
|
16 |
+
"extremely detailed beautiful", "dragon", "young cute beautiful 18-year-old", "little", "pure innocent",
|
17 |
+
"slime", "slim", "portrait of stunningly beautiful", "mature", "slender", "chinese",
|
18 |
+
"21years old pretty korean", "pretty", "teenage", "sexy", "colorful beautiful", "asian", "elf", "kawaii",
|
19 |
+
"fitness", "vampire", "blonde", "a beautiful young", "mature", "fashion"]
|
20 |
+
|
21 |
+
legwear_main = ["thighhighs", "pantyhose", "kneehighs", "over-kneehighs"]
|
22 |
+
|
23 |
+
legwear_style = ["aran", "bow", "cross-laced", "fishnet", "fluffy", "frilled", "knit", "lace", "lace-up",
|
24 |
+
"latex", "bell", "o-ring", "pleated", "ribbed", "ribbon", "seamed", "back-seamed",
|
25 |
+
"front-seamed", "side-seamed", "see-through", "shiny", "side-tie", "spiked", "studded", "toeless",
|
26 |
+
"bridal", "stirrup", "trimmed", "fur-trimmed", "lace-trimmed", "ribbon-trimmed", "zipper",
|
27 |
+
"animal ear", "torn", "mismatched", "naked", "nude"]
|
28 |
+
|
29 |
+
legwear_color = ["aqua", "beige", "black", "blue", "brown", "green", "grey", "lavender", "orange", "pink", "purple",
|
30 |
+
"red", "tan", "white", "yellow", "gradient", "multicolored", "two-tone"]
|
31 |
+
|
32 |
+
dress_color = ["black", "blue", "pink", "purple", "white", "multicolored", "two-tone", "red"]
|
33 |
+
|
34 |
+
dress_type = [
|
35 |
+
"armored dress", "backless dress", "crinoline", "collared dress", "frilled dress", "fur-trimmed dress",
|
36 |
+
"half-dress", "halter dress", "highleg dress", "high-low skirt", "hobble dress", "impossible dress",
|
37 |
+
"lace-trimmed dress", "latex dress", "layered dress", "long dress", "off-shoulder dress", "pleated dress",
|
38 |
+
"plunging neckline dress",
|
39 |
+
"ribbed dress", "ribbon-trimmed dress", "short dress", "side slit dress", "taut dress", "see-through dress",
|
40 |
+
"sleeveless dress", "strapless dress", 'cake dress', 'china dress', 'coat dress', 'cocktail dress', 'denim dress',
|
41 |
+
'dirndl', 'evening gown', 'flowing dress', 'funeral dress', 'gown', 'mermaid dress', 'negligee', 'nightgown',
|
42 |
+
'pencil dress', 'pinafore dress', 'sailor dress', 'santa dress', 'sundress', 'sweater dress', 'tennis dress',
|
43 |
+
'trapeze dress', 'tube dress', 'vietnamese dress', 'wedding dress']
|
44 |
+
|
45 |
+
top_shirts = [
|
46 |
+
"collared shirt", "college shirt", "dress shirt", "flapper shirt", "gym shirt", "rash guard", "t-shirt", "v-neck",
|
47 |
+
"impossible shirt"]
|
48 |
+
|
49 |
+
top_coat = ['duffel coat', 'fur coat', 'fur-trimmed coat', 'long coat', 'overcoat', 'peacoat', 'raincoat',
|
50 |
+
'yellow raincoat', 'transparent raincoat', 'trench coat', 'winter coat']
|
51 |
+
|
52 |
+
top_sweater = ['sweater', 'pullover', 'turtleneck', 'sleeveless turtleneck', 'sweater dress', 'ribbed sweater',
|
53 |
+
'aran sweater']
|
54 |
+
|
55 |
+
top_others = ["tank top", "tube top", "bandeau", "underbust", "vest", "sweater vest", "waistcoat", "camisole",
|
56 |
+
"crop top"]
|
57 |
+
|
58 |
+
uniforms = ["apron", "armor", "armored dress", "bikini armor", "band uniform", "cape", "capelet", "hood",
|
59 |
+
"shoulder cape", "cassock", "cheerleader", "costume", "ghost costume", "gym uniform", "buruma",
|
60 |
+
"habit", "harem outfit", "loincloth", "hazmat suit", "hev suit", "kigurumi", "maid",
|
61 |
+
"miko", "nontraditional miko", "military uniform", "overalls", "pajamas", "pilot suit", "plugsuit",
|
62 |
+
"sailor (naval uniform)", "santa costume", "school uniform", "serafuku (sailor uniform)",
|
63 |
+
"sailor dress", "gakuran", "meiji schoolgirl uniform", "shosei", "suit", "business suit",
|
64 |
+
"pant suit", "skirt suit", "tuxedo", "track suit", "sweatpants", "sweater", "tutu", "waitress"]
|
65 |
+
|
66 |
+
bodysuits = ["bikesuit", "racing suit", "bodystocking", "bodysuit", "jumpsuit", "short jumpsuit", "leotard",
|
67 |
+
"strapless leotard", "playboy bunny", "swimsuit", "competition swimsuit", "slingshot swimsuit",
|
68 |
+
"school swimsuit", "bikini", "leaf bikini", "string bikini", "micro bikini", "side-tie bikini bottom",
|
69 |
+
"lowleg bikini", "thong bikini", "venus bikini", "sports bikini", "tankini", "criss-cross halter",
|
70 |
+
"swim briefs (speedo)", "jammers", "legskin", "rash guard", "robe", "bathrobe", "open robe", "kesa",
|
71 |
+
"romper", "sarong", "tunic", "unitard"]
|
72 |
+
|
73 |
+
traditional_clothes = ["chinese clothes", "changpao", "china dress", "fengguan", "hanfu", "longpao",
|
74 |
+
"tangzhuang", "dirndl", "japanese clothes", "fundoshi", "yamakasa", "hakama",
|
75 |
+
"hakama skirt",
|
76 |
+
"hakama short skirt", "hakama pants", "kimono", "furisode", "layered kimono", "short kimono",
|
77 |
+
"uchikake (wedding kimono)", "yukata", "haori", "happi", "chanchanko", "dotera", "hanten",
|
78 |
+
"kimono skirt", "miko", "nontraditional miko", "sarashi", "Midriff sarashi", "Chest sarashi",
|
79 |
+
"Budget sarashi", "Undone sarashi", "straw cape (mino)", "mino boushi", "tabi", "tasuki",
|
80 |
+
"korean clothes"]
|
81 |
+
|
82 |
+
bottom_skirts = ["bubble skirt", "belt skirt", "bikini skirt", "bow skirt", "checkered skirt",
|
83 |
+
"denim skirt", "frilled skirt", "grass skirt", "hakama short skirt", "half-skirt",
|
84 |
+
"high-low skirt", "hoop skirt", "kimono skirt", "layered skirt", "long skirt",
|
85 |
+
"microskirt", "miniskirt", "overskirt", "plaid skirt", "pleated skirt", "pencil skirt",
|
86 |
+
"showgirl skirt", "side-tie skirt", "skirt suit", "skirt set", "spank skirt", "suspender skirt"]
|
87 |
+
|
88 |
+
bottom_pants = ['plaid pants', 'pinstripe pants', 'bell-bottoms', 'capri pants', 'harem pants', 'jeans',
|
89 |
+
'leather pants', 'pant suit', 'detached pants', 'pants rolled up', 'tight pants', 'single pantsleg']
|
90 |
+
|
91 |
+
bottom_shorts = ['shorts', 'bike shorts', 'denim shorts', 'dolphin shorts', 'gym shorts', 'lowleg shorts',
|
92 |
+
'micro shorts', 'short shorts', 'shorts under skirt']
|
93 |
+
|
94 |
+
clothes_trim = ["flower trim", "frills", "gold trim", "lace trim", "ribbon trim", "silver trim"]
|
95 |
+
|
96 |
+
bSize = ["large breasts", "medium breasts", "huge breasts", "gigantic breasts"]
|
97 |
+
|
98 |
+
expression_emo = ["annoyed", "blush", "bored", "closed eyes", "confused", "crazy", "cry", "disappointed", "disdain",
|
99 |
+
"disgust", "despair", "drunk", "envy", "evil", "flustered", "furrowed brow", "guilt", "nervous",
|
100 |
+
"one eye closed", "rape face", "sleepy", "wince"]
|
101 |
+
|
102 |
+
expression_sexual = ["afterglow", "ahegao", "fucked silly", "aroused", "naughty face", "torogao"]
|
103 |
+
|
104 |
+
expression_smile = ["smile", "light smile", "seductive smile", "evil smile", "slight smile", "cute smile", "shy smile",
|
105 |
+
"sweet smile", "happy smile", "naughty smile", "beautiful smile", "sexy smile", "kind smile"]
|
106 |
+
|
107 |
+
expression_smug = ['doyagao', 'smirk', 'smug', 'troll face']
|
108 |
+
|
109 |
+
hairColor = ["white hair", "black hair", "purple hair", "pink hair", "aqua hair", "blonde hair", "blue hair",
|
110 |
+
"red hair", "brown hair", "green hair", "grey hair", "multicolored hair", "silver hair", "gradient hair",
|
111 |
+
"two-tone hair"]
|
112 |
+
|
113 |
+
hair_style = ["colored inner hair", "crystal hair", "expressive hair", "floating hair", "messy_hair",
|
114 |
+
"shiny_hair", "wet hair", "hair strand", "crystals texture hair", "wavy hair", "ponytail"]
|
115 |
+
|
116 |
+
hairLength = ["long", "very long", "absurdly long", "short", "medium"]
|
117 |
+
|
118 |
+
hair_others = ["bangs", "hair between eyes", "blunt bangs", "side blunt bangs"]
|
119 |
+
|
120 |
+
eye_wear = ["glasses", "goggles", "sunglasses"]
|
121 |
+
|
122 |
+
eyeColor = ["hazel", "green", "brown", "black", "grey", "purple", "pink",
|
123 |
+
"red", "silver", "yellow", "sapphire", "turquoise", "amethyst", "aquamarine", "ruby", "coral",
|
124 |
+
"peach", "gold", "dark brown", "jade", "teal", "ice blue", "light blue", "blue", "grey-blue",
|
125 |
+
"amber"]
|
126 |
+
|
127 |
+
eye_others = ["eyelashes", "big eyes", "eyeliner", "bright eyes", "red eyeshadow", "beautiful detailed eyes"]
|
128 |
+
|
129 |
+
# 除了头饰,耳饰,颈饰,其他的饰物(手饰,腰饰,脚饰,胸饰,臀饰,脚饰)随机组合
|
130 |
+
hair_accessories = ["hair ornament", "hair tie", "hairband", "hair ribbon", "flower hair ornament",
|
131 |
+
"star hair ornament", "bell hair ornament", "butterfly hair ornament", "feather hair ornament",
|
132 |
+
"leaf hair ornament"]
|
133 |
+
neck_accessories = [
|
134 |
+
"neckerchief", "necklace", "chain necklace", "flower necklace", "pearl necklace", "pendant", "neck ribbon",
|
135 |
+
"neck tassel", "charm", "beads", "choker"]
|
136 |
+
|
137 |
+
earrings = ["hoop earrings", "stud earrings", "earclip", "earrings", "ear piercing"]
|
138 |
+
|
139 |
+
other_accessories = [
|
140 |
+
# 头
|
141 |
+
["crown", "forehead jewel", "circlet", "head chain", "chain headband", "headpiece", "tiara"],
|
142 |
+
# hand
|
143 |
+
["bracelet", "ring", "wedding ring", "red and gold bracelets"],
|
144 |
+
# arms
|
145 |
+
["wristband", "arm belt", "wrist cuffs"],
|
146 |
+
# leg
|
147 |
+
["leg belt", "leg ribbon", "leg chain", "leg wrap", "thigh strap", "thigh ribbon", "o-ring thigh strap", "leg ring",
|
148 |
+
"leg ornament"],
|
149 |
+
# foot
|
150 |
+
["anklet", "ankle band", "ankle ring", "ankle buckle", "ankle nail", "ankle bracelet"],
|
151 |
+
# waist 腰, navel piercing表现优秀,其他几个效果差不多
|
152 |
+
["waist ribbon", "waist jewelry", "waist chain", "waist rope", "navel piercing", "sash", "narrow waist"],
|
153 |
+
# 躯干Torso和其他
|
154 |
+
["boutonniere", "brooch", "corsage", "suspenders", "tassel", ],
|
155 |
+
]
|
156 |
+
|
157 |
+
shoes_boots = ['boots', 'ankle boots', 'armored boots', 'knee boots', 'high heel boots', 'lace-up boots',
|
158 |
+
'rubber boots', 'thigh boots', 'cowboy boots', 'spurs']
|
159 |
+
|
160 |
+
shoes_high_heels = ["high heels"]
|
161 |
+
|
162 |
+
shoes_sandals = ['sandals', 'clog sandals', 'cross-laced sandals', 'flip-flops', 'gladiator sandals', 'geta', 'okobo',
|
163 |
+
'waraji', 'zouri']
|
164 |
+
|
165 |
+
shoes_slippers = ['slippers', 'animal slippers', 'ballet slippers', 'crocs', 'uwabaki']
|
166 |
+
|
167 |
+
background_view = ["cityscapes", "landscape", "architecture", "buildings", "nature", "ruins", "outdoors", "indoors",
|
168 |
+
"messy room", "seascape", "shrine", "pagoda", "temple", "far out space", "east asian architecture",
|
169 |
+
"chinese garden"]
|
170 |
+
|
171 |
+
place = ["ancient greece", "alien planet", "spaceship", "american farm", "hell",
|
172 |
+
"high school", "locker room", "bedroom", "dungeon", "castle", "classroom", "bathroom",
|
173 |
+
"public park", "church", "closet", "toilet stall", "laboratory", "prison cell", "living room",
|
174 |
+
"bathtub", "library", "stage", "kitchen", "office", "infirmary",
|
175 |
+
"fitting room", "hotel room", "onsen", "pool", "skyscraper", "shrine", "rooftop", "restaurant",
|
176 |
+
"windmill", "hospital", "apartment", "field", "bridge", "poolside", "street", "path",
|
177 |
+
"garden", "ferris wheel", "otaku room", "conservatory", "fountain", "pier", "village", "beach", "cave",
|
178 |
+
"mountain", "forest", "countryside", "desert", "jungle", "ocean", "river", "lake", "waterfall",
|
179 |
+
"island"]
|
180 |
+
|
181 |
+
#### pose 种类比较多
|
182 |
+
|
183 |
+
pose_base = ["kneeling", "lying", "sitting", "standing"]
|
184 |
+
pose_base_child = {
|
185 |
+
"kneeling": ["on one knee"],
|
186 |
+
"lying": ['crossed legs', 'fetal position', 'on back', 'on side', 'on stomach'],
|
187 |
+
"sitting": ["butterfly sitting", "crossed legs", "figure four sitting", "indian style", "hugging own legs",
|
188 |
+
"lotus position", "seiza", "sitting on lap", "sitting on person", "straddling", "thigh straddling",
|
189 |
+
"upright straddle", "wariza", "yokozuwari"],
|
190 |
+
"standing": ["balancing", "crossed legs", "legs apart", "standing on one leg"]
|
191 |
+
}
|
192 |
+
pose_whole = ["all fours", "reclining", "squatting", "stretching", "yoga"]
|
193 |
+
pose_legs = ["crossed legs", "legs up", "leg up", "spread legs", "crossed ankles", "outstretched leg", "watson cross"]
|
194 |
+
pose_arms = ["arms behind back", "arms behind head", "arms up", "arm up", "arm support", "arm at side"]
|
195 |
+
pose_hands = ["hand on own ear", "hand on headwear", "hand on own chest", "hands on own hips", "hand on own shoulder",
|
196 |
+
"breast hold", "breast lift", "breasts squeezed together", "arm between breasts", "hand in bra",
|
197 |
+
"nipple tweak", "hands on ass", "hand between legs"]
|
198 |
+
|
199 |
+
# These tags don't imply nudity, but are related to some other tags above.
|
200 |
+
pose_touching_clothes = ['adjusting clothes', 'clothes grab', 'apron grab', 'collar grab', 'necktie grab', 'skirt grab',
|
201 |
+
'collar tug', 'dress tug', 'shirt tug', 'skirt tug', 'wringing clothes']
|
202 |
+
|
203 |
+
jobs = ["catgirl", "young innocent", "slut", "princess", "succubus", "medusa",
|
204 |
+
"librarian", "schoolgirl", "milf", "prostitute", "kitsune", "kyuubi", "magic girl",
|
205 |
+
"mage", "demon", "angel", "student", "elf", "fairy", "fox girl", "goddess", 'alchemist',
|
206 |
+
'bartender', 'butler', 'croupier', 'dentist', 'dj', 'doctor', 'dominatrix', 'flight attendant',
|
207 |
+
'florist', 'geisha', 'maid', 'miko', 'nun', 'nurse', 'school nurse', 'office lady',
|
208 |
+
'prostitution', 'sailor', 'stripper', 'teacher', 'waitress', 'witch', "mermaid", "vampire", "dancer",
|
209 |
+
"dominatrix", "female pervert", "gyaru", "idol"]
|
210 |
+
|
211 |
+
######## Objects ##########
|
212 |
+
|
213 |
+
objects_list = [
|
214 |
+
# religion symbols
|
215 |
+
["mandala", "srivatsa", "cross", "star and crescent", "star of david", "dharmachakra", "om", "ankh", "bagua",
|
216 |
+
"ichthys", "kaaba", "padma", "pentagram", "allah", "amsden’s circle"],
|
217 |
+
# flower and some nice objects
|
218 |
+
["flower", "ice flower", "fire flower", "black lotus", "lunar tear", "silk flower", "petals", "lily", "poppy",
|
219 |
+
"rose", "tulip", "snowdrop", "dandelion"],
|
220 |
+
# element
|
221 |
+
["ice", "fire", "water", "lightning", "wind"],
|
222 |
+
["metal", "wood", "stone", "sand", "glass", "fur", "feather", "blood", "gold", "steam", "smoke", "crystal",
|
223 |
+
"bubble", "foam", "ash", "mercury"],
|
224 |
+
# chain
|
225 |
+
["chain jewelry", "chain collar", "chain leash", "chainlink fence", "pinheadchains", "chain piercing"],
|
226 |
+
# 奇幻和元素
|
227 |
+
["arcane", "celestial", "aether", "crystalline", "aurora", "ember", "sylph", "obsidian", "radiance", "verdant",
|
228 |
+
"ecliptic", "nebula"],
|
229 |
+
# 混乱
|
230 |
+
["chaos", "disorderly", "pandemonium", "tumultuous", "havoc", "entropy", "disarray"],
|
231 |
+
# hell
|
232 |
+
["hell", "abyssal", "infernal", "damnation", "purgatorial", "tartarean", "hades", "sheol", "perdition",
|
233 |
+
"underworldly", "gehenna"],
|
234 |
+
]
|
235 |
+
|
236 |
+
suffix_beautiful = ["radiant", "ethereal", "luminous", "vivid", "glowing", "elemental", "celestial", "pristine",
|
237 |
+
"splendid", "enchanting", "charming", "elegant", "gorgeous", "aesthetic", "exquisite", "beautiful",
|
238 |
+
"whimsical", "fantastical", "enigmatic", "quixotic", "surreal", "peculiar", "imaginative"]
|
239 |
+
|
240 |
+
day_time = ["evening", "night", "morning", "sunrise", "sunset", "twilight", "moonlit night"]
|
241 |
+
|
242 |
+
weather = ["blizzard", "blue sky", "cloudy sky", "fog", "rain", "snow", "mist"]
|
243 |
+
|
244 |
+
body_status = ["wet", "sweat"]
|
245 |
+
|
246 |
+
body_with = ["zentangle", "entangled", "chained", "bondage", "handcuffs", "leash", "ribbon bondage", "braid"]
|
247 |
+
|
248 |
+
body_desc_list = ["perfect body", "slim body", "perfect female body", "slender body", "soaked body", "steaming body"]
|
249 |
+
|
250 |
+
details = ["elaborate", "ornate", "intricate", "detailed", "fine", "refined",
|
251 |
+
"complicated", "convoluted", "extensive", "exhaustive", "far-reaching", "informative",
|
252 |
+
"in-depth", "thorough", "step-by-step", "exact", "precise", "exquisite", "lavish",
|
253 |
+
"sumptuous", "opulent", "luxurious", "intricately designed", "grandiose", "stately",
|
254 |
+
"splendid", "magnificent", "precious", "dazzling", "imperceptible detail", "fantasy illustration"]
|
255 |
+
|
256 |
+
image_techniques = ["bloom", "bokeh", "caustics", "chiaroscuro", "diffraction spikes", "depth of field", "film grain",
|
257 |
+
"foreshortening", "gradient", "lens flare", "motion blur",
|
258 |
+
]
|
259 |
+
|
260 |
+
light_effects = ["cinematic lighting", "soft lighting", "perfect lighting", "volumetric lighting", "dramatic lighting",
|
261 |
+
"natural lighting", "sunlight", "rim lighting", "studio lighting", "beautiful lighting",
|
262 |
+
"sidelighting", "light on face", "natural volumetric lighting and best shadows", "neon lights",
|
263 |
+
"vivid vibrant glowing neon toxic colors"]
|
264 |
+
|
265 |
+
color_list = ["colorful", "vibrant colors", "vivid colors", "bright colors", "pastel colors", "neon colors"]
|
266 |
+
|
267 |
+
############ sexual collection ############
|
268 |
+
|
269 |
+
sexual_lingerie = ['lingerie', 'babydoll', 'bodystocking', 'bra', 'bustier', 'camisole', 'chemise', 'corset',
|
270 |
+
'fishnets', 'garter straps', 'garter belt', 'lace', 'nightgown', 'panties', 'boyshort panties',
|
271 |
+
'strapless bottom', 'teddy', 'thong', 'g-string', 'pearl thong']
|
272 |
+
sexual_crotchless = ['crotchless', 'crotchless panties', 'crotchless pants', 'crotchless swimsuit',
|
273 |
+
'crotchless pantyhose', 'crotchless leotard', 'crotchless bloomers', 'crotchless buruma']
|
274 |
+
sexual_ass_cutout = ['ass cutout', 'assless swimsuit', 'backless panties', 'backless pants']
|
275 |
+
sexual_breastless = ['breastless clothes', 'nippleless clothes', 'cupless bikini', 'cupless bra']
|
276 |
+
sexual_miscellaneous = ["anal ball wear", "maebari", "pasties"]
|
277 |
+
sexual_common = ["revealing clothes", "see-through", "cleavage"]
|
278 |
+
|
279 |
+
############ uncensored collection ############
|
280 |
+
|
281 |
+
uncensored_list = ["convenient leg", "hair over breasts", "hair over crotch", "hair over one breast", "covering face"]
|
282 |
+
|
283 |
+
|
284 |
+
##### nsfw/sex collection ############
|
285 |
+
|
286 |
+
class SexActType(IntEnum):
|
287 |
+
SEX = 1
|
288 |
+
STIMULATION = 2
|
289 |
+
GROUP = 3
|
290 |
+
TENTACLES = 4
|
291 |
+
|
292 |
+
|
293 |
+
sex_act_stimulation = ["footjob", "feet", "armpit", "grinding", "kneepit", "paizuri", "thigh", "handjob",
|
294 |
+
"masturbation", "oral"]
|
295 |
+
|
296 |
+
sex_act_group = ["love train", "cooperative fellatio", "cooperative footjob", "cooperative breast smother", "orgy",
|
297 |
+
"reverse spitroast", "spitroast", "teamwork", "MMF threesome", "FFM threesome"]
|
298 |
+
|
299 |
+
sex_act_tentacles = ["consensual tentacles", "tentacle gagged", "tentaclejob", "tentacle sex",
|
300 |
+
"tentacles in thighhighs", "tentacles under clothes", "too many tentacles"]
|
301 |
+
|
302 |
+
sex_category = [
|
303 |
+
["footjob", "feet", "frottage", "groping", "handjob", "masturbation", "tail", "oral", "hug and suck",
|
304 |
+
"licking testicle",
|
305 |
+
"sitting on face", "sitting on face"],
|
306 |
+
["group sex", "bisexual", "bisexual female", "bisexual male", "daisy chain", "gangbang", "double penetration",
|
307 |
+
"triple penetration" "love train", "cooperative fellatio", "cooperative footjob", "multiple breast smother",
|
308 |
+
"orgy",
|
309 |
+
"reverse spitroast", "spitroast", "teamwork", "threesome"],
|
310 |
+
["after sex", "after anal", "after buttjob", "after fellatio", "after fingering", "after frottage",
|
311 |
+
"after insertion", "after masturbation", "after oral", "after paizuri", "after rape", "after urethral",
|
312 |
+
"after vaginal", "afterglow", "clothed after sex", "anal", "double anal", "imminent anal", "pegging",
|
313 |
+
"triple anal", "clothed sex", "guided penetration", "happy sex", "imminent penetration", "implied sex",
|
314 |
+
"navel sex", "sex from behind", "skull fucking", "ear sex", "penis in eye", "tentacle sex", "underwater sex",
|
315 |
+
"vaginal", "after vaginal", "double vaginal", "imminent vaginal", "triple vaginal"],
|
316 |
+
["cum", "bukkake", "cumdump", "cum bath", "cumdrip", "cum pool", "cum inflation", "cum in ass", "cum in clothes",
|
317 |
+
"cum in cup", "cum in mouth", "cum in throat", "cum on tongue", "cum in pussy", "cum in urethra", "cum on body",
|
318 |
+
"cum on hair", "cum on ass", "cum on pussy", "cum on breasts", "cum on fingers", "cum on clothes",
|
319 |
+
"cum on eyewear", "cum on food", "ejaculation", "ejaculating while penetrated", "pull out", "facial", "autofacial",
|
320 |
+
"felching", "gokkun"]
|
321 |
+
]
|
322 |
+
|
323 |
+
sex_positions_reload = [
|
324 |
+
"view from behind, pov", "breast grab, pov", "grabbing own breast", "cheek bulge:1.4, fellatio", "lying, pov",
|
325 |
+
"lying, on side, pov", "lying, leg up, on side, pov",
|
326 |
+
"cowgirl position, pov", "squatting cowgirl position, pov",
|
327 |
+
"doggystyle, pov, from side, standing", "doggystyle, fellatio", "fellatio, pov, from side",
|
328 |
+
"imminent penetration, missionary, cowgirl position, squatting cowgirl position",
|
329 |
+
"Jack'O Challenge, sex from behind, deep penetration", "licking penis, tongue, open mouth",
|
330 |
+
"lying, leg lift, lef up, on side", "missionary, pov, legs up", "paizuri, penis",
|
331 |
+
"piledrive position", "prone bone, from side", "suspended congress", "standing, split legs, leg lift",
|
332 |
+
"x-ray cervix, cross-section, internal cumshot, cum",
|
333 |
+
"aftersex, ass, cum in pussy, cum in face, fellatio, missionary, buttjob",
|
334 |
+
"guided breast grab, pov, guiding hand, breast grab, holding another's wrist",
|
335 |
+
]
|
336 |
+
|
337 |
+
sex_place = ["hotel", "bathtub", "bedroom", "classroom", "bathroom", "living room", "office"]
|
338 |
+
|
339 |
+
sex_man_type = ["1boy", "a tentacle monster", "a group of aliens", "a slime monster", "a water elemental",
|
340 |
+
"a black hole with tentacles"]
|
341 |
+
|
342 |
+
nude_list = [
|
343 |
+
# Any clothes
|
344 |
+
["clothing aside", "clothes down", "open clothes", "revealing clothes", "see-through", "unbuttoned", "undressing",
|
345 |
+
"unfastened", "untied", "untying", "unzipped", "unzipping"],
|
346 |
+
# Misc / Specific exposures that could fit multiple categories below
|
347 |
+
["bikini bottom aside", "bikini pull", "cape lift", "lifting covers", "open bikini", "open bra", "open kimono",
|
348 |
+
"robe slip", "strap lift", "strap pull", "strap slip", "swimsuit aside", "one-piece swimsuit pull", "open towel",
|
349 |
+
"towel slip", "male underwear pull"],
|
350 |
+
# Exposed chest
|
351 |
+
["center opening", "open coat", "open collar", "dress pull", "open hoodie", "open jacket", "leotard pull",
|
352 |
+
"kimono down", "kimono pull", "pajamas pull", "open robe", "shirt aside", "topless male", "no shirt",
|
353 |
+
"open shirt", "shirt lift", "shirt pull", "shirt slip", "sweater lift", "top pull", "open vest"],
|
354 |
+
# Exposed breasts
|
355 |
+
["breastless clothes", "one breast out", "breast slip", "breasts out", "bra lift", "no bra", "bra pull", "topless"],
|
356 |
+
# Exposed parts of breasts
|
357 |
+
["backboob", "cleavage", "cleavage cutout", "sideboob", "underboob", "underboob cutout"],
|
358 |
+
# Exposed nipples
|
359 |
+
["areola slip", "nipple slip", "nippleless clothes", "nipples", "nipple piercing", "nipple chain",
|
360 |
+
"nipple jewelry"],
|
361 |
+
# Exposed torso
|
362 |
+
['back cutout', 'backless outfit', 'bare back', 'frontless outfit', 'midriff', 'navel cutout', 'side cutout',
|
363 |
+
'sideless outfit', 'stomach cutout', 'waist cutout'],
|
364 |
+
# Focus on exposed legs or feet
|
365 |
+
["barefoot", "bare legs", "dress lift", "hip vent", "leg cutout", "thigh cutout", "side slit", "no pants",
|
366 |
+
"shoe pull", "sock pull", "zettai ryouiki"],
|
367 |
+
# Focus on exposed ass or crotch
|
368 |
+
["ass cutout", "bottomless", "buruma pull", "buruma aside", "clitoris slip", "clothing aside", "crotch cutout",
|
369 |
+
"dress aside", "leotard aside", "hakama pull", "kimono lift", "yukata lift", "no panties", "panties aside",
|
370 |
+
"pants pull", "open pants", "pants pull", "panty lift", "panty pull", "pussy peek", "pantyhose pull",
|
371 |
+
"shorts aside", "shorts, open", "shorts pull", "skirt around one leg", "skirt around ankles", "open skirt",
|
372 |
+
"skirt pull", "skirt lift", "swimsuit aside", "bikini bottom aside"],
|
373 |
+
# Dressing / Covering body parts
|
374 |
+
['covering', 'covering anus', 'covering ass', 'covering breasts', 'covering crotch', 'covering head',
|
375 |
+
'covering own ears', 'covering one eye', 'covering own eyes', 'covering face', 'covering mouth', 'nude cover'],
|
376 |
+
]
|
377 |
+
|
378 |
+
# Specific clothes or ornaments being worn as exceptions
|
379 |
+
nude_clothes = ["clothesnaked apron", "nearly naked apron", "naked bandage", "naked cape", "naked capelet",
|
380 |
+
"naked cloak", "naked coat", "naked hoodie", "naked jacket", "naked overalls",
|
381 |
+
"naked ribbon", "naked robe", "naked scarf", "naked sheet", "naked shirt", "naked suspenders",
|
382 |
+
"naked tabard", "naked towel", "underwear only"]
|
383 |
+
|
384 |
+
panties_list = ["bow panties", "crotch seam", "frilled panties", "side-tie panties", "string panties",
|
385 |
+
"stained panties", "wet panties", "backless panties", "c-string", "crotchless panties",
|
386 |
+
"loose panties", "micro panties", "lowleg panties", "highleg panties"]
|
387 |
+
|
388 |
+
|
389 |
+
def get_realistic_prompt():
|
390 |
+
if get_config_value_by_key("is_realistic"):
|
391 |
+
return "(realistic, photorealistic), "
|
392 |
+
else:
|
393 |
+
return ""
|
394 |
+
|
395 |
+
|
396 |
+
def get_angle_and_image_composition():
|
397 |
+
current_prompt = ""
|
398 |
+
if check_config_value_is_not_none("angle"):
|
399 |
+
current_prompt = get_assignment_prompt("angle")
|
400 |
+
else:
|
401 |
+
if get_config_value_by_key("dynamic_mode"):
|
402 |
+
current_prompt = current_prompt + "dynamic angle, "
|
403 |
+
else:
|
404 |
+
current_prompt = current_prompt \
|
405 |
+
+ get_standard_prompt(angle)
|
406 |
+
if check_chance(0.7):
|
407 |
+
current_prompt = current_prompt + get_standard_prompt(depth)
|
408 |
+
|
409 |
+
if check_config_value_is_not_none("body_framing"):
|
410 |
+
current_prompt = current_prompt \
|
411 |
+
+ get_assignment_prompt("body_framing")
|
412 |
+
else:
|
413 |
+
current_prompt = current_prompt \
|
414 |
+
+ get_standard_prompt(body_framing)
|
415 |
+
|
416 |
+
return current_prompt
|
417 |
+
|
418 |
+
|
419 |
+
def get_focus_prompt():
|
420 |
+
current_prompt = ""
|
421 |
+
if check_config_value_is_not_none("assign_focus_on"):
|
422 |
+
current_prompt = get_assignment_prompt("assign_focus_on")
|
423 |
+
elif get_config_value_by_key("add_focus"):
|
424 |
+
current_prompt = current_prompt \
|
425 |
+
+ get_standard_prompt(focus)
|
426 |
+
return current_prompt
|
427 |
+
|
428 |
+
|
429 |
+
def get_girl_desc_prompt():
|
430 |
+
if check_config_value_is_not_none("assign_girl_description"):
|
431 |
+
return get_assignment_prompt("assign_girl_description")
|
432 |
+
|
433 |
+
girl_cnt = get_config_value_by_key("girl_cnt")
|
434 |
+
prompt = "1girl, "
|
435 |
+
if girl_cnt == 0:
|
436 |
+
return ""
|
437 |
+
elif girl_cnt == 1:
|
438 |
+
pass
|
439 |
+
elif 1 < girl_cnt <= 5:
|
440 |
+
prompt = f"{girl_cnt}girls, "
|
441 |
+
elif girl_cnt == 6:
|
442 |
+
prompt = "6+girls, "
|
443 |
+
elif girl_cnt > 6:
|
444 |
+
prompt = "multiple girls, "
|
445 |
+
if get_config_value_by_key("add_girl_beautyful"):
|
446 |
+
return prompt + get_random_from_list(beautifier) + " girl, "
|
447 |
+
|
448 |
+
return prompt
|
449 |
+
|
450 |
+
|
451 |
+
def get_face_expression():
|
452 |
+
expression_type = FaceExpression.SMILE
|
453 |
+
expression_index = 3
|
454 |
+
current_prompt = ""
|
455 |
+
if check_config_value_is_not_none("assign_expression"):
|
456 |
+
return get_assignment_prompt("assign_expression")
|
457 |
+
|
458 |
+
if check_config_value_is_not_none("face_expression"):
|
459 |
+
expression_type = get_config_value_by_key("face_expression")
|
460 |
+
|
461 |
+
if expression_type == FaceExpression.RANDOM:
|
462 |
+
expression_index = random.randint(1, 4)
|
463 |
+
else:
|
464 |
+
expression_index = expression_type
|
465 |
+
|
466 |
+
if expression_index == FaceExpression.SMILE:
|
467 |
+
current_prompt = current_prompt \
|
468 |
+
+ get_standard_prompt(expression_smile)
|
469 |
+
elif expression_index == FaceExpression.EMOTIONS:
|
470 |
+
current_prompt = current_prompt \
|
471 |
+
+ get_standard_prompt(expression_emo)
|
472 |
+
elif expression_index == FaceExpression.SEXUAL:
|
473 |
+
current_prompt = current_prompt \
|
474 |
+
+ get_standard_prompt(expression_sexual)
|
475 |
+
elif expression_index == FaceExpression.SMUG:
|
476 |
+
current_prompt = current_prompt \
|
477 |
+
+ get_standard_prompt(expression_smug)
|
478 |
+
|
479 |
+
return current_prompt
|
480 |
+
|
481 |
+
|
482 |
+
def get_pose_prompt():
|
483 |
+
if check_config_value_is_not_none("assign_pose"):
|
484 |
+
return get_assignment_prompt("assign_pose")
|
485 |
+
|
486 |
+
if get_config_value_by_key("dynamic_mode"):
|
487 |
+
return "dynamic pose, "
|
488 |
+
|
489 |
+
current_prompt = ""
|
490 |
+
pose_type = PoseType.BASE
|
491 |
+
|
492 |
+
if check_config_value_is_not_none("pose_type"):
|
493 |
+
pose_type = get_config_value_by_key("pose_type")
|
494 |
+
|
495 |
+
if pose_type == PoseType.BASE:
|
496 |
+
base_pose = get_random_from_list(pose_base)
|
497 |
+
current_prompt = current_prompt \
|
498 |
+
+ base_pose + ", "
|
499 |
+
|
500 |
+
if pose_base_child[base_pose] is not None and check_chance(0.5):
|
501 |
+
base_child_list = pose_base_child[base_pose]
|
502 |
+
base_child = get_random_from_list(base_child_list)
|
503 |
+
current_prompt = current_prompt \
|
504 |
+
+ base_child + ", "
|
505 |
+
elif pose_type == PoseType.WHOLE:
|
506 |
+
current_prompt = current_prompt + get_standard_prompt(pose_whole)
|
507 |
+
|
508 |
+
sub_index = random.randint(-1, 3)
|
509 |
+
if sub_index == -1:
|
510 |
+
pass
|
511 |
+
elif sub_index == 0:
|
512 |
+
current_prompt = current_prompt + get_standard_prompt(pose_legs)
|
513 |
+
elif sub_index == 1:
|
514 |
+
current_prompt = current_prompt + get_standard_prompt(pose_arms)
|
515 |
+
elif sub_index == 2:
|
516 |
+
current_prompt = current_prompt + get_standard_prompt(pose_hands)
|
517 |
+
elif sub_index == 3:
|
518 |
+
current_prompt = current_prompt + get_standard_prompt(pose_touching_clothes)
|
519 |
+
|
520 |
+
return current_prompt
|
521 |
+
|
522 |
+
|
523 |
+
def get_legwear_prompt():
|
524 |
+
current_prompt_leg = ""
|
525 |
+
|
526 |
+
if check_config_value_is_not_none("assign_leg_wear"):
|
527 |
+
current_prompt_leg = "("
|
528 |
+
if check_config_value_is_not_none("leg_wear_color"):
|
529 |
+
current_prompt_leg = current_prompt_leg \
|
530 |
+
+ get_config_value_by_key("leg_wear_color") + " and "
|
531 |
+
current_prompt_leg = current_prompt_leg + get_random_from_list(legwear_style) + " "
|
532 |
+
current_prompt_leg = current_prompt_leg \
|
533 |
+
+ get_config_value_by_key("assign_leg_wear") \
|
534 |
+
+ ":{:.2f}".format(make_prompt_strong_scale) \
|
535 |
+
+ "), "
|
536 |
+
# return get_assignment_prompt("assign_leg_wear")
|
537 |
+
return current_prompt_leg
|
538 |
+
|
539 |
+
legwear_type = LegWearType.PANTYHOSE
|
540 |
+
has_assign_color = False
|
541 |
+
|
542 |
+
if check_config_value_is_not_none("leg_wear"):
|
543 |
+
legwear_type = get_config_value_by_key("leg_wear")
|
544 |
+
|
545 |
+
if legwear_type == LegWearType.ASNULL:
|
546 |
+
return ""
|
547 |
+
elif legwear_type == LegWearType.RANDON:
|
548 |
+
legwear_type = get_random_from_list(
|
549 |
+
[LegWearType.PANTYHOSE, LegWearType.BARE, LegWearType.THIGHHIGHS, LegWearType.KNEEHIGHS,
|
550 |
+
LegWearType.OVERKNEEHIGHS, LegWearType.SOCKS])
|
551 |
+
|
552 |
+
current_prompt_leg = current_prompt_leg + "("
|
553 |
+
if legwear_type != LegWearType.BARE:
|
554 |
+
if check_config_value_is_not_none("leg_wear_color"):
|
555 |
+
current_prompt_leg = current_prompt_leg \
|
556 |
+
+ get_config_value_by_key("leg_wear_color") \
|
557 |
+
+ " and "
|
558 |
+
has_assign_color = True
|
559 |
+
else:
|
560 |
+
if get_config_value_by_key("disable_all_color") is False:
|
561 |
+
current_prompt_leg = current_prompt_leg \
|
562 |
+
+ get_random_from_list(legwear_color) + " and "
|
563 |
+
|
564 |
+
if legwear_type != LegWearType.BARE:
|
565 |
+
current_prompt_leg = current_prompt_leg + get_random_from_list(legwear_style) + " "
|
566 |
+
|
567 |
+
if legwear_type == LegWearType.SOCKS:
|
568 |
+
current_prompt_leg = current_prompt_leg \
|
569 |
+
+ "socks"
|
570 |
+
elif legwear_type == LegWearType.PANTYHOSE:
|
571 |
+
current_prompt_leg = current_prompt_leg \
|
572 |
+
+ "pantyhose"
|
573 |
+
elif legwear_type == LegWearType.KNEEHIGHS:
|
574 |
+
current_prompt_leg = current_prompt_leg \
|
575 |
+
+ "kneehighs"
|
576 |
+
elif legwear_type == LegWearType.OVERKNEEHIGHS:
|
577 |
+
current_prompt_leg = current_prompt_leg \
|
578 |
+
+ "over-kneehighs"
|
579 |
+
elif legwear_type == LegWearType.THIGHHIGHS:
|
580 |
+
current_prompt_leg = current_prompt_leg \
|
581 |
+
+ "thighhighs"
|
582 |
+
elif legwear_type == LegWearType.BARE:
|
583 |
+
current_prompt_leg = current_prompt_leg \
|
584 |
+
+ "bare legs"
|
585 |
+
|
586 |
+
if has_assign_color and legwear_type != LegWearType.BARE:
|
587 |
+
current_prompt_leg = current_prompt_leg \
|
588 |
+
+ ":{:.2f}".format(make_prompt_strong_scale)
|
589 |
+
|
590 |
+
current_prompt_leg = current_prompt_leg + "), "
|
591 |
+
|
592 |
+
return current_prompt_leg
|
593 |
+
|
594 |
+
|
595 |
+
def get_shoes_prompt():
|
596 |
+
current_prompt = ""
|
597 |
+
if check_config_value_is_not_none("assign_shoes"):
|
598 |
+
current_prompt = "("
|
599 |
+
if check_config_value_is_not_none("shoes_color"):
|
600 |
+
current_prompt = current_prompt + get_config_value_by_key("shoes_color") + " "
|
601 |
+
current_prompt = current_prompt \
|
602 |
+
+ get_config_value_by_key("assign_shoes") \
|
603 |
+
+ ":" \
|
604 |
+
+ "{:.2f}".format(make_prompt_strong_scale) \
|
605 |
+
+ "),"
|
606 |
+
|
607 |
+
return current_prompt
|
608 |
+
|
609 |
+
has_assign_color = False
|
610 |
+
|
611 |
+
shoes_type = FootWearType.HIGHHEELS
|
612 |
+
if check_config_value_is_not_none("shoes_type"):
|
613 |
+
shoes_type = get_config_value_by_key("shoes_type")
|
614 |
+
|
615 |
+
if shoes_type == FootWearType.ASNULL:
|
616 |
+
return ""
|
617 |
+
|
618 |
+
if shoes_type != FootWearType.BARE:
|
619 |
+
if check_config_value_is_not_none("shoes_color"):
|
620 |
+
current_prompt = current_prompt \
|
621 |
+
+ "(" + get_config_value_by_key("shoes_color") \
|
622 |
+
+ " "
|
623 |
+
has_assign_color = True
|
624 |
+
|
625 |
+
if shoes_type == FootWearType.HIGHHEELS:
|
626 |
+
current_prompt = current_prompt \
|
627 |
+
+ get_random_from_list(shoes_high_heels)
|
628 |
+
elif shoes_type == FootWearType.BOOTS:
|
629 |
+
current_prompt = current_prompt \
|
630 |
+
+ get_random_from_list(shoes_boots)
|
631 |
+
elif shoes_type == FootWearType.SANDALS:
|
632 |
+
current_prompt = current_prompt \
|
633 |
+
+ get_random_from_list(shoes_sandals)
|
634 |
+
elif shoes_type == FootWearType.SLIPPERS:
|
635 |
+
current_prompt = current_prompt \
|
636 |
+
+ get_random_from_list(shoes_slippers)
|
637 |
+
elif shoes_type == FootWearType.BARE:
|
638 |
+
current_prompt = current_prompt \
|
639 |
+
+ "bare foot"
|
640 |
+
|
641 |
+
if has_assign_color:
|
642 |
+
current_prompt = current_prompt \
|
643 |
+
+ ":{:.2f}".format(make_prompt_strong_scale) \
|
644 |
+
+ "), "
|
645 |
+
else:
|
646 |
+
current_prompt = current_prompt + ", "
|
647 |
+
return current_prompt
|
648 |
+
|
649 |
+
|
650 |
+
def get_ribbon_others():
|
651 |
+
current_ribbon_others = ""
|
652 |
+
if get_config_value_by_key("cloth_trim"):
|
653 |
+
current_ribbon_others = current_ribbon_others + get_standard_prompt(clothes_trim, True)
|
654 |
+
return current_ribbon_others
|
655 |
+
|
656 |
+
|
657 |
+
def get_body_with_prompt():
|
658 |
+
if get_config_value_by_key("body_with"):
|
659 |
+
return get_standard_prompt(body_with, True)
|
660 |
+
else:
|
661 |
+
return ""
|
662 |
+
|
663 |
+
|
664 |
+
def get_body_status_prompt():
|
665 |
+
if get_config_value_by_key("body_status"):
|
666 |
+
if get_config_value_by_key("sex_mode") or get_config_value_by_key("nsfw_type") != NSFWType.NOTNSFW:
|
667 |
+
body_status.append("cum on body")
|
668 |
+
return get_standard_prompt(body_status, True)
|
669 |
+
else:
|
670 |
+
return get_standard_prompt(body_status, True)
|
671 |
+
else:
|
672 |
+
return ""
|
673 |
+
|
674 |
+
|
675 |
+
def get_body_description_prompt():
|
676 |
+
current_prompt = ""
|
677 |
+
if get_config_value_by_key("body_description"):
|
678 |
+
current_prompt = current_prompt + get_standard_prompt(body_desc_list)
|
679 |
+
current_prompt = current_prompt + "narrow waist, chest jewel, navel, "
|
680 |
+
return current_prompt
|
681 |
+
|
682 |
+
|
683 |
+
def get_accessories_mix_prompt():
|
684 |
+
random_times = 1
|
685 |
+
random_times = get_config_value_by_key("accessories_random_tims")
|
686 |
+
if random_times <= 0:
|
687 |
+
return ""
|
688 |
+
|
689 |
+
current_accessories_mix = ""
|
690 |
+
is_sex = get_config_value_by_key("sex_mode")
|
691 |
+
is_nude = get_config_value_by_key("nsfw_type") == NSFWType.NUDE
|
692 |
+
|
693 |
+
random_list = other_accessories.copy()
|
694 |
+
|
695 |
+
if is_sex is not True:
|
696 |
+
current_accessories_mix = "("
|
697 |
+
if is_nude or is_sex:
|
698 |
+
random_list.append(["nipple chain", "nipple piercing"])
|
699 |
+
|
700 |
+
if random_times > len(random_list):
|
701 |
+
random_times = len(random_list)
|
702 |
+
select_index_list = random_list_no_repeat_number(len(random_list), random_times)
|
703 |
+
for v in select_index_list:
|
704 |
+
current_accessories_mix = current_accessories_mix \
|
705 |
+
+ get_standard_prompt(random_list[v - 1])
|
706 |
+
|
707 |
+
current_accessories_mix = remove_comma_space(current_accessories_mix)
|
708 |
+
|
709 |
+
if is_sex:
|
710 |
+
current_accessories_mix = current_accessories_mix + ", "
|
711 |
+
else:
|
712 |
+
current_accessories_mix = current_accessories_mix + "), "
|
713 |
+
return current_accessories_mix
|
714 |
+
|
715 |
+
|
716 |
+
def get_objects_mix_prompt():
|
717 |
+
random_times = get_config_value_by_key("object_random_times")
|
718 |
+
if random_times > len(objects_list):
|
719 |
+
random_times = len(objects_list)
|
720 |
+
current_prompt = ""
|
721 |
+
|
722 |
+
if random_times <= 0:
|
723 |
+
return current_prompt
|
724 |
+
else:
|
725 |
+
select_index_list = random_list_no_repeat_number(len(objects_list), random_times)
|
726 |
+
for v in select_index_list:
|
727 |
+
current_prompt = current_prompt \
|
728 |
+
+ get_standard_prompt(objects_list[v - 1])
|
729 |
+
return current_prompt
|
730 |
+
|
731 |
+
|
732 |
+
def get_suffix_beautiful_prompt():
|
733 |
+
random_times = get_config_value_by_key("suffix_words_random_times")
|
734 |
+
current_prompt = ""
|
735 |
+
if random_times <= 0:
|
736 |
+
return current_prompt
|
737 |
+
else:
|
738 |
+
if random_times > len(suffix_beautiful):
|
739 |
+
random_times = len(suffix_beautiful)
|
740 |
+
select_index_list = random_list_no_repeat_number(len(suffix_beautiful), random_times)
|
741 |
+
for v in select_index_list:
|
742 |
+
current_prompt = current_prompt \
|
743 |
+
+ suffix_beautiful[v - 1] + ", "
|
744 |
+
return current_prompt
|
745 |
+
|
746 |
+
|
747 |
+
def get_breasts_size_prompt():
|
748 |
+
if check_config_value_is_not_none("breasts_size"):
|
749 |
+
size_value = get_config_value_by_key("breasts_size")
|
750 |
+
if size_value == "nil" or size_value == "null" or size_value == "none":
|
751 |
+
return ""
|
752 |
+
return get_config_value_by_key("breasts_size") + " breasts, "
|
753 |
+
else:
|
754 |
+
return get_standard_prompt(bSize)
|
755 |
+
|
756 |
+
|
757 |
+
def get_panties_prompt():
|
758 |
+
current_prompt = ""
|
759 |
+
|
760 |
+
if get_config_value_by_key("panties"):
|
761 |
+
if check_config_value_is_not_none("assign_panties"):
|
762 |
+
current_prompt = get_assignment_prompt("assign_panties")
|
763 |
+
else:
|
764 |
+
current_prompt = get_standard_prompt(panties_list)
|
765 |
+
return current_prompt
|
766 |
+
|
767 |
+
|
768 |
+
def get_nsfw_prompt():
|
769 |
+
nsfw = ""
|
770 |
+
if get_config_value_by_key("is_nsfw"):
|
771 |
+
nsfw = "(nsfw), "
|
772 |
+
return nsfw
|
773 |
+
|
774 |
+
|
775 |
+
def get_uncensored_prompt():
|
776 |
+
is_uncensored = get_config_value_by_key("is_uncensored")
|
777 |
+
current_prompt = ""
|
778 |
+
if is_uncensored:
|
779 |
+
current_prompt = "uncensored, "
|
780 |
+
current_prompt = current_prompt + get_standard_prompt(uncensored_list)
|
781 |
+
|
782 |
+
return current_prompt
|
783 |
+
|
784 |
+
|
785 |
+
def get_body_wear_prompt():
|
786 |
+
body_wear_output = get_pose_prompt()
|
787 |
+
|
788 |
+
nsfw_type = NSFWType.NOTNSFW
|
789 |
+
body_wear = BodyWearType.RANDOM
|
790 |
+
top_wear = TopWearType.RANDOM
|
791 |
+
bottom_wear = BottomWearType.RANDOM
|
792 |
+
|
793 |
+
if check_config_value_is_not_none("nsfw_type"):
|
794 |
+
nsfw_type = get_config_value_by_key("nsfw_type")
|
795 |
+
|
796 |
+
if check_config_value_is_not_none("body_wear"):
|
797 |
+
body_wear = get_config_value_by_key("body_wear")
|
798 |
+
if check_config_value_is_not_none("top_wear"):
|
799 |
+
top_wear = get_config_value_by_key("top_wear")
|
800 |
+
if check_config_value_is_not_none("bottom_wear"):
|
801 |
+
bottom_wear = get_config_value_by_key("bottom_wear")
|
802 |
+
|
803 |
+
if nsfw_type == NSFWType.NUDE:
|
804 |
+
body_wear_output = get_body_nude_prompt(body_wear_output)
|
805 |
+
elif nsfw_type == NSFWType.SEXUAL:
|
806 |
+
body_wear_output = get_body_sexual_prompt(body_wear_output)
|
807 |
+
else:
|
808 |
+
if check_config_value_is_not_none("assign_body_clothes"):
|
809 |
+
return body_wear_output + get_assignment_prompt("assign_body_clothes")
|
810 |
+
|
811 |
+
i = int(body_wear)
|
812 |
+
if i == 6:
|
813 |
+
i = random.randint(1, 5)
|
814 |
+
|
815 |
+
if i == BodyWearType.DRESS:
|
816 |
+
body_wear_output = body_wear_output + "("
|
817 |
+
if get_config_value_by_key("disable_all_color") is True:
|
818 |
+
body_wear_output = body_wear_output \
|
819 |
+
+ get_random_from_list(dress_type) \
|
820 |
+
+ "), "
|
821 |
+
else:
|
822 |
+
body_wear_output = body_wear_output \
|
823 |
+
+ get_random_from_list(dress_color) \
|
824 |
+
+ " and " \
|
825 |
+
+ get_random_from_list(dress_type) \
|
826 |
+
+ "), "
|
827 |
+
elif i == BodyWearType.UNIFORM:
|
828 |
+
body_wear_output = body_wear_output \
|
829 |
+
+ get_standard_prompt(uniforms)
|
830 |
+
elif i == BodyWearType.BODYSUIT:
|
831 |
+
body_wear_output = body_wear_output \
|
832 |
+
+ get_standard_prompt(bodysuits)
|
833 |
+
elif i == BodyWearType.TRADITIONAL:
|
834 |
+
body_wear_output = body_wear_output \
|
835 |
+
+ get_standard_prompt(traditional_clothes)
|
836 |
+
elif i == BodyWearType.CUSTOM:
|
837 |
+
body_wear_output = body_wear_output \
|
838 |
+
+ get_top_wear_prompt(top_wear) \
|
839 |
+
+ get_bottom_wear_prompt(bottom_wear)
|
840 |
+
|
841 |
+
body_wear_output = body_wear_output \
|
842 |
+
+ get_body_description_prompt() \
|
843 |
+
+ get_legwear_prompt() \
|
844 |
+
+ get_body_with_prompt() \
|
845 |
+
+ get_ribbon_others() \
|
846 |
+
+ get_shoes_prompt() \
|
847 |
+
+ get_panties_prompt() \
|
848 |
+
+ get_focus_prompt()
|
849 |
+
|
850 |
+
return body_wear_output
|
851 |
+
|
852 |
+
|
853 |
+
def get_body_sexual_prompt(body_wear_output):
|
854 |
+
# convert sexual_common list to sting with ", "
|
855 |
+
sexual_common_str = "("
|
856 |
+
sexual_tmp_list = [sexual_lingerie, sexual_crotchless, sexual_ass_cutout, sexual_breastless,
|
857 |
+
sexual_miscellaneous]
|
858 |
+
sexual_common_str = sexual_common_str + get_random_from_list(sexual_common) + ", "
|
859 |
+
body_wear_output = body_wear_output + sexual_common_str
|
860 |
+
sexual_random_times = len(sexual_tmp_list)
|
861 |
+
sexual_random_times = get_config_value_by_key("sexual_list_random_index_times")
|
862 |
+
if sexual_random_times > len(sexual_tmp_list):
|
863 |
+
sexual_random_times = len(sexual_tmp_list)
|
864 |
+
elif sexual_random_times <= 0:
|
865 |
+
sexual_random_times = 0
|
866 |
+
if sexual_random_times > 0:
|
867 |
+
select_list = random_list_no_repeat_number(len(sexual_tmp_list), sexual_random_times)
|
868 |
+
for v in select_list:
|
869 |
+
body_wear_output = body_wear_output + get_standard_prompt(sexual_tmp_list[v - 1])
|
870 |
+
body_wear_output = remove_comma_space(body_wear_output)
|
871 |
+
body_wear_output = body_wear_output + "), "
|
872 |
+
return body_wear_output
|
873 |
+
|
874 |
+
|
875 |
+
def get_body_nude_prompt(body_wear_output):
|
876 |
+
if get_config_value_by_key("nude_strong"):
|
877 |
+
body_wear_output = body_wear_output + "(nipples, pussy, "
|
878 |
+
else:
|
879 |
+
body_wear_output = body_wear_output + "("
|
880 |
+
nude_random_times = 1
|
881 |
+
body_wear_output = body_wear_output + \
|
882 |
+
"completely nude, " + \
|
883 |
+
get_standard_prompt(nude_clothes, False, True)
|
884 |
+
if get_config_value_by_key("is_simple_nude") is not True:
|
885 |
+
body_wear_output = body_wear_output \
|
886 |
+
+ get_standard_prompt(nude_list[0]) \
|
887 |
+
+ get_standard_prompt(pose_touching_clothes)
|
888 |
+
nude_random_times = get_config_value_by_key("nude_list_random_index_times")
|
889 |
+
if nude_random_times > len(nude_list) - 1:
|
890 |
+
nude_random_times = len(nude_list) - 1
|
891 |
+
elif nude_random_times <= 0:
|
892 |
+
nude_random_times = 0
|
893 |
+
if nude_random_times > 0:
|
894 |
+
select_list = random_list_no_repeat_number(len(nude_list) - 1, nude_random_times)
|
895 |
+
for v in select_list:
|
896 |
+
body_wear_output = body_wear_output + get_standard_prompt(nude_list[v])
|
897 |
+
body_wear_output = remove_comma_space(body_wear_output)
|
898 |
+
body_wear_output = body_wear_output + "), "
|
899 |
+
return body_wear_output
|
900 |
+
|
901 |
+
|
902 |
+
def get_top_wear_prompt(type_value):
|
903 |
+
top_wear_output = ""
|
904 |
+
"""
|
905 |
+
SHIRTS = 1
|
906 |
+
COAT = 2
|
907 |
+
SWEATER = 3
|
908 |
+
OTHERS = 4
|
909 |
+
RANDOM = 5
|
910 |
+
"""
|
911 |
+
index = int(type_value)
|
912 |
+
if index == 5:
|
913 |
+
index = random.randint(1, 4)
|
914 |
+
if index == TopWearType.SHIRTS:
|
915 |
+
top_wear_output = get_standard_prompt(top_shirts)
|
916 |
+
elif index == TopWearType.COAT:
|
917 |
+
top_wear_output = get_standard_prompt(top_coat)
|
918 |
+
elif index == TopWearType.SWEATER:
|
919 |
+
top_wear_output = get_standard_prompt(top_sweater)
|
920 |
+
elif index == TopWearType.OTHERS:
|
921 |
+
top_wear_output = get_standard_prompt(top_others)
|
922 |
+
|
923 |
+
return top_wear_output
|
924 |
+
|
925 |
+
|
926 |
+
def get_bottom_wear_prompt(type_value):
|
927 |
+
bottom_wear_output = ""
|
928 |
+
"""
|
929 |
+
PANTS = 1
|
930 |
+
SKIRT = 2
|
931 |
+
SHORT = 3
|
932 |
+
RANDOM = 4
|
933 |
+
"""
|
934 |
+
index = int(type_value)
|
935 |
+
if index == 4:
|
936 |
+
index = random.randint(1, 3)
|
937 |
+
if index == BottomWearType.SHORT:
|
938 |
+
bottom_wear_output = get_standard_prompt(bottom_shorts)
|
939 |
+
bottom_wear_output = bottom_wear_output \
|
940 |
+
+ get_legwear_prompt()
|
941 |
+
elif index == BottomWearType.SKIRT:
|
942 |
+
bottom_wear_output = get_standard_prompt(bottom_skirts)
|
943 |
+
bottom_wear_output = bottom_wear_output \
|
944 |
+
+ get_legwear_prompt()
|
945 |
+
elif index == BottomWearType.PANTS:
|
946 |
+
bottom_wear_output = get_standard_prompt(bottom_pants)
|
947 |
+
return bottom_wear_output
|
948 |
+
|
949 |
+
|
950 |
+
def get_hair_prompt():
|
951 |
+
prompt = ""
|
952 |
+
has_hair_length = get_config_value_by_key("add_hair_length")
|
953 |
+
if has_hair_length:
|
954 |
+
prompt = prompt + get_random_from_list(hairLength)
|
955 |
+
|
956 |
+
hair_assign = get_assignment_prompt("hair_color")
|
957 |
+
if hair_assign == "":
|
958 |
+
prompt = ""
|
959 |
+
elif "r" in hair_assign or "random" in hair_assign:
|
960 |
+
if has_hair_length:
|
961 |
+
prompt = prompt + " and " + get_random_from_list(hairColor)
|
962 |
+
else:
|
963 |
+
prompt = prompt + get_random_from_list(hairColor)
|
964 |
+
else:
|
965 |
+
if has_hair_length:
|
966 |
+
prompt = prompt + " and " + get_config_value_by_key("hair_color") + " hair"
|
967 |
+
else:
|
968 |
+
prompt = prompt + get_config_value_by_key("hair_color") + " hair"
|
969 |
+
|
970 |
+
return prompt
|
971 |
+
|
972 |
+
|
973 |
+
def get_hair_eyes_prompt():
|
974 |
+
current_prompt = ""
|
975 |
+
current_prompt = get_face_expression() \
|
976 |
+
+ get_breasts_size_prompt() \
|
977 |
+
+ get_hair_prompt()
|
978 |
+
|
979 |
+
if get_config_value_by_key("add_hair_style"):
|
980 |
+
current_prompt = current_prompt \
|
981 |
+
+ get_standard_prompt(hair_style)
|
982 |
+
if check_chance(0.6):
|
983 |
+
current_prompt = current_prompt + get_standard_prompt(hair_others)
|
984 |
+
|
985 |
+
if get_config_value_by_key("enable_eye_color"):
|
986 |
+
current_prompt = current_prompt \
|
987 |
+
+ get_random_from_list(eyeColor) \
|
988 |
+
+ " eyes, "
|
989 |
+
if check_chance(0.5):
|
990 |
+
current_prompt = current_prompt + get_standard_prompt(eye_others)
|
991 |
+
return current_prompt
|
992 |
+
|
993 |
+
|
994 |
+
def get_job_prompt():
|
995 |
+
if check_config_value_is_not_none("assign_profession"):
|
996 |
+
return get_assignment_prompt("assign_profession")
|
997 |
+
else:
|
998 |
+
return get_random_from_list(jobs) + ", "
|
999 |
+
|
1000 |
+
|
1001 |
+
def get_place_prompt():
|
1002 |
+
if check_config_value_is_not_none("place"):
|
1003 |
+
return get_assignment_prompt("place")
|
1004 |
+
else:
|
1005 |
+
if get_config_value_by_key("sex_mode"):
|
1006 |
+
return get_standard_prompt(sex_place, False, True)
|
1007 |
+
else:
|
1008 |
+
if check_chance(0.5):
|
1009 |
+
return get_standard_prompt(place)
|
1010 |
+
else:
|
1011 |
+
return get_standard_prompt(background_view)
|
1012 |
+
|
1013 |
+
|
1014 |
+
def get_user_additional_prompt():
|
1015 |
+
target_prompt = ""
|
1016 |
+
if check_config_value_is_not_none("additional_prompt"):
|
1017 |
+
target_prompt = target_prompt + get_assignment_prompt("additional_prompt")
|
1018 |
+
return target_prompt
|
1019 |
+
|
1020 |
+
|
1021 |
+
def get_starting_prompt():
|
1022 |
+
target_prompt = ""
|
1023 |
+
if get_config_value_by_key("use_starting"):
|
1024 |
+
# masterpiece,
|
1025 |
+
target_prompt = "best quality, absurdres, "
|
1026 |
+
return target_prompt
|
1027 |
+
|
1028 |
+
|
1029 |
+
def get_colors_prompt():
|
1030 |
+
if get_config_value_by_key("add_colors"):
|
1031 |
+
return get_standard_prompt(color_list)
|
1032 |
+
return ""
|
1033 |
+
|
1034 |
+
|
1035 |
+
def get_bottom_prompt():
|
1036 |
+
target_prompt = ""
|
1037 |
+
if get_config_value_by_key("enable_light_effect"):
|
1038 |
+
target_prompt = target_prompt + get_standard_prompt(light_effects)
|
1039 |
+
if get_config_value_by_key("enable_image_tech"):
|
1040 |
+
target_prompt = target_prompt + get_standard_prompt(image_techniques)
|
1041 |
+
|
1042 |
+
if get_config_value_by_key("add_hair_accessories"):
|
1043 |
+
target_prompt = target_prompt + get_standard_prompt(hair_accessories)
|
1044 |
+
if get_config_value_by_key("add_neck_accessories"):
|
1045 |
+
target_prompt = target_prompt + get_standard_prompt(neck_accessories)
|
1046 |
+
if get_config_value_by_key("add_earrings"):
|
1047 |
+
target_prompt = target_prompt + get_standard_prompt(earrings)
|
1048 |
+
if get_config_value_by_key("add_detail_suffix"):
|
1049 |
+
target_prompt = target_prompt + "jewelry, ultra-detailed, 8k, "
|
1050 |
+
|
1051 |
+
if get_config_value_by_key("enable_day_weather"):
|
1052 |
+
target_prompt = target_prompt \
|
1053 |
+
+ get_standard_prompt(day_time) \
|
1054 |
+
+ get_standard_prompt(weather)
|
1055 |
+
|
1056 |
+
target_prompt = target_prompt \
|
1057 |
+
+ get_body_status_prompt() \
|
1058 |
+
+ get_accessories_mix_prompt() \
|
1059 |
+
+ get_objects_mix_prompt() \
|
1060 |
+
+ get_suffix_beautiful_prompt()
|
1061 |
+
|
1062 |
+
if get_config_value_by_key("has_girl_desc"):
|
1063 |
+
# finely detailed beautiful eyes and detailed face
|
1064 |
+
target_prompt = target_prompt + "extremely detailed eyes and face, extremely delicate and beautiful girl, beautiful face, "
|
1065 |
+
|
1066 |
+
target_prompt = target_prompt + get_colors_prompt()
|
1067 |
+
|
1068 |
+
return target_prompt
|
1069 |
+
|
1070 |
+
|
1071 |
+
########## Sex Mode ##########
|
1072 |
+
def get_s_girl_desc():
|
1073 |
+
return "1 " + get_random_from_list(beautifier) + " girl, "
|
1074 |
+
|
1075 |
+
|
1076 |
+
def get_s_man_type_prompt():
|
1077 |
+
if get_config_value_by_key("man_random") is not True:
|
1078 |
+
return "1boy, "
|
1079 |
+
else:
|
1080 |
+
return get_standard_prompt(sex_man_type)
|
1081 |
+
|
1082 |
+
|
1083 |
+
def get_s_position():
|
1084 |
+
current_prompt = "("
|
1085 |
+
current_prompt = current_prompt + get_random_from_list(sex_positions_reload) + "), "
|
1086 |
+
return current_prompt
|
1087 |
+
|
1088 |
+
|
1089 |
+
def get_s_act_sex_prompt():
|
1090 |
+
prompt = get_realistic_prompt() \
|
1091 |
+
+ get_s_position() \
|
1092 |
+
+ "(" + get_s_girl_desc() \
|
1093 |
+
+ get_s_man_type_prompt() \
|
1094 |
+
+ "sex), " \
|
1095 |
+
+ "vaginal, penis, blush, pussy, pussy juice, tong, penetration, " \
|
1096 |
+
+ get_s_bottom_prompt()
|
1097 |
+
|
1098 |
+
return prompt
|
1099 |
+
|
1100 |
+
|
1101 |
+
def get_s_act_group_prompt():
|
1102 |
+
prompt = get_realistic_prompt() + "("
|
1103 |
+
r_value = get_random_from_list(sex_act_group)
|
1104 |
+
prompt = prompt \
|
1105 |
+
+ r_value \
|
1106 |
+
+ ", group sex), " \
|
1107 |
+
+ get_s_position() \
|
1108 |
+
+ "vaginal, penis, blush, pussy, pussy juice, tong, penetration, " \
|
1109 |
+
+ get_s_bottom_prompt()
|
1110 |
+
return prompt
|
1111 |
+
|
1112 |
+
|
1113 |
+
def get_s_act_tentacles_prompt():
|
1114 |
+
prompt = get_realistic_prompt() + \
|
1115 |
+
"(" + get_s_girl_desc() \
|
1116 |
+
+ get_random_from_list(sex_act_tentacles) + ", " \
|
1117 |
+
+ get_s_position() \
|
1118 |
+
+ ")," \
|
1119 |
+
+ "vaginal, blush, pussy, pussy juice, " \
|
1120 |
+
+ get_s_bottom_prompt()
|
1121 |
+
|
1122 |
+
return prompt
|
1123 |
+
|
1124 |
+
|
1125 |
+
def get_s_bottom_prompt():
|
1126 |
+
return get_standard_prompt(expression_sexual) \
|
1127 |
+
+ get_breasts_size_prompt() \
|
1128 |
+
+ get_standard_prompt(hair_accessories) \
|
1129 |
+
+ get_standard_prompt(neck_accessories) \
|
1130 |
+
+ get_standard_prompt(earrings) \
|
1131 |
+
+ get_place_prompt() \
|
1132 |
+
+ get_legwear_prompt() \
|
1133 |
+
+ get_panties_prompt() \
|
1134 |
+
+ get_ribbon_others() \
|
1135 |
+
+ get_shoes_prompt() \
|
1136 |
+
+ get_accessories_mix_prompt() \
|
1137 |
+
+ "nude, jewelry, chain, ribbon, best quality, absurdres, ultra-detailed, 8k, " \
|
1138 |
+
+ "\n\n"
|
1139 |
+
|
1140 |
+
|
1141 |
+
def get_assignment_prompt(the_assignment):
|
1142 |
+
the_value = get_config_value_by_key(the_assignment).lower()
|
1143 |
+
# check the_value, if is like nil, null, none, then return ""
|
1144 |
+
if the_value == "nil" or the_value == "null" or the_value == "none" or the_value == "空":
|
1145 |
+
return ""
|
1146 |
+
else:
|
1147 |
+
return "(" + get_config_value_by_key(the_assignment) + "), "
|
1148 |
+
|
1149 |
+
|
1150 |
+
def get_standard_prompt(target_list, strong=False, chance_toggle=False):
|
1151 |
+
if strong:
|
1152 |
+
return "(" \
|
1153 |
+
+ get_random_from_list(target_list) \
|
1154 |
+
+ ":{:.2f}".format(random.uniform(1.1, 1.21)) \
|
1155 |
+
+ "), "
|
1156 |
+
else:
|
1157 |
+
if chance_toggle:
|
1158 |
+
if check_chance(0.5):
|
1159 |
+
return get_random_from_list(target_list) + ", "
|
1160 |
+
else:
|
1161 |
+
return ""
|
1162 |
+
else:
|
1163 |
+
return get_random_from_list(target_list) + ", "
|
1164 |
+
|
1165 |
+
|
1166 |
+
def get_random_from_list(list):
|
1167 |
+
i = random.randint(0, len(list) - 1)
|
1168 |
+
return list[i]
|
1169 |
+
|
1170 |
+
|
1171 |
+
def check_chance(threshold=0.5):
|
1172 |
+
probability = random.random()
|
1173 |
+
# print(probability)
|
1174 |
+
|
1175 |
+
# 如果随机数大于或者阈值,执行操作A
|
1176 |
+
if probability < threshold:
|
1177 |
+
return False
|
1178 |
+
else:
|
1179 |
+
return True
|
1180 |
+
|
1181 |
+
|
1182 |
+
def random_list_no_repeat_number(max_int, count):
|
1183 |
+
result = []
|
1184 |
+
nums = list(range(1, max_int + 1))
|
1185 |
+
for _ in range(count):
|
1186 |
+
idx = random.randint(0, len(nums) - 1)
|
1187 |
+
result.append(nums.pop(idx))
|
1188 |
+
return result
|
1189 |
+
|
1190 |
+
|
1191 |
+
def remove_comma_space(string):
|
1192 |
+
index = string.rfind(", ")
|
1193 |
+
if index != -1:
|
1194 |
+
string = string[:index] + string[index + 2:]
|
1195 |
+
return string
|
1196 |
+
|
1197 |
+
|
1198 |
+
def check_config_value_is_not_none(the_key):
|
1199 |
+
the_value = project_config[the_key]
|
1200 |
+
if the_value is not None:
|
1201 |
+
# check if the value is string, if it is, check if it is not empty
|
1202 |
+
# check if the value is list, if it is, check if it is not empty
|
1203 |
+
if isinstance(the_value, str):
|
1204 |
+
if the_value != "":
|
1205 |
+
return True
|
1206 |
+
else:
|
1207 |
+
return False
|
1208 |
+
elif isinstance(the_value, list):
|
1209 |
+
if len(the_value) > 0:
|
1210 |
+
return True
|
1211 |
+
else:
|
1212 |
+
return False
|
1213 |
+
else:
|
1214 |
+
return True
|
1215 |
+
else:
|
1216 |
+
return False
|
1217 |
+
|
1218 |
+
|
1219 |
+
def get_config_value_by_key(the_key):
|
1220 |
+
return project_config[the_key]
|
1221 |
+
|
1222 |
+
|
1223 |
+
class FaceExpression(IntEnum):
|
1224 |
+
EMOTIONS = 1
|
1225 |
+
SEXUAL = 2
|
1226 |
+
SMILE = 3
|
1227 |
+
SMUG = 4
|
1228 |
+
RANDOM = 5
|
1229 |
+
|
1230 |
+
|
1231 |
+
class BodyWearType(IntEnum):
|
1232 |
+
DRESS = 1
|
1233 |
+
UNIFORM = 2
|
1234 |
+
BODYSUIT = 3
|
1235 |
+
TRADITIONAL = 4
|
1236 |
+
CUSTOM = 5
|
1237 |
+
RANDOM = 6
|
1238 |
+
ASNULL = 7
|
1239 |
+
|
1240 |
+
|
1241 |
+
class BottomWearType(IntEnum):
|
1242 |
+
PANTS = 1
|
1243 |
+
SKIRT = 2
|
1244 |
+
SHORT = 3
|
1245 |
+
RANDOM = 4
|
1246 |
+
|
1247 |
+
|
1248 |
+
class TopWearType(IntEnum):
|
1249 |
+
SHIRTS = 1
|
1250 |
+
COAT = 2
|
1251 |
+
SWEATER = 3
|
1252 |
+
OTHERS = 4
|
1253 |
+
RANDOM = 5
|
1254 |
+
|
1255 |
+
|
1256 |
+
class PoseType(IntEnum):
|
1257 |
+
BASE = 1
|
1258 |
+
WHOLE = 2
|
1259 |
+
|
1260 |
+
|
1261 |
+
class FootWearType(IntEnum):
|
1262 |
+
BOOTS = 1
|
1263 |
+
HIGHHEELS = 2
|
1264 |
+
SANDALS = 3
|
1265 |
+
SLIPPERS = 4
|
1266 |
+
BARE = 5
|
1267 |
+
ASNULL = 6
|
1268 |
+
|
1269 |
+
|
1270 |
+
class LegWearType(IntEnum):
|
1271 |
+
SOCKS = 1
|
1272 |
+
KNEEHIGHS = 2
|
1273 |
+
OVERKNEEHIGHS = 3
|
1274 |
+
THIGHHIGHS = 4
|
1275 |
+
PANTYHOSE = 5
|
1276 |
+
BARE = 6
|
1277 |
+
ASNULL = 7
|
1278 |
+
RANDON = 8
|
1279 |
+
|
1280 |
+
|
1281 |
+
class NSFWType(IntEnum):
|
1282 |
+
NUDE = 1
|
1283 |
+
SEXUAL = 2
|
1284 |
+
NOTNSFW = 3
|
1285 |
+
|
1286 |
+
|
1287 |
+
make_prompt_strong_scale = 1.331
|
1288 |
+
|
1289 |
+
project_config = {
|
1290 |
+
# 视角&地点
|
1291 |
+
"angle": "", # null则禁用
|
1292 |
+
"body_framing": "",
|
1293 |
+
"assign_focus_on": "", # null则禁用
|
1294 |
+
"add_focus": False,
|
1295 |
+
"face_expression": FaceExpression.SMILE,
|
1296 |
+
"pose_type": PoseType.BASE,
|
1297 |
+
"place": "",
|
1298 |
+
"dynamic_mode": False, # 是否开启动态模式,动态模式下angle,pose, view使用动态
|
1299 |
+
# 身体穿着
|
1300 |
+
"breasts_size": "", # null则禁用
|
1301 |
+
"body_wear": BodyWearType.DRESS,
|
1302 |
+
"top_wear": TopWearType.SHIRTS,
|
1303 |
+
"bottom_wear": BottomWearType.SKIRT,
|
1304 |
+
"leg_wear": LegWearType.ASNULL,
|
1305 |
+
"panties": False,
|
1306 |
+
"shoes_type": FootWearType.ASNULL,
|
1307 |
+
"body_with": True,
|
1308 |
+
"body_status": True,
|
1309 |
+
"body_description": False,
|
1310 |
+
"cloth_trim": True,
|
1311 |
+
|
1312 |
+
# 颜色,只用给颜色即可
|
1313 |
+
"leg_wear_color": "",
|
1314 |
+
"shoes_color": "",
|
1315 |
+
"hair_color": "",
|
1316 |
+
"enable_eye_color": True,
|
1317 |
+
"disable_all_color": True,
|
1318 |
+
# 直接指定prompt,这会直接跳过其他配置,并且自动加深prompt权重
|
1319 |
+
"assign_pose": "", # null则禁用
|
1320 |
+
"assign_profession": "", # null则禁用
|
1321 |
+
"assign_expression": "",
|
1322 |
+
"assign_shoes": "",
|
1323 |
+
"assign_leg_wear": "",
|
1324 |
+
"assign_body_clothes": "",
|
1325 |
+
"assign_panties": "",
|
1326 |
+
"assign_girl_description": "",
|
1327 |
+
|
1328 |
+
# 装饰、物品、形容词
|
1329 |
+
"accessories_random_tims": 3, # max:6 NOTE:对于某些model,如何这些prompt出现,可能会影响视角效果
|
1330 |
+
"object_random_times": 0, # max: 6
|
1331 |
+
"suffix_words_random_times": 0, # 形容词缀随机次数
|
1332 |
+
|
1333 |
+
# nsfw/sexual/nude
|
1334 |
+
"nsfw_type": NSFWType.NUDE,
|
1335 |
+
"sexual_list_random_index_times": 2, # max:5
|
1336 |
+
"nude_list_random_index_times": 1, # max:9
|
1337 |
+
"is_nsfw": False,
|
1338 |
+
"is_uncensored": False,
|
1339 |
+
"is_simple_nude": False,
|
1340 |
+
"nude_strong": False, # 是否加强nude,添加了nipple和pussy
|
1341 |
+
|
1342 |
+
# sex
|
1343 |
+
"sex_mode": False,
|
1344 |
+
"sex_type": SexActType.SEX,
|
1345 |
+
"man_random": False,
|
1346 |
+
|
1347 |
+
# 人物描述
|
1348 |
+
"girl_cnt": 1, # 人物数量
|
1349 |
+
"has_girl_desc": False, # 是否加入超长的girl描述,目前看来大部分不需要
|
1350 |
+
"add_girl_beautyful": True, # girl前缀描述
|
1351 |
+
"add_hair_length": True, # 是否加入发长描述
|
1352 |
+
"add_hair_style": False, # 是否加入发型描述
|
1353 |
+
"add_hair_accessories": False, # 是否加入发饰描述
|
1354 |
+
"add_neck_accessories": False, # 是否加入颈饰描述
|
1355 |
+
"add_earrings": False, # 是否加入耳饰描述
|
1356 |
+
|
1357 |
+
# 其他配置
|
1358 |
+
"is_realistic": True,
|
1359 |
+
"use_starting": True, # 是否使用咒语起手式
|
1360 |
+
"add_detail_suffix": False, # 是否加入细节描述
|
1361 |
+
"add_colors": False,
|
1362 |
+
"additional_prompt": "",
|
1363 |
+
"enable_day_weather": False, # 是否启用天气
|
1364 |
+
"enable_light_effect": True, # 灯光效果
|
1365 |
+
"enable_image_tech": False, # 图像技术
|
1366 |
+
|
1367 |
+
# lora & embeddings
|
1368 |
+
"lora": [], # x
|
1369 |
+
"lyco": [], # y
|
1370 |
+
"lora_weights_random": True,
|
1371 |
+
"embeddings": [], # z
|
1372 |
+
"models_order": ['xyz'], # lora, lyco, embeddings 输出顺序xyz
|
1373 |
+
}
|
promptsModules/configDB.py
ADDED
@@ -0,0 +1,118 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding:utf-8 -*-
|
2 |
+
import json
|
3 |
+
import sqlite3
|
4 |
+
from enum import IntEnum
|
5 |
+
|
6 |
+
|
7 |
+
def convert_enum_to_int(data):
|
8 |
+
# 遍历字典中的键值对
|
9 |
+
for key, value in data.items():
|
10 |
+
# 检查值是否为IntEnum类型
|
11 |
+
if isinstance(value, IntEnum):
|
12 |
+
# 将IntEnum值转换为整数
|
13 |
+
data[key] = value.value
|
14 |
+
|
15 |
+
return data
|
16 |
+
|
17 |
+
|
18 |
+
def dict_to_string(data):
|
19 |
+
# 将字典数据转换为JSON字符串
|
20 |
+
json_string = json.dumps(data)
|
21 |
+
return json_string
|
22 |
+
|
23 |
+
|
24 |
+
def string_to_dict(json_string):
|
25 |
+
# 将JSON字符串转换为字典数据
|
26 |
+
data = json.loads(json_string)
|
27 |
+
return data
|
28 |
+
|
29 |
+
|
30 |
+
def store_data_in_database(data, alias_name):
|
31 |
+
# 将数据转换为字符串
|
32 |
+
convert_data = convert_enum_to_int(data)
|
33 |
+
json_string = dict_to_string(convert_data)
|
34 |
+
|
35 |
+
# 存储字符串到数据库
|
36 |
+
conn = sqlite3.connect('prompt.db')
|
37 |
+
cursor = conn.cursor()
|
38 |
+
cursor.execute('''
|
39 |
+
CREATE TABLE IF NOT EXISTS t_config (
|
40 |
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
41 |
+
config TEXT NOT NULL,
|
42 |
+
alias TEXT NOT NULL,
|
43 |
+
update_time TEXT
|
44 |
+
)
|
45 |
+
''')
|
46 |
+
|
47 |
+
# query if the alias exists
|
48 |
+
cursor.execute("SELECT id FROM t_config WHERE alias = ? LIMIT 1", (alias_name,))
|
49 |
+
result = cursor.fetchone()
|
50 |
+
if result is not None:
|
51 |
+
print("{}配置已存在,是否要更新配置?".format(alias_name))
|
52 |
+
user_input = input("请输入 'yes/y/Y' 确认更新配置:")
|
53 |
+
|
54 |
+
if user_input.lower() == 'yes' or user_input.lower() == 'y':
|
55 |
+
# 更新现有配置
|
56 |
+
cursor.execute("UPDATE t_config SET config = ?, update_time = datetime('now') WHERE alias = ?",
|
57 |
+
(json_string, alias_name,))
|
58 |
+
conn.commit()
|
59 |
+
conn.close()
|
60 |
+
print("{}配置已更新。".format(alias_name))
|
61 |
+
else:
|
62 |
+
conn.close()
|
63 |
+
print("取消更新配置。")
|
64 |
+
return
|
65 |
+
else:
|
66 |
+
cursor.execute("INSERT INTO t_config (config, alias, update_time) VALUES (?, ?, datetime('now'))",
|
67 |
+
(json_string, alias_name,))
|
68 |
+
conn.commit()
|
69 |
+
conn.close()
|
70 |
+
print("配置已存储完成.")
|
71 |
+
|
72 |
+
|
73 |
+
def retrieve_data_from_database(query_key):
|
74 |
+
# 从数据库查询数据
|
75 |
+
conn = sqlite3.connect('prompt.db')
|
76 |
+
cursor = conn.cursor()
|
77 |
+
|
78 |
+
if query_key.isdigit():
|
79 |
+
cursor.execute("SELECT config FROM t_config WHERE id = ? LIMIT 1", (query_key,))
|
80 |
+
else:
|
81 |
+
cursor.execute("SELECT config FROM t_config WHERE alias = ? LIMIT 1", (query_key,))
|
82 |
+
result = cursor.fetchone()
|
83 |
+
conn.close()
|
84 |
+
|
85 |
+
if result is not None:
|
86 |
+
json_string = result[0]
|
87 |
+
# 将字符串转换为字典数据
|
88 |
+
data = string_to_dict(json_string)
|
89 |
+
return data
|
90 |
+
else:
|
91 |
+
return None
|
92 |
+
|
93 |
+
|
94 |
+
def list_alias(limit=100):
|
95 |
+
# 从数据库查询数据
|
96 |
+
conn = sqlite3.connect('prompt.db')
|
97 |
+
cursor = conn.cursor()
|
98 |
+
cursor.execute("SELECT id, alias,update_time FROM t_config ORDER BY update_time DESC LIMIT ?", (limit,))
|
99 |
+
result = cursor.fetchall()
|
100 |
+
conn.close()
|
101 |
+
|
102 |
+
if result is not None:
|
103 |
+
return result
|
104 |
+
else:
|
105 |
+
return None
|
106 |
+
|
107 |
+
|
108 |
+
def delete_data_from_database(arg_alias):
|
109 |
+
# delete data with id
|
110 |
+
if arg_alias.isdigit():
|
111 |
+
conn = sqlite3.connect('prompt.db')
|
112 |
+
cursor = conn.cursor()
|
113 |
+
cursor.execute("DELETE FROM t_config WHERE id = ?", (arg_alias,))
|
114 |
+
conn.commit()
|
115 |
+
conn.close()
|
116 |
+
print("配置已删除.")
|
117 |
+
else:
|
118 |
+
print("只能根据id删除配置.")
|
promptsModules/lora.py
ADDED
@@ -0,0 +1,136 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding:utf-8 -*-
|
2 |
+
|
3 |
+
import random
|
4 |
+
|
5 |
+
from promptsModules.model_manager import (ModelInfo, LoraConfigManager)
|
6 |
+
|
7 |
+
global_random_f = False
|
8 |
+
|
9 |
+
|
10 |
+
def get_single_lora_prompt(category, weight=None):
|
11 |
+
prompt = ""
|
12 |
+
lora = LoraConfigManager()
|
13 |
+
model = lora.query_data(f"{category}_1")
|
14 |
+
if isinstance(model, ModelInfo):
|
15 |
+
|
16 |
+
if model.trigger_words != "":
|
17 |
+
prompt = "{},<lora:{}:{}>,".format(model.trigger_words, model.name_model,
|
18 |
+
get_random_weight(model.min_widget, model.max_widget,
|
19 |
+
model.default_widget, weight))
|
20 |
+
|
21 |
+
else:
|
22 |
+
prompt = "<lora:{}:{}>,".format(model.name_model,
|
23 |
+
get_random_weight(model.min_widget, model.max_widget, model.default_widget,
|
24 |
+
weight))
|
25 |
+
|
26 |
+
return prompt
|
27 |
+
|
28 |
+
|
29 |
+
def get_single_lycoris_prompt(category, weight=None):
|
30 |
+
prompt = ""
|
31 |
+
model = LoraConfigManager().query_data(f"{category}_2")
|
32 |
+
if isinstance(model, ModelInfo):
|
33 |
+
|
34 |
+
if model.trigger_words != "":
|
35 |
+
prompt = "{},<lyco:{}:{}>,".format(model.trigger_words, model.name_model,
|
36 |
+
get_random_weight(model.min_widget, model.max_widget,
|
37 |
+
model.default_widget, weight))
|
38 |
+
|
39 |
+
else:
|
40 |
+
prompt = "<lyco:{}:{}>,".format(model.name_model,
|
41 |
+
get_random_weight(model.min_widget, model.max_widget, model.default_widget,
|
42 |
+
weight))
|
43 |
+
return prompt
|
44 |
+
|
45 |
+
|
46 |
+
def get_random_weight(from_v, to_v=1.0, default_v=0.6, weight=None):
|
47 |
+
if weight is not None and isinstance(weight, str):
|
48 |
+
return weight
|
49 |
+
final_v = 0
|
50 |
+
if global_random_f is not True:
|
51 |
+
final_v = default_v
|
52 |
+
else:
|
53 |
+
final_v = random.uniform(from_v, to_v)
|
54 |
+
return "{:.2f}".format(final_v)
|
55 |
+
|
56 |
+
|
57 |
+
def gen_lora_prompt_list(lora_list, random_f=False):
|
58 |
+
global global_random_f
|
59 |
+
global_random_f = random_f
|
60 |
+
prompt_list = []
|
61 |
+
for lora in lora_list:
|
62 |
+
lora_name, weight = convert_widget_string(lora)
|
63 |
+
prompt_list.append(get_single_lora_prompt(lora_name, weight))
|
64 |
+
prompt = "".join(prompt_list)
|
65 |
+
return prompt
|
66 |
+
|
67 |
+
|
68 |
+
def gen_lycoris_prompt_list(lycoris_list, random_f=False):
|
69 |
+
global global_random_f
|
70 |
+
global_random_f = random_f
|
71 |
+
prompt_list = []
|
72 |
+
for lyco in lycoris_list:
|
73 |
+
lyco_name, weight = convert_widget_string(lyco)
|
74 |
+
prompt_list.append(get_single_lycoris_prompt(lyco_name, weight))
|
75 |
+
prompt = "".join(prompt_list)
|
76 |
+
return prompt
|
77 |
+
|
78 |
+
|
79 |
+
def get_embed_prompt(embedding_list):
|
80 |
+
global global_random_f
|
81 |
+
global_random_f = True
|
82 |
+
prompt_list = []
|
83 |
+
for embedding_str in embedding_list:
|
84 |
+
embedding, weight = convert_widget_string(embedding_str)
|
85 |
+
prompt_list.append(get_single_embedding_prompt(embedding, weight))
|
86 |
+
|
87 |
+
prompt = "".join(prompt_list)
|
88 |
+
return prompt
|
89 |
+
|
90 |
+
|
91 |
+
def get_single_embedding_prompt(category, weight=None):
|
92 |
+
prompt = ""
|
93 |
+
model = LoraConfigManager().query_data(f"{category}_3")
|
94 |
+
if isinstance(model, ModelInfo):
|
95 |
+
|
96 |
+
if model.trigger_words != "":
|
97 |
+
prompt = "({}:{}), {},".format(model.name_model,
|
98 |
+
get_random_weight(model.min_widget, model.max_widget, model.default_widget,
|
99 |
+
weight), model.trigger_words)
|
100 |
+
|
101 |
+
else:
|
102 |
+
prompt = "({}:{}),".format(model.name_model,
|
103 |
+
get_random_weight(model.min_widget, model.max_widget, model.default_widget,
|
104 |
+
weight))
|
105 |
+
return prompt
|
106 |
+
|
107 |
+
|
108 |
+
def convert_widget_string(model_str):
|
109 |
+
# check if model_str is int or float
|
110 |
+
if isinstance(model_str, int) or isinstance(model_str, float):
|
111 |
+
return model_str, None
|
112 |
+
elif isinstance(model_str, str):
|
113 |
+
|
114 |
+
if ':' in model_str:
|
115 |
+
splitted = model_str.split(':')
|
116 |
+
before_colon = splitted[0]
|
117 |
+
after_colon = splitted[1]
|
118 |
+
return before_colon, after_colon
|
119 |
+
else:
|
120 |
+
return model_str, None
|
121 |
+
else:
|
122 |
+
raise ValueError("CAN NOT VALIDATE MODEL STRING")
|
123 |
+
|
124 |
+
|
125 |
+
def should_re_gen_prompt(lora_list):
|
126 |
+
if len(lora_list) <= 0:
|
127 |
+
return False
|
128 |
+
return True
|
129 |
+
|
130 |
+
|
131 |
+
def is_special_single(model_list):
|
132 |
+
for model in model_list:
|
133 |
+
model_name, weight = convert_widget_string(model)
|
134 |
+
if LoraConfigManager().check_special(model_name):
|
135 |
+
return True
|
136 |
+
return False
|
promptsModules/model_manager.py
ADDED
@@ -0,0 +1,152 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding:utf-8 -*-
|
2 |
+
import os
|
3 |
+
|
4 |
+
import openpyxl as pyxl
|
5 |
+
|
6 |
+
|
7 |
+
class ModelInfo:
|
8 |
+
def __init__(self, id_model, type_model, name_model, trigger_words="", min_widget=0.4, max_widget=1,
|
9 |
+
default_widget=0.6, is_special=False, user_desc=""):
|
10 |
+
self.id_model = id_model
|
11 |
+
self.type_model = type_model
|
12 |
+
self.name_model = name_model
|
13 |
+
self.trigger_words = trigger_words
|
14 |
+
self.min_widget = min_widget
|
15 |
+
self.max_widget = max_widget
|
16 |
+
self.default_widget = default_widget
|
17 |
+
self.is_special = is_special
|
18 |
+
self.user_desc = user_desc
|
19 |
+
|
20 |
+
def __str__(self):
|
21 |
+
return f"{self.id_model} {self.type_model} {self.name_model} {self.trigger_words} {self.min_widget} {self.max_widget} {self.default_widget} {self.is_special}"
|
22 |
+
|
23 |
+
|
24 |
+
class LoraConfigManager(object):
|
25 |
+
_data = {}
|
26 |
+
_special_ids = set()
|
27 |
+
_lastModifyTime = 0
|
28 |
+
|
29 |
+
_instance = None
|
30 |
+
|
31 |
+
def __new__(cls, *args, **kw):
|
32 |
+
if cls._instance is None:
|
33 |
+
cls._instance = object.__new__(cls, *args, **kw)
|
34 |
+
cls._instance.loadData()
|
35 |
+
return cls._instance
|
36 |
+
|
37 |
+
def __init__(self):
|
38 |
+
pass
|
39 |
+
|
40 |
+
def get_excel_file_path(self):
|
41 |
+
current_file_path = os.path.abspath(__file__)
|
42 |
+
current_folder = os.path.dirname(current_file_path)
|
43 |
+
|
44 |
+
target_file_name = "modelsConfig.xlsx"
|
45 |
+
target_file_path = os.path.join(current_folder, target_file_name)
|
46 |
+
return target_file_path
|
47 |
+
|
48 |
+
def loadData(self):
|
49 |
+
target_file_path = self.get_excel_file_path()
|
50 |
+
|
51 |
+
# 检查文件是否存在
|
52 |
+
if os.path.exists(target_file_path):
|
53 |
+
print(f"loading prompt-r-gen-sd excel file:{target_file_path}")
|
54 |
+
self._lastModifyTime = os.path.getmtime(target_file_path)
|
55 |
+
workbook = pyxl.load_workbook(target_file_path)
|
56 |
+
sheet = workbook.active
|
57 |
+
for row in sheet.iter_rows(min_row=2, values_only=True): # 从第2行开始遍历
|
58 |
+
id_model = row[0]
|
59 |
+
type_model = row[1]
|
60 |
+
name_model = row[2]
|
61 |
+
trigger_words = row[3]
|
62 |
+
min_widget = row[4]
|
63 |
+
max_widget = row[5]
|
64 |
+
default_widget = row[6]
|
65 |
+
is_special = row[7]
|
66 |
+
user_desc = row[8]
|
67 |
+
|
68 |
+
if id_model is None or type_model is None or name_model is None:
|
69 |
+
continue
|
70 |
+
|
71 |
+
if trigger_words is not None and isinstance(trigger_words, str) and trigger_words.endswith(","):
|
72 |
+
trigger_words = trigger_words[:-1]
|
73 |
+
elif isinstance(trigger_words, str):
|
74 |
+
pass
|
75 |
+
else:
|
76 |
+
trigger_words = ""
|
77 |
+
|
78 |
+
if min_widget is not None:
|
79 |
+
if isinstance(min_widget, str) and min_widget.isdigit():
|
80 |
+
min_widget = float(min_widget)
|
81 |
+
else:
|
82 |
+
min_widget = 0.4
|
83 |
+
if max_widget is not None:
|
84 |
+
if isinstance(max_widget, str) and max_widget.isdigit():
|
85 |
+
max_widget = float(max_widget)
|
86 |
+
else:
|
87 |
+
max_widget = 1
|
88 |
+
if default_widget is not None:
|
89 |
+
if isinstance(default_widget, str) and default_widget.isdigit():
|
90 |
+
default_widget = float(default_widget)
|
91 |
+
else:
|
92 |
+
default_widget = 0.6
|
93 |
+
else:
|
94 |
+
default_widget = 0.6
|
95 |
+
|
96 |
+
is_special = (is_special == 1)
|
97 |
+
model_obj = ModelInfo(id_model, type_model, name_model, trigger_words, min_widget, max_widget,
|
98 |
+
default_widget, is_special, user_desc)
|
99 |
+
# print(model_obj)
|
100 |
+
identifer = f"{id_model}_{type_model}"
|
101 |
+
if is_special:
|
102 |
+
self._special_ids.add(identifer)
|
103 |
+
self._data[identifer] = model_obj
|
104 |
+
workbook.close()
|
105 |
+
else:
|
106 |
+
print(f"can NOT find prompt-r-gen-sd excel file:{target_file_path}")
|
107 |
+
|
108 |
+
def query_data(self, model_id):
|
109 |
+
if self._lastModifyTime != os.path.getmtime(self.get_excel_file_path()):
|
110 |
+
self.reload()
|
111 |
+
if model_id in self._data:
|
112 |
+
return self._data[model_id]
|
113 |
+
else:
|
114 |
+
if model_id in self._data:
|
115 |
+
return self._data[model_id]
|
116 |
+
return None
|
117 |
+
|
118 |
+
def reload(self):
|
119 |
+
self._lastModifyTime = os.path.getmtime(self.get_excel_file_path())
|
120 |
+
self._data = {}
|
121 |
+
self._special_ids = set()
|
122 |
+
self.loadData()
|
123 |
+
|
124 |
+
def check_special(self, model_id):
|
125 |
+
if f"{model_id}_1" in self._special_ids:
|
126 |
+
return True
|
127 |
+
if f"{model_id}_2" in self._special_ids:
|
128 |
+
return True
|
129 |
+
|
130 |
+
return False
|
131 |
+
|
132 |
+
def export_to_data_frame(self):
|
133 |
+
data = []
|
134 |
+
for key, value in self._data.items():
|
135 |
+
obj_index = key.split("_")[0]
|
136 |
+
obj_type = value.type_model
|
137 |
+
if obj_type == 1 or obj_type == "1":
|
138 |
+
obj_type = "Lora"
|
139 |
+
elif obj_type == 2 or obj_type == "2":
|
140 |
+
obj_type = "Loha"
|
141 |
+
elif obj_type == 3 or obj_type == "3":
|
142 |
+
obj_type = "Embedding"
|
143 |
+
obj_name = value.name_model
|
144 |
+
obj_desc = value.user_desc
|
145 |
+
data.append([key, obj_index, obj_type, obj_name, obj_desc])
|
146 |
+
|
147 |
+
# sort data with key obj
|
148 |
+
data.sort(key=lambda x: x[0])
|
149 |
+
# loop data, and remove every firt obj from child node
|
150 |
+
for i in range(len(data)):
|
151 |
+
data[i].remove(data[i][0])
|
152 |
+
return data
|
promptsModules/modelsConfig.xlsx
ADDED
Binary file (13 kB). View file
|
|
promptsModules/promptGen.py
ADDED
@@ -0,0 +1,282 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding:utf-8 -*-
|
2 |
+
|
3 |
+
|
4 |
+
from enum import IntEnum
|
5 |
+
|
6 |
+
from promptsModules.basePromptBuilder import (
|
7 |
+
get_config_value_by_key,
|
8 |
+
get_starting_prompt, get_user_additional_prompt, get_realistic_prompt, get_angle_and_image_composition,
|
9 |
+
get_girl_desc_prompt, get_job_prompt, get_body_wear_prompt, get_hair_eyes_prompt, get_place_prompt,
|
10 |
+
get_bottom_prompt, LegWearType, NSFWType, FaceExpression, FootWearType, get_nsfw_prompt, get_uncensored_prompt,
|
11 |
+
SexActType, get_s_act_sex_prompt, get_s_act_group_prompt, get_s_act_tentacles_prompt, BodyWearType, project_config
|
12 |
+
)
|
13 |
+
|
14 |
+
from promptsModules.lora import (
|
15 |
+
gen_lora_prompt_list, gen_lycoris_prompt_list, get_embed_prompt, is_special_single, should_re_gen_prompt
|
16 |
+
)
|
17 |
+
|
18 |
+
|
19 |
+
class DefaultConfig(IntEnum):
|
20 |
+
DEFAULT = 1
|
21 |
+
WALLPAPER = 2 # 壁纸
|
22 |
+
CROSSLEGS = 3
|
23 |
+
NUDESIMPLE1 = 4 # nude, 精简模式,较多饰物,无nude其他prompt
|
24 |
+
NUDEDEFAULT = 5 # nude, 非精简模式,较多饰物,少量nude prompt
|
25 |
+
NUDEDEFAULT_BACK = 6 # nude, 背部
|
26 |
+
NORMAL_DRESS = 7
|
27 |
+
SEXAULDEFAULT = 8
|
28 |
+
|
29 |
+
|
30 |
+
def get_lora_prompt(lora_list):
|
31 |
+
return gen_lora_prompt_list(lora_list, get_config_value_by_key("lora_weights_random"))
|
32 |
+
|
33 |
+
|
34 |
+
def get_lyco_prompt(lyco_list):
|
35 |
+
return gen_lycoris_prompt_list(lyco_list, get_config_value_by_key("lora_weights_random"))
|
36 |
+
|
37 |
+
|
38 |
+
def get_embeddings_prompt():
|
39 |
+
return get_embed_prompt(get_config_value_by_key("embeddings"))
|
40 |
+
|
41 |
+
|
42 |
+
def gen_lora_prompt():
|
43 |
+
lora_list = get_config_value_by_key("lora")
|
44 |
+
lyco_list = get_config_value_by_key("lyco")
|
45 |
+
order_list = get_config_value_by_key("models_order")
|
46 |
+
# order_list为string,按照字符,拆分为数组
|
47 |
+
order_arr = [char for char in order_list]
|
48 |
+
prompt = ""
|
49 |
+
if is_special_single(lora_list) or is_special_single(lyco_list):
|
50 |
+
for v in order_arr:
|
51 |
+
if v == 'x':
|
52 |
+
prompt = prompt + gen_lora_prompt_list(lora_list)
|
53 |
+
elif v == 'y':
|
54 |
+
prompt = prompt + get_lyco_prompt(lyco_list)
|
55 |
+
elif v == 'z':
|
56 |
+
prompt = prompt + get_embeddings_prompt()
|
57 |
+
prompt = prompt \
|
58 |
+
+ get_starting_prompt() \
|
59 |
+
+ get_user_additional_prompt() \
|
60 |
+
+ get_realistic_prompt() \
|
61 |
+
+ "\n"
|
62 |
+
|
63 |
+
else:
|
64 |
+
for_lora_config = {
|
65 |
+
|
66 |
+
# 颜色,只用给颜色即可
|
67 |
+
"disable_all_color": True,
|
68 |
+
|
69 |
+
# 直接指定prompt,这会直接跳过其他配置,并且自动加深prompt权重
|
70 |
+
"assign_focus_on": "null", # null则禁用
|
71 |
+
"assign_profession": "null",
|
72 |
+
|
73 |
+
# "body_with": False,
|
74 |
+
# "body_status": False,
|
75 |
+
|
76 |
+
"is_simple_nude": True,
|
77 |
+
|
78 |
+
# "accessories_random_tims": 0, # max:6 NOTE:对于某些model,如何这些prompt出现,可能会影响视角效果
|
79 |
+
# "object_random_times": 0, # max: 6
|
80 |
+
# "sexual_list_random_index_times": 0, # max:5
|
81 |
+
# "nude_list_random_index_times": 0, # max:9
|
82 |
+
|
83 |
+
# 其他配置
|
84 |
+
# "is_realistic": True,
|
85 |
+
# "use_starting": False, # 是否使用咒语起手式
|
86 |
+
|
87 |
+
}
|
88 |
+
for key in for_lora_config:
|
89 |
+
if key in project_config:
|
90 |
+
project_config[key] = for_lora_config[key]
|
91 |
+
|
92 |
+
for v in order_arr:
|
93 |
+
if v == 'x':
|
94 |
+
prompt = prompt + get_lora_prompt(lora_list)
|
95 |
+
elif v == 'y':
|
96 |
+
prompt = prompt + get_lyco_prompt(lyco_list)
|
97 |
+
elif v == 'z':
|
98 |
+
prompt = prompt + get_embeddings_prompt()
|
99 |
+
prompt = prompt \
|
100 |
+
+ get_user_additional_prompt() \
|
101 |
+
+ get_realistic_prompt() \
|
102 |
+
+ get_angle_and_image_composition() \
|
103 |
+
+ get_girl_desc_prompt() \
|
104 |
+
+ get_job_prompt() \
|
105 |
+
+ get_body_wear_prompt() \
|
106 |
+
+ get_hair_eyes_prompt() \
|
107 |
+
+ get_place_prompt() \
|
108 |
+
+ get_starting_prompt() \
|
109 |
+
+ get_bottom_prompt() \
|
110 |
+
+ "\n"
|
111 |
+
return prompt
|
112 |
+
|
113 |
+
|
114 |
+
def get_preset_config_map(preset_type):
|
115 |
+
if preset_type == DefaultConfig.DEFAULT:
|
116 |
+
return {}
|
117 |
+
elif preset_type == DefaultConfig.WALLPAPER:
|
118 |
+
return {
|
119 |
+
"angle": "null",
|
120 |
+
"body_framing": "portrait",
|
121 |
+
"add_focus": False,
|
122 |
+
"breasts_size": "null",
|
123 |
+
"leg_wear": LegWearType.ASNULL,
|
124 |
+
"panties": False,
|
125 |
+
"shoes_type": FootWearType.ASNULL,
|
126 |
+
"body_with": False,
|
127 |
+
"body_status": False,
|
128 |
+
"assign_pose": "null",
|
129 |
+
"assign_expression": "smile",
|
130 |
+
"accessories_random_tims": 0,
|
131 |
+
"object_random_times": 3,
|
132 |
+
"nsfw_type": NSFWType.NOTNSFW,
|
133 |
+
"is_nsfw": False,
|
134 |
+
"sex_mode": False,
|
135 |
+
"is_realistic": True,
|
136 |
+
}
|
137 |
+
elif preset_type == DefaultConfig.CROSSLEGS:
|
138 |
+
return {
|
139 |
+
"angle": "null",
|
140 |
+
"body_framing": "lower body",
|
141 |
+
"assign_focus_on": "leg focus",
|
142 |
+
"breasts_size": "medium",
|
143 |
+
"leg_wear": LegWearType.PANTYHOSE,
|
144 |
+
"panties": False,
|
145 |
+
"body_with": False,
|
146 |
+
"body_status": False,
|
147 |
+
"assign_pose": "sitting, crossed legs",
|
148 |
+
"assign_expression": "smile",
|
149 |
+
"assign_shoes": "high heels",
|
150 |
+
"accessories_random_tims": 4,
|
151 |
+
"object_random_times": 3,
|
152 |
+
"nsfw_type": NSFWType.NOTNSFW,
|
153 |
+
"is_nsfw": False,
|
154 |
+
"sex_mode": False,
|
155 |
+
"is_realistic": True,
|
156 |
+
}
|
157 |
+
elif preset_type == DefaultConfig.NORMAL_DRESS:
|
158 |
+
return {
|
159 |
+
"body_wear": BodyWearType.DRESS,
|
160 |
+
"leg_wear": LegWearType.PANTYHOSE,
|
161 |
+
"panties": False,
|
162 |
+
"accessories_random_tims": 3,
|
163 |
+
"object_random_times": 3,
|
164 |
+
"nsfw_type": NSFWType.NOTNSFW,
|
165 |
+
"sex_mode": False,
|
166 |
+
}
|
167 |
+
elif preset_type == DefaultConfig.SEXAULDEFAULT:
|
168 |
+
return {
|
169 |
+
"panties": True,
|
170 |
+
"accessories_random_tims": 3,
|
171 |
+
"object_random_times": 2,
|
172 |
+
"sexual_list_random_index_times": 3,
|
173 |
+
"nsfw_type": NSFWType.SEXUAL,
|
174 |
+
"sex_mode": False,
|
175 |
+
}
|
176 |
+
elif preset_type == DefaultConfig.NUDESIMPLE1 \
|
177 |
+
or preset_type == DefaultConfig.NUDEDEFAULT \
|
178 |
+
or preset_type == DefaultConfig.NUDEDEFAULT_BACK:
|
179 |
+
nude_config = {
|
180 |
+
"face_expression": FaceExpression.SEXUAL,
|
181 |
+
"breasts_size": "large",
|
182 |
+
"leg_wear": LegWearType.RANDON,
|
183 |
+
"panties": True,
|
184 |
+
"shoes_type": FootWearType.ASNULL,
|
185 |
+
"body_with": True,
|
186 |
+
"body_status": False,
|
187 |
+
"accessories_random_tims": 4,
|
188 |
+
"object_random_times": 2,
|
189 |
+
|
190 |
+
"nsfw_type": NSFWType.NUDE,
|
191 |
+
"nude_list_random_index_times": 0, # max:9
|
192 |
+
"is_nsfw": False,
|
193 |
+
"is_simple_nude": True,
|
194 |
+
"nude_strong": False,
|
195 |
+
}
|
196 |
+
if preset_type == DefaultConfig.NUDESIMPLE1:
|
197 |
+
pass
|
198 |
+
elif preset_type == DefaultConfig.NUDEDEFAULT:
|
199 |
+
nude_config["nude_list_random_index_times"] = 2
|
200 |
+
nude_config["is_simple_nude"] = False
|
201 |
+
elif preset_type == DefaultConfig.NUDEDEFAULT_BACK:
|
202 |
+
nude_config["nude_list_random_index_times"] = 2
|
203 |
+
nude_config["is_simple_nude"] = False
|
204 |
+
|
205 |
+
nude_config["angle"] = "view from behind"
|
206 |
+
nude_config["assign_pose"] = "all fours, sitting"
|
207 |
+
|
208 |
+
return nude_config
|
209 |
+
|
210 |
+
|
211 |
+
def generate_normal_prompts():
|
212 |
+
prompts = ""
|
213 |
+
|
214 |
+
if should_re_gen_prompt(get_config_value_by_key("lora")) or should_re_gen_prompt(
|
215 |
+
get_config_value_by_key("lyco")):
|
216 |
+
prompts = gen_lora_prompt()
|
217 |
+
else:
|
218 |
+
|
219 |
+
prompts = prompts \
|
220 |
+
+ get_starting_prompt() \
|
221 |
+
+ get_user_additional_prompt() \
|
222 |
+
+ get_embeddings_prompt() \
|
223 |
+
+ get_realistic_prompt() \
|
224 |
+
+ get_nsfw_prompt() \
|
225 |
+
+ get_angle_and_image_composition() \
|
226 |
+
+ get_girl_desc_prompt() \
|
227 |
+
+ get_uncensored_prompt() \
|
228 |
+
+ get_job_prompt() \
|
229 |
+
+ get_body_wear_prompt() \
|
230 |
+
+ get_hair_eyes_prompt() \
|
231 |
+
+ get_place_prompt() \
|
232 |
+
+ get_bottom_prompt() \
|
233 |
+
+ "\n"
|
234 |
+
return prompts
|
235 |
+
|
236 |
+
|
237 |
+
def generate_sex_prompts():
|
238 |
+
prompts = ""
|
239 |
+
sex_type = get_config_value_by_key("sex_type")
|
240 |
+
|
241 |
+
if sex_type == SexActType.SEX:
|
242 |
+
prompts = get_s_act_sex_prompt()
|
243 |
+
prompts = prompts \
|
244 |
+
+ get_embeddings_prompt() \
|
245 |
+
+ get_lora_prompt()
|
246 |
+
elif sex_type == SexActType.GROUP:
|
247 |
+
prompts = get_s_act_group_prompt()
|
248 |
+
elif sex_type == SexActType.TENTACLES:
|
249 |
+
prompts = get_s_act_tentacles_prompt()
|
250 |
+
return prompts
|
251 |
+
|
252 |
+
|
253 |
+
def random_prompts():
|
254 |
+
if get_config_value_by_key("sex_mode"):
|
255 |
+
return generate_sex_prompts()
|
256 |
+
else:
|
257 |
+
return generate_normal_prompts()
|
258 |
+
|
259 |
+
|
260 |
+
def gen_prompt(config_map):
|
261 |
+
preset_value = 1
|
262 |
+
if "preset" in config_map:
|
263 |
+
preset_value = config_map["preset"]
|
264 |
+
if preset_value < 1:
|
265 |
+
preset_value = 1
|
266 |
+
|
267 |
+
if preset_value is not None and preset_value != 1:
|
268 |
+
replace_config_by(config_map)
|
269 |
+
preset_map = get_preset_config_map(preset_value)
|
270 |
+
replace_config_by(preset_map)
|
271 |
+
else:
|
272 |
+
replace_config_by(config_map)
|
273 |
+
|
274 |
+
return random_prompts(), project_config
|
275 |
+
|
276 |
+
|
277 |
+
def replace_config_by(custom_map):
|
278 |
+
# update project_config by replace the key which exists in config_map
|
279 |
+
for key in custom_map:
|
280 |
+
# check if the key exists in project_config
|
281 |
+
if key in project_config:
|
282 |
+
project_config[key] = custom_map[key]
|
promptsModules/sd_command_gen.py
ADDED
@@ -0,0 +1,188 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding:utf-8 -*-
|
2 |
+
|
3 |
+
import argparse
|
4 |
+
from enum import IntEnum
|
5 |
+
|
6 |
+
from promptsModules.configDB import (store_data_in_database, retrieve_data_from_database, list_alias,
|
7 |
+
delete_data_from_database)
|
8 |
+
from promptsModules.promptGen import (gen_prompt)
|
9 |
+
|
10 |
+
output_file_name = "prompts.txt"
|
11 |
+
|
12 |
+
"""
|
13 |
+
// lora
|
14 |
+
CHARACTER_ST_LOUIS = 201, POSE_SIT_CROSSLEG = 626, FUNC_DETAIL_TWEAKER = 901, FUNC_AHEGAO = 903, FUNC_ADD_CUMBERSOME = 904,
|
15 |
+
BODY_PERFECT_FULL_ROUND_BREASTS_SLIM_WAIST = 503,
|
16 |
+
// lyco
|
17 |
+
BACKGROUND_HALATION = 402, STYLE_BEAUTYLEGS = 601, STYLE_ABSTRACT_DREAMWAVE = 202
|
18 |
+
"""
|
19 |
+
|
20 |
+
"""
|
21 |
+
// adetailer prompt:
|
22 |
+
<lora:MengX girl_Mix:0.8>, 1girl, smile, cute, 18yo, extremely detailed eyes and face, beautiful face,
|
23 |
+
<lora:cutegirl25d:0.9>, 1girl, smile, cute, 18yo,
|
24 |
+
"""
|
25 |
+
|
26 |
+
project_config = {
|
27 |
+
# "preset": 2,
|
28 |
+
"lora": [101], # x
|
29 |
+
"lyco": [], # y
|
30 |
+
"embeddings": [], # z
|
31 |
+
"models_order": 'xyz', # lora, lyco, embeddings 输出顺序xyz
|
32 |
+
"lora_weights_random": True,
|
33 |
+
"additional_prompt": "",
|
34 |
+
|
35 |
+
# 视角动作
|
36 |
+
"angle": "null", # null则禁用
|
37 |
+
"body_framing": "null",
|
38 |
+
"dynamic_mode": False,
|
39 |
+
"pose_type": 1, # base = 1 whole = 2
|
40 |
+
|
41 |
+
# 颜色,只用给颜色即可
|
42 |
+
"leg_wear_color": "",
|
43 |
+
"shoes_color": "",
|
44 |
+
"hair_color": "null",
|
45 |
+
"enable_eye_color": True,
|
46 |
+
"disable_all_color": True,
|
47 |
+
|
48 |
+
# 身体穿着
|
49 |
+
"breasts_size": "large", # null则禁用
|
50 |
+
# DRESS = 1 UNIFORM = 2 BODYSUIT = 3 TRADITIONAL = 4 CUSTOM = 5 RANDOM = 6 ASNULL = 7
|
51 |
+
"body_wear": 7,
|
52 |
+
# "top_wear": TopWearType.SHIRTS,
|
53 |
+
# "bottom_wear": BottomWearType.SKIRT,
|
54 |
+
# socks = 1; knee_highs = 2; over_knee_highs = 3; thigh_highs = 4; pantyhose = 5; bare = 6; as_null = 7; random = 8
|
55 |
+
"leg_wear": 7,
|
56 |
+
"panties": False,
|
57 |
+
# BOOTS, HIGHHEELS, SANDALS, SLIPPERS, BARE, ASNULL = 1, 2, 3, 4, 5, 6
|
58 |
+
"shoes_type": 6,
|
59 |
+
|
60 |
+
# 直接指定prompt,这会直接跳过其他配置,并且自动加深prompt权重
|
61 |
+
"assign_focus_on": "null", # null则禁用
|
62 |
+
"assign_pose": "null", # null则禁用
|
63 |
+
"assign_profession": "null",
|
64 |
+
"assign_expression": "",
|
65 |
+
"assign_shoes": "",
|
66 |
+
"assign_leg_wear": "",
|
67 |
+
"assign_body_clothes": "",
|
68 |
+
"assign_panties": "",
|
69 |
+
"assign_girl_description": "",
|
70 |
+
"place": "null",
|
71 |
+
|
72 |
+
# 身体相关
|
73 |
+
"body_with": False,
|
74 |
+
"body_status": False,
|
75 |
+
"body_description": False,
|
76 |
+
"cloth_trim": False,
|
77 |
+
"add_focus": False,
|
78 |
+
|
79 |
+
"nsfw_type": 3, # 1 nude 2 sexual 3 normal
|
80 |
+
|
81 |
+
"accessories_random_tims": 0, # max:6 NOTE:对于某些model,如何这些prompt出现,可能会影响视角效果
|
82 |
+
"suffix_words_random_times": 0, # 形容词缀随机次数
|
83 |
+
"object_random_times": 0, # max: 6
|
84 |
+
"sexual_list_random_index_times": 0, # max:5
|
85 |
+
"nude_list_random_index_times": 0, # max:9
|
86 |
+
"is_simple_nude": True,
|
87 |
+
|
88 |
+
# 人物描述
|
89 |
+
"has_girl_desc": False, # 是否加入超长的girl描述,目前看来大部分不需要
|
90 |
+
"add_girl_beautyful": False, # girl前缀描述
|
91 |
+
"add_hair_style": False, # 是否加入发型描述
|
92 |
+
|
93 |
+
# 其他配置
|
94 |
+
"is_realistic": False,
|
95 |
+
"use_starting": True, # 是否使用咒语起手式
|
96 |
+
"add_colors": False,
|
97 |
+
"enable_day_weather": False, # 是否启用天气
|
98 |
+
"enable_light_effect": True, # 灯光效果
|
99 |
+
"enable_image_tech": False, # 图像技术
|
100 |
+
|
101 |
+
}
|
102 |
+
|
103 |
+
|
104 |
+
def open_file(file_name):
|
105 |
+
return open(file_name, 'w')
|
106 |
+
|
107 |
+
|
108 |
+
def create_prompts(prompt_count):
|
109 |
+
prompts = ""
|
110 |
+
config_ = {}
|
111 |
+
f = open_file(output_file_name)
|
112 |
+
|
113 |
+
for i in range(prompt_count):
|
114 |
+
prompt_tmp, config = gen_prompt(project_config)
|
115 |
+
prompts = prompts + prompt_tmp + "\n"
|
116 |
+
config_ = config
|
117 |
+
|
118 |
+
target = str(config_) + "\n\n\n" + prompts
|
119 |
+
f.write(target)
|
120 |
+
return config_
|
121 |
+
|
122 |
+
|
123 |
+
def convert_enum_to_int(data):
|
124 |
+
# 遍历字典中的键值对
|
125 |
+
for key, value in data.items():
|
126 |
+
# 检查值是否为IntEnum类型
|
127 |
+
if isinstance(value, IntEnum):
|
128 |
+
# 将IntEnum值转换为整数
|
129 |
+
data[key] = value.value
|
130 |
+
|
131 |
+
return data
|
132 |
+
|
133 |
+
|
134 |
+
def main():
|
135 |
+
# 创建参数解析器
|
136 |
+
parser = argparse.ArgumentParser()
|
137 |
+
|
138 |
+
# 添加命令行参数
|
139 |
+
parser.add_argument("--m", default='1', help="""
|
140 |
+
运行模式:
|
141 |
+
m = 1 表示简单模式,只生成prompt,不保存该次配置
|
142 |
+
m = 2 表示生成prompt,并保存该次配置
|
143 |
+
m = 3 根据alias读取配置,并使用该配置生成prompt
|
144 |
+
m = 4 列出保存的alias
|
145 |
+
m = 5 删除保存的alias,根据id删除
|
146 |
+
""")
|
147 |
+
parser.add_argument("--s", default='', required=False, help="""
|
148 |
+
保存配置的alias,仅在m = 2/3时有效
|
149 |
+
""")
|
150 |
+
parser.add_argument("--n", default='4', required=False, help="生成prompt数量,默认为6")
|
151 |
+
parser.add_argument("--ls", default='100', required=False, help="查询alias数量,默认为100")
|
152 |
+
|
153 |
+
# 解析命令行参数
|
154 |
+
args = parser.parse_args()
|
155 |
+
|
156 |
+
# 获取参数值
|
157 |
+
arg_mode = args.m
|
158 |
+
arg_alias = args.s
|
159 |
+
arg_gen_number = args.n
|
160 |
+
arg_query_alias_number = args.ls
|
161 |
+
|
162 |
+
if arg_mode == '2':
|
163 |
+
config_callback = create_prompts(int(arg_gen_number))
|
164 |
+
store_data_in_database(config_callback, arg_alias)
|
165 |
+
elif arg_mode == '3':
|
166 |
+
query_result = retrieve_data_from_database(arg_alias)
|
167 |
+
if query_result is None:
|
168 |
+
print("未找到该配置的alias或id,请检查输入是否正确")
|
169 |
+
else:
|
170 |
+
global project_config
|
171 |
+
project_config = query_result
|
172 |
+
create_prompts(int(arg_gen_number))
|
173 |
+
elif arg_mode == '4':
|
174 |
+
results = list_alias(int(arg_query_alias_number))
|
175 |
+
for i in range(0, len(results), 2):
|
176 |
+
print(results[i], end=" ")
|
177 |
+
if i + 1 < len(results):
|
178 |
+
print(results[i + 1], end=" ")
|
179 |
+
# 换行打印下一行
|
180 |
+
print()
|
181 |
+
elif arg_mode == '5':
|
182 |
+
delete_data_from_database(arg_alias)
|
183 |
+
else:
|
184 |
+
create_prompts(int(arg_gen_number))
|
185 |
+
|
186 |
+
|
187 |
+
if __name__ == '__main__':
|
188 |
+
main()
|
promptsModules/web_api.py
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding:utf-8 -*-
|
2 |
+
|
3 |
+
from promptsModules.promptGen import gen_prompt
|
4 |
+
|
5 |
+
|
6 |
+
def create_prompts(prompt_count, project_config):
|
7 |
+
prompts = ""
|
8 |
+
|
9 |
+
for i in range(prompt_count):
|
10 |
+
prompt_tmp, config = gen_prompt(project_config)
|
11 |
+
prompts = prompts + prompt_tmp + "\n"
|
12 |
+
return prompts
|
requirements.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
openpyxl==3.1.2
|
scripts/.DS_Store
ADDED
Binary file (6.15 kB). View file
|
|
scripts/.github/workflows/update_space.yml
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
name: Run Python script
|
2 |
+
|
3 |
+
on:
|
4 |
+
push:
|
5 |
+
branches:
|
6 |
+
- main
|
7 |
+
|
8 |
+
jobs:
|
9 |
+
build:
|
10 |
+
runs-on: ubuntu-latest
|
11 |
+
|
12 |
+
steps:
|
13 |
+
- name: Checkout
|
14 |
+
uses: actions/checkout@v2
|
15 |
+
|
16 |
+
- name: Set up Python
|
17 |
+
uses: actions/setup-python@v2
|
18 |
+
with:
|
19 |
+
python-version: '3.9'
|
20 |
+
|
21 |
+
- name: Install Gradio
|
22 |
+
run: python -m pip install gradio
|
23 |
+
|
24 |
+
- name: Log in to Hugging Face
|
25 |
+
run: python -c 'import huggingface_hub; huggingface_hub.login(token="${{ secrets.hf_token }}")'
|
26 |
+
|
27 |
+
- name: Deploy to Spaces
|
28 |
+
run: gradio deploy
|
scripts/README.md
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: prompt-rp
|
3 |
+
app_file: prompt_rg.py
|
4 |
+
sdk: gradio
|
5 |
+
sdk_version: 3.40.1
|
6 |
+
---
|
scripts/__pycache__/prompt_rg.cpython-310.pyc
ADDED
Binary file (12.1 kB). View file
|
|
scripts/prompt_rg.py
ADDED
@@ -0,0 +1,367 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import importlib
|
2 |
+
|
3 |
+
import gradio as gr
|
4 |
+
|
5 |
+
from promptsModules.sd_command_gen import project_config as gen_config
|
6 |
+
from promptsModules.web_api import (create_prompts)
|
7 |
+
from promptsModules.model_manager import (LoraConfigManager)
|
8 |
+
|
9 |
+
project_config = gen_config
|
10 |
+
t2i_text_box = None
|
11 |
+
IS_PLUGIN = False
|
12 |
+
|
13 |
+
|
14 |
+
def get_model_input(com_value):
|
15 |
+
arr = com_value.split(",")
|
16 |
+
target_list = []
|
17 |
+
if len(arr) > 0:
|
18 |
+
target_list = [x.strip() for x in arr if x.strip()]
|
19 |
+
return target_list
|
20 |
+
|
21 |
+
|
22 |
+
######### gen #########
|
23 |
+
# 我有史以来写的最长的方法
|
24 |
+
def gen_action(gen_times, widget_lora, widget_lyco, widget_embeddings, model_order, additional_prompt, angle, body_framing, location,
|
25 |
+
pose_type,
|
26 |
+
dynamic_mode, breasts_size, body_wear, top_wear, bottom_wear, leg_wear, panties, shoes_type, body_with,
|
27 |
+
body_status, body_desc, cloth_trim, profession, hair_color, add_hair_style, enable_eye_color,
|
28 |
+
face_expression, add_girl_beautyful, has_girl_desc, nsfw_type, is_nsfw, is_uncensored, is_simple_nude,
|
29 |
+
nude_strong, sexual_list_random_index_times, nude_list_random_index_times, has_starting, is_realistic,
|
30 |
+
add_colors, enable_day_weather, enable_light_effect, enable_image_tech, accessories_random_tims,
|
31 |
+
object_random_times, suffix_words_random_times, assign_angle, assign_body_framing, assign_place,
|
32 |
+
assign_pose, assign_job, assigin_expression, assign_clothes, assign_leg_wear, assign_shoes,
|
33 |
+
assign_leg_wear_color, assign_shoes_color, assign_hair_color, hair_accessories, neck_accessories,
|
34 |
+
earrings, has_ending, hair_length, people_cnt):
|
35 |
+
if angle:
|
36 |
+
project_config["angle"] = ""
|
37 |
+
else:
|
38 |
+
project_config["angle"] = assign_angle
|
39 |
+
|
40 |
+
if body_framing:
|
41 |
+
project_config["body_framing"] = ""
|
42 |
+
else:
|
43 |
+
project_config["body_framing"] = assign_body_framing
|
44 |
+
|
45 |
+
if location:
|
46 |
+
project_config["place"] = ""
|
47 |
+
else:
|
48 |
+
project_config["place"] = assign_place
|
49 |
+
|
50 |
+
if pose_type == 2:
|
51 |
+
project_config["assign_pose"] = assign_pose
|
52 |
+
else:
|
53 |
+
project_config["assign_pose"] = ""
|
54 |
+
project_config["pose_type"] = pose_type + 1
|
55 |
+
|
56 |
+
project_config["dynamic_mode"] = dynamic_mode
|
57 |
+
if breasts_size == "空NULL":
|
58 |
+
project_config["breasts_size"] = "null"
|
59 |
+
else:
|
60 |
+
project_config["breasts_size"] = breasts_size
|
61 |
+
|
62 |
+
project_config["body_wear"] = body_wear + 1
|
63 |
+
project_config["top_wear"] = top_wear + 1
|
64 |
+
project_config["bottom_wear"] = bottom_wear + 1
|
65 |
+
project_config["leg_wear"] = leg_wear + 1
|
66 |
+
project_config["panties"] = panties
|
67 |
+
project_config["shoes_type"] = shoes_type + 1
|
68 |
+
project_config["body_with"] = body_with
|
69 |
+
project_config["body_status"] = body_status
|
70 |
+
project_config["body_description"] = body_desc
|
71 |
+
project_config["cloth_trim"] = cloth_trim
|
72 |
+
if profession:
|
73 |
+
project_config["assign_profession"] = ""
|
74 |
+
else:
|
75 |
+
project_config["assign_profession"] = assign_job
|
76 |
+
|
77 |
+
if hair_color and assign_hair_color == "":
|
78 |
+
project_config["hair_color"] = "random"
|
79 |
+
else:
|
80 |
+
if assign_hair_color == "":
|
81 |
+
project_config["hair_color"] = "null"
|
82 |
+
else:
|
83 |
+
project_config["hair_color"] = assign_hair_color
|
84 |
+
project_config["add_hair_style"] = add_hair_style
|
85 |
+
project_config["add_hair_length"] = hair_length
|
86 |
+
project_config["enable_eye_color"] = enable_eye_color
|
87 |
+
project_config["has_girl_desc"] = has_girl_desc
|
88 |
+
project_config["add_girl_beautyful"] = add_girl_beautyful
|
89 |
+
|
90 |
+
if face_expression <= 4:
|
91 |
+
project_config["face_expression"] = face_expression + 1
|
92 |
+
else:
|
93 |
+
project_config["assign_expression"] = assigin_expression
|
94 |
+
|
95 |
+
project_config["nsfw_type"] = nsfw_type + 1
|
96 |
+
project_config["is_nsfw"] = is_nsfw
|
97 |
+
project_config["is_uncensored"] = is_uncensored
|
98 |
+
project_config["is_simple_nude"] = is_simple_nude
|
99 |
+
project_config["nude_strong"] = nude_strong
|
100 |
+
|
101 |
+
project_config["sexual_list_random_index_times"] = sexual_list_random_index_times
|
102 |
+
project_config["nude_list_random_index_times"] = nude_list_random_index_times
|
103 |
+
|
104 |
+
project_config["use_starting"] = has_starting
|
105 |
+
project_config["is_realistic"] = is_realistic
|
106 |
+
project_config["add_colors"] = add_colors
|
107 |
+
project_config["enable_day_weather"] = enable_day_weather
|
108 |
+
project_config["enable_light_effect"] = enable_light_effect
|
109 |
+
project_config["enable_image_tech"] = enable_image_tech
|
110 |
+
project_config["accessories_random_tims"] = accessories_random_tims
|
111 |
+
project_config["object_random_times"] = object_random_times
|
112 |
+
project_config["suffix_words_random_times"] = suffix_words_random_times
|
113 |
+
|
114 |
+
project_config["assign_body_clothes"] = assign_clothes
|
115 |
+
project_config["assign_leg_wear"] = assign_leg_wear
|
116 |
+
project_config["assign_shoes"] = assign_shoes
|
117 |
+
project_config["leg_wear_color"] = assign_leg_wear_color
|
118 |
+
project_config["shoes_color"] = assign_shoes_color
|
119 |
+
|
120 |
+
project_config["add_hair_accessories"] = hair_accessories
|
121 |
+
project_config["add_neck_accessories"] = neck_accessories
|
122 |
+
project_config["add_earrings"] = earrings
|
123 |
+
project_config["add_detail_suffix"] = has_ending
|
124 |
+
project_config["girl_cnt"] = people_cnt
|
125 |
+
|
126 |
+
lora_config = get_model_input(widget_lora)
|
127 |
+
lyco_config = get_model_input(widget_lyco)
|
128 |
+
embeddings_config = get_model_input(widget_embeddings)
|
129 |
+
project_config["lora"] = lora_config
|
130 |
+
project_config["lyco"] = lyco_config
|
131 |
+
project_config["embeddings"] = embeddings_config
|
132 |
+
if model_order is None or model_order == '':
|
133 |
+
model_order = "xyz"
|
134 |
+
project_config["models_order"] = model_order
|
135 |
+
project_config["additional_prompt"] = additional_prompt
|
136 |
+
return create_prompts(gen_times, project_config)
|
137 |
+
|
138 |
+
|
139 |
+
def send_action(result_text):
|
140 |
+
if t2i_text_box is not None:
|
141 |
+
lines = result_text.split("\n")
|
142 |
+
stripped_lines = [line.strip() for line in lines]
|
143 |
+
if len(stripped_lines) > 0:
|
144 |
+
return stripped_lines[0]
|
145 |
+
|
146 |
+
|
147 |
+
def load_config_action():
|
148 |
+
return LoraConfigManager().export_to_data_frame()
|
149 |
+
|
150 |
+
|
151 |
+
######### UI #########
|
152 |
+
def on_ui_tabs():
|
153 |
+
with gr.Blocks(analytics_enabled=False) as ui_component:
|
154 |
+
with gr.Tab("生成prompt"):
|
155 |
+
with gr.Row():
|
156 |
+
with gr.Column(scale=3):
|
157 |
+
gr.Markdown("请修改以下配置")
|
158 |
+
|
159 |
+
with gr.Box():
|
160 |
+
with gr.Row():
|
161 |
+
time_slider = gr.Slider(1, 6, value=4, label="随机生成条数", step=1, interactive=True)
|
162 |
+
|
163 |
+
with gr.Box():
|
164 |
+
gr.Markdown("视角、地点、动作")
|
165 |
+
with gr.Row():
|
166 |
+
angle = gr.Checkbox(False, label="视角", info="正面,侧面,背面...")
|
167 |
+
body_framing = gr.Checkbox(False, label="身体框架", info="肖像,半身,全身...")
|
168 |
+
location = gr.Checkbox(False, label="地点", info="随机地点")
|
169 |
+
pose_type = gr.Dropdown(['基础', '全身', '空NULL'], value='空NULL', type="index",
|
170 |
+
label="动作类型",
|
171 |
+
interactive=True,
|
172 |
+
info="人物动作,站、坐、躺...")
|
173 |
+
dynamic_mode = gr.Checkbox(False, label="动态模式",
|
174 |
+
info="使用dynamic pose, angle,需对应配置勾选")
|
175 |
+
with gr.Box():
|
176 |
+
gr.Markdown("身体穿着描述, 选择空NULL则不生成该tag")
|
177 |
+
with gr.Column():
|
178 |
+
with gr.Row():
|
179 |
+
breasts_size = gr.Dropdown(["medium", "large", "huge", "gigantic", "空NULL"],
|
180 |
+
value="空NULL",
|
181 |
+
label="胸大小描述", info="依次增大= =#", interactive=True)
|
182 |
+
body_wear = gr.Dropdown(
|
183 |
+
["裙子dress", "制服UNIFORM", "紧身衣BODYSUIT", "传统服饰TRADITIONAL",
|
184 |
+
"上下搭配(如上身体恤下身短裙)", "以上随机", "空NULL"], value="空NULL",
|
185 |
+
type="index", label="衣服", info="", interactive=True)
|
186 |
+
top_wear = gr.Dropdown(
|
187 |
+
["衬衫SHIRTS", "外套COAT", "毛衣SWEATER", "其他OTHERS", "以上随机RANDOM"],
|
188 |
+
value="衬衫SHIRTS", type="index", label="上身衣物",
|
189 |
+
info="选择上下搭配(如上身体恤下身短裙)该配置生效", interactive=True)
|
190 |
+
bottom_wear = gr.Dropdown(["裤子PANTS", "短裙SKIRT", "短裤SHORTS", "以上随机RANDOM"],
|
191 |
+
value="短裙SKIRT", type="index", label="下身衣物",
|
192 |
+
info="选择上下搭配(如上身体恤下身短裙)该配置生效",
|
193 |
+
interactive=True)
|
194 |
+
with gr.Row():
|
195 |
+
leg_wear = gr.Dropdown(
|
196 |
+
["短袜SOCKS", "小腿袜KNEEHIGHS", "过膝袜OVERKNEEHIGHS", "大腿袜THIGHHIGHS",
|
197 |
+
"连裤袜PANTYHOSE",
|
198 |
+
"光腿BARE", "空NULL", "以上随机RANDOM"], value="空NULL", type="index",
|
199 |
+
label="袜子",
|
200 |
+
interactive=True)
|
201 |
+
panties = gr.Checkbox(False, label="内裤", info="勾选则随机给生成一种内裤类型")
|
202 |
+
shoes_type = gr.Dropdown(
|
203 |
+
["靴子BOOTS", "高跟鞋HIGHHEELS", "凉鞋SANDALS", "拖鞋SLIPPERS", "光脚BARE",
|
204 |
+
"空NULL"],
|
205 |
+
value="空NULL", type="index", label="鞋子", info="", interactive=True)
|
206 |
+
with gr.Row():
|
207 |
+
body_with = gr.Checkbox(False, label="身体缠绕物", info="缠绕一些东西,束缚,丝带,链条")
|
208 |
+
body_status = gr.Checkbox(False, label="身体状态", info="湿身、出汗...")
|
209 |
+
body_desc = gr.Checkbox(False, label="身体描述", info="完美身材,纤细身体...")
|
210 |
+
cloth_trim = gr.Checkbox(False, label="衣服装饰", info="蕾丝,丝带,金色,花等等...")
|
211 |
+
with gr.Box():
|
212 |
+
gr.Markdown("人物描述")
|
213 |
+
with gr.Row():
|
214 |
+
profession = gr.Checkbox(False, label="职业")
|
215 |
+
people_cnt = gr.Slider(0, 8, value=1, label="人物数量", step=1, interactive=True)
|
216 |
+
with gr.Row():
|
217 |
+
hair_length = gr.Checkbox(True, label="头发长度")
|
218 |
+
hair_color = gr.Checkbox(True, label="头发颜色", interactive=True)
|
219 |
+
add_hair_style = gr.Checkbox(False, label="头发风格")
|
220 |
+
enable_eye_color = gr.Checkbox(True, label="眼睛颜色")
|
221 |
+
with gr.Row():
|
222 |
+
hair_accessories = gr.Checkbox(True, label="头饰")
|
223 |
+
neck_accessories = gr.Checkbox(True, label="颈部饰物")
|
224 |
+
earrings = gr.Checkbox(True, label="耳环")
|
225 |
+
with gr.Row():
|
226 |
+
face_expression = gr.Dropdown(
|
227 |
+
["情绪EMOTIONS", "诱惑的SEXUAL", "笑容SMILE", "俏皮的SMUG", "以上随机", "空NULL"],
|
228 |
+
value="笑容SMILE",
|
229 |
+
type="index", label="表情", interactive=True)
|
230 |
+
add_girl_beautyful = gr.Checkbox(False, label="描述妹子的短词缀", info="")
|
231 |
+
has_girl_desc = gr.Checkbox(False, label="描述妹子的长词缀", info="")
|
232 |
+
|
233 |
+
with gr.Accordion("NSFW配置", open=False):
|
234 |
+
with gr.Box():
|
235 |
+
with gr.Row():
|
236 |
+
nsfw_type = gr.Dropdown(["裸NUDE", "性感SEXUAL", "常规NOTNSFW"], value="常规NOTNSFW",
|
237 |
+
type="index",
|
238 |
+
label="NSFW等级",
|
239 |
+
info="请确保你知道自己在干嘛!选择非常规类型,上面的人物衣服设置不生效",
|
240 |
+
interactive=True)
|
241 |
+
is_nsfw = gr.Checkbox(False, label="是否添加nfsw词缀")
|
242 |
+
is_uncensored = gr.Checkbox(False, label="是否添加uncensored词缀")
|
243 |
+
is_simple_nude = gr.Checkbox(False, label="是否是简单的nude模式", info="裸模式生效")
|
244 |
+
nude_strong = gr.Checkbox(False, label="是否加强nude模式", info="裸模式生效")
|
245 |
+
with gr.Row():
|
246 |
+
sexual_list_random_index_times = gr.Slider(0, 5, value=0, step=1,
|
247 |
+
label="性感词缀随机数",
|
248 |
+
interactive=True)
|
249 |
+
nude_list_random_index_times = gr.Slider(0, 9, value=0, step=1, label="裸体词缀随机数",
|
250 |
+
interactive=True)
|
251 |
+
with gr.Accordion("Lora Loha embedding控制", open=False):
|
252 |
+
gr.Markdown(
|
253 |
+
"""
|
254 |
+
关于lora/loha/embedding详细配置使用:[点我查看](https://github.com/HeathWang/prompt-r-gen-sd#loralohaembedding%E6%8E%A7%E5%88%B6%E8%AF%B4%E6%98%8E)
|
255 |
+
"""
|
256 |
+
)
|
257 |
+
with gr.Box():
|
258 |
+
with gr.Row():
|
259 |
+
widget_lora = gr.Textbox("", label="Lora【x】",
|
260 |
+
info="格式如下:101, 101:0.6, 路易斯:0.65", elem_id="rp_widget_lora")
|
261 |
+
widget_lyco = gr.Textbox("", label="lyco【y】",
|
262 |
+
info="格式如下:101, 101:0.6, 添加细节:1", elem_id="rp_widget_lyco")
|
263 |
+
with gr.Row():
|
264 |
+
widget_embeddings = gr.Textbox("", label="embeddings【z】",
|
265 |
+
info="格式如下:100, ul:0.6", elem_id="rp_widget_embeddings")
|
266 |
+
model_order = gr.Textbox("xyz", label="lora,lyco,embed顺序",
|
267 |
+
info="默认为xyz顺序,即按照lora,lyco,emb顺序")
|
268 |
+
with gr.Box():
|
269 |
+
gr.Markdown("其他")
|
270 |
+
with gr.Row():
|
271 |
+
has_starting = gr.Checkbox(True, label="是否使用起手式", info="best quality, absurdres,")
|
272 |
+
has_ending = gr.Checkbox(True, label="添加细节", info="jewelry, ultra-detailed, 8k,")
|
273 |
+
is_realistic = gr.Checkbox(False, label="是否添加真实词缀",
|
274 |
+
info="realistic, photorealistic")
|
275 |
+
add_colors = gr.Checkbox(False, label="是否添加多彩词缀")
|
276 |
+
with gr.Row():
|
277 |
+
enable_day_weather = gr.Checkbox(False, label="是否添加天气信息")
|
278 |
+
enable_light_effect = gr.Checkbox(True, label="是否添加灯光效果")
|
279 |
+
enable_image_tech = gr.Checkbox(False, label="是否开启图像技术,如模糊")
|
280 |
+
with gr.Row():
|
281 |
+
accessories_random_tims = gr.Slider(0, 8, value=0, step=1, label="饰物随机数",
|
282 |
+
interactive=True,
|
283 |
+
info="戒指,袜带等")
|
284 |
+
object_random_times = gr.Slider(0, 8, value=0, step=1, label="物品随机数",
|
285 |
+
info="花,冰火元素等",
|
286 |
+
interactive=True)
|
287 |
+
suffix_words_random_times = gr.Slider(0, 10, value=0, step=1, label="形容词缀随机数",
|
288 |
+
info="一些描述奇幻,美丽相关的词缀",
|
289 |
+
interactive=True)
|
290 |
+
|
291 |
+
with gr.Accordion("精准控制项", open=False):
|
292 |
+
with gr.Box():
|
293 |
+
with gr.Row():
|
294 |
+
assign_angle = gr.Textbox("null", label="指定视角")
|
295 |
+
assign_body_framing = gr.Textbox("null", label="指定身体框架")
|
296 |
+
assign_place = gr.Textbox("null", label="指定地点")
|
297 |
+
with gr.Row():
|
298 |
+
assign_pose = gr.Textbox("null", label="指定人物动作")
|
299 |
+
assign_job = gr.Textbox("null", label="指定角色")
|
300 |
+
assigin_expression = gr.Textbox("null", label="指定人物表情")
|
301 |
+
with gr.Row():
|
302 |
+
assign_clothes = gr.Textbox("", label="指定衣服")
|
303 |
+
assign_leg_wear = gr.Textbox("", label="指定袜子类型")
|
304 |
+
assign_shoes = gr.Textbox("", label="指定鞋子类型")
|
305 |
+
with gr.Row():
|
306 |
+
assign_leg_wear_color = gr.Textbox("", label="指定袜子颜色")
|
307 |
+
assign_shoes_color = gr.Textbox("", label="指定鞋子颜色")
|
308 |
+
assign_hair_color = gr.Textbox("", label="指定头发颜色")
|
309 |
+
|
310 |
+
with gr.Box():
|
311 |
+
gr.Markdown("手动输入项")
|
312 |
+
with gr.Row():
|
313 |
+
additional_prompt = gr.Textbox("", label="额外的prompt")
|
314 |
+
with gr.Column(scale=1):
|
315 |
+
gr.Markdown("prompt输出:")
|
316 |
+
results = gr.Textbox("", label="生成的prompt", lines=20, show_copy_button=True, interactive=False)
|
317 |
+
with gr.Row():
|
318 |
+
gen_button = gr.Button("生成prompt")
|
319 |
+
send_button = gr.Button("发送到文生图")
|
320 |
+
with gr.Tab("查看配置"):
|
321 |
+
review_btn = gr.Button("加载excel配置")
|
322 |
+
data_sheet = gr.DataFrame(
|
323 |
+
headers=["id", "类型", "模型名", "描述"],
|
324 |
+
datatype=["number", "str", "str", "str"],
|
325 |
+
col_count=4,
|
326 |
+
interactive=False,
|
327 |
+
)
|
328 |
+
review_btn.click(load_config_action, outputs=data_sheet)
|
329 |
+
|
330 |
+
gen_button.click(gen_action,
|
331 |
+
inputs=[time_slider, widget_lora, widget_lyco, widget_embeddings, model_order, additional_prompt, angle,
|
332 |
+
body_framing, location,
|
333 |
+
pose_type, dynamic_mode, breasts_size, body_wear, top_wear, bottom_wear, leg_wear,
|
334 |
+
panties, shoes_type, body_with, body_status, body_desc, cloth_trim, profession,
|
335 |
+
hair_color, add_hair_style, enable_eye_color, face_expression, add_girl_beautyful,
|
336 |
+
has_girl_desc, nsfw_type, is_nsfw, is_uncensored, is_simple_nude,
|
337 |
+
nude_strong, sexual_list_random_index_times, nude_list_random_index_times,
|
338 |
+
has_starting, is_realistic,
|
339 |
+
add_colors, enable_day_weather, enable_light_effect, enable_image_tech,
|
340 |
+
accessories_random_tims,
|
341 |
+
object_random_times, suffix_words_random_times, assign_angle, assign_body_framing,
|
342 |
+
assign_place, assign_pose, assign_job, assigin_expression, assign_clothes,
|
343 |
+
assign_leg_wear, assign_shoes, assign_leg_wear_color, assign_shoes_color,
|
344 |
+
assign_hair_color, hair_accessories, neck_accessories, earrings, has_ending,
|
345 |
+
hair_length, people_cnt], outputs=results)
|
346 |
+
send_button.click(send_action, inputs=results, outputs=t2i_text_box)
|
347 |
+
if IS_PLUGIN:
|
348 |
+
return [(ui_component, "随机提示词RP", "随机提示词RP")]
|
349 |
+
else:
|
350 |
+
return ui_component
|
351 |
+
|
352 |
+
|
353 |
+
def after_component(component, **kwargs):
|
354 |
+
# Find the text2img textbox component
|
355 |
+
global t2i_text_box
|
356 |
+
if kwargs.get("elem_id") == "txt2img_prompt": # postive prompt textbox
|
357 |
+
t2i_text_box = component
|
358 |
+
|
359 |
+
|
360 |
+
if IS_PLUGIN:
|
361 |
+
module_plugin1 = "modules.script_callbacks"
|
362 |
+
script_module = importlib.import_module(module_plugin1)
|
363 |
+
script_module.on_ui_tabs(on_ui_tabs)
|
364 |
+
script_module.on_after_component(after_component)
|
365 |
+
|
366 |
+
else:
|
367 |
+
on_ui_tabs().launch(debug=True)
|
scripts/requirements.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
openpyxl==3.1.2
|
snap_Shot.png
ADDED
ui_lora.png
ADDED