initial commit for Styles
This commit is contained in:
@@ -0,0 +1 @@
|
||||
__pycache__/
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 twri
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,64 @@
|
||||
SDXL Prompt Styler
|
||||
=======
|
||||
Custom node for ComfyUI
|
||||
-----------
|
||||

|
||||
|
||||
SDXL Prompt Styler is a node that enables you to style prompts based on predefined templates stored in a JSON file. The node specifically replaces a {prompt} placeholder in the 'prompt' field of each template with provided positive text.
|
||||
|
||||
The node also effectively manages negative prompts. If negative text is provided, the node combines this with the 'negative_prompt' field from the template. If no negative text is supplied, the system defaults to using the 'negative_prompt' from the JSON template. This flexibility enables the creation of a diverse and specific range of negative prompts.
|
||||
|
||||
### Usage Example with SDXL Prompt Styler
|
||||
|
||||
Template example from a JSON file:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "base",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "enhance",
|
||||
"prompt": "breathtaking {prompt} . award-winning, professional, highly detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, distorted, grainy"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
```python
|
||||
style = "enhance"
|
||||
positive_prompt = "a futuristic pop up tent in a forest"
|
||||
negative_prompt = "dark"
|
||||
```
|
||||
|
||||
This will generate the following styled prompts as outputs:
|
||||
|
||||
```
|
||||
breathtaking a futuristic pop up tent in a forest . award-winning, professional, highly detailed
|
||||
ugly, deformed, noisy, blurry, distorted, grainy, dark
|
||||
```
|
||||
|
||||
### Installation
|
||||
|
||||
To install and use the SDXL Prompt Styler nodes, follow these steps:
|
||||
|
||||
1. Open a terminal or command line interface.
|
||||
2. Navigate to the `ComfyUI/custom_nodes/` directory.
|
||||
3. Run the following command:
|
||||
```git clone https://github.com/twri/sdxl_prompt_styler.git```
|
||||
4. Restart ComfyUI.
|
||||
|
||||
This command clones the SDXL Prompt Styler repository into your `ComfyUI/custom_nodes/` directory. You should now be able to access and use the nodes from this repository.
|
||||
|
||||
### Inputs
|
||||
|
||||
* **text_positive** - text for the positive base prompt G
|
||||
* **text_negative** - text for the negative base prompt G
|
||||
* **log_prompt** - print inputs and outputs to stdout
|
||||
|
||||
### Outputs
|
||||
|
||||
* **positive_prompt_text_g** - combined prompt with style for positive promt G
|
||||
* **negative_prompt_text_g** - combined prompt with style for negative promt G
|
||||
@@ -0,0 +1,3 @@
|
||||
from .sdxl_prompt_styler import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS
|
||||
|
||||
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 459 KiB |
@@ -0,0 +1,818 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
def read_json_file(file_path):
|
||||
try:
|
||||
# Open file, load JSON content into python dictionary, and return it.
|
||||
with open(file_path, 'r') as file:
|
||||
json_data = json.load(file)
|
||||
return json_data
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {str(e)}")
|
||||
|
||||
|
||||
def read_sdxl_styles(json_data):
|
||||
# Check that data is a list
|
||||
if not isinstance(json_data, list):
|
||||
print("Error: input data must be a list")
|
||||
return None
|
||||
|
||||
names = []
|
||||
|
||||
# Iterate over each item in the data list
|
||||
for item in json_data:
|
||||
# Check that the item is a dictionary
|
||||
if isinstance(item, dict):
|
||||
# Check that 'name' is a key in the dictionary
|
||||
if 'name' in item:
|
||||
# Append the value of 'name' to the names list
|
||||
names.append(item['name'])
|
||||
|
||||
return names
|
||||
|
||||
def read_sdxl_templates_replace_and_combine(json_data, template_name, positive_prompt, negative_prompt):
|
||||
try:
|
||||
# Check if json_data is a list
|
||||
if not isinstance(json_data, list):
|
||||
raise ValueError("Invalid JSON data. Expected a list of templates.")
|
||||
|
||||
for template in json_data:
|
||||
# Check if template contains 'name' and 'prompt' fields
|
||||
if 'name' not in template or 'prompt' not in template:
|
||||
raise ValueError("Invalid template. Missing 'name' or 'prompt' field.")
|
||||
|
||||
# Replace {prompt} in the matching template
|
||||
if template['name'] == template_name:
|
||||
positive_prompt = template['prompt'].replace('{prompt}', positive_prompt)
|
||||
|
||||
json_negative_prompt = template.get('negative_prompt', "")
|
||||
if negative_prompt:
|
||||
negative_prompt = f"{json_negative_prompt}, {negative_prompt}" if json_negative_prompt else negative_prompt
|
||||
else:
|
||||
negative_prompt = json_negative_prompt
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
# If function hasn't returned yet, no matching template was found
|
||||
raise ValueError(f"No template found with name '{template_name}'.")
|
||||
|
||||
except Exception as e:
|
||||
print(f"An error occurred: {str(e)}")
|
||||
|
||||
|
||||
class SDXLPromptStylerMisc:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_misc.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerHorror:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_horror.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyArtist:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_artists.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyFocus:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_focus.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyTheme:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_themes.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyEnvironment:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_environment.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyMood:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_mood.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbySubject:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_subject.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyTimeofDay:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_tod.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyCamera:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_camera.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyComposition:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_composition.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyLighting:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_lighting.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyDepth:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_depth.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyFilter:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_filter.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
class SDXLPromptStylerbyOriginal:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(self):
|
||||
# Get current file's directory
|
||||
p = os.path.dirname(os.path.realpath(__file__))
|
||||
# Construct 'sdxl_styles.json' path
|
||||
file_path = os.path.join(p, 'sdxl_styles_original.json')
|
||||
|
||||
# Read JSON from file
|
||||
self.json_data = read_json_file(file_path)
|
||||
# Retrieve styles from JSON data
|
||||
styles = read_sdxl_styles(self.json_data)
|
||||
|
||||
return {
|
||||
"required": {
|
||||
"text_positive": ("STRING", {"default": "", "multiline": True}),
|
||||
"text_negative": ("STRING", {"default": "", "multiline": True}),
|
||||
"style": ((styles), ),
|
||||
"log_prompt": (["No", "Yes"], {"default":"No"}),
|
||||
},
|
||||
}
|
||||
|
||||
RETURN_TYPES = ('STRING','STRING',)
|
||||
RETURN_NAMES = ('positive_prompt_text_g','negative_prompt_text_g',)
|
||||
FUNCTION = 'prompt_styler'
|
||||
CATEGORY = 'Style Prompts'
|
||||
|
||||
def prompt_styler(self, text_positive, text_negative, style, log_prompt):
|
||||
# Process and combine prompts in templates
|
||||
# The function replaces the positive prompt placeholder in the template,
|
||||
# and combines the negative prompt with the template's negative prompt, if they exist.
|
||||
positive_prompt, negative_prompt = read_sdxl_templates_replace_and_combine(self.json_data, style, text_positive, text_negative)
|
||||
|
||||
# If logging is enabled (log_prompt is set to "Yes"),
|
||||
# print the style, positive and negative text, and positive and negative prompts to the console
|
||||
if log_prompt == "Yes":
|
||||
print(f"style: {style}")
|
||||
print(f"text_positive: {text_positive}")
|
||||
print(f"text_negative: {text_negative}")
|
||||
print(f"positive_prompt: {positive_prompt}")
|
||||
print(f"negative_prompt: {negative_prompt}")
|
||||
|
||||
return positive_prompt, negative_prompt
|
||||
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"SDXLPromptStylerbyArtist": SDXLPromptStylerbyArtist,
|
||||
"SDXLPromptStylerbyCamera": SDXLPromptStylerbyCamera,
|
||||
"SDXLPromptStylerbyComposition": SDXLPromptStylerbyComposition,
|
||||
"SDXLPromptStylerbyDepth": SDXLPromptStylerbyDepth,
|
||||
"SDXLPromptStylerbyEnvironment": SDXLPromptStylerbyEnvironment,
|
||||
"SDXLPromptStylerbyFilter": SDXLPromptStylerbyFilter,
|
||||
"SDXLPromptStylerbyFocus": SDXLPromptStylerbyFocus,
|
||||
"SDXLPromptStylerHorror": SDXLPromptStylerHorror,
|
||||
"SDXLPromptStylerbyLighting": SDXLPromptStylerbyLighting,
|
||||
"SDXLPromptStylerMisc": SDXLPromptStylerMisc,
|
||||
"SDXLPromptStylerbyMood": SDXLPromptStylerbyMood,
|
||||
"SDXLPromptStylerbyOriginal": SDXLPromptStylerbyOriginal,
|
||||
"SDXLPromptStylerbySubject": SDXLPromptStylerbySubject,
|
||||
"SDXLPromptStylerbyTheme": SDXLPromptStylerbyTheme,
|
||||
"SDXLPromptStylerbyTimeofDay": SDXLPromptStylerbyTimeofDay,
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"SDXLPromptStylerbyArtist": "Prompt Styler Artist",
|
||||
"SDXLPromptStylerbyCamera": "Prompt Styler Camera",
|
||||
"SDXLPromptStylerbyComposition": "Prompt Styler Composition",
|
||||
"SDXLPromptStylerbyDepth": "Prompt Styler Depth",
|
||||
"SDXLPromptStylerbyEnvironment": "Prompt Styler Environment",
|
||||
"SDXLPromptStylerbyFilter": "Prompt Styler Filter",
|
||||
"SDXLPromptStylerbyFocus": "Prompt Styler Focus",
|
||||
"SDXLPromptStylerHorror": "Prompt Styler Horror",
|
||||
"SDXLPromptStylerbyLighting": "Prompt Styler Lighting",
|
||||
"SDXLPromptStylerMisc": "Prompt Styler Misc",
|
||||
"SDXLPromptStylerbyMood": "Prompt Styler Mood",
|
||||
"SDXLPromptStylerbyOriginal": "Prompt Styler Original",
|
||||
"SDXLPromptStylerbySubject": "Prompt Styler Subject",
|
||||
"SDXLPromptStylerbyTheme": "Prompt Styler Theme",
|
||||
"SDXLPromptStylerbyTimeofDay": "Prompt Styler Time of Day",
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,637 @@
|
||||
[
|
||||
{
|
||||
"name": "none byCamera",
|
||||
"prompt": " {prompt} ",
|
||||
"negative_prompt": " "
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS 90D",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS 90D)",
|
||||
"negative_prompt": "slow shooting, inaccurate capture, static subjects"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS M50",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS M50)",
|
||||
"negative_prompt": "imbalanced quality"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS M50 Mark II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS M50 Mark II)",
|
||||
"negative_prompt": "complex, non-vlogging, specialized photography"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS M6 Mark II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS M6 Mark II)",
|
||||
"negative_prompt": "professionals, poor image quality, slow capture, specialized"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS R5",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS R5)",
|
||||
"negative_prompt": "inferior capture, lack of stabilization, amateur use"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS R5 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS R5)",
|
||||
"negative_prompt": "low-resolution, basic video, amateurs, single field"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS RP",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS RP)",
|
||||
"negative_prompt": "cropped frame, amateur quality, professionals"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS Rebel T8i",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS Rebel T8i), characterized by (vibrant colors, sharp details)",
|
||||
"negative_prompt": "professional-level"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS Rebel T8i (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS Rebel T8i)",
|
||||
"negative_prompt": "professional-level"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS-1D X Mark III",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS-1D X Mark III)",
|
||||
"negative_prompt": "slow speed, inaccuracy"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS-1D X Mark III (Unique Dynamic Capture Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS-1D X Mark III)",
|
||||
"negative_prompt": "amateur, portrait photographers, slow shooting, inaccurate capture, static scenes"
|
||||
},
|
||||
{
|
||||
"name": "Canon EOS-1D X Mark III (Unique Dynamic Scenes Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon EOS-1D X Mark III)",
|
||||
"negative_prompt": "amateur, slow shooting, unreliable capture, still life, passive scenes"
|
||||
},
|
||||
{
|
||||
"name": "Canon PowerShot G7 X Mark III",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon PowerShot G7 X Mark III)",
|
||||
"negative_prompt": "complex, poor vlogging, HD video"
|
||||
},
|
||||
{
|
||||
"name": "Canon PowerShot G7 X Mark III (Unique Specific Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon PowerShot G7 X Mark III)",
|
||||
"negative_prompt": "photographers, video limitations, professional recording"
|
||||
},
|
||||
{
|
||||
"name": "Canon PowerShot G7 X Mark III (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Canon PowerShot G7 X Mark III )",
|
||||
"negative_prompt": "still photography, HD video, traditional photographers, stationary"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm FinePix XP140",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm FinePix XP140)",
|
||||
"negative_prompt": "indoor use, shock-prone"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm GFX 100",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm GFX 100)",
|
||||
"negative_prompt": "low resolution, color inconsistency, amateurish quality"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm GFX 100 (Unique Specific Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm GFX 100)",
|
||||
"negative_prompt": "low resolution, lack of stabilization, blurred images"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm GFX 100 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm GFX 100 )",
|
||||
"negative_prompt": "low resolution, lack of detail, limited range, amateur"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm GFX 50S",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm GFX 50S)",
|
||||
"negative_prompt": "low resolution, poor tones, casual snapfocus"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm Instax Mini 11",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm Instax Mini 11)",
|
||||
"negative_prompt": "serious, complex, professional events, solitude, digital storage"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X-E4",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X-E4)",
|
||||
"negative_prompt": "dull color, studio photography"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X-E4 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X-E4)",
|
||||
"negative_prompt": "studio, portrait photographers"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X-Pro3",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X-Pro3)",
|
||||
"negative_prompt": "viewfinder, digital look, modern images"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X-Pro3 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X-Pro3)",
|
||||
"negative_prompt": "viewfinder, digital look, modern experience, digital aesthetics"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X-T200",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X-T200)",
|
||||
"negative_prompt": "complex, dull color, professionals, low-quality images"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X-T4",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X-T4)",
|
||||
"negative_prompt": "slowness, lack of stabilization, amateur videography"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X-T4 (Unique Strong Stabilization)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X-T4)",
|
||||
"negative_prompt": "weak stabilization, specialized performance, photography only, videography only"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X100V",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X100V)",
|
||||
"negative_prompt": "digital look, contemporary images"
|
||||
},
|
||||
{
|
||||
"name": "Fujifilm X100V (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Fujifilm X100V)",
|
||||
"negative_prompt": "modern looks, average image quality, studio photography"
|
||||
},
|
||||
{
|
||||
"name": "GoPro HERO9 Black",
|
||||
"prompt": "Photograph of {prompt}, captured on a (GoPro HERO9 Black)",
|
||||
"negative_prompt": "shaky footage, static scenes"
|
||||
},
|
||||
{
|
||||
"name": "Hasselblad 907X 50C",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Hasselblad 907X 50C)",
|
||||
"negative_prompt": "modern aesthetics, poor detail"
|
||||
},
|
||||
{
|
||||
"name": "Hasselblad 907X 50C (Unique Large Format)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Hasselblad 907X 50C)",
|
||||
"negative_prompt": "poor image quality"
|
||||
},
|
||||
{
|
||||
"name": "Hasselblad H5D-50c",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Hasselblad H5D-50c)",
|
||||
"negative_prompt": "lack of detail, color inaccuracy"
|
||||
},
|
||||
{
|
||||
"name": "Hasselblad H6D-100c",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Hasselblad H6D-100c)",
|
||||
"negative_prompt": "low resolution, amateur work"
|
||||
},
|
||||
{
|
||||
"name": "Hasselblad X1D II 50C",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Hasselblad X1D II 50C)",
|
||||
"negative_prompt": "limited detail, narrow dynamic range, dull colors"
|
||||
},
|
||||
{
|
||||
"name": "Hasselblad X1D II 50C (Unique High Resolution)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Hasselblad X1D II 50C)",
|
||||
"negative_prompt": "low resolution, color inaccuracy, amateur portraits"
|
||||
},
|
||||
{
|
||||
"name": "Hasselblad XCD 4/45P",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Hasselblad XCD 4/45P)",
|
||||
"negative_prompt": "average , harsh bokeh"
|
||||
},
|
||||
{
|
||||
"name": "Leica CL",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica CL)",
|
||||
"negative_prompt": "average optics, soft images"
|
||||
},
|
||||
{
|
||||
"name": "Leica M-D",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica M-D)",
|
||||
"negative_prompt": "DSLR, enhanced photography"
|
||||
},
|
||||
{
|
||||
"name": "Leica M10 Monochrom",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica M10 Monochrom)",
|
||||
"negative_prompt": "color photography, flat tones, contemporary look"
|
||||
},
|
||||
{
|
||||
"name": "Leica M10 Monochrom (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica M10 Monochrom)",
|
||||
"negative_prompt": "color photography, conventional, non-artists, color enthusiasts"
|
||||
},
|
||||
{
|
||||
"name": "Leica M10-R",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica M10-R)",
|
||||
"negative_prompt": "mediocre quality, lack of detail, snapshot photography"
|
||||
},
|
||||
{
|
||||
"name": "Leica M11",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica M11)",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Leica Q-P",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica Q-P)",
|
||||
"negative_prompt": "attention-grabbing, studio photographers"
|
||||
},
|
||||
{
|
||||
"name": "Leica Q2",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica Q2)",
|
||||
"negative_prompt": "cropped sensor, lack of , low"
|
||||
},
|
||||
{
|
||||
"name": "Leica Q2 Monochrom",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica Q2 Monochrom)",
|
||||
"negative_prompt": "color photography, complex approach, low-resolution, color enthusiasts"
|
||||
},
|
||||
{
|
||||
"name": "Leica S3",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica S3)",
|
||||
"negative_prompt": "mediocre image quality, basic build, low-end commercial"
|
||||
},
|
||||
{
|
||||
"name": "Leica SL2",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica SL2)",
|
||||
"negative_prompt": "low-quality images, cheap feel"
|
||||
},
|
||||
{
|
||||
"name": "Leica SL2 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica SL2)",
|
||||
"negative_prompt": "cropped sensor, mediocre quality, snap, budget advertising"
|
||||
},
|
||||
{
|
||||
"name": "Leica SL2-S",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Leica SL2-S)",
|
||||
"negative_prompt": "cropped-frame, basic build, specialization, photography only, videography only"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Coolpix P950",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Coolpix P950)",
|
||||
"negative_prompt": "limited zoom, lack of stabilization, close-up photography"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Coolpix P950 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Coolpix P950)",
|
||||
"negative_prompt": "limited zoom, no stabilization, close-up subjects"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Coolpix W300",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Coolpix W300)",
|
||||
"negative_prompt": "studio, , HD video"
|
||||
},
|
||||
{
|
||||
"name": "Nikon D3500",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon D3500), characterized by (rich colors, smooth tonal transitions)",
|
||||
"negative_prompt": "poor image quality"
|
||||
},
|
||||
{
|
||||
"name": "Nikon D6",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon D6)",
|
||||
"negative_prompt": "amateur, slowness, inaccuracy, still life photography, static scenes"
|
||||
},
|
||||
{
|
||||
"name": "Nikon D780",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon D780)",
|
||||
"negative_prompt": "poor low-light, limited video, low-detail images"
|
||||
},
|
||||
{
|
||||
"name": "Nikon D850",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon D850)",
|
||||
"negative_prompt": "low resolution, slow performance"
|
||||
},
|
||||
{
|
||||
"name": "Nikon D850 (Unique High Resolution)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon D850)",
|
||||
"negative_prompt": "cropped-frame, low resolution, specialized performance, amateur, narrow range"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Z5",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Z5)",
|
||||
"negative_prompt": "cropped-frame, imbalance, poor performance, expensive, beginners, high-end professionals"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Z50",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Z50)",
|
||||
"negative_prompt": "complex, dull images"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Z50 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Z50)",
|
||||
"negative_prompt": "complex, professionals, stationary photography"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Z6",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Z6)",
|
||||
"negative_prompt": "cropped sensor, poor low-light performance, noisy images"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Z6 II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Z6 II)",
|
||||
"negative_prompt": "poor low-light, slow capture, static , day scenes"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Z7 II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Z7 II)",
|
||||
"negative_prompt": "low-resolution, slow shooting, lack of detail, static scenes"
|
||||
},
|
||||
{
|
||||
"name": "Nikon Z7 II (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Nikon Z7 II)",
|
||||
"negative_prompt": "poor resolution, limited range, portrait photographers, vague details"
|
||||
},
|
||||
{
|
||||
"name": "Olympus E-M1X",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus E-M1X)",
|
||||
"negative_prompt": "weak stabilization, slow capture, still life, passive scenes"
|
||||
},
|
||||
{
|
||||
"name": "Olympus OM-D E-M1 Mark II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus OM-D E-M1 Mark II)",
|
||||
"negative_prompt": "slow capture, action, missed timing"
|
||||
},
|
||||
{
|
||||
"name": "Olympus OM-D E-M10 Mark IV",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus OM-D E-M10 Mark IV)",
|
||||
"negative_prompt": "heavy, fixed location, shaky images"
|
||||
},
|
||||
{
|
||||
"name": "Olympus OM-D E-M10 Mark IV (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus OM-D E-M10 Mark IV)",
|
||||
"negative_prompt": "complex, professional-level"
|
||||
},
|
||||
{
|
||||
"name": "Olympus OM-D E-M1X",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus OM-D E-M1X)",
|
||||
"negative_prompt": "amateur, still life, basic stabilization, non-weather-sealed, controlled conditions"
|
||||
},
|
||||
{
|
||||
"name": "Olympus OM-D E-M5 Mark III",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus OM-D E-M5 Mark III)",
|
||||
"negative_prompt": "weak stabilization, studio photography"
|
||||
},
|
||||
{
|
||||
"name": "Olympus OM-D E-M5 Mark III (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus OM-D E-M5 Mark III)",
|
||||
"negative_prompt": "heavy, non-weather-sealed, indoor photography, controlled weather"
|
||||
},
|
||||
{
|
||||
"name": "Olympus PEN E-PL10",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus PEN E-PL10)",
|
||||
"negative_prompt": "technical photographers, images"
|
||||
},
|
||||
{
|
||||
"name": "Olympus PEN-F",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus PEN-F)",
|
||||
"negative_prompt": "poor color reproduction, dull photos"
|
||||
},
|
||||
{
|
||||
"name": "Olympus PEN-F (Unique Specific Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus PEN-F)",
|
||||
"negative_prompt": "fixed , limited creativity, studio photography"
|
||||
},
|
||||
{
|
||||
"name": "Olympus PEN-F (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus PEN-F )",
|
||||
"negative_prompt": "modern-styled, controls, non-artists, lack of style, limited functionality"
|
||||
},
|
||||
{
|
||||
"name": "Olympus Tough TG-6",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus Tough TG-6)",
|
||||
"negative_prompt": "not waterproof, indoor photography"
|
||||
},
|
||||
{
|
||||
"name": "Olympus Tough TG-6 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Olympus Tough TG-6)",
|
||||
"negative_prompt": "studio, , shock-prone"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DC-G100",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DC-G100)",
|
||||
"negative_prompt": "photographers, external microphone required, poor audio"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DC-G9",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DC-G9)",
|
||||
"negative_prompt": "videographers, low-resolution, slow burst, still life, static scenes"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DC-GH5",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DC-GH5)",
|
||||
"negative_prompt": "HD video, basic features, photographers, non-cinematic content"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DC-S1R",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DC-S1R)",
|
||||
"negative_prompt": "low-resolution, build, landscapes, amateur indoor"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DC-S5",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DC-S5)",
|
||||
"negative_prompt": "photo-only, limited video, specialization, single-format creators"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DC-S5 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DC-S5)",
|
||||
"negative_prompt": "cropped-frame, imbalance, poor image quality, limited video, specialized creators"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DMC-FZ300",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DMC-FZ300), characterized by (fast autofocus, great macro capabilities)",
|
||||
"negative_prompt": "variable aperture, non-weather-sealed, indoor photography"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DMC-FZ300 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DMC-FZ300)",
|
||||
"negative_prompt": "fixed , studio photographers, non-adventurous"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix DMC-LX100 II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix DMC-LX100 II)",
|
||||
"negative_prompt": "budget, slow , HD video, studio work, specialized photography"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix FZ1000 II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix FZ1000 II)",
|
||||
"negative_prompt": "limited zoom, HD video, single-purpose"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix G100",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix G100)",
|
||||
"negative_prompt": "still photography, HD video, fixed , limited framing"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix GH5 II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix GH5 II)",
|
||||
"negative_prompt": "still photography, shaky footage, low frame rates, amateur video"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix S1",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix S1)",
|
||||
"negative_prompt": "still photography, photographers, indoor videography"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix S1R",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix S1R)",
|
||||
"negative_prompt": "low resolution, lack of detail, amateur use"
|
||||
},
|
||||
{
|
||||
"name": "Panasonic Lumix S5",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Panasonic Lumix S5)",
|
||||
"negative_prompt": "HD video, non-vlogging"
|
||||
},
|
||||
{
|
||||
"name": "Pentax 645Z",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Pentax 645Z)",
|
||||
"negative_prompt": "lack of detail, limited range, amateur portraits"
|
||||
},
|
||||
{
|
||||
"name": "Pentax 645Z (Unique Large Format)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Pentax 645Z)",
|
||||
"negative_prompt": "average image quality, limited range, amateur, action, on-the-go"
|
||||
},
|
||||
{
|
||||
"name": "Pentax K-1 Mark II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Pentax K-1 Mark II)",
|
||||
"negative_prompt": "soft , limited dynamic range"
|
||||
},
|
||||
{
|
||||
"name": "Pentax KP",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Pentax KP)",
|
||||
"negative_prompt": "build, non-weather-sealed, indoor photography"
|
||||
},
|
||||
{
|
||||
"name": "Phase One XF IQ4 150MP",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Phase One XF IQ4 150MP)",
|
||||
"negative_prompt": "low-end, low resolution, amateur, lack of detail"
|
||||
},
|
||||
{
|
||||
"name": "Phase One XT",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Phase One XT)",
|
||||
"negative_prompt": "studio camera, action, portrait, lack of detail, disconnected system"
|
||||
},
|
||||
{
|
||||
"name": "Ricoh GR III",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Ricoh GR III)",
|
||||
"negative_prompt": "soft , shaky , handheld images"
|
||||
},
|
||||
{
|
||||
"name": "Ricoh GR III (Unique Steady Focus)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Ricoh GR III)",
|
||||
"negative_prompt": "soft , studio photography"
|
||||
},
|
||||
{
|
||||
"name": "Ricoh GR III (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Ricoh GR III)",
|
||||
"negative_prompt": "studio photography, softness"
|
||||
},
|
||||
{
|
||||
"name": "Ricoh Theta Z1",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Ricoh Theta Z1)",
|
||||
"negative_prompt": "photography, flat images, limited views"
|
||||
},
|
||||
{
|
||||
"name": "Ricoh Theta Z1 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Ricoh Theta Z1)",
|
||||
"negative_prompt": "camera, flat images, non-VR, limited angles"
|
||||
},
|
||||
{
|
||||
"name": "Sigma SD Quattro H",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sigma SD Quattro H)",
|
||||
"negative_prompt": "traditional sensor, blended color, soft"
|
||||
},
|
||||
{
|
||||
"name": "Sigma fp",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sigma fp)",
|
||||
"negative_prompt": "limited versatility, soft images, jittery video"
|
||||
},
|
||||
{
|
||||
"name": "Sigma fp (Unique Specific Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sigma fp)",
|
||||
"negative_prompt": "rigidity, limited scenarios"
|
||||
},
|
||||
{
|
||||
"name": "Sigma fp (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sigma fp )",
|
||||
"negative_prompt": "cropped-frame, bulkiness, specialization, photo only, video only"
|
||||
},
|
||||
{
|
||||
"name": "Sigma fp L",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sigma fp L)",
|
||||
"negative_prompt": "low resolution, limited creativity"
|
||||
},
|
||||
{
|
||||
"name": "Sony A6000",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony A6000)",
|
||||
"negative_prompt": "poor capture, studio photography, staged"
|
||||
},
|
||||
{
|
||||
"name": "Sony A6400",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony A6400)",
|
||||
"negative_prompt": "slowness, capture inaccuracy, still photography"
|
||||
},
|
||||
{
|
||||
"name": "Sony A7R IV",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony A7R IV)",
|
||||
"negative_prompt": "low resolution, limited range, lack of detail, portraits, casual snapfocus"
|
||||
},
|
||||
{
|
||||
"name": "Sony A7S III",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony A7S III)",
|
||||
"negative_prompt": "poor low-light, HD video, non-filmmakers, daytime photography"
|
||||
},
|
||||
{
|
||||
"name": "Sony A9 II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony A9 II)",
|
||||
"negative_prompt": "poor capture, single shot, action"
|
||||
},
|
||||
{
|
||||
"name": "Sony Alpha 1",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony Alpha 1)",
|
||||
"negative_prompt": "entry-level, slow speed, amateur quality"
|
||||
},
|
||||
{
|
||||
"name": "Sony Alpha 1 (Unique Variant)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony Alpha 1)",
|
||||
"negative_prompt": "amateur, still life, slow subjects, slow burst, imprecise capture"
|
||||
},
|
||||
{
|
||||
"name": "Sony Alpha A7 III",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony Alpha A7 III)",
|
||||
"negative_prompt": "overpriced, average quality images, unreliable performance, beginners, casual users"
|
||||
},
|
||||
{
|
||||
"name": "Sony Alpha A9 II",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony Alpha A9 II)",
|
||||
"negative_prompt": "amateur, slow shooting, unreliable capture, still life photography"
|
||||
},
|
||||
{
|
||||
"name": "Sony Cyber-shot DSC-RX10 IV",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony Cyber-shot DSC-RX10 IV)",
|
||||
"negative_prompt": "short zoom, poor video, portrait photography, close-up subjects"
|
||||
},
|
||||
{
|
||||
"name": "Sony Cyber-shot DSC-W800",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony Cyber-shot DSC-W800)",
|
||||
"negative_prompt": "professional-level, expensive, expert photographers, primary camera"
|
||||
},
|
||||
{
|
||||
"name": "Sony Cyber-shot RX100 VII",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony Cyber-shot RX100 VII)",
|
||||
"negative_prompt": "large-sized, limited zoom, studio work, specialized photography, compromise quality"
|
||||
},
|
||||
{
|
||||
"name": "Sony RX10 IV",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony RX10 IV)",
|
||||
"negative_prompt": "limited zoom, poor capture, close-up photography"
|
||||
},
|
||||
{
|
||||
"name": "Sony RX100 VII",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony RX100 VII)",
|
||||
"negative_prompt": "slow capture, limited zoom, images"
|
||||
},
|
||||
{
|
||||
"name": "Sony RX100 VII (Unique Fast Capture)",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony RX100 VII)",
|
||||
"negative_prompt": "budget, slow , basic capture, studio photography, static scenes"
|
||||
},
|
||||
{
|
||||
"name": "Sony ZV-1",
|
||||
"prompt": "Photograph of {prompt}, captured on a (Sony ZV-1)",
|
||||
"negative_prompt": "general use, slow , poor capture, videos"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "none by Composition",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Balance",
|
||||
"prompt": "balance {prompt}",
|
||||
"negative_prompt": "unbalanced"
|
||||
},
|
||||
{
|
||||
"name": "Framing",
|
||||
"prompt": "framing {prompt}",
|
||||
"negative_prompt": "blocking"
|
||||
},
|
||||
{
|
||||
"name": "LeadingLines",
|
||||
"prompt": "leadinglines {prompt}",
|
||||
"negative_prompt": "scattered"
|
||||
},
|
||||
{
|
||||
"name": "NegativeSpace",
|
||||
"prompt": "negativespace {prompt}",
|
||||
"negative_prompt": "positivespace"
|
||||
},
|
||||
{
|
||||
"name": "Pattern",
|
||||
"prompt": "pattern {prompt}",
|
||||
"negative_prompt": "random"
|
||||
},
|
||||
{
|
||||
"name": "Perspective",
|
||||
"prompt": "perspective {prompt}",
|
||||
"negative_prompt": "flat"
|
||||
},
|
||||
{
|
||||
"name": "RuleOfThirds",
|
||||
"prompt": "ruleofthirds {prompt}",
|
||||
"negative_prompt": "centered"
|
||||
},
|
||||
{
|
||||
"name": "Simplicity",
|
||||
"prompt": "simplicity {prompt}",
|
||||
"negative_prompt": "complex"
|
||||
},
|
||||
{
|
||||
"name": "Symmetry",
|
||||
"prompt": "symmetry {prompt}",
|
||||
"negative_prompt": "asymmetry"
|
||||
},
|
||||
{
|
||||
"name": "Texture",
|
||||
"prompt": "texture {prompt}",
|
||||
"negative_prompt": "smooth"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,102 @@
|
||||
[
|
||||
{
|
||||
"name": "None byDepth",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Architecture Depth of Field",
|
||||
"prompt": "(f_stop 11.0), (focal_length 35.0) f/11, 24mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Close-Up Depth of Field",
|
||||
"prompt": "(f_stop 4.0), (focal_length 60.0) f/4, 60mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Creative or Abstract Depth of Field",
|
||||
"prompt": "(f_stop 2.0), (focal_length 50.0) f/2, 50mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Deep Depth of Field",
|
||||
"prompt": "(f_stop 11.0), (focal_length 18.0) f/11, 18mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Environmental Portraits Depth of Field",
|
||||
"prompt": "(f_stop 5.6), (focal_length 35.0) f/5.6, 35mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Extreme Shallow Depth of Field",
|
||||
"prompt": "(f_stop 1.2), (focal_length 85.0) f/1.2, 85mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 22.0), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Landscape Depth of Field",
|
||||
"prompt": "(f_stop 16.0), (focal_length 35.0) f/16, 18mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Limited Depth of Field",
|
||||
"prompt": "(f_stop None), (focal_length None) f/2.8, macro lens {prompt}",
|
||||
"negative_prompt": "(f_stop None), (focal_length None)"
|
||||
},
|
||||
{
|
||||
"name": "Macro Depth of Field",
|
||||
"prompt": "(f_stop None), (focal_length None) f/8, macro lens {prompt}",
|
||||
"negative_prompt": "(f_stop None), (focal_length None)"
|
||||
},
|
||||
{
|
||||
"name": "Moderate Depth of Field",
|
||||
"prompt": "(f_stop 5.6), (focal_length 28.0) f/5.6, 28mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Moderate Shallow Depth of Field",
|
||||
"prompt": "(f_stop 4.0), (focal_length 35.0) f/4, 35mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Night Photography Depth of Field",
|
||||
"prompt": "(f_stop 2.8), (focal_length 35.0) f/2.8, 35mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Panoramic Depth of Field",
|
||||
"prompt": "(f_stop None), (focal_length None) f/16, wide-angle lens {prompt}",
|
||||
"negative_prompt": "(f_stop None), (focal_length None)"
|
||||
},
|
||||
{
|
||||
"name": "Slightly Deep Depth of Field",
|
||||
"prompt": "(f_stop 8.0), (focal_length 24.0) f/8, 24mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Still Life Depth of Field",
|
||||
"prompt": "(f_stop 5.6), (focal_length 50.0) f/5.6, 50mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Street Photography Depth of Field",
|
||||
"prompt": "(f_stop 8.0), (focal_length 85.0) f/8, 35mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Subject in Motion Depth of Field",
|
||||
"prompt": "(f_stop 4.0), (focal_length 24.0) f/4, 24mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Very Deep Depth of Field",
|
||||
"prompt": "(f_stop 16.0), (focal_length 14.0) f/16, 14mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 85.0)"
|
||||
},
|
||||
{
|
||||
"name": "Very Shallow Depth of Field",
|
||||
"prompt": "(f_stop 1.8), (focal_length 50.0) f/1.8, 50mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 14.0)"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "none byEnvironment",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Beach",
|
||||
"prompt": "beach {prompt}",
|
||||
"negative_prompt": "forest"
|
||||
},
|
||||
{
|
||||
"name": "Desert",
|
||||
"prompt": "desert {prompt}",
|
||||
"negative_prompt": "beach"
|
||||
},
|
||||
{
|
||||
"name": "Forest",
|
||||
"prompt": "forest {prompt}",
|
||||
"negative_prompt": "city"
|
||||
},
|
||||
{
|
||||
"name": "Indoor",
|
||||
"prompt": "indoor {prompt}",
|
||||
"negative_prompt": "outdoor"
|
||||
},
|
||||
{
|
||||
"name": "Mountain",
|
||||
"prompt": "mountain {prompt}",
|
||||
"negative_prompt": "valley"
|
||||
},
|
||||
{
|
||||
"name": "Outdoor",
|
||||
"prompt": "outdoor {prompt}",
|
||||
"negative_prompt": "indoor"
|
||||
},
|
||||
{
|
||||
"name": "Rural",
|
||||
"prompt": "rural {prompt}",
|
||||
"negative_prompt": "urban"
|
||||
},
|
||||
{
|
||||
"name": "Snow",
|
||||
"prompt": "snow {prompt}",
|
||||
"negative_prompt": "summer"
|
||||
},
|
||||
{
|
||||
"name": "Studio",
|
||||
"prompt": "studio {prompt}",
|
||||
"negative_prompt": "indoor"
|
||||
},
|
||||
{
|
||||
"name": "Urban",
|
||||
"prompt": "urban {prompt}",
|
||||
"negative_prompt": "rural"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "No option",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "BlackAndWhite",
|
||||
"prompt": "blackandwhite {prompt}",
|
||||
"negative_prompt": "color"
|
||||
},
|
||||
{
|
||||
"name": "Contrast",
|
||||
"prompt": "contrast {prompt}",
|
||||
"negative_prompt": "brightness"
|
||||
},
|
||||
{
|
||||
"name": "Cool",
|
||||
"prompt": "cool {prompt}",
|
||||
"negative_prompt": "warm"
|
||||
},
|
||||
{
|
||||
"name": "HDR",
|
||||
"prompt": "hdr {prompt}",
|
||||
"negative_prompt": "ldr"
|
||||
},
|
||||
{
|
||||
"name": "Monochrome",
|
||||
"prompt": "monochrome {prompt}",
|
||||
"negative_prompt": "colorful"
|
||||
},
|
||||
{
|
||||
"name": "Saturated",
|
||||
"prompt": "saturated {prompt}",
|
||||
"negative_prompt": "dull"
|
||||
},
|
||||
{
|
||||
"name": "Sepia",
|
||||
"prompt": "sepia {prompt}",
|
||||
"negative_prompt": "bright"
|
||||
},
|
||||
{
|
||||
"name": "Vignette",
|
||||
"prompt": "vignette {prompt}",
|
||||
"negative_prompt": "none"
|
||||
},
|
||||
{
|
||||
"name": "Vintage",
|
||||
"prompt": "vintage {prompt}",
|
||||
"negative_prompt": "modern"
|
||||
},
|
||||
{
|
||||
"name": "Warm",
|
||||
"prompt": "warm {prompt}",
|
||||
"negative_prompt": "cool"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,447 @@
|
||||
[
|
||||
{
|
||||
"name": "none byFocus",
|
||||
"prompt": "{prompt} ",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Extreme Shallow Depth of Field",
|
||||
"prompt": "(f_stop 1.2), (focal_length 85.0) f/1.2, 85mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.2), (focal_length 85.0)"
|
||||
},
|
||||
{
|
||||
"name": "Very Shallow Depth of Field",
|
||||
"prompt": "(f_stop 1.8), (focal_length 50.0) f/1.8, 50mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.8), (focal_length 50.0)"
|
||||
},
|
||||
{
|
||||
"name": "Night Photography Depth of Field",
|
||||
"prompt": "(f_stop 2.8), (focal_length 35.0) f/2.8, 35mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 2.8), (focal_length 35.0)"
|
||||
},
|
||||
{
|
||||
"name": "Moderate Shallow Depth of Field",
|
||||
"prompt": "(f_stop 4.0), (focal_length 35.0) f/4, 35mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 4.0), (focal_length 35.0)"
|
||||
},
|
||||
{
|
||||
"name": "Moderate Depth of Field",
|
||||
"prompt": "(f_stop 5.6), (focal_length 28.0) f/5.6, 28mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 5.6), (focal_length 28.0)"
|
||||
},
|
||||
{
|
||||
"name": "Slightly Deep Depth of Field",
|
||||
"prompt": "(f_stop 8.0), (focal_length 24.0) f/8, 24mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 8.0), (focal_length 24.0)"
|
||||
},
|
||||
{
|
||||
"name": "Deep Depth of Field",
|
||||
"prompt": "(f_stop 11.0), (focal_length 18.0) f/11, 18mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 11.0), (focal_length 18.0)"
|
||||
},
|
||||
{
|
||||
"name": "Very Deep Depth of Field",
|
||||
"prompt": "(f_stop 16.0), (focal_length 14.0) f/16, 14mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 16.0), (focal_length 14.0)"
|
||||
},
|
||||
{
|
||||
"name": "Hyperfocal Distance",
|
||||
"prompt": "(f_stop 22.0), (focal_length 85.0) f/22, 14mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 22.0), (focal_length 85.0)"
|
||||
},
|
||||
{
|
||||
"name": "Selective Focus",
|
||||
"prompt": "(f_stop 3.5), (focal_length 40.0) f/3.5, 40mm focal length / (Selective Focus) {prompt} / (f_stop 2.8), (focal_length 50.0)",
|
||||
"negative_prompt": "(f_stop 3.5), (focal_length 40.0) / (Selective Focus) / (f_stop 16), (focal_length 24)"
|
||||
},
|
||||
{
|
||||
"name": "Bokeh Effect",
|
||||
"prompt": "(f_stop 1.4), (focal_length 50.0) f/1.4, 50mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 1.4), (focal_length 50.0)"
|
||||
},
|
||||
{
|
||||
"name": "Tilt-Shift Photography",
|
||||
"prompt": "(f_stop None), (focal_length None) f/4, special tilt-shift lens {prompt}",
|
||||
"negative_prompt": "(f_stop None), (focal_length None)"
|
||||
},
|
||||
{
|
||||
"name": "Macro Depth of Field",
|
||||
"prompt": "(f_stop None), (focal_length None) f/8, macro lens {prompt}",
|
||||
"negative_prompt": "(f_stop None), (focal_length None)"
|
||||
},
|
||||
{
|
||||
"name": "Landscape Depth of Field",
|
||||
"prompt": "(f_stop 16.0), (focal_length 35.0) f/16, 18mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 16.0), (focal_length 35.0)"
|
||||
},
|
||||
{
|
||||
"name": "Limited Depth of Field",
|
||||
"prompt": "(f_stop None), (focal_length None) f/2.8, macro lens {prompt}",
|
||||
"negative_prompt": "(f_stop None), (focal_length None)"
|
||||
},
|
||||
{
|
||||
"name": "Environmental Portraits Depth of Field",
|
||||
"prompt": "(f_stop 5.6), (focal_length 35.0) f/5.6, 35mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 5.6), (focal_length 35.0)"
|
||||
},
|
||||
{
|
||||
"name": "Close-Up Depth of Field",
|
||||
"prompt": "(f_stop 4.0), (focal_length 60.0) f/4, 60mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 4.0), (focal_length 60.0)"
|
||||
},
|
||||
{
|
||||
"name": "Street Photography Depth of Field",
|
||||
"prompt": "(f_stop 8.0), (focal_length 85.0) f/8, 35mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 8.0), (focal_length 85.0)"
|
||||
},
|
||||
{
|
||||
"name": "Subject in Motion Depth of Field",
|
||||
"prompt": "(f_stop 4.0), (focal_length 24.0) f/4, 24mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 4.0), (focal_length 24.0)"
|
||||
},
|
||||
{
|
||||
"name": "Architecture Depth of Field",
|
||||
"prompt": "(f_stop 11.0), (focal_length 35.0) f/11, 24mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 11.0), (focal_length 35.0)"
|
||||
},
|
||||
{
|
||||
"name": "Panoramic Depth of Field",
|
||||
"prompt": "(f_stop None), (focal_length None) f/16, wide-angle lens {prompt}",
|
||||
"negative_prompt": "(f_stop None), (focal_length None)"
|
||||
},
|
||||
{
|
||||
"name": "Still Life Depth of Field",
|
||||
"prompt": "(f_stop 5.6), (focal_length 50.0) f/5.6, 50mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 5.6), (focal_length 50.0)"
|
||||
},
|
||||
{
|
||||
"name": "Creative or Abstract Depth of Field",
|
||||
"prompt": "(f_stop 2.0), (focal_length 50.0) f/2, 50mm focal length {prompt}",
|
||||
"negative_prompt": "(f_stop 2.0), (focal_length 50.0)"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 0.5m",
|
||||
"prompt": "(Subject 0.5m away in sharp focus) (Distance 0.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 9.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 1.0m",
|
||||
"prompt": "(Subject 1.0m away in sharp focus) (Distance 1.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 9.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 1.5m",
|
||||
"prompt": "(Subject 1.5m away in sharp focus) (Distance 1.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 8.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 2.0m",
|
||||
"prompt": "(Subject 2.0m away in sharp focus) (Distance 2.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 8.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 2.5m",
|
||||
"prompt": "(Subject 2.5m away in sharp focus) (Distance 2.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 7.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 3.0m",
|
||||
"prompt": "(Subject 3.0m away in sharp focus) (Distance 3.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 7.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 3.5m",
|
||||
"prompt": "(Subject 3.5m away in sharp focus) (Distance 3.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 6.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 4.0m",
|
||||
"prompt": "(Subject 4.0m away in sharp focus) (Distance 4.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 6.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 4.5m",
|
||||
"prompt": "(Subject 4.5m away in sharp focus) (Distance 4.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 5.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 5.0m",
|
||||
"prompt": "(Subject 5.0m away in sharp focus) (Distance 5.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 5.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 5.5m",
|
||||
"prompt": "(Subject 5.5m away in sharp focus) (Distance 5.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 4.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 6.0m",
|
||||
"prompt": "(Subject 6.0m away in sharp focus) (Distance 6.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 4.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 6.5m",
|
||||
"prompt": "(Subject 6.5m away in sharp focus) (Distance 6.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 3.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 7.0m",
|
||||
"prompt": "(Subject 7.0m away in sharp focus) (Distance 7.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 3.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 7.5m",
|
||||
"prompt": "(Subject 7.5m away in sharp focus) (Distance 7.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 2.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 8.0m",
|
||||
"prompt": "(Subject 8.0m away in sharp focus) (Distance 8.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 2.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 8.5m",
|
||||
"prompt": "(Subject 8.5m away in sharp focus) (Distance 8.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 1.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 9.0m",
|
||||
"prompt": "(Subject 9.0m away in sharp focus) (Distance 9.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 1.0m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 9.5m",
|
||||
"prompt": "(Subject 9.5m away in sharp focus) (Distance 9.5m away) {prompt}",
|
||||
"negative_prompt": "Subjects 0.5m away"
|
||||
},
|
||||
{
|
||||
"name": "Focus Distance 10.0m",
|
||||
"prompt": "(Subject 10.0m away in sharp focus) (Distance 10.0m away) {prompt}",
|
||||
"negative_prompt": "Subjects 0.0m away"
|
||||
},
|
||||
{
|
||||
"name": "10% Focus Area",
|
||||
"prompt": "(10% of the image in sharp focus) (10% of image) {prompt}",
|
||||
"negative_prompt": "90% focus area"
|
||||
},
|
||||
{
|
||||
"name": "20% Focus Area",
|
||||
"prompt": "(20% of the image in sharp focus) (20% of image) {prompt}",
|
||||
"negative_prompt": "80% focus area"
|
||||
},
|
||||
{
|
||||
"name": "30% Focus Area",
|
||||
"prompt": "(30% of the image in sharp focus) (30% of image) {prompt}",
|
||||
"negative_prompt": "70% focus area"
|
||||
},
|
||||
{
|
||||
"name": "40% Focus Area",
|
||||
"prompt": "(40% of the image in sharp focus) (40% of image) {prompt}",
|
||||
"negative_prompt": "60% focus area"
|
||||
},
|
||||
{
|
||||
"name": "50% Focus Area",
|
||||
"prompt": "(50% of the image in sharp focus) (50% of image) {prompt}",
|
||||
"negative_prompt": "50% focus area"
|
||||
},
|
||||
{
|
||||
"name": "60% Focus Area",
|
||||
"prompt": "(60% of the image in sharp focus) (60% of image) {prompt}",
|
||||
"negative_prompt": "40% focus area"
|
||||
},
|
||||
{
|
||||
"name": "70% Focus Area",
|
||||
"prompt": "(70% of the image in sharp focus) (70% of image) {prompt}",
|
||||
"negative_prompt": "30% focus area"
|
||||
},
|
||||
{
|
||||
"name": "80% Focus Area",
|
||||
"prompt": "(80% of the image in sharp focus) (80% of image) {prompt}",
|
||||
"negative_prompt": "20% focus area"
|
||||
},
|
||||
{
|
||||
"name": "90% Focus Area",
|
||||
"prompt": "(90% of the image in sharp focus) (90% of image) {prompt}",
|
||||
"negative_prompt": "10% focus area"
|
||||
},
|
||||
{
|
||||
"name": "100% Focus Area",
|
||||
"prompt": "(100% of the image in sharp focus) (100% of image) {prompt}",
|
||||
"negative_prompt": "0% focus area"
|
||||
},
|
||||
{
|
||||
"name": "Manual Focus",
|
||||
"prompt": "(Using manual focus) (manual focus technique) {prompt}",
|
||||
"negative_prompt": "Using other than manual focus"
|
||||
},
|
||||
{
|
||||
"name": "Autofocus",
|
||||
"prompt": "(Using autofocus) (autofocus technique) {prompt}",
|
||||
"negative_prompt": "Using other than autofocus"
|
||||
},
|
||||
{
|
||||
"name": "Focus Stacking",
|
||||
"prompt": "(Using focus stacking) (focus stacking technique) {prompt}",
|
||||
"negative_prompt": "Using other than focus stacking"
|
||||
},
|
||||
{
|
||||
"name": "Back-Button Focus",
|
||||
"prompt": "(Using back-button focus) (back-button focus technique) {prompt}",
|
||||
"negative_prompt": "Using other than back-button focus"
|
||||
},
|
||||
{
|
||||
"name": "Focus Bracketing",
|
||||
"prompt": "(Using focus bracketing) (focus bracketing technique) {prompt}",
|
||||
"negative_prompt": "Using other than focus bracketing"
|
||||
},
|
||||
{
|
||||
"name": "Selective Focus",
|
||||
"prompt": "(Selective Focus) {prompt} / (f_stop 2.8), (focal_length 50.0)",
|
||||
"negative_prompt": "(Selective Focus) / (f_stop 16), (focal_length 24)"
|
||||
},
|
||||
{
|
||||
"name": "Deep Focus",
|
||||
"prompt": "(Deep Focus) {prompt} / (f_stop 16.0), (focal_length 24.0)",
|
||||
"negative_prompt": "(Deep Focus) / (f_stop 1.8), (focal_length 85)"
|
||||
},
|
||||
{
|
||||
"name": "Soft Focus",
|
||||
"prompt": "(Soft Focus) {prompt} / (f_stop 1.8), (focal_length 85.0)",
|
||||
"negative_prompt": "(Soft Focus) / (f_stop 16), (focal_length 24)"
|
||||
},
|
||||
{
|
||||
"name": "Macro Focus",
|
||||
"prompt": "(Macro Focus) {prompt}",
|
||||
"negative_prompt": "(Macro Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Infinity Focus",
|
||||
"prompt": "(Infinity Focus) {prompt}",
|
||||
"negative_prompt": "(Infinity Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Zone Focus",
|
||||
"prompt": "(Zone Focus) {prompt}",
|
||||
"negative_prompt": "(Zone Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Edge-to-edge Focus",
|
||||
"prompt": "(Edge-to-edge Focus) {prompt}",
|
||||
"negative_prompt": "(Edge-to-edge Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Foreground Focus",
|
||||
"prompt": "(Foreground Focus) {prompt}",
|
||||
"negative_prompt": "(Foreground Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Background Focus",
|
||||
"prompt": "(Background Focus) {prompt}",
|
||||
"negative_prompt": "(Background Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Central Focus",
|
||||
"prompt": "(Central Focus) {prompt}",
|
||||
"negative_prompt": "(Central Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Corner Focus",
|
||||
"prompt": "(Corner Focus) {prompt}",
|
||||
"negative_prompt": "(Corner Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Top Focus",
|
||||
"prompt": "(Top Focus) {prompt}",
|
||||
"negative_prompt": "(Top Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Bottom Focus",
|
||||
"prompt": "(Bottom Focus) {prompt}",
|
||||
"negative_prompt": "(Bottom Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Right Focus",
|
||||
"prompt": "(Right Focus) {prompt}",
|
||||
"negative_prompt": "(Right Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Left Focus",
|
||||
"prompt": "(Left Focus) {prompt}",
|
||||
"negative_prompt": "(Left Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Rack Focus",
|
||||
"prompt": "(Rack Focus) {prompt}",
|
||||
"negative_prompt": "(Rack Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Pull Focus",
|
||||
"prompt": "(Pull Focus) {prompt}",
|
||||
"negative_prompt": "(Pull Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Rolling Focus",
|
||||
"prompt": "(Rolling Focus) {prompt}",
|
||||
"negative_prompt": "(Rolling Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Tilt-shift Focus",
|
||||
"prompt": "(Tilt-shift Focus) {prompt}",
|
||||
"negative_prompt": "(Tilt-shift Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Fly-by Focus",
|
||||
"prompt": "(Fly-by Focus) {prompt}",
|
||||
"negative_prompt": "(Fly-by Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Follow Focus",
|
||||
"prompt": "(Follow Focus) {prompt}",
|
||||
"negative_prompt": "(Follow Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Zoom Focus",
|
||||
"prompt": "(Zoom Focus) {prompt}",
|
||||
"negative_prompt": "(Zoom Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Dolly Focus",
|
||||
"prompt": "(Dolly Focus) {prompt}",
|
||||
"negative_prompt": "(Dolly Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Pan Focus",
|
||||
"prompt": "(Pan Focus) {prompt}",
|
||||
"negative_prompt": "(Pan Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Tilt Focus",
|
||||
"prompt": "(Tilt Focus) {prompt}",
|
||||
"negative_prompt": "(Tilt Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Whip Focus",
|
||||
"prompt": "(Whip Focus) {prompt}",
|
||||
"negative_prompt": "(Whip Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Slide Focus",
|
||||
"prompt": "(Slide Focus) {prompt}",
|
||||
"negative_prompt": "(Slide Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Crane Focus",
|
||||
"prompt": "(Crane Focus) {prompt}",
|
||||
"negative_prompt": "(Crane Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Swing Focus",
|
||||
"prompt": "(Swing Focus) {prompt}",
|
||||
"negative_prompt": "(Swing Focus)"
|
||||
},
|
||||
{
|
||||
"name": "Drone Focus",
|
||||
"prompt": "(Drone Focus) {prompt}",
|
||||
"negative_prompt": "(Drone Focus)"
|
||||
}
|
||||
]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "none byLighting",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Ambient",
|
||||
"prompt": "ambient {prompt}",
|
||||
"negative_prompt": "spotlight"
|
||||
},
|
||||
{
|
||||
"name": "Artificial",
|
||||
"prompt": "artificial {prompt}",
|
||||
"negative_prompt": "natural"
|
||||
},
|
||||
{
|
||||
"name": "Backlit",
|
||||
"prompt": "backlit {prompt}",
|
||||
"negative_prompt": "frontlit"
|
||||
},
|
||||
{
|
||||
"name": "Diffused",
|
||||
"prompt": "diffused {prompt}",
|
||||
"negative_prompt": "direct"
|
||||
},
|
||||
{
|
||||
"name": "Flash",
|
||||
"prompt": "flash {prompt}",
|
||||
"negative_prompt": "natural"
|
||||
},
|
||||
{
|
||||
"name": "Harsh",
|
||||
"prompt": "harsh {prompt}",
|
||||
"negative_prompt": "soft"
|
||||
},
|
||||
{
|
||||
"name": "Natural",
|
||||
"prompt": "natural {prompt}",
|
||||
"negative_prompt": "artificial"
|
||||
},
|
||||
{
|
||||
"name": "SideLit",
|
||||
"prompt": "sidelit {prompt}",
|
||||
"negative_prompt": "backlit"
|
||||
},
|
||||
{
|
||||
"name": "Soft",
|
||||
"prompt": "soft {prompt}",
|
||||
"negative_prompt": "harsh"
|
||||
},
|
||||
{
|
||||
"name": "Spotlight",
|
||||
"prompt": "spotlight {prompt}",
|
||||
"negative_prompt": "ambient"
|
||||
}
|
||||
]
|
||||
+7607
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "none byMood",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Aggressive",
|
||||
"prompt": "aggressive {prompt}",
|
||||
"negative_prompt": "calm"
|
||||
},
|
||||
{
|
||||
"name": "Calm",
|
||||
"prompt": "calm {prompt}",
|
||||
"negative_prompt": "energetic"
|
||||
},
|
||||
{
|
||||
"name": "Chaotic",
|
||||
"prompt": "chaotic {prompt}",
|
||||
"negative_prompt": "serene"
|
||||
},
|
||||
{
|
||||
"name": "Energetic",
|
||||
"prompt": "energetic {prompt}",
|
||||
"negative_prompt": "relaxed"
|
||||
},
|
||||
{
|
||||
"name": "Happy",
|
||||
"prompt": "happy {prompt}",
|
||||
"negative_prompt": "sad"
|
||||
},
|
||||
{
|
||||
"name": "Mysterious",
|
||||
"prompt": "mysterious {prompt}",
|
||||
"negative_prompt": "clear"
|
||||
},
|
||||
{
|
||||
"name": "Relaxed",
|
||||
"prompt": "relaxed {prompt}",
|
||||
"negative_prompt": "excited"
|
||||
},
|
||||
{
|
||||
"name": "Romantic",
|
||||
"prompt": "romantic {prompt}",
|
||||
"negative_prompt": "depressed"
|
||||
},
|
||||
{
|
||||
"name": "Sad",
|
||||
"prompt": "sad {prompt}",
|
||||
"negative_prompt": "happy"
|
||||
},
|
||||
{
|
||||
"name": "Serene",
|
||||
"prompt": "serene {prompt}",
|
||||
"negative_prompt": "chaotic"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,522 @@
|
||||
[
|
||||
{
|
||||
"name": "none byOriginal",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "sai-3d-model",
|
||||
"prompt": "professional 3d model {prompt} . octane render, highly detailed, volumetric, dramatic lighting",
|
||||
"negative_prompt": "ugly, deformed, noisy, low poly, blurry, painting"
|
||||
},
|
||||
{
|
||||
"name": "sai-analog film",
|
||||
"prompt": "analog film photo {prompt} . faded film, desaturated, 35mm photo, grainy, vignette, vintage, Kodachrome, Lomography, stained, highly detailed, found footage",
|
||||
"negative_prompt": "painting, drawing, illustration, glitch, deformed, mutated, cross-eyed, ugly, disfigured"
|
||||
},
|
||||
{
|
||||
"name": "sai-anime",
|
||||
"prompt": "anime artwork {prompt} . anime style, key visual, vibrant, studio anime, highly detailed",
|
||||
"negative_prompt": "photo, deformed, black and white, realism, disfigured, low contrast"
|
||||
},
|
||||
{
|
||||
"name": "sai-cinematic",
|
||||
"prompt": "cinematic film still {prompt} . shallow depth of field, vignette, highly detailed, high budget, bokeh, cinemascope, moody, epic, gorgeous, film grain, grainy",
|
||||
"negative_prompt": "anime, cartoon, graphic, text, painting, crayon, graphite, abstract, glitch, deformed, mutated, ugly, disfigured"
|
||||
},
|
||||
{
|
||||
"name": "sai-comic book",
|
||||
"prompt": "comic {prompt} . graphic illustration, comic art, graphic novel art, vibrant, highly detailed",
|
||||
"negative_prompt": "photograph, deformed, glitch, noisy, realistic, stock photo"
|
||||
},
|
||||
{
|
||||
"name": "sai-craft clay",
|
||||
"prompt": "play-doh style {prompt} . sculpture, clay art, centered composition, Claymation",
|
||||
"negative_prompt": "sloppy, messy, grainy, highly detailed, ultra textured, photo"
|
||||
},
|
||||
{
|
||||
"name": "sai-digital art",
|
||||
"prompt": "concept art {prompt} . digital artwork, illustrative, painterly, matte painting, highly detailed",
|
||||
"negative_prompt": "photo, photorealistic, realism, ugly"
|
||||
},
|
||||
{
|
||||
"name": "sai-enhance",
|
||||
"prompt": "breathtaking {prompt} . award-winning, professional, highly detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, distorted, grainy"
|
||||
},
|
||||
{
|
||||
"name": "sai-fantasy art",
|
||||
"prompt": "ethereal fantasy concept art of {prompt} . magnificent, celestial, ethereal, painterly, epic, majestic, magical, fantasy art, cover art, dreamy",
|
||||
"negative_prompt": "photographic, realistic, realism, 35mm film, dslr, cropped, frame, text, deformed, glitch, noise, noisy, off-center, deformed, cross-eyed, closed eyes, bad anatomy, ugly, disfigured, sloppy, duplicate, mutated, black and white"
|
||||
},
|
||||
{
|
||||
"name": "sai-isometric",
|
||||
"prompt": "isometric style {prompt} . vibrant, beautiful, crisp, detailed, ultra detailed, intricate",
|
||||
"negative_prompt": "deformed, mutated, ugly, disfigured, blur, blurry, noise, noisy, realistic, photographic"
|
||||
},
|
||||
{
|
||||
"name": "sai-line art",
|
||||
"prompt": "line art drawing {prompt} . professional, sleek, modern, minimalist, graphic, line art, vector graphics",
|
||||
"negative_prompt": "anime, photorealistic, 35mm film, deformed, glitch, blurry, noisy, off-center, deformed, cross-eyed, closed eyes, bad anatomy, ugly, disfigured, mutated, realism, realistic, impressionism, expressionism, oil, acrylic"
|
||||
},
|
||||
{
|
||||
"name": "sai-lowpoly",
|
||||
"prompt": "low-poly style {prompt} . low-poly game art, polygon mesh, jagged, blocky, wireframe edges, centered composition",
|
||||
"negative_prompt": "noisy, sloppy, messy, grainy, highly detailed, ultra textured, photo"
|
||||
},
|
||||
{
|
||||
"name": "sai-neonpunk",
|
||||
"prompt": "neonpunk style {prompt} . cyberpunk, vaporwave, neon, vibes, vibrant, stunningly beautiful, crisp, detailed, sleek, ultramodern, magenta highlights, dark purple shadows, high contrast, cinematic, ultra detailed, intricate, professional",
|
||||
"negative_prompt": "painting, drawing, illustration, glitch, deformed, mutated, cross-eyed, ugly, disfigured"
|
||||
},
|
||||
{
|
||||
"name": "sai-origami",
|
||||
"prompt": "origami style {prompt} . paper art, pleated paper, folded, origami art, pleats, cut and fold, centered composition",
|
||||
"negative_prompt": "noisy, sloppy, messy, grainy, highly detailed, ultra textured, photo"
|
||||
},
|
||||
{
|
||||
"name": "sai-photographic",
|
||||
"prompt": "cinematic photo {prompt} . 35mm photograph, film, bokeh, professional, 4k, highly detailed",
|
||||
"negative_prompt": "drawing, painting, crayon, sketch, graphite, impressionist, noisy, blurry, soft, deformed, ugly"
|
||||
},
|
||||
{
|
||||
"name": "sai-pixel art",
|
||||
"prompt": "pixel-art {prompt} . low-res, blocky, pixel art style, 8-bit graphics",
|
||||
"negative_prompt": "sloppy, messy, blurry, noisy, highly detailed, ultra textured, photo, realistic"
|
||||
},
|
||||
{
|
||||
"name": "sai-texture",
|
||||
"prompt": "texture {prompt} top down close-up",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry"
|
||||
},
|
||||
{
|
||||
"name": "ads-advertising",
|
||||
"prompt": "Advertising poster style {prompt} . Professional, modern, product-focused, commercial, eye-catching, highly detailed",
|
||||
"negative_prompt": "noisy, blurry, amateurish, sloppy, unattractive"
|
||||
},
|
||||
{
|
||||
"name": "ads-automotive",
|
||||
"prompt": "Automotive advertisement style {prompt} . Sleek, dynamic, professional, commercial, vehicle-focused, high-resolution, highly detailed",
|
||||
"negative_prompt": "noisy, blurry, unattractive, sloppy, unprofessional"
|
||||
},
|
||||
{
|
||||
"name": "ads-corporate",
|
||||
"prompt": "Corporate branding style {prompt} . Professional, clean, modern, sleek, minimalist, business-oriented, highly detailed",
|
||||
"negative_prompt": "noisy, blurry, grungy, sloppy, cluttered, disorganized"
|
||||
},
|
||||
{
|
||||
"name": "ads-fashion editorial",
|
||||
"prompt": "Fashion editorial style {prompt} . High fashion, trendy, stylish, editorial, magazine style, professional, highly detailed",
|
||||
"negative_prompt": "outdated, blurry, noisy, unattractive, sloppy"
|
||||
},
|
||||
{
|
||||
"name": "ads-food photography",
|
||||
"prompt": "Food photography style {prompt} . Appetizing, professional, culinary, high-resolution, commercial, highly detailed",
|
||||
"negative_prompt": "unappetizing, sloppy, unprofessional, noisy, blurry"
|
||||
},
|
||||
{
|
||||
"name": "ads-luxury",
|
||||
"prompt": "Luxury product style {prompt} . Elegant, sophisticated, high-end, luxurious, professional, highly detailed",
|
||||
"negative_prompt": "cheap, noisy, blurry, unattractive, amateurish"
|
||||
},
|
||||
{
|
||||
"name": "ads-real estate",
|
||||
"prompt": "Real estate photography style {prompt} . Professional, inviting, well-lit, high-resolution, property-focused, commercial, highly detailed",
|
||||
"negative_prompt": "dark, blurry, unappealing, noisy, unprofessional"
|
||||
},
|
||||
{
|
||||
"name": "ads-retail",
|
||||
"prompt": "Retail packaging style {prompt} . Vibrant, enticing, commercial, product-focused, eye-catching, professional, highly detailed",
|
||||
"negative_prompt": "noisy, blurry, amateurish, sloppy, unattractive"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-abstract",
|
||||
"prompt": "abstract style {prompt} . non-representational, colors and shapes, expression of feelings, imaginative, highly detailed",
|
||||
"negative_prompt": "realistic, photographic, figurative, concrete"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-abstract expressionism",
|
||||
"prompt": "abstract expressionist painting {prompt} . energetic brushwork, bold colors, abstract forms, expressive, emotional",
|
||||
"negative_prompt": "realistic, photorealistic, low contrast, plain, simple, monochrome"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-art deco",
|
||||
"prompt": "Art Deco style {prompt} . geometric shapes, bold colors, luxurious, elegant, decorative, symmetrical, ornate, detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, modernist, minimalist"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-art nouveau",
|
||||
"prompt": "Art Nouveau style {prompt} . elegant, decorative, curvilinear forms, nature-inspired, ornate, detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, modernist, minimalist"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-constructivist",
|
||||
"prompt": "constructivist style {prompt} . geometric shapes, bold colors, dynamic composition, propaganda art style",
|
||||
"negative_prompt": "realistic, photorealistic, low contrast, plain, simple, abstract expressionism"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-cubist",
|
||||
"prompt": "cubist artwork {prompt} . geometric shapes, abstract, innovative, revolutionary",
|
||||
"negative_prompt": "anime, photorealistic, 35mm film, deformed, glitch, low contrast, noisy"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-expressionist",
|
||||
"prompt": "expressionist {prompt} . raw, emotional, dynamic, distortion for emotional effect, vibrant, use of unusual colors, detailed",
|
||||
"negative_prompt": "realism, symmetry, quiet, calm, photo"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-graffiti",
|
||||
"prompt": "graffiti style {prompt} . street art, vibrant, urban, detailed, tag, mural",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-hyperrealism",
|
||||
"prompt": "hyperrealistic art {prompt} . extremely high-resolution details, photographic, realism pushed to extreme, fine texture, incredibly lifelike",
|
||||
"negative_prompt": "simplified, abstract, unrealistic, impressionistic, low resolution"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-impressionist",
|
||||
"prompt": "impressionist painting {prompt} . loose brushwork, vibrant color, light and shadow play, captures feeling over form",
|
||||
"negative_prompt": "anime, photorealistic, 35mm film, deformed, glitch, low contrast, noisy"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-pointillism",
|
||||
"prompt": "pointillism style {prompt} . composed entirely of small, distinct dots of color, vibrant, highly detailed",
|
||||
"negative_prompt": "line drawing, smooth shading, large color fields, simplistic"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-pop art",
|
||||
"prompt": "Pop Art style {prompt} . bright colors, bold outlines, popular culture themes, ironic or kitsch",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, minimalist"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-psychedelic",
|
||||
"prompt": "psychedelic style {prompt} . vibrant colors, swirling patterns, abstract forms, surreal, trippy",
|
||||
"negative_prompt": "monochrome, black and white, low contrast, realistic, photorealistic, plain, simple"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-renaissance",
|
||||
"prompt": "Renaissance style {prompt} . realistic, perspective, light and shadow, religious or mythological themes, highly detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, modernist, minimalist, abstract"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-steampunk",
|
||||
"prompt": "steampunk style {prompt} . antique, mechanical, brass and copper tones, gears, intricate, detailed",
|
||||
"negative_prompt": "deformed, glitch, noisy, low contrast, anime, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-surrealist",
|
||||
"prompt": "surrealist art {prompt} . dreamlike, mysterious, provocative, symbolic, intricate, detailed",
|
||||
"negative_prompt": "anime, photorealistic, realistic, deformed, glitch, noisy, low contrast"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-typography",
|
||||
"prompt": "typographic art {prompt} . stylized, intricate, detailed, artistic, text-based",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "artstyle-watercolor",
|
||||
"prompt": "watercolor painting {prompt} . vibrant, beautiful, painterly, detailed, textural, artistic",
|
||||
"negative_prompt": "anime, photorealistic, 35mm film, deformed, glitch, low contrast, noisy"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-biomechanical",
|
||||
"prompt": "biomechanical style {prompt} . blend of organic and mechanical elements, futuristic, cybernetic, detailed, intricate",
|
||||
"negative_prompt": "natural, rustic, primitive, organic, simplistic"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-biomechanical cyberpunk",
|
||||
"prompt": "biomechanical cyberpunk {prompt} . cybernetics, human-machine fusion, dystopian, organic meets artificial, dark, intricate, highly detailed",
|
||||
"negative_prompt": "natural, colorful, deformed, sketch, low contrast, watercolor"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-cybernetic",
|
||||
"prompt": "cybernetic style {prompt} . futuristic, technological, cybernetic enhancements, robotics, artificial intelligence themes",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, historical, medieval"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-cybernetic robot",
|
||||
"prompt": "cybernetic robot {prompt} . android, AI, machine, metal, wires, tech, futuristic, highly detailed",
|
||||
"negative_prompt": "organic, natural, human, sketch, watercolor, low contrast"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-cyberpunk cityscape",
|
||||
"prompt": "cyberpunk cityscape {prompt} . neon lights, dark alleys, skyscrapers, futuristic, vibrant colors, high contrast, highly detailed",
|
||||
"negative_prompt": "natural, rural, deformed, low contrast, black and white, sketch, watercolor"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-futuristic",
|
||||
"prompt": "futuristic style {prompt} . sleek, modern, ultramodern, high tech, detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, vintage, antique"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-retro cyberpunk",
|
||||
"prompt": "retro cyberpunk {prompt} . 80's inspired, synthwave, neon, vibrant, detailed, retro futurism",
|
||||
"negative_prompt": "modern, desaturated, black and white, realism, low contrast"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-retro futurism",
|
||||
"prompt": "retro-futuristic {prompt} . vintage sci-fi, 50s and 60s style, atomic age, vibrant, highly detailed",
|
||||
"negative_prompt": "contemporary, realistic, rustic, primitive"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-sci-fi",
|
||||
"prompt": "sci-fi style {prompt} . futuristic, technological, alien worlds, space themes, advanced civilizations",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, historical, medieval"
|
||||
},
|
||||
{
|
||||
"name": "futuristic-vaporwave",
|
||||
"prompt": "vaporwave style {prompt} . retro aesthetic, cyberpunk, vibrant, neon colors, vintage 80s and 90s style, highly detailed",
|
||||
"negative_prompt": "monochrome, muted colors, realism, rustic, minimalist, dark"
|
||||
},
|
||||
{
|
||||
"name": "game-bubble bobble",
|
||||
"prompt": "Bubble Bobble style {prompt} . 8-bit, cute, pixelated, fantasy, vibrant, reminiscent of Bubble Bobble game",
|
||||
"negative_prompt": "realistic, modern, photorealistic, violent, horror"
|
||||
},
|
||||
{
|
||||
"name": "game-cyberpunk game",
|
||||
"prompt": "cyberpunk game style {prompt} . neon, dystopian, futuristic, digital, vibrant, detailed, high contrast, reminiscent of cyberpunk genre video games",
|
||||
"negative_prompt": "historical, natural, rustic, low detailed"
|
||||
},
|
||||
{
|
||||
"name": "game-fighting game",
|
||||
"prompt": "fighting game style {prompt} . dynamic, vibrant, action-packed, detailed character design, reminiscent of fighting video games",
|
||||
"negative_prompt": "peaceful, calm, minimalist, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "game-gta",
|
||||
"prompt": "GTA-style artwork {prompt} . satirical, exaggerated, pop art style, vibrant colors, iconic characters, action-packed",
|
||||
"negative_prompt": "realistic, black and white, low contrast, impressionist, cubist, noisy, blurry, deformed"
|
||||
},
|
||||
{
|
||||
"name": "game-mario",
|
||||
"prompt": "Super Mario style {prompt} . vibrant, cute, cartoony, fantasy, playful, reminiscent of Super Mario series",
|
||||
"negative_prompt": "realistic, modern, horror, dystopian, violent"
|
||||
},
|
||||
{
|
||||
"name": "game-minecraft",
|
||||
"prompt": "Minecraft style {prompt} . blocky, pixelated, vibrant colors, recognizable characters and objects, game assets",
|
||||
"negative_prompt": "smooth, realistic, detailed, photorealistic, noise, blurry, deformed"
|
||||
},
|
||||
{
|
||||
"name": "game-pokemon",
|
||||
"prompt": "Pokémon style {prompt} . vibrant, cute, anime, fantasy, reminiscent of Pokémon series",
|
||||
"negative_prompt": "realistic, modern, horror, dystopian, violent"
|
||||
},
|
||||
{
|
||||
"name": "game-retro arcade",
|
||||
"prompt": "retro arcade style {prompt} . 8-bit, pixelated, vibrant, classic video game, old school gaming, reminiscent of 80s and 90s arcade games",
|
||||
"negative_prompt": "modern, ultra-high resolution, photorealistic, 3D"
|
||||
},
|
||||
{
|
||||
"name": "game-retro game",
|
||||
"prompt": "retro game art {prompt} . 16-bit, vibrant colors, pixelated, nostalgic, charming, fun",
|
||||
"negative_prompt": "realistic, photorealistic, 35mm film, deformed, glitch, low contrast, noisy"
|
||||
},
|
||||
{
|
||||
"name": "game-rpg fantasy game",
|
||||
"prompt": "role-playing game (RPG) style fantasy {prompt} . detailed, vibrant, immersive, reminiscent of high fantasy RPG games",
|
||||
"negative_prompt": "sci-fi, modern, urban, futuristic, low detailed"
|
||||
},
|
||||
{
|
||||
"name": "game-strategy game",
|
||||
"prompt": "strategy game style {prompt} . overhead view, detailed map, units, reminiscent of real-time strategy video games",
|
||||
"negative_prompt": "first-person view, modern, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "game-streetfighter",
|
||||
"prompt": "Street Fighter style {prompt} . vibrant, dynamic, arcade, 2D fighting game, highly detailed, reminiscent of Street Fighter series",
|
||||
"negative_prompt": "3D, realistic, modern, photorealistic, turn-based strategy"
|
||||
},
|
||||
{
|
||||
"name": "game-zelda",
|
||||
"prompt": "Legend of Zelda style {prompt} . vibrant, fantasy, detailed, epic, heroic, reminiscent of The Legend of Zelda series",
|
||||
"negative_prompt": "sci-fi, modern, realistic, horror"
|
||||
},
|
||||
{
|
||||
"name": "misc-architectural",
|
||||
"prompt": "architectural style {prompt} . clean lines, geometric shapes, minimalist, modern, architectural drawing, highly detailed",
|
||||
"negative_prompt": "curved lines, ornate, baroque, abstract, grunge"
|
||||
},
|
||||
{
|
||||
"name": "misc-disco",
|
||||
"prompt": "disco-themed {prompt} . vibrant, groovy, retro 70s style, shiny disco balls, neon lights, dance floor, highly detailed",
|
||||
"negative_prompt": "minimalist, rustic, monochrome, contemporary, simplistic"
|
||||
},
|
||||
{
|
||||
"name": "misc-dreamscape",
|
||||
"prompt": "dreamscape {prompt} . surreal, ethereal, dreamy, mysterious, fantasy, highly detailed",
|
||||
"negative_prompt": "realistic, concrete, ordinary, mundane"
|
||||
},
|
||||
{
|
||||
"name": "misc-dystopian",
|
||||
"prompt": "dystopian style {prompt} . bleak, post-apocalyptic, somber, dramatic, highly detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, cheerful, optimistic, vibrant, colorful"
|
||||
},
|
||||
{
|
||||
"name": "misc-fairy tale",
|
||||
"prompt": "fairy tale {prompt} . magical, fantastical, enchanting, storybook style, highly detailed",
|
||||
"negative_prompt": "realistic, modern, ordinary, mundane"
|
||||
},
|
||||
{
|
||||
"name": "misc-gothic",
|
||||
"prompt": "gothic style {prompt} . dark, mysterious, haunting, dramatic, ornate, detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, cheerful, optimistic"
|
||||
},
|
||||
{
|
||||
"name": "misc-grunge",
|
||||
"prompt": "grunge style {prompt} . textured, distressed, vintage, edgy, punk rock vibe, dirty, noisy",
|
||||
"negative_prompt": "smooth, clean, minimalist, sleek, modern, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "misc-horror",
|
||||
"prompt": "horror-themed {prompt} . eerie, unsettling, dark, spooky, suspenseful, grim, highly detailed",
|
||||
"negative_prompt": "cheerful, bright, vibrant, light-hearted, cute"
|
||||
},
|
||||
{
|
||||
"name": "misc-kawaii",
|
||||
"prompt": "kawaii style {prompt} . cute, adorable, brightly colored, cheerful, anime influence, highly detailed",
|
||||
"negative_prompt": "dark, scary, realistic, monochrome, abstract"
|
||||
},
|
||||
{
|
||||
"name": "misc-lovecraftian",
|
||||
"prompt": "lovecraftian horror {prompt} . eldritch, cosmic horror, unknown, mysterious, surreal, highly detailed",
|
||||
"negative_prompt": "light-hearted, mundane, familiar, simplistic, realistic"
|
||||
},
|
||||
{
|
||||
"name": "misc-macabre",
|
||||
"prompt": "macabre style {prompt} . dark, gothic, grim, haunting, highly detailed",
|
||||
"negative_prompt": "bright, cheerful, light-hearted, cartoonish, cute"
|
||||
},
|
||||
{
|
||||
"name": "misc-manga",
|
||||
"prompt": "manga style {prompt} . vibrant, high-energy, detailed, iconic, Japanese comic style",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, Western comic style"
|
||||
},
|
||||
{
|
||||
"name": "misc-metropolis",
|
||||
"prompt": "metropolis-themed {prompt} . urban, cityscape, skyscrapers, modern, futuristic, highly detailed",
|
||||
"negative_prompt": "rural, natural, rustic, historical, simple"
|
||||
},
|
||||
{
|
||||
"name": "misc-minimalist",
|
||||
"prompt": "minimalist style {prompt} . simple, clean, uncluttered, modern, elegant",
|
||||
"negative_prompt": "ornate, complicated, highly detailed, cluttered, disordered, messy, noisy"
|
||||
},
|
||||
{
|
||||
"name": "misc-monochrome",
|
||||
"prompt": "monochrome {prompt} . black and white, contrast, tone, texture, detailed",
|
||||
"negative_prompt": "colorful, vibrant, noisy, blurry, deformed"
|
||||
},
|
||||
{
|
||||
"name": "misc-nautical",
|
||||
"prompt": "nautical-themed {prompt} . sea, ocean, ships, maritime, beach, marine life, highly detailed",
|
||||
"negative_prompt": "landlocked, desert, mountains, urban, rustic"
|
||||
},
|
||||
{
|
||||
"name": "misc-space",
|
||||
"prompt": "space-themed {prompt} . cosmic, celestial, stars, galaxies, nebulas, planets, science fiction, highly detailed",
|
||||
"negative_prompt": "earthly, mundane, ground-based, realism"
|
||||
},
|
||||
{
|
||||
"name": "misc-stained glass",
|
||||
"prompt": "stained glass style {prompt} . vibrant, beautiful, translucent, intricate, detailed",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "misc-techwear fashion",
|
||||
"prompt": "techwear fashion {prompt} . futuristic, cyberpunk, urban, tactical, sleek, dark, highly detailed",
|
||||
"negative_prompt": "vintage, rural, colorful, low contrast, realism, sketch, watercolor"
|
||||
},
|
||||
{
|
||||
"name": "misc-tribal",
|
||||
"prompt": "tribal style {prompt} . indigenous, ethnic, traditional patterns, bold, natural colors, highly detailed",
|
||||
"negative_prompt": "modern, futuristic, minimalist, pastel"
|
||||
},
|
||||
{
|
||||
"name": "misc-zentangle",
|
||||
"prompt": "zentangle {prompt} . intricate, abstract, monochrome, patterns, meditative, highly detailed",
|
||||
"negative_prompt": "colorful, representative, simplistic, large fields of color"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-collage",
|
||||
"prompt": "collage style {prompt} . mixed media, layered, textural, detailed, artistic",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-flat papercut",
|
||||
"prompt": "flat papercut style {prompt} . silhouette, clean cuts, paper, sharp edges, minimalist, color block",
|
||||
"negative_prompt": "3D, high detail, noise, grainy, blurry, painting, drawing, photo, disfigured"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-kirigami",
|
||||
"prompt": "kirigami representation of {prompt} . 3D, paper folding, paper cutting, Japanese, intricate, symmetrical, precision, clean lines",
|
||||
"negative_prompt": "painting, drawing, 2D, noisy, blurry, deformed"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-paper mache",
|
||||
"prompt": "paper mache representation of {prompt} . 3D, sculptural, textured, handmade, vibrant, fun",
|
||||
"negative_prompt": "2D, flat, photo, sketch, digital art, deformed, noisy, blurry"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-paper quilling",
|
||||
"prompt": "paper quilling art of {prompt} . intricate, delicate, curling, rolling, shaping, coiling, loops, 3D, dimensional, ornamental",
|
||||
"negative_prompt": "photo, painting, drawing, 2D, flat, deformed, noisy, blurry"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-papercut collage",
|
||||
"prompt": "papercut collage of {prompt} . mixed media, textured paper, overlapping, asymmetrical, abstract, vibrant",
|
||||
"negative_prompt": "photo, 3D, realistic, drawing, painting, high detail, disfigured"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-papercut shadow box",
|
||||
"prompt": "3D papercut shadow box of {prompt} . layered, dimensional, depth, silhouette, shadow, papercut, handmade, high contrast",
|
||||
"negative_prompt": "painting, drawing, photo, 2D, flat, high detail, blurry, noisy, disfigured"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-stacked papercut",
|
||||
"prompt": "stacked papercut art of {prompt} . 3D, layered, dimensional, depth, precision cut, stacked layers, papercut, high contrast",
|
||||
"negative_prompt": "2D, flat, noisy, blurry, painting, drawing, photo, deformed"
|
||||
},
|
||||
{
|
||||
"name": "papercraft-thick layered papercut",
|
||||
"prompt": "thick layered papercut art of {prompt} . deep 3D, volumetric, dimensional, depth, thick paper, high stack, heavy texture, tangible layers",
|
||||
"negative_prompt": "2D, flat, thin paper, low stack, smooth texture, painting, drawing, photo, deformed"
|
||||
},
|
||||
{
|
||||
"name": "photo-alien",
|
||||
"prompt": "alien-themed {prompt} . extraterrestrial, cosmic, otherworldly, mysterious, sci-fi, highly detailed",
|
||||
"negative_prompt": "earthly, mundane, common, realistic, simple"
|
||||
},
|
||||
{
|
||||
"name": "photo-film noir",
|
||||
"prompt": "film noir style {prompt} . monochrome, high contrast, dramatic shadows, 1940s style, mysterious, cinematic",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, vibrant, colorful"
|
||||
},
|
||||
{
|
||||
"name": "photo-hdr",
|
||||
"prompt": "HDR photo of {prompt} . High dynamic range, vivid, rich details, clear shadows and highlights, realistic, intense, enhanced contrast, highly detailed",
|
||||
"negative_prompt": "flat, low contrast, oversaturated, underexposed, overexposed, blurred, noisy"
|
||||
},
|
||||
{
|
||||
"name": "photo-long exposure",
|
||||
"prompt": "long exposure photo of {prompt} . Blurred motion, streaks of light, surreal, dreamy, ghosting effect, highly detailed",
|
||||
"negative_prompt": "static, noisy, deformed, shaky, abrupt, flat, low contrast"
|
||||
},
|
||||
{
|
||||
"name": "photo-neon noir",
|
||||
"prompt": "neon noir {prompt} . cyberpunk, dark, rainy streets, neon signs, high contrast, low light, vibrant, highly detailed",
|
||||
"negative_prompt": "bright, sunny, daytime, low contrast, black and white, sketch, watercolor"
|
||||
},
|
||||
{
|
||||
"name": "photo-silhouette",
|
||||
"prompt": "silhouette style {prompt} . high contrast, minimalistic, black and white, stark, dramatic",
|
||||
"negative_prompt": "ugly, deformed, noisy, blurry, low contrast, color, realism, photorealistic"
|
||||
},
|
||||
{
|
||||
"name": "photo-tilt-shift",
|
||||
"prompt": "tilt-shift photo of {prompt} . Selective focus, miniature effect, blurred background, highly detailed, vibrant, perspective control",
|
||||
"negative_prompt": "blurry, noisy, deformed, flat, low contrast, unrealistic, oversaturated, underexposed"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "none bySubject",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Animal",
|
||||
"prompt": "animal {prompt}",
|
||||
"negative_prompt": "human"
|
||||
},
|
||||
{
|
||||
"name": "Art",
|
||||
"prompt": "art {prompt}",
|
||||
"negative_prompt": "abstract"
|
||||
},
|
||||
{
|
||||
"name": "Building",
|
||||
"prompt": "building {prompt}",
|
||||
"negative_prompt": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Child",
|
||||
"prompt": "child {prompt}",
|
||||
"negative_prompt": "adult"
|
||||
},
|
||||
{
|
||||
"name": "Female",
|
||||
"prompt": "female {prompt}",
|
||||
"negative_prompt": "male"
|
||||
},
|
||||
{
|
||||
"name": "Food",
|
||||
"prompt": "food {prompt}",
|
||||
"negative_prompt": "mould"
|
||||
},
|
||||
{
|
||||
"name": "Male",
|
||||
"prompt": "male {prompt}",
|
||||
"negative_prompt": "female"
|
||||
},
|
||||
{
|
||||
"name": "Nature",
|
||||
"prompt": "nature {prompt}",
|
||||
"negative_prompt": "urban"
|
||||
},
|
||||
{
|
||||
"name": "Technology",
|
||||
"prompt": "technology {prompt}",
|
||||
"negative_prompt": "organic"
|
||||
},
|
||||
{
|
||||
"name": "Vehicle",
|
||||
"prompt": "vehicle {prompt}",
|
||||
"negative_prompt": "structure"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "none byThemes",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Abstract",
|
||||
"prompt": "abstract {prompt}",
|
||||
"negative_prompt": "realistic"
|
||||
},
|
||||
{
|
||||
"name": "Aerial",
|
||||
"prompt": "aerial {prompt}",
|
||||
"negative_prompt": "ground"
|
||||
},
|
||||
{
|
||||
"name": "Fashion",
|
||||
"prompt": "fashion {prompt}",
|
||||
"negative_prompt": "casual"
|
||||
},
|
||||
{
|
||||
"name": "Landscape",
|
||||
"prompt": "landscape {prompt}",
|
||||
"negative_prompt": "portrait"
|
||||
},
|
||||
{
|
||||
"name": "Macro",
|
||||
"prompt": "macro {prompt}",
|
||||
"negative_prompt": "micro"
|
||||
},
|
||||
{
|
||||
"name": "Portrait",
|
||||
"prompt": "portrait {prompt}",
|
||||
"negative_prompt": "landscape"
|
||||
},
|
||||
{
|
||||
"name": "Sports",
|
||||
"prompt": "sports {prompt}",
|
||||
"negative_prompt": "stilllife"
|
||||
},
|
||||
{
|
||||
"name": "Street",
|
||||
"prompt": "street {prompt}",
|
||||
"negative_prompt": "studio"
|
||||
},
|
||||
{
|
||||
"name": "Wedding",
|
||||
"prompt": "wedding {prompt}",
|
||||
"negative_prompt": "event"
|
||||
},
|
||||
{
|
||||
"name": "Wildlife",
|
||||
"prompt": "wildlife {prompt}",
|
||||
"negative_prompt": "urban"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "none byTimeofDay",
|
||||
"prompt": "{prompt}",
|
||||
"negative_prompt": ""
|
||||
},
|
||||
{
|
||||
"name": "Afternoon",
|
||||
"prompt": "afternoon {prompt}",
|
||||
"negative_prompt": "morning"
|
||||
},
|
||||
{
|
||||
"name": "BlueHour",
|
||||
"prompt": "bluehour {prompt}",
|
||||
"negative_prompt": "night"
|
||||
},
|
||||
{
|
||||
"name": "Evening",
|
||||
"prompt": "evening {prompt}",
|
||||
"negative_prompt": "morning"
|
||||
},
|
||||
{
|
||||
"name": "GoldenHour",
|
||||
"prompt": "goldenhour {prompt}",
|
||||
"negative_prompt": "night"
|
||||
},
|
||||
{
|
||||
"name": "Midday",
|
||||
"prompt": "midday {prompt}",
|
||||
"negative_prompt": "morning"
|
||||
},
|
||||
{
|
||||
"name": "Morning",
|
||||
"prompt": "morning {prompt}",
|
||||
"negative_prompt": "night"
|
||||
},
|
||||
{
|
||||
"name": "Night",
|
||||
"prompt": "night {prompt}",
|
||||
"negative_prompt": "day"
|
||||
},
|
||||
{
|
||||
"name": "Sunrise",
|
||||
"prompt": "sunrise {prompt}",
|
||||
"negative_prompt": "sunset"
|
||||
},
|
||||
{
|
||||
"name": "Sunset",
|
||||
"prompt": "sunset {prompt}",
|
||||
"negative_prompt": "morning"
|
||||
},
|
||||
{
|
||||
"name": "Twilight",
|
||||
"prompt": "twilight {prompt}",
|
||||
"negative_prompt": "day"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user