From 87f94a67eb338e049315f2c5b8dce054963bb4f7 Mon Sep 17 00:00:00 2001 From: FaberVS <54268603+FaberVS@users.noreply.github.com> Date: Tue, 29 Apr 2025 15:48:55 +0300 Subject: [PATCH] Add files via upload --- ModelParamsNode.py | 779 +++- README.md | 95 + Styles/Pixaroma.yaml | 2631 ++++++++++++++ Styles/artist.yaml | 7353 ++++++++++++++++++++++++++++++++++++++ Styles/basic.json | 332 ++ Styles/camera.yaml | 539 +++ Styles/mood.yaml | 163 + Styles/original.yaml | 554 +++ __init__.py | 37 +- js/ModelParamsNode.js | 121 + js/ModelParamsNodeExt.js | 237 ++ js/MultiModelSwitch.js | 127 + js/active_model.js | 738 ++++ 13 files changed, 13592 insertions(+), 114 deletions(-) create mode 100644 README.md create mode 100644 Styles/Pixaroma.yaml create mode 100644 Styles/artist.yaml create mode 100644 Styles/basic.json create mode 100644 Styles/camera.yaml create mode 100644 Styles/mood.yaml create mode 100644 Styles/original.yaml create mode 100644 js/ModelParamsNode.js create mode 100644 js/ModelParamsNodeExt.js create mode 100644 js/MultiModelSwitch.js create mode 100644 js/active_model.js diff --git a/ModelParamsNode.py b/ModelParamsNode.py index 58a135c..a4b5b00 100644 --- a/ModelParamsNode.py +++ b/ModelParamsNode.py @@ -1,107 +1,672 @@ -import comfy.sd -import comfy.samplers # For accessing lists of SAMPLERS and SCHEDULERS -import folder_paths -import json -import inspect # For type verification - -# Define a custom type for "pipe" for better readability -PIPE_TYPE_NAME = "PARAMS_PIPE" - -# --- Node 1: ModelParamsPipeNode --- -class ModelParamsPipeNode: - @classmethod - def INPUT_TYPES(cls): - samplers = comfy.samplers.KSampler.SAMPLERS - schedulers = comfy.samplers.KSampler.SCHEDULERS - return { - "required": { - "ckpt_name": (folder_paths.get_filename_list("checkpoints"),), - "steps": ("INT", {"default": 20, "min": 1, "max": 10000}), - "cfg": ("FLOAT", {"default": 7.0, "min": 0.0, "max": 100.0, "step": 0.1}), - "sampler_name": (samplers,), - "scheduler": (schedulers,), - "positive_tag": ("STRING", {"multiline": True, "default": ""}), - "negative_tag": ("STRING", {"multiline": True, "default": ""}), - "clip_skip": ("INT", {"default": -2, "min": -12, "max": 0, "step": 1}), - }, - "optional": { - "vae_override": ("VAE",), - } - } - - RETURN_TYPES = ("MODEL", "CLIP", "VAE", - "INT", "FLOAT", "STRING", "STRING", "STRING", "STRING", - PIPE_TYPE_NAME) - RETURN_NAMES = ("MODEL", "CLIP", "VAE", - "steps", "cfg", "sampler_name", "scheduler", - "positive_tag", "negative_tag", - "params_pipe") - FUNCTION = "process_to_pipe" - CATEGORY = "MultiModel" - - def process_to_pipe(self, ckpt_name, steps, cfg, sampler_name, scheduler, - positive_tag, negative_tag, clip_skip, vae_override=None): - ckpt_path = folder_paths.get_full_path("checkpoints", ckpt_name) - out = comfy.sd.load_checkpoint_guess_config(ckpt_path, output_vae=True, output_clip=True, embedding_directory=folder_paths.get_folder_paths("embeddings")) - model = out[0] - clip = out[1] - vae_from_checkpoint = out[2] - clip_skipped = clip.clone() - clip_skipped.clip_layer(clip_skip) - final_vae = vae_override if vae_override is not None else vae_from_checkpoint - combined_params = { - "ckpt_name": ckpt_name, "steps": steps, "cfg": cfg, - "sampler_name": str(sampler_name), "scheduler": str(scheduler), - "positive_tag": positive_tag.strip() if isinstance(positive_tag, str) else positive_tag, - "negative_tag": negative_tag.strip() if isinstance(negative_tag, str) else negative_tag, - "clip_skip": clip_skip - } - pipe_data = (model, clip_skipped, final_vae, combined_params) - return (model, clip_skipped, final_vae, steps, cfg, str(sampler_name), str(scheduler), - positive_tag, negative_tag, pipe_data) - -# --- Node 2: ParamsPipeUnpack --- -class ParamsPipeUnpack: - @classmethod - def INPUT_TYPES(cls): - return { "required": { "params_pipe": (PIPE_TYPE_NAME,), } } - - RETURN_TYPES = ("MODEL", "CLIP", "VAE", "INT", "FLOAT", - comfy.samplers.KSampler.SAMPLERS, comfy.samplers.KSampler.SCHEDULERS, - "STRING", "STRING", PIPE_TYPE_NAME) - RETURN_NAMES = ("MODEL", "CLIP", "VAE", "steps", "cfg", - "sampler_name", "scheduler", - "positive_tag", "negative_tag", "params_pipe") - FUNCTION = "unpack_pipe" - CATEGORY = "MultiModel" - - def unpack_pipe(self, params_pipe): - if not isinstance(params_pipe, tuple) or len(params_pipe) != 4: - raise ValueError(f"Unpack: Expected PARAMS_PIPE tuple of length 4, but got: {type(params_pipe)}") - model, clip, vae, params_dict = params_pipe - if not isinstance(params_dict, dict): - raise ValueError(f"Unpack: Expected dict as the 4th element in PARAMS_PIPE, but got: {type(params_dict)}") - steps = params_dict.get("steps") - cfg = params_dict.get("cfg") - sampler_name = params_dict.get("sampler_name") - scheduler = params_dict.get("scheduler") - positive_tag = params_dict.get("positive_tag") - negative_tag = params_dict.get("negative_tag") - return (model, clip, vae, steps, cfg, sampler_name, scheduler, - positive_tag, negative_tag, params_pipe) - - -# --- Registration for only the first two nodes --- -NODE_CLASS_MAPPINGS = { - "ModelParamsPipeNode": ModelParamsPipeNode, - "ParamsPipeUnpack": ParamsPipeUnpack -} - -# --- Display names for only the first two nodes --- -NODE_DISPLAY_NAME_MAPPINGS = { - "ModelParamsPipeNode": "Model Parameters Pipe Hub", - "ParamsPipeUnpack": "Unpack Parameters Pipe" -} - -# Loading message -print("✅ Loaded custom nodes (Reverted): ModelParamsPipeNode, ParamsPipeUnpack ▪B ▪B ▪С") +import comfy.sd +import comfy.samplers # For accessing lists of SAMPLERS and SCHEDULERS +import comfy.sample +import folder_paths +import json +import inspect # For type verification +import torch +import comfy.utils # Потрібен для PROGRESS_BAR_ENABLED +# import comfy.latent_preview as latent_preview # Видалено +import comfy.model_management # Залишаємо, може бути потрібен для інших нод? +import os # Додано для роботи з шляхами +from server import PromptServer # Додано +from aiohttp import web # Додано + +import git +from typing import Any, Dict +import yaml + +# Проксі для любого типу +class AlwaysEqualProxy(str): + def __eq__(self, _): + return True + def __ne__(self, _): + return False + +# Ревізія ComfyUI для lazy_options +comfy_ui_revision = None + +def get_comfyui_revision() -> Any: + try: + repo = git.Repo(os.path.dirname(folder_paths.__file__)) + return len(list(repo.iter_commits('HEAD'))) + except: + return "Unknown" + +def compare_revision(num: int) -> bool: + global comfy_ui_revision + if comfy_ui_revision is None: + comfy_ui_revision = get_comfyui_revision() + return comfy_ui_revision == "Unknown" or int(comfy_ui_revision) >= num + +WEB_DIRECTORY = "js" # Додано для JS файлу + +MAX_FLOW_NUM = 10 +lazy_options = {"lazy": True} + +any_type = AlwaysEqualProxy("*") +# Define a custom type for "pipe" for better readability +PIPE_TYPE_NAME = "PARAMS_PIPE" +# IMG2TXT_TYPE_NAME = "IMG2TXT_STRING" # Видалено + +# --- Helper Functions for Styles --- +def get_styles_dir(): + # Визначаємо шлях до папки Styles відносно поточного файлу + return os.path.join(os.path.dirname(__file__), "Styles") + +def get_style_files(): + styles_dir = get_styles_dir() + if not os.path.isdir(styles_dir): + return ["None"] + files = [f for f in os.listdir(styles_dir) if (f.endswith('.json') or f.endswith('.yaml') or f.endswith('.yml')) and os.path.isfile(os.path.join(styles_dir, f))] + return ["None"] + sorted(files) + +def get_style_names(style_filename): + # Прибираємо перевірку на "None" тут, бо API endpoint не повинен викликатися для "None" + # Однак, якщо він все ж викликається, повернемо порожній список. + if style_filename is None or style_filename == "None": + return [] + + styles_dir = get_styles_dir() + filepath = os.path.join(styles_dir, style_filename) + + names = [] # Ініціалізуємо порожнім списком, без "None" + try: + if os.path.isfile(filepath): + if filepath.endswith('.yaml') or filepath.endswith('.yml'): + with open(filepath, 'r', encoding='utf-8') as f: + data = yaml.safe_load(f) + else: + with open(filepath, 'r', encoding='utf-8') as f: + data = json.load(f) + if isinstance(data, list): + # Додаємо імена, пропускаючи порожні або None + names.extend([item.get("name") for item in data if isinstance(item, dict) and item.get("name")]) + except Exception as e: + print(f"Error loading style names from {filepath}: {e}") + return [] # Повертаємо порожній список при помилці + + # Видаляємо дублікати (якщо є) і сортуємо. НЕ додаємо "None". + unique_names = sorted(list(set(n for n in names if n))) # Додаткова фільтрація None/empty + return unique_names + +# Оновлена функція common_ksampler без latent_preview +def common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent, denoise=1.0, disable_noise=False, start_step=None, last_step=None, force_full_denoise=False): + latent_image = latent["samples"] + latent_image = comfy.sample.fix_empty_latent_channels(model, latent_image) + + if disable_noise: + noise = torch.zeros(latent_image.size(), dtype=latent_image.dtype, layout=latent_image.layout, device="cpu") + else: + batch_inds = latent["batch_index"] if "batch_index" in latent else None + noise = comfy.sample.prepare_noise(latent_image, seed, batch_inds) + + noise_mask = None + if "noise_mask" in latent: + noise_mask = latent["noise_mask"] + + # callback = latent_preview.prepare_callback(model, steps) # Видалено рядок з колбеком + callback = None # Встановлюємо колбек в None + disable_pbar = not comfy.utils.PROGRESS_BAR_ENABLED + samples = comfy.sample.sample(model, noise, steps, cfg, sampler_name, scheduler, positive, negative, latent_image, + denoise=denoise, disable_noise=disable_noise, start_step=start_step, last_step=last_step, + force_full_denoise=force_full_denoise, noise_mask=noise_mask, callback=callback, disable_pbar=disable_pbar, seed=seed) + out = latent.copy() + out["samples"] = samples + return (out, ) + +# --- Node 1: ModelParamsPipeNode --- +class ModelParamsPipeNode: + @classmethod + def INPUT_TYPES(cls): + samplers = comfy.samplers.KSampler.SAMPLERS + schedulers = comfy.samplers.KSampler.SCHEDULERS + return { + "required": { + # Переносимо теги на початок + "positive_tag": ("STRING", {"multiline": True, "default": ""}), + "negative_tag": ("STRING", {"multiline": True, "default": ""}), + # Решта полів + "ckpt_name": (folder_paths.get_filename_list("checkpoints"),), + "steps": ("INT", {"default": 20, "min": 1, "max": 10000}), + "cfg": ("FLOAT", {"default": 7.0, "min": 0.0, "max": 100.0, "step": 0.1}), + "sampler_name": (samplers,), + "scheduler": (schedulers,), + "clip_skip": ("INT", {"default": -2, "min": -12, "max": 0, "step": 1}), + }, + "optional": { + "vae_override": ("VAE",), + } + } + + RETURN_TYPES = ("MODEL", "CLIP", "VAE", + "INT", "FLOAT", comfy.samplers.KSampler.SAMPLERS, comfy.samplers.KSampler.SCHEDULERS, + "STRING", "STRING", + PIPE_TYPE_NAME) + RETURN_NAMES = ("MODEL", "CLIP", "VAE", + "steps", "cfg", "sampler_name", "scheduler", + "positive_tag", "negative_tag", + "params_pipe") + FUNCTION = "process_to_pipe" + CATEGORY = "MultiModel" + + def process_to_pipe(self, ckpt_name, steps, cfg, sampler_name, scheduler, + positive_tag, negative_tag, clip_skip, vae_override=None): + ckpt_path = folder_paths.get_full_path("checkpoints", ckpt_name) + out = comfy.sd.load_checkpoint_guess_config(ckpt_path, output_vae=True, output_clip=True, embedding_directory=folder_paths.get_folder_paths("embeddings")) + model = out[0] + clip = out[1] + vae_from_checkpoint = out[2] + clip_skipped = clip.clone() + clip_skipped.clip_layer(clip_skip) + final_vae = vae_override if vae_override is not None else vae_from_checkpoint + + # Safely handle positive_tag and negative_tag even if they're None + safe_positive_tag = "" if positive_tag is None else positive_tag.strip() + safe_negative_tag = "" if negative_tag is None else negative_tag.strip() + + # Store the original sampler_name and scheduler objects + combined_params = { + "ckpt_name": ckpt_name, + "steps": steps, + "cfg": cfg, + "sampler_name": sampler_name, + "scheduler": scheduler, + "positive_tag": safe_positive_tag, + "negative_tag": safe_negative_tag, + "clip_skip": clip_skip + } + pipe_data = (model, clip_skipped, final_vae, combined_params) + + # Convert sampler_name and scheduler to string only for display purposes + return (model, clip_skipped, final_vae, steps, cfg, + sampler_name, scheduler, + safe_positive_tag, safe_negative_tag, pipe_data) + +# --- Node 2: ParamsPipeUnpack --- +class ParamsPipeUnpack: + @classmethod + def INPUT_TYPES(cls): + return { "required": { "params_pipe": (PIPE_TYPE_NAME,), } } + + # Змінюємо типи повернення для sampler_name та scheduler + RETURN_TYPES = ("MODEL", "CLIP", "VAE", "INT", "FLOAT", + comfy.samplers.KSampler.SAMPLERS, comfy.samplers.KSampler.SCHEDULERS, + "STRING", "STRING", PIPE_TYPE_NAME) + RETURN_NAMES = ("MODEL", "CLIP", "VAE", "steps", "cfg", + "sampler_name", "scheduler", + "positive_tag", "negative_tag", "params_pipe") + FUNCTION = "unpack_pipe" + CATEGORY = "MultiModel" + + def unpack_pipe(self, params_pipe): + if not isinstance(params_pipe, tuple) or len(params_pipe) != 4: + raise ValueError(f"Unpack: Expected PARAMS_PIPE tuple of length 4, but got: {type(params_pipe)}") + model, clip, vae, params_dict = params_pipe + if not isinstance(params_dict, dict): + raise ValueError(f"Unpack: Expected dict as the 4th element in PARAMS_PIPE, but got: {type(params_dict)}") + + # Get parameters with proper type checking + steps = params_dict.get("steps", 20) + cfg = params_dict.get("cfg", 7.0) + sampler_name = params_dict.get("sampler_name", "euler_ancestral") # Отримуємо оригінальний об'єкт + scheduler = params_dict.get("scheduler", "normal") # Отримуємо оригінальний об'єкт + positive_tag = params_dict.get("positive_tag", "") + negative_tag = params_dict.get("negative_tag", "") + + # Повертаємо оригінальні об'єкти, а не їх рядкові представлення + return (model, clip, vae, steps, cfg, + sampler_name, scheduler, # Без конвертації в str + positive_tag, negative_tag, params_pipe) + +# --- Node 3: ListSelectorNode --- +class ListSelectorNode: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + # Input for multiline text where each line is a list item + "list_items": ("STRING", {"multiline": True, "default": "Item 1\nItem 2\nItem 3"}), + # Input for selecting the item's number (1-based index) + "index": ("INT", {"default": 1, "min": 1, "max": 10000, "step": 1}), + } + } + # Return types: selected string and its number + RETURN_TYPES = ("STRING", "INT") + # Output names + RETURN_NAMES = ("selected_item", "selected_index") + FUNCTION = "get_item_by_index" + CATEGORY = "MultiModel" # Category for the node + + def get_item_by_index(self, list_items, index): + # Split the input text into lines + lines = list_items.splitlines() + # Filter out empty lines and trim unnecessary spaces + items = [line.strip() for line in lines if line.strip()] + selected_item_str = "" + selected_item_index = 1 # Default to the first item + + if not items: + # If the list is empty after filtering + print("Warning: ListSelectorNode - Input list is empty.") + selected_item_str = "" + selected_item_index = 1 # Nothing to select, return index 1 + else: + # Adjust the 1-based input index to 0-based for Python list access + zero_based_index = index - 1 + # Check if the index is within bounds + # If index is too small (<0), use 0 + if zero_based_index < 0: + zero_based_index = 0 + # If index is too large, use the index of the last item + elif zero_based_index >= len(items): + zero_based_index = len(items) - 1 + # Get the selected item + selected_item_str = items[zero_based_index] + # Determine the actual 1-based index of the selected item + selected_item_index = zero_based_index + 1 + + # Return the selected string and its 1-based index + return (selected_item_str, selected_item_index) + +class DenoiseSelector: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "denoise": ("FLOAT", {"default": 0.5, "min": 0.0, "max": 1.0, "step": 0.01}), + } + } + + RETURN_TYPES = ("FLOAT",) + RETURN_NAMES = ("denoise",) + FUNCTION = "select_denoise" + CATEGORY = "MultiModel" + + def select_denoise(self, denoise): + return (denoise,) + +# --- Наша існуюча нода KSamplerPipeNode --- +class KSamplerPipeNode: + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "params_pipe": (PIPE_TYPE_NAME,), + # "latent": ("LATENT",), # Переміщено до optional + "positive": ("CONDITIONING",), + "negative": ("CONDITIONING",), + "seed": ("INT", {"default": 0, "min": 0, "max": 0xffffffffffffffff}), + "denoise": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}), + }, + "optional": { + "latent": ("LATENT",), # Тепер опціональний + "image_override": ("IMAGE",) + } + } + + RETURN_TYPES = (PIPE_TYPE_NAME, "IMAGE") + RETURN_NAMES = ("params_pipe", "image") + FUNCTION = "sample" + CATEGORY = "MultiModel" + + def sample(self, params_pipe, positive, negative, seed, denoise, latent=None, image_override=None): + if latent is not None and image_override is not None: + raise ValueError("Both 'latent' and 'image_override' inputs are connected. Please connect only one.") + if latent is None and image_override is None: + raise ValueError("Either 'latent' or 'image_override' input must be provided to KSamplerPipeNode.") + + if not isinstance(params_pipe, tuple) or len(params_pipe) != 4: + raise ValueError(f"KSamplerPipeNode: Expected PARAMS_PIPE tuple of length 4, but got: {type(params_pipe)}") + + model, clip, vae, params_dict = params_pipe + if not isinstance(params_dict, dict): + raise ValueError(f"KSamplerPipeNode: Expected dict as the 4th element in PARAMS_PIPE, but got: {type(params_dict)}") + + # Отримуємо параметри з params_pipe + steps = params_dict.get("steps", 20) + cfg = params_dict.get("cfg", 7.0) + sampler_name = params_dict.get("sampler_name", "euler_ancestral") + scheduler = params_dict.get("scheduler", "normal") + + # Визначаємо, який латент використовувати + if image_override is not None: + print("KSamplerPipeNode: Using image_override input.") + if vae is None: + raise ValueError("VAE is required to encode image_override, but it's missing in the params_pipe.") + encoded_samples = vae.encode(image_override[:,:,:,:3]) + latent_input = {"samples": encoded_samples} + else: # image_override is None, тому використовуємо latent (ми вже перевірили, що він не None) + print("KSamplerPipeNode: Using latent input.") + latent_input = latent + + # Використовуємо common_ksampler + latent_result = common_ksampler(model, seed, steps, cfg, sampler_name, scheduler, positive, negative, latent_input, denoise=denoise)[0] + + # Декодуємо зображення + if vae is None: + raise ValueError("VAE is required for decoding the result, but it's missing in the params_pipe.") + image = vae.decode(latent_result["samples"]) + + return (params_pipe, image) + +# --- Нова нода PromptBuilderNode --- +class PromptBuilderNode: + @classmethod + def INPUT_TYPES(cls): + style_files = get_style_files() # Ця функція все ще повертає список з "None" + # Ми більше не використовуємо get_style_names для початкового списку тут + + return { + "required": { + "params_pipe": (PIPE_TYPE_NAME,), + "positive_base": ("STRING", {"multiline": True, "default": ""}), + "negative_base": ("STRING", {"multiline": True, "default": ""}), + }, + "optional": { + "from_IMG2TXT": ("STRING", {"multiline": True, "default": "", "forceInput": True}), + "style_file": (style_files, ), + # Змінюємо default на порожній рядок, оскільки "None" більше не буде опцією + "style_name": ("STRING", {"default": "", "multiline": False}), + } + } + + RETURN_TYPES = ("STRING", "STRING", "CONDITIONING", "CONDITIONING") + RETURN_NAMES = ("positive_text", "negative_text", "positive_prompt", "negative_prompt") + FUNCTION = "build_prompts" + CATEGORY = "MultiModel" + + @classmethod + def IS_CHANGED(cls, *args, **kwargs): + # Використовуємо *args, **kwargs, щоб уникнути помилок з аргументами + return float("NaN") + + def build_prompts(self, params_pipe, positive_base, negative_base, from_IMG2TXT=None, style_file="None", style_name="None"): + # 1. Розпаковка params_pipe + if not isinstance(params_pipe, tuple) or len(params_pipe) != 4: + raise ValueError("PromptBuilderNode: Invalid params_pipe structure.") + model, clip, vae, params_dict = params_pipe + if not isinstance(params_dict, dict): + raise ValueError("PromptBuilderNode: Invalid params_dict in params_pipe.") + if clip is None: + raise ValueError("PromptBuilderNode: CLIP object is missing in the params_pipe.") + + # 2. Отримання тегів з pipe + positive_tags = params_dict.get("positive_tag", "").strip() + negative_tags = params_dict.get("negative_tag", "").strip() + + # Очищення вхідного тексту з вузла + safe_from_img2txt = "" if from_IMG2TXT is None else from_IMG2TXT.strip() + safe_positive_base = "" if positive_base is None else positive_base.strip() + safe_negative_base = "" if negative_base is None else negative_base.strip() + + style_prompt_template = "{prompt}" # Default template + style_negative_prompt = "" # Default negative from style + + # 3. Обробка стилю (отримання шаблонів) + if style_file != "None" and style_name != "None": + styles_dir = get_styles_dir() + filepath = os.path.join(styles_dir, style_file) + try: + if os.path.isfile(filepath): + if filepath.endswith('.yaml') or filepath.endswith('.yml'): + with open(filepath, 'r', encoding='utf-8') as f: + styles_data = yaml.safe_load(f) + else: + with open(filepath, 'r', encoding='utf-8') as f: + styles_data = json.load(f) + if isinstance(styles_data, list): + selected_style = next((s for s in styles_data if isinstance(s, dict) and s.get("name") == style_name), None) + if selected_style: + style_prompt_template = selected_style.get("prompt", "{prompt}") + style_negative_prompt = selected_style.get("negative_prompt", "") + else: + print(f"Warning: Style '{style_name}' not found in {style_file}.") + except Exception as e: + print(f"Error processing style file {style_file}: {e}") + + # 4. Формування позитивного тексту (НОВИЙ ПОРЯДОК) + # Спочатку збираємо теги, базу та img2txt + core_positive_parts = [] + if positive_tags: + core_positive_parts.append(positive_tags) + if safe_positive_base: + core_positive_parts.append(safe_positive_base) + if safe_from_img2txt: + core_positive_parts.append(safe_from_img2txt) + core_prompt = ". ".join(filter(None, core_positive_parts)) + + # Тепер вставляємо зібраний core_prompt у шаблон стилю + final_positive_text = style_prompt_template.replace("{prompt}", core_prompt) if core_prompt else style_prompt_template.replace("{prompt}", "") + # Додатково очистимо кінцевий результат від зайвих пробілів + final_positive_text = final_positive_text.strip() + + # 5. Формування негативного тексту (ЗМІНЕНО ПОРЯДОК) + # Спочатку збираємо базу і стиль + negative_base_and_style_parts = [] + if safe_negative_base: + negative_base_and_style_parts.append(safe_negative_base) + if style_negative_prompt: + negative_base_and_style_parts.append(style_negative_prompt) + base_and_style_negative = ". ".join(filter(None, negative_base_and_style_parts)) + + # Тепер збираємо фінальний негативний, ставлячи теги першими + final_negative_parts = [] + if negative_tags: + final_negative_parts.append(negative_tags) + if base_and_style_negative: + final_negative_parts.append(base_and_style_negative) + final_negative_text = ". ".join(filter(None, final_negative_parts)) + + # 6 & 7. Кодування промптів (залишається без змін) + tokens_positive = clip.tokenize(final_positive_text) + cond_positive, pooled_positive = clip.encode_from_tokens(tokens_positive, return_pooled=True) + + tokens_negative = clip.tokenize(final_negative_text) + cond_negative, pooled_negative = clip.encode_from_tokens(tokens_negative, return_pooled=True) + + # 8. Повернення результатів (залишається без змін) + return (final_positive_text, final_negative_text, + [[cond_positive, {"pooled_output": pooled_positive}]], + [[cond_negative, {"pooled_output": pooled_negative}]]) + +# --- Новий вузол-байпасер для ModelParamsPipeNode --- +class ActiveModel: + # Цьому вузлу не потрібні входи чи виходи, визначені в Python, + # оскільки вся логіка відбувається в JavaScript. + @classmethod + def INPUT_TYPES(cls): + return {"required": {}} + + RETURN_TYPES = () + FUNCTION = "do_nothing" # Потрібно вказати функцію, навіть якщо вона нічого не робить + OUTPUT_NODE = True # Вказує, що вузол може не мати виходів або має особливу логіку + CATEGORY = "MultiModel" # Змінюємо категорію на основну категорію + + def do_nothing(self): + # Ця функція ніколи не буде викликана, якщо JS обробляє дії, + # але вона потрібна для реєстрації. + return () + +# --- API Endpoint for Dynamic Styles --- +@PromptServer.instance.routes.post('/multi_model/get_style_names') +async def get_style_names_endpoint(request): + # print("--- API Endpoint /multi_model/get_style_names called ---") # Keep this commented for less verbose logs + try: + json_data = await request.json() + filename = json_data.get('filename') + + if filename is None: # Check explicitly for None, as empty string might be valid (though unlikely here) + print("API Error: Filename not provided in request") + return web.Response(status=400, text="Filename not provided") + + style_names = get_style_names(filename) + # print(f"Returning style names for {filename}: {style_names}") # Keep commented + return web.json_response({"style_names": style_names}) + + except json.JSONDecodeError as json_err: + try: + raw_body = await request.read() + body_text = raw_body.decode('utf-8', errors='ignore') + except Exception: + body_text = "[Could not read body]" + print(f"API Error: Invalid JSON received. Body: {body_text}. Error: {json_err}") + return web.Response(status=400, text=f"Invalid JSON received: {json_err}") + except Exception as e: + print(f"API Error in get_style_names_endpoint: {e}") + import traceback + print(traceback.format_exc()) + return web.Response(status=500, text=f"Internal server error: {e}") + +# --- Helper definitions for MySwitchIndex --- +class AnyType(str): + """A special class that is always equal in not equal comparisons. Credit to pythongosssss""" + + def __ne__(self, __value: object) -> bool: + return False + +class FlexibleOptionalInputType(dict): + """A special class to make flexible nodes that pass data to our python handlers. + + Enables both flexible/dynamic input types (like for Any Switch) or a dynamic number of inputs + (like for Any Switch, Context Switch, Context Merge, Power Lora Loader, etc). + """ + def __init__(self, type): + self.type = type + + def __getitem__(self, key): + # Allow specific named inputs if needed, otherwise default to the flexible type + # Returning the flexible type tuple for __contains__ to work seamlessly + return (self.type,) + + + def __contains__(self, key): + # We accept any key starting with 'input_' + return key.startswith('input_') + + +any_type_switch = AnyType("*") # Using a different variable name to avoid conflicts + +def is_context_empty(ctx): + """Checks if the provided ctx is None or contains just None values.""" + return not ctx or all(v is None for v in ctx.values()) + +def is_none(value): + """Checks if a value is none. Adapted from rgthree.""" + if value is not None: + # Handle rgthree context specifically if needed, or remove if not applicable + if isinstance(value, dict) and 'model' in value and 'clip' in value: + return is_context_empty(value) + return value is None + +# --- Node: MySwitchIndex --- +class MySwitchIndex: + """ + A node that takes multiple inputs and outputs the first non-empty one + along with its index (firstActive mode) OR outputs the input at a specific index. + Inputs are dynamically managed by the frontend. + """ + + # Set NAME and CATEGORY directly + NAME = "Multi Model Switch" + CATEGORY = "MultiModel" + + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "mode": (["firstActive", "index"], ), + # Оновлюємо min та default для 1-базованого індексу + "index": ("INT", {"default": 1, "min": 1, "max": 999}), + }, + "optional": FlexibleOptionalInputType(any_type_switch), + } + + # Output the selected value and its index + RETURN_TYPES = (any_type_switch, "INT",) + RETURN_NAMES = ("selected_value", "selected_index",) + + FUNCTION = "switch_index" + + # Змінюємо сигнатуру: приймаємо всі входи через **kwargs + def switch_index(self, **kwargs): + """ + Selects and returns an input value and its 1-based index based on the selected mode. + - firstActive: Returns the first non-none input. + - index: Returns the input at the specified 1-based index from the widget. + Returns 0 for selected_index if no active input is found. + """ + # Витягуємо mode та index_from_widget з kwargs + mode = kwargs.get("mode", "firstActive") # За замовчуванням firstActive + # Отримуємо 1-базований індекс з віджета, за замовчуванням 1 + index_from_widget = kwargs.get("index", 1) + + selected_value = None + # Внутрішній індекс буде 0-базованим, або -1 якщо не знайдено + internal_selected_index = -1 + + if mode == "firstActive": + input_items = [] + # Проходимо по всіх kwargs, щоб знайти динамічні входи + for key, value in kwargs.items(): + if key.startswith("input_"): + try: + # Assume 1-based index in name from frontend, store 0-based + key_index_0_based = int(key.split('_')[-1]) - 1 + input_items.append({'index': key_index_0_based, 'key': key, 'value': value}) + except ValueError: + print(f"[MultiModelSwitch] Warning: Could not parse index from key '{key}'") + continue + + # Sort by index parsed from the key name + input_items.sort(key=lambda item: item['index']) + + for item in input_items: + if not is_none(item['value']): + selected_value = item['value'] + internal_selected_index = item['index'] # Store the 0-based index + break + + elif mode == "index": + # index_from_widget тепер 1-базований + target_key = f"input_{index_from_widget}" # Ключ будується з 1-базованого індексу + # Перевіряємо наявність ключа та значення в kwargs + if target_key in kwargs: + input_value = kwargs[target_key] + if not is_none(input_value): + selected_value = input_value + # Зберігаємо внутрішній 0-базований індекс + internal_selected_index = index_from_widget - 1 + + else: + print(f"[MultiModelSwitch] Warning: Unknown mode '{mode}'") + + # Конвертуємо 0-базований внутрішній індекс в 1-базований для виходу, або 0 якщо не знайдено + output_index = internal_selected_index + 1 if internal_selected_index != -1 else 0 + + return (selected_value, output_index,) + +# --- Node Mappings --- +NODE_CLASS_MAPPINGS = { + "ModelParamsPipe": ModelParamsPipeNode, + "ParamsPipeUnpack": ParamsPipeUnpack, + "ListSelector": ListSelectorNode, + "DenoiseSelector": DenoiseSelector, + "KSamplerPipe": KSamplerPipeNode, + "PromptBuilder": PromptBuilderNode, + "ActiveModel": ActiveModel, + "MySwitchIndex": MySwitchIndex, # Register the new node +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "ModelParamsPipe": "Model Parameters Pipe", + "ParamsPipeUnpack": "Unpack Parameters Pipe", + "ListSelector": "List Selector", + "DenoiseSelector": "Denoise Selector", + "KSamplerPipe": "KSampler (Pipe)", + "PromptBuilder": "Prompt Builder", + "ActiveModel": "Active Model", + "MySwitchIndex": "Multi Model Switch", # Оновлено відображуване ім'я +} + +print("✅ Loaded ModelParamsNode.py with all nodes (*^_^*)") \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d8cbfc4 --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +

+ MultiModel1 for ComfyUI +
+ Flexible multi-model workflows, prompt engineering, and style management for ComfyUI +
+

+

+ The Nodes   |   Styles   |   Installation   |   Example Usage +

+
+ +A collection of nodes and utilities to make working with multiple models, custom parameters, and prompt styles in ComfyUI easier, faster, and more flexible. +You are welcome to use and adapt them for your own workflows! + +--- + +# ✴️ The Nodes + +## ModelParamsPipeNode +> Create a "pipe" containing the selected model, CLIP, VAE, and all generation parameters (steps, CFG, sampler, scheduler, tags, etc). +> Makes it easy to pass model settings between nodes. + +## ParamsPipeUnpack +> Unpack all parameters and objects from a pipe: model, CLIP, VAE, steps, CFG, sampler, scheduler, tags. + +## KSamplerPipeNode +> A sampler node that takes a pipe, conditioning, seed, denoise, and either latent or image_override. +> Works with any model passed via the pipe. + +## PromptBuilderNode +> Build final positive/negative texts and CLIP conditioning, taking into account styles (from JSON), base texts, tags, and img2txt. +> Supports custom styles for advanced prompt engineering. + +## ListSelectorNode +> Select an item from a list by index. +> Useful for UI and dynamic workflows. + +## DenoiseSelector +> Simple node for selecting the denoise value. + +## DualTextInput +> Two text fields for positive and negative prompts. + +## ActiveModel +> Dummy node for JavaScript-side integration (client logic). + +## MySwitchIndex (Multi Model Switch) +> Вузол для вибору одного з декількох вхідних сигналів. Працює у двох режимах: +> +> Динамічно керує кількістю входів через UI. Повертає обране значення та його індекс (або 0, якщо не знайдено). +>
+> Корисно для мульти-модельних пайплайнів, умовної маршрутизації, вибору активного результату. + +--- + +# 🎨 Styles + +- Styles are stored in the `Styles` folder inside this package. +- For dynamic style selection, the API endpoint `/multi_model/get_style_names` is used. +- A style is a JSON file containing an array of objects, each with `name`, `prompt`, and `negative_prompt` fields. + +--- + +# ⚡ Installation + +## Recommended: via ComfyUI-Manager +1. Open ComfyUI-Manager. +2. Search for `MultiModel1` (or your package name) and click "Install". + +## Manual Install +1. Copy the `MultiModel1` folder to `ComfyUI/custom_nodes/`. +2. Restart ComfyUI. + +--- + +# 🚀 Example Usage + +1. Add `ModelParamsPipeNode` to select your model and parameters. +2. Build prompts using `PromptBuilderNode` (optionally connect styles). +3. Use `KSamplerPipeNode` to generate images. +4. For multi-model pipelines, add several pipes and switch between them using `MySwitchIndex`. + +--- + +# 🙏 Credits + +- [ComfyUI](https://github.com/comfyanonymous/ComfyUI) – The base for node development and workflow. +- Authors and contributors of this package. + +--- + +**Feedback, bug reports, and suggestions are welcome via GitHub Issues or your favorite chat!** \ No newline at end of file diff --git a/Styles/Pixaroma.yaml b/Styles/Pixaroma.yaml new file mode 100644 index 0000000..ad9526c --- /dev/null +++ b/Styles/Pixaroma.yaml @@ -0,0 +1,2631 @@ +# Ensure that the formatting is kept the same as in this file. +# Indents in YAML are critical. Ensure proper indentation, as incorrect spacing can cause errors. +# +# Best approach is to copy a block of name, negative_prompt and a prompt and then replace their values +# Note that your text_positive will be added in this part {prompt} +# Adding - name: random will allow the node to pick random name from this file + +- name: none + negative_prompt: '' + prompt: '' + +- name: random + negative_prompt: '' + prompt: '' + +- name: 3D | Abstract + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: abstract 3D render of {prompt}, abstract 3d art, imaginative design, dynamic + lighting, immersive presentation, captivating visuals, high-quality rendering + techniques, innovative concept, unique aesthetics, creative compositions, visually + stunning results, volumetric, 4k + +- name: 3D | Abstract > Fluid Dynamics + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: fluid dynamics 3D art style of {prompt}, 3d fluid render, expressive and + dynamic, vibrant contrasting colors, lively appearance, mesmerizing flow of shapes, + simulation of fluid dynamics, swirling motion, bold colors blending seamlessly, + abstract and captivating, fluidity and energy, mesmerizing composition, engaging + viewer experience, seamless integration of colors and shapes, volumetric, 4k + +- name: 3D | Abstract > Organic 3D Sculpture + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: modern abstract organic 3D sculpture of {prompt}, intricate and fluid shapes, + dynamic composition, soft translucent materials, vibrant yet harmonious color + palette, organic forms blending with geometric elements, highly detailed textures, + surreal and futuristic, captivating lighting effects, high-quality rendering, + volumetric lighting, 4k + +- name: 3D | Abstract > Soft Forms + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: modern abstract 3D art style of {prompt}, focusing on organic shapes and + objects, soft colors, captivating composition, tactile qualities, smoothness, + softness, contrast between matte and shiny textures, depth and interest, blend + of textures, minimalistic yet complex aesthetic, volumetric, 4k + +- name: 3D | Architectural + negative_prompt: painting, low-quality rendering, ugly, worst quality, low quality, + lowres, JPEG artifacts + prompt: professional 3D architectural rendering of {prompt}, realistic visualization, + intricate detailing, lifelike textures, dynamic lighting, immersive environment, + photorealistic representation, captivating visuals, realistic materials, professional + rendering techniques, volumetric, 4k + +- name: 3D | Character + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: professional 3D character design of {prompt}, dynamic pose, expert character + design, engaging storytelling, captivating visuals, imaginative concept, high-quality + rendering, volumetric, 4k + +- name: 3D | Character > Cartoon + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: professional 3D cartoon character design of {prompt}, whimsical animation, + vibrant personality, exaggerated features, dynamic pose, expert character design, + colorful textures, engaging storytelling, versatile animation styles, captivating + visuals, imaginative concepts, playful interactions, high-quality rendering, volumetric, + 4k + +- name: 3D | Character > Cartoon Cute + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: professional 3D design of {prompt}, a cute and adorable cartoon character + with big eyes, charming animation, endearing personality, exaggerated features, + dynamic pose, captivating expression, expert character design, vibrant and colorful + textures, engaging storytelling, versatile animation style, high-quality render, + volumetric, 4k + +- name: 3D | Character > Surreal Toy + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: surreal toy-like 3D character of {prompt}, dark and whimsical elements, + stylized and exaggerated proportions, muted color palette with bold accents, sculptural + design with doll-like qualities, eerie and imaginative, high-quality rendering, + volumetric lighting, 4k + +- name: 3D | Cute Minimal 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: cute minimal 3D render of {prompt}, simple and clean design, soft color + palette, smooth and rounded edges, whimsical and playful style, charming and endearing, + high-quality rendering, subtle lighting, engaging and visually appealing, minimalist + yet expressive, volumetric lighting, 4k + +- name: 3D | Dreamlike Surreal Interior + negative_prompt: low-quality rendering, ugly, worst quality, low quality, lowres, + JPEG artifacts + prompt: dreamlike surreal 3D interior of {prompt}, soft and ethereal atmosphere, + clouds blending with interior elements, minimalistic yet surreal composition, + natural elements like grass and plants indoors, calming color palette, immersive + lighting effects, high-quality rendering, blending fantasy with reality, volumetric + light, 4k + +- name: 3D | Game Asset + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: 3d game item of {prompt}, high-quality 3D rendering of a game asset, dynamic + lighting, captivating visuals, seamless integration, realistic materials, high-quality + rendering techniques, versatile application, innovative concepts, optimized for + gaming engines, volumetric, 4k + +- name: 3D | Geometric 3D Cubism + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: geometric 3D cubism of {prompt}, flat and abstract shapes, layered geometric + forms, pastel and muted color palette, clean lines, minimalistic yet expressive + composition, cubist influence with modern 3D rendering, subtle lighting, captivating + visual storytelling, high-quality rendering, volumetric lighting, 4k + +- name: 3D | Hard Surface + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: professional hard surface 3D design modeling of {prompt}, hard surface expert + modeling, hard surface 3d render, precise detailing, captivating visuals, professional-grade + design, dynamic appearance, attention-grabbing aesthetics, high-quality rendering + techniques, volumetric, 4k + +- name: 3D | Icon + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: 3D icon design of {prompt}, isolated on solid background, creative icon + design, minimalist, depth and dimensionality, dynamic lighting, captivating visuals, + high-quality rendering techniques, volumetric, 4k + +- name: 3D | Inflatable + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: inflatable 3D rednder of {prompt}, soft and rounded forms, highly glossy + and reflective surfaces, balloon-like textures, exaggerated puffy shapes, pastel + and vibrant color palette, playful and tactile design, smooth and polished finishes, + high-quality rendering, volumetric lighting, 4k + +- name: 3D | Isometric + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: isometric 3D render of {prompt}, isometric 3D design, isometric perspective, + precise perspective, clean, dynamic lighting, captivating visuals, immersive presentation, + high-quality rendering techniques, volumetric, dramatic lighting, 4k + +- name: 3D | Luxurious Modern Interior + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: luxurious contemporary interior design of {prompt}, rich color palette , + elegant and modern furnishings, high-end materials, sophisticated lighting, clean + lines with opulent touches, soft textures, harmonious balance of luxury and comfort, + high-quality rendering, volumetric lighting, 4k + +- name: 3D | Low Poly + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Low poly 3D design of {prompt}, low poly aesthetic, minimalist and stylized + appearance, expert modeling software, efficient detailing, immersive presentation, + captivating visuals, professional-grade design, dynamic and clean appearance, + versatile application, attention-grabbing aesthetics, efficient rendering, suitable + for performance-sensitive applications such as games and simulations + +- name: 3D | Mech + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: 3d mechanical render of {prompt}, mech style, scifi, futuristic, detailed + mech 3D rendering, intricate design, dynamic lighting, captivating visuals, high-quality + rendering techniques, futuristic aesthetics, volumetric, 4k + +- name: 3D | Minimalist Ribbon 3D Sculpture + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: minimalist ribbon 3D sculpture of {prompt}, smooth and flowing lines, pastel + color palette, dynamic and abstract forms, clean and elegant curves, delicate + balance of shapes, visually captivating, modern aesthetic, high-quality rendering, + soft gradients, volumetric lighting, 4k + +- name: 3D | Model + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: detailed 3D model representation of {prompt}, 3d render, captivating visuals, + professional-grade design, dynamic appearance, high-quality rendering techniques, + volumetric, 4k + +- name: 3D | Product + negative_prompt: low poly, blurry, painting, low-quality rendering, photo, photorealistic, + realism, ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: professional 3d model of {prompt}, 3D product visualization, octane render, + immersive presentation, photorealistic rendering, captivating visuals, realistic + materials, highly detailed, volumetric, dramatic lighting, 4k + +- name: 3D | Sci-Fi + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: futuristic 3D rendering of {prompt}, imaginative design, dynamic lighting, + immersive presentation, volumetric, futuristic elements, captivating visuals, + realistic materials, high-quality rendering techniques, innovative concepts, otherworldly + atmosphere, futuristic aesthetics, immersive storytelling, 4k + +- name: 3D | Soft 3D Cartoon Environment + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: soft 3D cartoon environment of {prompt}, smooth and rounded shapes, vibrant + yet soft color palette, playful and whimsical atmosphere, clean and minimal detailing, + stylized natural elements, subtle lighting with gentle gradients, highly engaging + and immersive, high-quality rendering, volumetric lighting, 4k + +- name: 3D | Vehicle + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: professional 3D vehicle render of {prompt}, realistic representation, intricate + detailing, dynamic lighting, immersive presentation, seamless integration, photorealistic + rendering, captivating visuals, realistic materials, high-quality rendering techniques, + octane render, highly detailed, volumetric, dramatic lighting, 4k + +- name: Art | African Traditional + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: African traditional art style of {prompt}, bold patterns, vibrant colors, + intricate designs, dynamic compositions, cultural heritage, adds richness and + depth + +- name: Art | Afrofuturism Art + negative_prompt: Signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Afrofuturism art style of {prompt}, blend of African culture and aesthetics + with futuristic elements, reimagines history and imagines alternative futures, + black identity, creativity, and resilience + +- name: Art | Ancient Egyptian Mural + negative_prompt: Signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Ancient Egyptian mural art style of {prompt}, rich cultural heritage, intricate + hieroglyphics, vibrant colors, symbolic motifs, depicts scenes from mythology, + religion, and daily life, monumental scale, timeless beauty + +- name: Art | Atompunk + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Atompunk art style of {prompt}, retro-futuristic, atomic age aesthetics, + sleek and streamlined designs, nuclear energy motifs, optimism about technological + progress + +- name: Art | Baroque + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Baroque art style of {prompt}, dynamic composition, dramatic lighting, rich + colors, intricate details, professional-grade execution, captures the grandeur + and theatricality of the Baroque period + +- name: Art | Bauhaus + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Bauhaus art style of {prompt}, geometric shapes, clean lines, minimalist + design, primary colors, focuses on functionality and simplicity, modernist approach, + balance between art and industrial design + +- name: Art | Biomechanical + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Biomechanical art style of {prompt}, Biology, Machinery, Intricate, Surreal, + Organic Forms, Mechanical Structures, Futuristic, Cyberpunk, Fusion, Nature, Technology + +- name: Art | Biopunk + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Biopunk art style of {prompt}, explores genetic engineering, biohacking, + and biotechnology, organic and living elements, dystopian or utopian visions of + a genetically modified future + +- name: Art | Byzantine Icon + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Byzantine icon oil painting art style of {prompt}, intricate details, rich + colors, religious symbolism, cultural significance, professional-grade execution, + spiritual, religious + +- name: Art | Cartoon + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: cartoon art style of {prompt}, whimsical character, exaggerated features, + vibrant colors, dynamic composition, expressive pose, professional-grade finish, + adds humor and charm + +- name: Art | Claymation + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Claymation art style of {prompt}, tactile and three-dimensional character, + dynamic animation, captures the charm and whimsy of stop-motion animation, suitable + for various storytelling and advertising + +- name: Art | Comic Book Style + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: comic book art style of {prompt}, comics, dynamic lines, vibrant colors, + expressive characters, action-packed composition, adds energy and excitement + +- name: Art | Constructivism + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Constructivism Art Style of {prompt}, Industrial materials, geometric abstraction, + social purposes, modernity, functional art, the machine age and collective labor, + fosters innovation and collaboration + +- name: Art | Cubism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: cubism art style of {prompt}, fragmented forms, geometric shapes, dynamic + compositions, vibrant colors, innovative technique, cultural significance + +- name: Art | Cybergoth Art + negative_prompt: Signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Cybergoth art style of {prompt}, futuristic and edgy aesthetic, combines + cyberpunk and gothic elements, neon colors, industrial motifs, alternative fashion + and culture + +- name: Art | Cyberpunk + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Cyberpunk art style of {prompt}, futuristic cityscapes, neon-lit streets, + high-tech and low-life, cybernetic enhancements, dystopian and gritty atmosphere + +- name: Art | Dadaism + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Dadaism Art Style of {prompt},Anti-art, absurdity, irony, spontaneity, rejecting + conventional aesthetics, collage art + +- name: Art | Dark Academia + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Dark Academia art style of {prompt}, evokes the atmosphere of scholarly + pursuits and literary classics, rich and moody color palettes, intricate details + +- name: Art | Deco + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Art Deco style of {prompt}, Symmetry, streamlined shapes, geometric patterns, + luxury, modernity, glamour, sleek lines + +- name: Art | Dieselpunk + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Dieselpunk art style of {prompt}, retro-futuristic, industrial aesthetics, + mechanical marvels, alternative history, gritty and dystopian atmosphere + +- name: Art | Egyptian + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Egyptian art style of {prompt}, iconic symbolism, intricate hieroglyphics, + dynamic composition, Egyptian cultural significance + +- name: Art | Futurism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Futurism art style of {prompt}, dynamic composition, bold geometric forms, + vibrant colors, captures the spirit of technological advancement and modernity + +- name: Art | Gilded + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Gilded art style of {prompt}, opulent, luxurious, metallic elements, divine + symbolism, fine craftsmanship + +- name: Art | Glitch + negative_prompt: Signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Glitch art style of {prompt}, embraces digital errors and glitches, distorted + and fragmented imagery, experimental and abstract, challenges traditional notions + of perfection and beauty + +- name: Art | Gothic + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Gothic art style of {prompt}, gothic details, dramatic compositions, rich + symbolism + +- name: Art | Interstellar + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Interstellar art style of {prompt}, Cosmic, Space, Celestial, Galactic, + Nebulae, Stars, Planets, Exploration, Unknown, Infinity, Futuristic + +- name: Art | Japanese Traditional + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Japanese traditional art style of {prompt}, delicate lines, subtle colors, + intricate details, dynamic compositions, cultural heritage, adds elegance and + sophistication + +- name: Art | Linocut + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Linocut art style of {prompt}, relief printing, bold and graphic imagery + with striking contrasts + +- name: Art | Lucha Libre + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Lucha libre art style of {prompt}, dynamic and colorful compositions, exaggerated + characters, captures the excitement and energy of Mexican wrestling culture + +- name: Art | Mayan + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Mayan art style of {prompt}, rich cultural heritage, intricate geometric + patterns, mayan colors, reflects the spiritual and artistic achievements of the + Maya civilization + +- name: Art | Minoan + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Minoan art style of {prompt}, dynamic composition, Minoan cultural significance, + adds depth and richness + +- name: Art | Naive + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Naive art style of {prompt}, simplistic and childlike aesthetic, spontaneous + and untrained, captures innocence and purity, features bold colors, exaggerated + perspectives, and whimsical themes + +- name: Art | Necropunk + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Necropunk art style of {prompt}, dark and macabre, blending of death and + technology, eerie and unsettling imagery, explores themes of mortality and decay, + unique and thought-provoking concepts + +- name: Art | Nouveau + negative_prompt: Signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Art Nouveau art style of {prompt},elegant and organic forms, intricate floral + motifs, flowing lines, decorative and ornate, influenced architecture, design, + and visual arts in the late 19th and early 20th centuries + +- name: Art | Pixel Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, JPEG artifacts + prompt: pixel art style of {prompt}, pixelated design, flat, uses pixelated graphics + reminiscent of classic video games, charming simplicity, intricate detailing despite + limited resolution + +- name: Art | Pop Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, JPEG artifacts + prompt: Pop art style of {prompt}, vibrant colors, bold outlines, use of popular + culture imagery, iconic and recognizable, consumerism and mass media + +- name: Art | Propaganda + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: propaganda art style of {prompt}, bold and persuasive imagery, dynamic compositions, + serves as a powerful tool for communication and persuasion + +- name: Art | Psychedelic + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Psychedelic art style of {prompt}, vibrant and surreal imagery, kaleidoscopic + patterns, intense colors, mind-expanding and hallucinatory, reflects the psychedelic + experience and counterculture movement + +- name: Art | Rococo + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Rococo art style of {prompt}, ornate, light-hearted, elegant, decorative, + playful subject, asymmetrical design + +- name: Art | Solarpunk + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Solarpunk art style of {prompt}, optimistic vision of the future, sustainable + technology, renewable energy sources, lush and green landscapes, community and + harmony with nature + +- name: Art | Stencil + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Street Art of {prompt}, Urban setting, graffiti, murals, social messages, + public spaces, anonymity, vibrant visuals + +- name: Art | Street Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Stencil art style of {prompt}, urban and contemporary, graphic and bold + imagery + +- name: Art | Steampunk + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Steampunk art style of {prompt},Victorian-era aesthetics, steam-powered + machinery, brass and gears, fantastical inventions, retro-futuristic adventure + +- name: Art | Surrealism + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Surrealism art style of {prompt},dreamlike and irrational imagery, explores + the unconscious mind, juxtaposition of unlikely elements, challenges reality and + logic + +- name: Art | Synthwave + negative_prompt: Signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Synthwave art style of {prompt},retro-futuristic aesthetic, vibrant neon + colors, nostalgic 80s imagery, futuristic landscapes, nostalgic and atmospheric + +- name: Art | Ukrainian Folk Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Ukrainian folk art style of {prompt},vibrant colors, intricate patterns, + dynamic compositions, traditional motifs, cultural heritage, adds richness and + depth + +- name: Art | Vaporwave + negative_prompt: Signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Vaporwave art style of {prompt},nostalgic and surreal aesthetic, 80s and + 90s retro imagery, glitch art elements, pastel colors, dreamy and ethereal atmosphere + +- name: Art | Westernpunk + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Westernpunk art style of {prompt},fusion of Wild West and futuristic elements, + rugged landscapes, cowboy aesthetics, steam-powered technology, adventurous spirit + +- name: Craft | Ceramic + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Ceramic craft style of {prompt}, versatile and durable, pottery and ceramic + artwork, showcases creativity and craftsmanship + +- name: Craft | Ceramic > Cibulak + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Cibulak porcelain art style of {prompt}, delicate and intricately detailed + porcelain creations, traditional Kazakh craftsmanship, exquisite hand-painted + designs, cultural heritage preservation + +- name: Craft | Ceramic > Glass + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Ceramic glass craft style of {prompt}, combines ceramic and glass materials + to create unique and innovative artwork, offers versatility in texture and transparency, + allows for experimentation with light and color + +- name: Craft | Ceramic > Moche + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Moche craft style of {prompt}, ancient Peruvian civilization known for its + intricate ceramic vessels and figurines, rich cultural and artistic heritage, + showcases advanced craftsmanship and artistic skill + +- name: Craft | Ceramic > Porcelain + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Ceramic porcelain craft style of {prompt}, utilizes porcelain clay to create + delicate and translucent artworks, smooth texture and white color, allows for + intricate detailing and precise forms + +- name: Craft | Crochet + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Crochet craft style of {prompt}, versatile and creative, yarn + +- name: Craft | Crochet > Amigurumi + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Amigurumi crochet style of {prompt}, Japanese crochet art, cute and whimsical + designs, fosters creativity and handcrafting skills + +- name: Craft | Cross-stitching + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Cross-stitching art style of {prompt}, traditional and timeless craft, precise + and meticulous stitching technique, intricate and decorative piece + +- name: Craft | Embossed + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Embossed art style of {prompt}, raised and textured surfaces, adds depth + and dimension to artwork, tactile and interactive + +- name: Craft | Embroidery + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Embroidery art style of {prompt},decorative designs on fabric, intricate + stitching techniques, adds texture and dimension to artwork + +- name: Craft | Felt + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Felt art style of {prompt}, tactile and textural, intricate detailing and + layering + +- name: Craft | Gobelin Tapestry + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Gobelin tapestry art style of {prompt}, intricate woven designs, rich colors + and textures + +- name: Craft | Kirigami + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Kirigami art style of {prompt}, combines paper cutting with origami folding + techniques, creates intricate and dynamic paper sculptures, encourages creativity + and precision + +- name: Craft | Knitting Art + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Knitting art style of {prompt}, fabric and patterns, intricate designs and + textures + +- name: Craft | Lapidary + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Lapidary art style of {prompt}, intricate and precise craftsmanship in cutting + and polishing gemstones, creates dazzling and unique pieces of jewelry and sculpture, + showcases the natural beauty of mineral + +- name: Craft | Laser Engraving Wood + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Laser engraving art style of {prompt}, precise and detailed engraving on + plywood, allows for intricate designs and patterns, modern and versatile technique, + flat, wood engraving art + +- name: Craft | Leatherworking + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Leatherworking art style of {prompt}, craftsmanship of creating designs + and patterns on leather, carving, stamping, and dyeing techniques + +- name: Craft | Macrame + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Macrame art style of {prompt}, uses knotting techniques to create textiles + or decorative items, versatile and tactile craft, allows for intricate patterns + and designs + +- name: Craft | Marquetry + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Marquetry art style of {prompt}, intricate wood inlay technique, creates + decorative patterns and images using veneers of different woods, showcases craftsmanship + and attention to detail + +- name: Craft | Metalwork + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Metalwork art style of {prompt}, manipulation of metal to create sculptures, + showcases craftsmanship and technical skill, intricate and durable designs + +- name: Craft | Mosaic + negative_prompt: worst quality, blurry, normal quality, signature, watermark, ugly, + off-center, deformed, cropped, worst quality, low quality, lowres, JPEG artifacts, + low details, bad photo, bad photography, bad art + prompt: mosaic art style of {prompt}, versatile and decorative, uses small pieces + of tile, adds color and texture, glossy, sharp + +- name: Craft | Mosaic > Roman + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Roman mosaic art style of {prompt}, intricate and colorful mosaic designs, + depict scenes from mythology, daily life, and nature, showcases superb craftsmanship + and attention to detail, cultural and historical significance + +- name: Craft | Needlepoint + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Needlepoint art style of {prompt}, needlepoint intricate and detailed design + created through stitching, rich texture and depth, intricate patterns and color + variations, fosters creativity and craftsmanship + +- name: Craft | Origami + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Origami art style of {prompt}, traditional Japanese paper folding technique, + creates intricate sculptures and designs from paper + +- name: Craft | Paper Cut + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: minimalist Paper cut craft style of {prompt}, designs cut from paper, allows + for detailed and delicate artwork + +- name: Craft | Plasticine + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Plasticine art style of {prompt}, malleable and colorful modeling material, + ideal for sculpting and creating 3D artwork + +- name: Craft | Pyrography + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Pyrography art style of {prompt},uses heat to burn designs onto wood, creates + intricate and permanent markings, showcases craftsmanship and attention to detail + +- name: Craft | Quilted + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Quilted art style of {prompt},combines fabric and stitching to create intricate + designs and patterns, reflects cultural traditions and personal stories, tactile + and cozy, showcases craftsmanship and creativity + +- name: Craft | Scrapbooking + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Scrapbooking art style of {prompt},creative arrangement of photographs, + memorabilia, and decorative elements in albums or displays, preserves memories + and tells stories + +- name: Craft | Shadowbox > Paper + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: 3D papercut shadowbox art style of {prompt},intricate paper cutting technique + to create layered scenes or designs, plays with light and shadow, adds depth and + dimensionality to artwork, depth, silhouette + +- name: Craft | Shadowbox > Wood + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: cat of {prompt},3D wood shadowbox art style, layers of wood cut and assembled + to create dimensional scenes or designs, natural textures and tones, adds warmth + and depth to artwork, depth, silhouette + +- name: Craft | 3D Layered Plywood Wall Art + negative_prompt: painting, drawing, photo, 2D, flat, high detail, blurry, noisy, + disfigured, complex, intricate, signature, watermark, ugly, off-center, deformed, + cropped, worst quality, low quality, lowres, JPEG artifacts + prompt: 3D plywood laser cut of {prompt}, symmetrical, 3D layered wood wall art + style, stacked layers made from plywood, laser cut, on white painted wall, stacked, + 3d layered, minimalist, layered, dimensional, depth, silhouette, shadow, handmade, + high contrast + +- name: Craft | Stained Glass + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts, 3d + prompt: Stained glass art style of {prompt}, vitrail, isolated on solid color background, + vibrant colors, intricate patterns, luminous effects when hit by sunlight, traditional + craftsmanship, flat + +- name: Craft | Tapestry + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts, 3d + prompt: Tapestry art style of {prompt}, woven textile technique, intricate designs + and patterns + +- name: Design | Avatar + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Avatar design of {prompt}, avatar design art style, visually appealing and + distinctive avatar, professional-grade execution, represents individual or brand + identity effectively, enhances online presence and engagement + +- name: Design | Banner + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Banner design of {prompt}, banner design art style, eye-catching and informative + banner, professional-grade execution, effectively communicates message or event + details, captures attention + +- name: Design | Brochure + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Brochure design style of {prompt}, informative and visually appealing layout, + professional-grade execution, effectively communicates product or service details, + enhances brand credibility + +- name: Design | Business card + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Business card design of {prompt}, business card art style, professional + and memorable business card, professional-grade execution, effectively represents + brand identity and contact information + +- name: Design | Event Invitation + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Event invitation design style of {prompt}, visually appealing and informative + invitation, professional-grade execution, effectively communicates event details, + encourages attendance + +- name: Design | Favicon + negative_prompt: complex, boring, signature, watermark, ugly, off-center, deformed, + cropped, frame, worst quality, low quality, lowres, JPEG artifacts + prompt: Favicon design of {prompt}, favicon art style, isolated on solid white background, + small and recognizable website icon, professional-grade execution, enhances brand + recognition and website identity, complements overall design aesthetic + +- name: Design | Flyer + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Flyer design style of {prompt}, visually appealing and informative flyer, + professional-grade execution, effectively promotes an event or product, engages + audience + +- name: Design | Icon Design + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Icon design of {prompt}, icon design art style, visually clear and recognizable + icon, professional-grade execution, effectively conveys concepts or actions, enhances + user interface and experience + +- name: Design | Icon Design Simple Black + negative_prompt: complex, boring, signature, watermark, ugly, off-center, deformed, + cropped, frame, worst quality, low quality, lowres, JPEG artifacts + prompt: minimalist modern black icon design of {prompt}, on solid white background, + simple stylized icon, vector graphic icon, clean and minimalist vector icon, professional-grade + execution, enhances visual clarity and simplicity + +- name: Design | Infographic + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Infographic design style of {prompt}, visually engaging and informative + graphic, professional-grade execution, effectively communicates complex information + or data, enhances understanding + +- name: Design | Letterhead + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Letterhead design style of {prompt}, professional and branded letterhead, + professional-grade execution, enhances brand identity and communication + +- name: Design | Logo + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Logo design of {prompt}, logo design art style, custom and memorable logo, + professional-grade execution, captures brand identity and values, timeless and + iconic design + +- name: Design | Magazine Layout + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Magazine layout design style of {prompt}, visually appealing and well-organized + layout, professional-grade execution, effectively showcases content and articles, + enhances reader experience + +- name: Design | Menu + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Menu design style of {prompt}, visually appealing and informative menu, + professional-grade execution, effectively presents food and beverage options, + enhances dining experience + +- name: Design | Packaging + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Packaging Design of {prompt}, Brand Identity, Visual Communication, Product + Presentation, Consumer Appeal, structural integrity, graphic elements, brand recognition, + marketing impact, professional design + +- name: Design | Poster + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Poster design of {prompt}, poster art style, visually striking and informative + poster, professional-grade execution, poster graphic design + +- name: Design | Website + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, frame, + worst quality, low quality, lowres, JPEG artifacts + prompt: Website design of {prompt}, website design art style, web page, user-friendly + interface, visually appealing layout, professional-grade execution, responsive + design, enhances user experience and engagement + +- name: Drawing | Blue Ballpoint Pen + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: dark blue color ballpoint pen drawing of {prompt}, ballpoint drawing art + style, expressive dark blue lines, dynamic compositions, professional-grade execution, + captures the spontaneity and fluidity of sketching + +- name: Drawing | Caricature + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Caricature drawing of {prompt}, caricature art style, exaggerated features, + humorous interpretation, dynamic composition, professional-grade execution, adds + humor and personality, captures essence in a playful manner + +- name: Drawing | Caricature Extreme + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: caricature drawing of {prompt}, extreme caricature art style, highly exaggerated + features, humorous interpretation, bold and dynamic composition, professional-grade + execution, adds humor and personality, captures essence in a exaggerated playful + manner + +- name: Drawing | Charcoal + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: charcoal drawing style of {prompt}, dramatic contrast, expressive strokes, + rich textures, dynamic composition, professional-grade finish, classic aesthetic + +- name: Drawing | Colored Pencil + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Colored pencil drawing art style of {prompt}, vibrant colors, delicate shading, + professional-grade execution, captures the richness and depth of traditional drawing + techniques + +- name: Drawing | Graphite + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: graphite drawing art style of {prompt}, subtle tones, delicate shading, + precise detailing, fine textures, expressive lines, intricate compositions, timeless + elegance, professional-grade finish, immersive depth, classic aesthetic + +- name: Drawing | Ink + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Ink drawing art style of {prompt}, bold lines, expressive strokes, high + contrast, intricate details, dynamic compositions, versatile medium, professional-grade + finish, classic aesthetic, adds depth and texture, timeless elegance + +- name: Drawing | Pastel + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: pastel drawing art style of {prompt}, pastel colors, delicate shading, dynamic + composition, soft and velvety pastel textures, amazing pastel drawing + +- name: Drawing | Pen + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: pen drawing art style of {prompt}, precise lines, intricate details, high + contrast, dynamic compositions, versatile medium, professional-grade finish, timeless + elegance, creates bold and expressive strokes + +- name: Drawing | Pencil + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Pencil drawing art style of {prompt}, delicate shading, precise lines, professional-grade + execution, captures the subtlety and texture of graphite + +- name: Drawing | Scratchboard + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Scratchboard drawing art style of {prompt}, intricate details, dramatic + contrast, professional-grade execution, captures the tactile quality and depth + of etching + +- name: Drawing | Technical + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Technical drawing art style of {prompt}, precise and detailed, emphasizes + accuracy and clarity, communicates complex ideas visually + +- name: Drawing | Zentangle + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Zentangle drawing art style of {prompt}, clean, minimalist, meditative and + relaxing, uses repetitive patterns and structured designs to create intricate + and abstract artworks, precise lines, professional-grade execution, contrast, + black and white + +- name: Experimental | Alien Creature 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: Professional 3D design of a cute and quirky alien creature with big curious + eyes of {prompt}, charming animation, endearing personality, exaggerated features, + dynamic pose, captivating expression, expert character design, vibrant and otherworldly + textures, engaging storytelling, versatile animation style, high-quality render, + volumetric, 4k + +- name: Experimental | Apocalyptic Surrealism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Apocalyptic surrealism art style of {prompt}, digital painting, eerie and + haunting, surreal landscapes, dystopian ruins, twisted reality, dreamlike and + nightmarish scenes, vibrant and dark color palette, intricate details, professional-grade + execution, evokes a sense of doom and otherworldliness + +- name: Experimental | Aztec Sculpture 3D + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Aztec sculpture 3D art style of {prompt}, intricate geometric patterns, + stylized figures, rich cultural symbolism, professional-grade execution, volumetric, + 4k + +- name: Experimental | Bio-Luminous Art + negative_prompt: bad anatomy, cropped, cross-eyed, worst quality, low quality, noisy, + blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, mutilated, + distorted + prompt: Bio-luminous illustration style of {prompt}, combines biological forms with + luminous effects, vibrant and glowing, dynamic composition, professional-grade + execution, captures the essence of living organisms with an ethereal glow, evokes + a sense of wonder and fascination + +- name: Experimental | Bio-Mechanical Fantasy + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Bio-mechanical fantasy illustration style of {prompt}, blends organic and + mechanical elements, vibrant and surreal, dynamic composition, professional-grade + execution, captures the essence of fantasy and science fiction, detailed and imaginative + environment + +- name: Experimental | Biomechanical Angel 3D + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Biomechanical Angel 3D character art style of {prompt}, fusion of organic + and mechanical elements, ethereal and divine, metallic wings, mechanical details, + dynamic pose, high-quality rendering techniques, professional-grade execution, + volumetric, 4k + +- name: Experimental | Cute Animal 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifact + prompt: Professional 3D design of a cute cartoon animal of {prompt}, charming animation, + endearing personality, exaggerated features, captivating expression, expert character + design, vibrant and magical textures, engaging storytelling, versatile animation + style, high-quality render, volumetric, 4k + +- name: Experimental | Cute Boy 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: Professional 3D design of a cute cartoon boy of {prompt}, charming animation, + endearing personality, exaggerated features, captivating expression, expert character + design, vibrant and magical textures, engaging storytelling, versatile animation + style, high-quality render, volumetric, 4k + +- name: Experimental | Cute Cyber Ninja 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: Professional 3D design of a cute and stealthy cyber ninja with big alert + eyes of {prompt}, charming animation, endearing personality, exaggerated features, + dynamic pose, captivating expression, expert character design, vibrant and futuristic + textures, engaging storytelling, versatile animation style, high-quality render, + volumetric, 4k + +- name: Experimental | Cute Cyberpunk + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Cute Cyberpunk illustration art style of {prompt}, combines cyberpunk elements + with cute aesthetics, vibrant and neon colors, dynamic and charming compositions, + captures the essence of cute futuristic worlds, professional-grade execution, + evokes a sense of futuristic cuteness + +- name: Experimental | Cute Girl 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: Professional 3D design of a cute cartoon girl of {prompt}, charming animation, + endearing personality, exaggerated features, captivating expression, expert character + design, vibrant and magical textures, engaging storytelling, versatile animation + style, high-quality render, volumetric, 4k + +- name: Experimental | Cute Knight 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: Professional 3D design of a cute and brave medieval knight with big noble + eyes of {prompt}, charming animation, endearing personality, exaggerated features, + dynamic pose, captivating expression, expert character design, vibrant and detailed + textures, engaging storytelling, versatile animation style, high-quality render, + volumetric, 4k + +- name: Experimental | Cute Monster 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: Professional 3D design of a cute cartoon monster of {prompt}, adorable creature, + charming animation, endearing personality, exaggerated features, captivating expression, + expert character design, vibrant and magical textures, engaging storytelling, + versatile animation style, high-quality render, volumetric, 4k + +- name: Experimental | Cute Robot 3D + negative_prompt: low-quality rendering, photo, photorealistic, realism, ugly, worst + quality, low quality, lowres, JPEG artifacts + prompt: Professional 3D design of a cute and friendly futuristic robot with big + glowing eyes of {prompt}, charming animation, endearing personality, sleek and + exaggerated features, dynamic pose, captivating expression, expert character design, + vibrant and metallic textures, engaging storytelling, versatile animation style, + high-quality render, volumetric, 4k + +- name: Experimental | Cute Victorian + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Cute Victorian drawing art style of {prompt}, combines Victorian-era elegance + with cute aesthetics, soft and pastel colors, dynamic and charming compositions, + captures the essence of cute and historical worlds, professional-grade execution, + evokes a sense of vintage charm and cuteness + +- name: Experimental | Character Sheet Cartoon + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Character sheet style of {prompt}, expressive cartoon character, multiple + dynamic poses and exaggerated facial expressions, front, side, and back views, + action poses, emotion study, clean lines, vibrant colors, playful and engaging, + professional-grade character design, clearly defined features for animation, suitable + for creating character personality and storytelling, ideal for animation and game + design, well-organized layout showcasing emotions, movement, and body language. + +- name: Experimental | Cyber Couture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Cyber couture fashion style of {prompt}, inspired by futuristic and cybernetic + aesthetics, uses innovative materials and designs, professional-grade execution, + captures the essence of high-tech fashion, emphasizes creativity and technological + advancement + +- name: Experimental | Cybernetic Flora + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Cybernetic flora illustration style of {prompt}, blends plant life with + cybernetic elements, dynamic and futuristic composition, professional-grade execution, + captures the beauty of bio-mechanical fusion, evokes a sense of innovation and + natural harmony + +- name: Experimental | Divine Portraiture + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Divine portraiture art style of {prompt}, digital painting, ethereal and + spiritual, soft lighting with glowing halos, classical religious influence, rich + and muted color palette, captivating expression of serenity and devotion, intricate + detailing, professional-grade execution, evokes a sense of holiness and reverence, + high contrast between light and shadows, realistic and symbolic elements, 4k + +- name: Experimental | Dreamscape Mapping + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Dreamscape mapping illustration style of {prompt}, visualizes dreamlike + landscapes and surreal environments, uses imaginative and abstract elements, dynamic + composition, professional-grade execution, captures the essence of the subconscious + mind, evokes a sense of wonder and mystery + +- name: Experimental | Dreamwave + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Dreamwave illustration style of {prompt}, blends dreamy and surreal elements + with vibrant and fluid composition, uses soft gradients and glowing effects, professional-grade + execution, captures the essence of dreamscapes, evokes a sense of wonder and imagination + +- name: Experimental | Dreamy Animal + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Dreamy Animal illustration art style of {prompt}, combines dreamy elements + with adorable animals, soft and pastel colors, dynamic and charming compositions, + captures the essence of cute and dreamlike animal worlds, professional-grade execution, + evokes a sense of serenity and cuteness + +- name: Experimental | Eldritch Minimalism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Eldritch Minimalism painting art style of {prompt}, combines minimalist + and eldritch horror elements, stark and haunting compositions, muted and eerie + colors, captures the essence of horror with minimalist precision, professional-grade + execution, evokes a sense of existential dread and minimalist terror + +- name: Experimental | Ethereal Assassin 3D + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Ethereal Assassin 3D character art style of {prompt}, ghostly and stealthy, + shadowy figure, dynamic pose, glowing eyes, high-quality rendering techniques, + professional-grade execution, volumetric, 4k + +- name: Experimental | Ethereal Fluidity + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Ethereal fluidity painting art style of {prompt}, uses fluid and flowing + brushstrokes, creates a sense of movement and lightness, dynamic and abstract + composition, professional-grade execution, captures the beauty of fluid dynamics, + evokes a sense of calm and serenity + +- name: Experimental | Ethereal Steam + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Ethereal Steam painting art style of {prompt}, merges steampunk elements + with ethereal, ghostly imagery, soft pastel colors, wispy forms, intricate mechanical + details, combines the solidity of steampunk machinery with the lightness of ethereal + beings, professional-grade execution + +- name: Experimental | Fae Fantasy + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fae Fantasy painting art style of {prompt}, blends elements of fairies and + fantasy, soft lines, vibrant colors, whimsical compositions, captures the essence + of magical creatures and enchanted forests, professional-grade execution, evokes + a sense of fairy-tale magic and wonder + +- name: Experimental | Fairy Tale Chronicles + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fairy tale chronicles art style of {prompt}, digital painting, storybook-like + illustration, charming character, vibrant and pastel colors, whimsical environments, + detailed and imaginative scenes, professional-grade execution, creates an enchanting + and narrative-driven world + +- name: Experimental | Fairy Tale Cute + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fairy Tale Cute painting art style of {prompt}, blends fairy tale elements + with cute aesthetics, vibrant and pastel colors, imaginative and enchanting compositions, + captures the essence of cute fairy tale worlds, professional-grade execution, + evokes a sense of magic and charm + +- name: Experimental | Geomancer 3D + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Geomancer 3D character art style of {prompt}, earth magic user, intricate + robes with stone patterns, glowing runes, dynamic pose, high-quality rendering + techniques, professional-grade execution, volumetric, 4k + +- name: Experimental | Holographic Chic + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Holographic chic fashion style of {prompt}, incorporates holographic and + iridescent materials, futuristic and eye-catching designs, professional-grade + execution, captures the essence of modern and high-tech fashion, emphasizes creativity + and innovation + +- name: Experimental | Legends Digital Painting + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: legends art style of {prompt}, digital painting, epic and mystical, game + character with magical abilities, intricate details, rich color palette, atmospheric + effects, professional-grade execution, captures the essence of ancient legends + and powerful magic + +- name: Experimental | Liquid Light + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Liquid light painting art style of {prompt}, uses fluid and luminous colors, + creates a sense of light and movement, dynamic and abstract composition, professional-grade + execution, captures the beauty of illuminated art, evokes a sense of wonder and + serenity + +- name: Experimental | Mechanical Titan 3D + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Mechanical Titan 3D character of {prompt}, 3D mech, 3D render art style, + massive robotic entity, mechanical and industrial design, glowing power cores, + dynamic pose, high-quality rendering techniques, professional-grade execution, + volumetric, 4k + +- name: Experimental | Mythical Mechanica 3D + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Mythical Mechanica 3D render of {prompt}, blend of mythical creatures with + mechanical elements, dynamic lighting, vibrant colors, high-quality rendering + techniques, professional-grade execution, captivating visuals, volumetric, 4k + +- name: Experimental | Nebula Dreams + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Nebula Dreams 3D render of {prompt}, cosmic clouds and nebulas, vibrant + colors, dynamic lighting, surreal and dreamlike, high-quality rendering techniques, + professional-grade execution, captivating visuals, volumetric, 4k + +- name: Experimental | Neural Dreams + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Neural dreams illustration style of {prompt}, inspired by neural networks + and artificial intelligence, abstract and surreal, dynamic compositions, vibrant + and fluid colors, professional-grade execution, captures the essence of machine + learning and human creativity + +- name: Experimental | Occult Expressionism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Occult Expressionism painting art style of {prompt}, merges abstract expressionism + and occult themes, dark and chaotic compositions, vibrant and eerie colors, expressive + brushwork, captures the essence of emotional turmoil and supernatural elements, + professional-grade execution, evokes a sense of mystical chaos and expressive + darkness + +- name: Experimental | Pastel Goth Cute + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Pastel Goth Cute illustration art style of {prompt}, combines pastel goth + elements with cute aesthetics, soft and pastel colors, dynamic and charming compositions, + captures the essence of cuteness with a goth twist, professional-grade execution, + evokes a sense of sweet darkness and charm + +- name: Experimental | Phantasmagoric Abstract + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Phantasmagoric Abstract painting art style of {prompt}, blends abstract + expressionism with phantasmagoric elements, chaotic and dreamlike compositions, + surreal colors, captures the essence of abstract horror and surreal beauty, professional-grade + execution, evokes a sense of nightmarish abstraction and phantasmagoric wonder + +- name: Experimental | Phantasmal Visions + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Phantasmal visions illustration style of {prompt}, blends ghostly and surreal + elements with vibrant and fluid compositions, uses soft gradients and glowing + effects, professional-grade execution, captures the essence of ethereal beauty, + evokes a sense of wonder and mystery + +- name: Experimental | Phantom Rococo + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Phantom Rococo painting art style of {prompt}, blends rococo and ghostly + elements, ornate and intricate compositions, soft and eerie colors, captures the + elegance of rococo with a spectral twist, professional-grade execution, evokes + a sense of haunted beauty and rococo grace + +- name: Experimental | Quantum Sketching + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Quantum sketching art style of {prompt}, abstract and dynamic, inspired + by quantum physics, uses fluid lines and shapes, professional-grade execution, + captures the essence of quantum mechanics, evokes a sense of mystery and complexity + +- name: Experimental | Radiant Fantasy + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Radiant Fantasy 3D render of {prompt}, glowing fantasy landscapes, vibrant + colors, dynamic lighting, immersive presentation, high-quality rendering techniques, + professional-grade execution, captivating visuals, volumetric, 4k + +- name: Experimental | Robot Cute + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Robot Cute illustration art style of {prompt}, blends robotic elements with + cute aesthetics, vibrant and pastel colors, dynamic and charming compositions, + captures the essence of cute robots in playful scenes, professional-grade execution, + evokes a sense of mechanical cuteness and whimsy + +- name: Experimental | Shadow Mage 3D + negative_prompt: painting, low-quality rendering, photo, photorealistic, realism, + ugly, worst quality, low quality, lowres, JPEG artifacts + prompt: Shadow Mage 3D character art style of {prompt}, master of dark magic, ethereal + and mysterious, glowing eyes, shadowy effects, dynamic pose, high-quality rendering + techniques, professional-grade execution, volumetric, 4k + +- name: Experimental | Voodoo Surrealism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Voodoo Surrealism painting art style of {prompt}, combines voodoo and surrealist + elements, dark and mystical composition, vibrant and eerie colors, symbolic and + dreamlike imagery, captures the essence of spiritual mysticism and surreal fantasy, + professional-grade execution, evokes a sense of supernatural wonder and surreal + mystery + +- name: Experimental | Whimsical Chibi + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Whimsical Chibi painting art style of {prompt}, combines whimsical elements + with chibi character, soft and pastel colors, dynamic and playful compositions, + captures the essence of cuteness and whimsy, professional-grade execution, evokes + a sense of joy and delight + +- name: Experimental | Whimsical Love + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Whimsical cartoon illustration style of {prompt}, digital painting illustration, + characters in a charming, playful pose, soft and heartwarming color palette, exaggerated + features and expressions, dynamic yet simple composition, captures the essence + of love and joy, lighthearted, cute, and endearing, professional-grade execution, + evokes a sense of warmth and affection, with heart symbols and playful elements + to enhance the emotional connection + +- name: Fashion | Beachwear + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Beachwear fashion style of {prompt},designed for leisure activities and + relaxation, features lightweight and breezy clothing, reflects a carefree and + laid-back attitude + +- name: Fashion | Boho + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Boho fashion style of {prompt},inspired by bohemian and hippie aesthetics, + characterized by free-spirited and eclectic clothing choices, features flowing + fabrics, floral prints, and ethnic-inspired details, promotes individuality and + self-expression, embraces a laid-back and carefree attitude + +- name: Fashion | Cosplay + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Cosplay fashion style of {prompt},allows individuals to embody their favorite + fictional characters, promotes creativity and craftsmanship, features elaborate + costumes and accessories, celebrates diverse interests and fandoms + +- name: Fashion | Cyberpunk + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Cyberpunk fashion style of {prompt},inspired by futuristic dystopian settings, + features high-tech and futuristic clothing, incorporates elements of technology + and urban culture, promotes a bold and avant-garde aesthetic + +- name: Fashion | Emo Fashion + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Emo fashion style of {prompt},characterized by dark colors, layered clothing, + and edgy accessories, allows individuals to express emotions and individuality, + often incorporates elements of punk and gothic styles, promotes self-expression + and authenticity + +- name: Fashion | Glamour + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Glamour fashion style of {prompt},epitomizes sophistication and elegance, + features luxurious fabrics like silk and satin, embellishments, promotes a polished + and glamorous look, opulence and refinement + +- name: Fashion | Goth + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Goth fashion style of {prompt},characterized by dark and dramatic clothing + choices, often includes black clothing, lace, leather, and Victorian-inspired + elements, promotes a sense of mystery and theatricality, celebrates beauty in + the macabre, encourages self-expression and embracing the unconventional + +- name: Fashion | Metalhead + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Metalhead fashion style of {prompt},inspired by heavy metal music culture, + features black clothing, leather jackets, band t-shirts, and metal accessories, + promotes individuality and rebellion, celebrates a love for music and expression + through clothing + +- name: Fashion | Normcore + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Normcore fashion style of {prompt},embraces simplicity and everyday clothing + items, focuses on comfort and practicality, promotes a minimalist and unpretentious + aesthetic, encourages mixing and matching basic wardrobe staples, celebrates understated + elegance and timeless style + +- name: Fashion | Preppy + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Preppy fashion style of {prompt},characterized by classic and timeless clothing + choices, features tailored silhouettes, vibrant colors, and traditional patterns + like plaid and stripes, promotes a polished and sophisticated look, reflects a + sense of privilege and tradition associated with elite education + +- name: Fashion | Psychobilly + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Psychobilly fashion style of {prompt},combines elements of rockabilly, punk, + and retro influences, characterized by bold prints, vintage-inspired clothing, + and edgy accessories, promotes a rebellious and retro aesthetic, encourages individuality + and creativity + +- name: Fashion | Rave + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Rave fashion style of {prompt},vibrant and colorful clothing choices, featuring + neon colors, bold patterns, and futuristic designs, encourages self-expression + and creativity, incorporates elements of dance culture and electronic music, promotes + a sense of community and celebration + +- name: Fashion | Sci-Fi + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Sci-Fi Inspired fashion style of {prompt},draws inspiration from science + fiction movies, and futurism, features futuristic silhouettes, and avant-garde + designs, promotes imagination and innovation in fashion, explores concepts of + technology + +- name: Fashion | Sportswear + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Sportswear fashion style of {prompt},designed for athletic activities and + casual wear, features comfortable and functional clothing, and performance fabrics, + promotes an active lifestyle and physical fitness + +- name: Fashion | Steampunk + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Steampunk fashion style of {prompt},inspired by Victorian-era machinery + and science fiction, features a mix of vintage clothing with futuristic elements, + promotes creativity and craftsmanship, encourages DIY and upcycling, celebrates + a love for exploration and adventure + +- name: Fashion | Streetwear + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Streetwear fashion style of {prompt},influenced by urban culture and street + fashion, features casual and comfortable clothing with bold graphics, promotes + self-expression and individuality, celebrates creativity and innovation in design, + reflects the diverse influences of music, art, and sports + +- name: Fashion | Vintage + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Vintage fashion style of {prompt},embraces clothing and accessories from + previous eras, celebrates timeless designs and craftsmanship, allows for unique + and one-of-a-kind looks, evokes nostalgia and a sense of history + +- name: Fashion | Winter + negative_prompt: signature, watermark, low quality, JPEG artifacts, off-center, + deformed, cropped, worst quality + prompt: Winter fashion style of {prompt},designed for cold weather, features cozy + and warm clothing, comfort and chicness + +- name: Illustration | Art Deco + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Art Deco illustration style of {prompt}, elegant and geometric designs, + streamlined and symmetrical compositions, embodies the glamour and sophistication + of the Art Deco era, influenced by modernism and machine aesthetics + +- name: Illustration | Animal Cute + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: "cute cartoon animal illustration of {prompt}, adorable and fluffy animal\ + \ with large eyes and round features, playful and endearing expressions, vibrant\ + \ and lively colors, whimsical and soft design, perfect for children\u2019s books\ + \ or merchandise" + +- name: Illustration | Anime + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: anime art style of {prompt}, anime digital art, expressive anime art, dynamic + composition, anime style, vibrant, studio anime, highly detailed + +- name: Illustration | Anime > Chibi + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Chibi anime art style of {prompt}, cute and exaggerated characters, large + heads and small bodies, expressive facial features, playful and whimsical, popular + in manga and anime fandoms + +- name: Illustration | Anime > Detailed Illustration + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: hyper-detailed anime illustration of {prompt}, anime art style, every element + meticulously crafted, complex backgrounds with rich textures and depth, vibrant + and harmonious color palette, dynamic lighting and shadows, capturing fine details + in every scene, magical or surreal atmosphere, lifelike gestures and movements, + elaborate compositions with multiple layers of detail, blending realism and anime + aesthetics, fully immersive and visually captivating storytelling + +- name: Illustration | Anime > Sci-Fi Cityscape + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: futuristic anime cityscape of {prompt}, anime art style, neon-lit skyscrapers, + advanced technology, bustling urban environment, clean lines and sharp details, + sci-fi atmosphere, cyberpunk vibes, advanced infrastructure, dramatic perspectives, + high-tech and futuristic designs + +- name: Illustration | Anime > Fantasy Landscape + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: fantasy anime landscape of {prompt}, vast and imaginative anime landscape, + epic and cinematic scenery, detailed anime, magical and otherworldly atmosphere, + fantastical environments, lush and vibrant colors + +- name: Illustration | Anime > Kawaii + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Kawaii anime art style of {prompt}, cute, adorable characters with big eyes + and small mouths, pastel colors, playful and endearing + +- name: Illustration | Anime > Mecha + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Mecha anime art style of {prompt}, focuses on giant robots and mechanical + suits, intricate mechanical designs, dynamic action scenes, futuristic settings, + appeals to fans of science fiction and action genres + +- name: Illustration | Anime > Studio Ghibli Style + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: "Studio Ghibli anime style of {prompt}, anime richly detailed landscapes,\ + \ lush greenery, magical atmosphere, soft and vibrant color palettes, whimsical\ + \ and dreamlike anime environments, beautifully crafted nature scenes, evokes\ + \ nostalgia and serenity, inspired by Hayao Miyazaki\u2019s worldbuilding." + +- name: Illustration | Anime > Realistic + negative_prompt: painting, drawing, signature, watermark, ugly, off-center, deformed, + cropped, frame, worst quality, low quality, lowres, JPEG artifacts + prompt: Realistic anime art style of {prompt}, combines anime aesthetics with lifelike + details, detailed character designs, intricate backgrounds, immersive storytelling + +- name: Illustration | Cartoon + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Cartoon illustration style of {prompt}, whimsical and expressive characters + exaggerated features and emotions, versatile and adaptable for various storytelling + purposes + +- name: Illustration | Cartoon Character on White BG + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: cartoon digital painting art style of {prompt}, isolated on solid white + background, adorable, big eyes, cute cartoon character + +- name: Illustration | Cartoon Pastel Cute + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: "pastel cute cartoon illustration of {prompt}, soft and soothing pastel\ + \ color palette, adorable characters with round and simple shapes, gentle gradients,\ + \ light and fluffy textures, whimsical and heartwarming, perfect for children\u2019\ + s content, kawaii and endearing design" + +- name: Illustration | Children's book + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Children's book illustration style of {prompt}, whimsical and charming imagery, + bright and playful colors, engaging characters and storytelling, cartoon + +- name: Illustration | Cute Food Character + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: cute cartoon food character illustration of {prompt}, anthropomorphic food + item with big eyes and smiles, bright and colorful design, simple shapes and charming + expressions, playful and humorous, designed to evoke joy and hunger, adorable + and delightful + +- name: Illustration | Doodle Cute + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: "doodle cute cartoon illustration of {prompt}, simple and childlike hand-drawn\ + \ doodles, playful and spontaneous, round and soft characters, bright and cheerful\ + \ colors, perfect for kids\u2019 content, casual and fun design that evokes happiness\ + \ and creativity" + +- name: Illustration | Fantasy + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fantasy illustration style of {prompt}, transports viewers to imaginative + worlds, epic landscape, and heroic adventures, sparks wonder and inspiration + +- name: Illustration | Fantasy Cartoon on White BG + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Watercolor cartoon illustration on solid white background of {prompt}, enchanted, + adorable, Digital Cartoon Illustration, a simple and charming design + +- name: Illustration | Fashion + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fashion illustration style of {prompt}, captures the latest trends and designs + in clothing and accessories, elegant and stylized figures, showcases creativity + and imagination in the fashion industry + +- name: Illustration | Flat Cute Cartoon + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: "flat cute cartoon illustration of {prompt}, simple and bold shapes, minimal\ + \ shading, bright and cheerful colors, playful characters, round edges and exaggerated\ + \ features, modern and clean aesthetic, perfect for children\u2019s media or minimalist\ + \ designs" + +- name: Illustration | Game Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Game art illustration style of {prompt}, game illustration, diverse and + immersive visuals, whimsical, dynamic characters and environments, rich color + palettes, enhances storytelling and gameplay experience + +- name: Illustration | Illuminated Manuscript + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Illuminated manuscript art style illustration of {prompt}, medieval illustration, + intricate and detailed illustration, vibrant colors and gold leaf accents, showcases + meticulous craftsmanship and dedication + +- name: Illustration | Pop Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Pop art illustration style of {prompt}, vibrant and bold colors, uses imagery + from popular culture, incorporate elements of mass media and consumerism, celebrates + the mundane and everyday objects + +- name: Illustration | Retro + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Retro illustration style of {prompt}, nostalgic and vintage aesthetics, + inspired by design elements from past decades, evokes a sense of nostalgia and + charm + +- name: Illustration | Modern + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Modern illustration style of {prompt}, contemporary and cutting-edge, embraces + new techniques and technologies, reflects current trends and cultural influences + +- name: Illustration | Modernism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Modernism illustration style of {prompt}, embraces experimentation and abstraction, + breaks away from traditional representation, explores new forms and techniques, + reflects the spirit of innovation and progress. + +- name: Illustration | Super Cute Creature + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: super cute cartoon creature illustration of {prompt}, tiny fantasy creature + with adorable and exaggerated features, bright and bold colors, playful and quirky + designs, friendly and inviting expressions, whimsical and joyful, perfect for + kids and fantasy content + +- name: Illustration | Sticker + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Sticker of {prompt}, sticker art style isolated on solid color background + +- name: Illustration | Sticker Cute + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Cute adorable cartoon sticker art style isolated on solid color background, + {prompt}, charming and endearing characters or designs, appeals to emotions like + joy and affection + +- name: Illustration | Sticker Watercolor + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Sticker of {prompt}, art style isolated on solid color background of {prompt}, + watercolor painting art style, transparent and delicate layers, luminous and ethereal + effects, spontaneous and fluid compositions, subtle gradients and blending + +- name: Painting | Abstract Expressionism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Abstract Expressionism art style of {prompt}, emphasizes spontaneous and + gestural brushwork, explores emotions and inner thoughts, non-representational + and subjective influenced by the subconscious and the act of painting itself + +- name: Painting | Acrylic + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Acrylic Paint art style of {prompt}, fast-drying paint, versatile, vibrant + colors, expressive brushwork, rich textures, dynamic compositions, bold contrasts, + layered depth, tactile quality, fluid movement, lively energy, immersive atmosphere, + professional-grade finish + +- name: Painting | Aerosol + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Aerosol paint art style of {prompt}, spray painted, vibrant colors, seamless + blending, dynamic compositions, bold contrasts, urban aesthetic, professional-grade + results + +- name: Painting | Children Book Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: digital painting of {prompt}, whimsical children's book art style, charming + and inviting illustration style, soft and rounded shapes, warm and inviting color + palette, creates a friendly and serene atmosphere, simplicity and clarity make + it accessible and enjoyable for a wide audience, imaginative scene with fantastical + elements in a storybook-like setting, encourages viewer's sense of wonder and + exploration + +- name: Painting | Chinese Ink Brush + negative_prompt: Chinese writing, signature, watermark, photo, photorealistic, realism, + ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, low + quality, lowres, JPEG artifacts + prompt: Chinese ink brush art style of {prompt}, graceful brushwork, elegant compositions, + traditional motifs, professional-grade execution, captures the essence of Chinese + culture and aesthetics + +- name: Painting | Digital + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Digital painting art style of {prompt}, dynamic composition, professional-grade + execution + +- name: Painting | Digital Fantasy Game Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: digital painting art style of {prompt}, fantasy video game concept art style, + dynamic and richly detailed composition, vibrant colors, action-packed scene, + emphasizes dramatic poses and expressive faces, immersive environments with fantasy + backgrounds, designed to draw viewers into fantastical worlds, typical for character + and environment designs in video games + +- name: Painting | Fantasy Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fantasy painting art style of {prompt}, imaginative, dynamic composition, + professional-grade execution, creates immersive world and landscape, painterly, + epic, magical + +- name: Painting | Fantasy Cartoon + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fantasy cartoon concept art style of {prompt}, cartoon cute digital painting, + imaginative, dynamic composition, whimsical expression, adorable, playful character, + professional-grade execution, creates immersive world and landscape, brush strokes + +- name: Painting | Fantasy Digital Art + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fantasy concept art style of {prompt}, digital painting, imaginative, dynamic + composition, professional-grade execution, creates immersive world and landscape, + brush strokes, epic, magical + +- name: Painting | Fantasy Game Concept Item + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fantasy game concept art on solid color background of {prompt}, game item + design, detailed and painterly style, focus on fantasy elements, attention to + texture and additional elements like, suitable for video games or animation + +- name: Painting | Fresco + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Fresco painting art style of {prompt}, ancient painting technique dating + back to antiquity, rich colors and textures, timeless aesthetic, historical significance, + evokes a sense of tradition and craftsmanship + +- name: Painting | Gouache + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: gouache painting style of {prompt}, gouache opaque colors, matte finish, + vibrant hues, dynamic compositions, professional-grade result, adds depth and + texture + +- name: Painting | Gouache Cartoon + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: gouache painting style of {prompt}, gouache vibrant colors, adorable, whimsical + expression, playful character, dynamic compositions, professional-grade result, + adds depth and texture + +- name: Painting | Graffiti + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Graffiti aerosol painting art style of {prompt}, bold composition, vibrant + colors, mural, urban aesthetic, hip hop culture + +- name: Painting | Grimdark + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Grimdark painting art style of {prompt}, dark and brooding composition, + dramatic lighting, captures the sinister and macabre atmosphere + +- name: Painting | Impasto + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: impasto painting art style of {prompt}, thick and textured brushwork, vibrant + colors, tactile quality, expressive strokes, dynamic compositions, bold contrasts, + dramatic lighting effects, immersive texture, professional-grade finish, adds + depth and dimension, creates visual interest + +- name: Painting | Impressionism Painting Style + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Impressionism painting art style of {prompt}, loose brushwork, captures + the fleeting effects of light and atmosphere + +- name: Painting | Magic Realism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Magic realism painting art style of {prompt}, surreal compositions, vibrant + colors, blurs the line between reality and fantasy + +- name: Painting | Oil Painting + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: oil painting art style of {prompt}, rich colors, lush textures, expressive + brushwork, blendable layers, dynamic compositions, professional-grade finish, + versatile medium, timeless elegance, immersive depth, vibrant hues, intricate + detailing, adds depth and dimension + +- name: Painting | Palette Knife + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: palette knife painting art style of {prompt}, bold textures, impasto effects, + expressive strokes, vibrant colors, dynamic compositions, professional-grade finish, + adds depth and dimension, creates tactile quality, immersive texture, contemporary + aesthetic + +- name: Painting | Pointillism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, JPEG artifacts + prompt: Pointillism art style of {prompt}, uses dots of color to create images, + optical blending creates vibrant and textured surfaces + +- name: Painting | Renaissance + negative_prompt: painting frame, signature, watermark, photo, photorealistic, realism, + ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, low + quality, lowres, JPEG artifacts + prompt: oil painting art style from Renaissance period of {prompt}, masterful composition, + Renaissance mood, renaissance oil painting, brush strokes + +- name: Painting | Retrofuturism + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Retrofuturism painting art style of {prompt}, nostalgic composition, combines + retro aesthetics with futuristic elements + +- name: Painting | Sumi-e Painting + negative_prompt: Japanese writing, Chinese writing, chinese stamp, signature, watermark, + photo, photorealistic, realism, ugly, off-center, deformed, 35mm film, dslr, cropped, + frame, worst quality, low quality, lowres, JPEG artifacts + prompt: Sumi-e painting style of {prompt}, traditional Japanese ink wash painting, + emphasizes simplicity and elegance, expressive brushwork, captures the essence + of the subject with minimal strokes, meditative and reflective + +- name: Painting | Watercolor + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Watercolor painting art style of {prompt}, transparent and delicate layers, + luminous and ethereal effects, spontaneous and fluid compositions, subtle gradients + and blending, captures light and atmosphere, creates soft and dreamy scenes + +- name: Painting | Watercolor > Cartoon + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Cartoon watercolor painting style of {prompt}, playful cartoon character, + dynamic composition, whimsical expression, soft and fluid texture, adds charm + and personality, subtle gradients and blending, captures light and atmosphere, + creates soft and dreamy scenes, watercolor texture + +- name: Painting | Watercolor on White Background + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Watercolor painting art style of {prompt},isolated on solid white background, + transparent and delicate layers, luminous and ethereal effects, subtle gradients + and blending, captures light and atmosphere, creates soft and dreamy scenes + +- name: Photography | Aerial + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: aerial photography of {prompt}, drone photography, sweeping landscapes, + unique perspectives, epic scale, capturing from above, cinematic storytelling + +- name: Photography | Architecture + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: architecture photography of {prompt}, striking structures, clean lines, + geometric shapes, dramatic angles, play of light and shadow, capturing architectural + details, showcasing design elements, evoking mood, professional lighting, precise + compositions, emphasizing scale and proportion, creating depth, architectural + storytelling + +- name: Photography | Black and White + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: black and white photography of {prompt}, timeless elegance, classic aesthetic, + dramatic contrasts, emphasizing shapes and textures, evoking nostalgia, focusing + on light and shadow, monochromatic storytelling, capturing mood and emotion, artistic + expression, minimalist compositions, conveying depth and atmosphere, timeless + beauty + +- name: Photography | Cinematic + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: Cinematic photography of {prompt}, movie mood, cinematic light, compelling + composition, storytelling elements, conveys emotion, mood, and narrative depth, + creating visually striking images that feel like still frames from a film + +- name: Photography | Double Exposure + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: double exposure photography of {prompt}, layered imagery, blending two scenes, + creating surreal compositions, overlaying visuals, artistic interpretation of + reality, capturing depth of emotion, storytelling through visual layering, ethereal + and dreamlike effects. + +- name: Photography | Documentary + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: documentary photography of {prompt}, capturing reality, social issues, human + experiences, photojournalistic storytelling, candid moments, authentic narratives, + raising awareness, documenting history, preserving cultural heritage, immersive + storytelling, evoking empathy, powerful imagery, journalistic integrity + +- name: Photography | Experimental + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: experimental photography of {prompt}, pushing the boundaries of creativity, + unconventional techniques, innovative concepts, artistic exploration, thought-provoking + imagery, pushing the boundaries of traditional photography + +- name: Photography | Fashion + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: fashion photography of {prompt}, glamorous, stylish attire, captivating + pose, dynamic composition, high-fashion aesthetic, professional studio lighting, + expert styling, showcasing trend, conveying elegance, conveying attitude, evoking + emotion, creating visual impact, editorial storytelling, artistic interpretation, + fashion-forward visual + +- name: Photography | Fashion Editorial + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: fashion editorial photography of {prompt}, high-fashion imagery, avant-garde + aesthetics, editorial storytelling, conveying fashion trends and concepts, artistic + interpretation, expert styling, professional lighting, capturing fashion-forward + visuals, creating visual impact, evoking emotion, pushing creative boundaries + +- name: Photography | Fine Art + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: fine art photography of {prompt}, conceptual expression, evocative imagery, + artistic interpretation, emotional resonance, creative composition, professional + lighting, exquisite detail, immersive experience, storytelling through imagery, + conveying mood, unique perspective, thought-provoking concept, capturing beauty, + transcending reality + +- name: Photography | Flower + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: flower photography of {prompt}, capturing nature's beauty, delicate petals, + vibrant colors, intricate details, showcasing botanical diversity, evoking emotions, + conveying serenity, expert composition, professional lighting, immersive floral + portrait, timeless elegance + +- name: Photography | Food + negative_prompt: bad anatomy, unappetizing, sloppy, unprofessional, comics, cropped, + cross-eyed, worst quality, low quality, painting, 3D render, drawing, crayon, + sketch, graphite, impressionist, cartoon, anime, noisy, blurry, soft, deformed, + ugly, lowres, low details, JPEG artifacts, airbrushed, semi-realistic, CGI, render, + Blender, digital art, manga, amateur, mutilated, distorted + prompt: food photography of {prompt}, mouthwatering dishes, vibrant colors, appetizing + presentations, enticing compositions, delicious details, showcasing textures, + capturing freshness, professional lighting, expert styling, culinary storytelling, + enhancing food appeal + +- name: Photography | Infrared + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: infrared photography of {prompt}, capturing unseen light spectrum, surreal, + dreamlike effect, ethereal glow, shifting colors, stark contrasts, creating otherworldly + scenes, artistic interpretation, capturing heat and light patterns, visually distinctive + composition + +- name: Photography | Landscape + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: landscape photography of {prompt}, vast vistas, natural beauty, dynamic + compositions, captivating scenery, immersive, serene + +- name: Photography | Long exposure + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: long exposure photography of {prompt}, streaking lights, smooth motion, + dreamy landscapes, ethereal atmosphere, light painting, creative expression, time + manipulation, surreal effects, captivating visuals, artistic interpretation, immersive + experience, unique perspective + +- name: Photography | Low key + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: low key photography of {prompt}, dramatic lighting, deep shadows, rich contrast, + moody atmosphere, intense emotions, cinematic feel, mysterious ambiance, emphasizing + shape and form, creating depth, evoking drama, storytelling through shadows, professional + technique + +- name: Photography | Macro + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: macro photography of {prompt}, extreme close-ups, intricate details, unseen + worlds, capturing texture, emphasizing details, revealing beauty in small things, + professional lighting, precise focusing, artistic expression, immersive experience, + expert technique + +- name: Photography | Microscopic + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, drawing, crayon, sketch, graphite, impressionist, cartoon, anime, noisy, + blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, airbrushed, + semi-realistic, digital art, manga, amateur, mutilated, distorted + prompt: microscopic photography of {prompt}, magnified, molecular, unseen worlds + revealed, scientific exploration, capturing molecular details, professional imaging + techniques, precise focusing, revealing hidden beauty, scientific discovery, artistic + interpretation, nano scale, revealing the wonders of the unseen + +- name: Photography | Minimalist + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: minimalist photography of {prompt}, simplicity in composition, clean lines, + uncluttered visuals, negative space, focusing on essential elements, conveying + tranquility, understated beauty, elegant aesthetics, subtle storytelling, capturing + the essence of minimalism + +- name: Photography | Mockup + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: mockup photography of {prompt}, professional presentation, blank, empty, + creative composition, versatile use, professional lighting, expert styling, high-quality + imagery, realistic perspective, accurate representation + +- name: Photography | Night + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: night photography of {prompt}, nocturnal beauty, city lights, starry skies, + celestial wonders, moonlit landscapes, urban glow, capturing the essence of darkness, + ethereal atmosphere, dramatic shadows, magical ambiance, long exposure techniques, + expert use of light sources + +- name: Photography | Pet + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: pet photography of {prompt}, adorable portrait, playful moment, expressive + eyes, showcasing personality, professional lighting, expert composition, capturing + joyful interaction, conveying emotion, creative composition, enhancing pet beauty, + pet-friendly environment, storytelling through imagery + +- name: Photography | Portrait + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: portrait photography of {prompt}, capturing emotion, personality, flattering + lighting, professional, engaging, compelling composition + +- name: Photography | Portrait > Cinematic + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: Cinematic portrait photography of {prompt}, capture subject in a way that + resembles a still frame from a movie, cinematic lighting, story, narrative quality, + drawing viewers into the scene and evoking a sense of cinematic immersion, capturing + emotion, professional, engaging, compelling composition + +- name: Photography | Portrait > Closeup + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: closeup portrait photography of {prompt}, beautiful eyes, capturing emotion, + personality, flattering lighting, professional, engaging, compelling composition + +- name: Photography | Portrait > Fantasy + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: fantasy portrait photography of {prompt}, beautiful eyes, ethereal beauty, + magical atmosphere, whimsical element, enchanting composition, mystical storytelling, + professional lighting, imaginative concept, creative styling, otherworldly aesthetic, + fantasy romance, surreal visual, enchanting character, captivating narrative, + intricate detail, vibrant color, fantastical landscape + +- name: Photography | Product + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: product photography of {prompt}, crisp details, clean composition, attention + to detail, professional lighting, precise focus, appealing aesthetics, capturing + textures, high-quality imagery, commercial appeal, creative presentation + +- name: Photography | Reflection + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: reflection photography of {prompt}, mirror-like surfaces, symmetry, visual + echoes, capturing dual realities, distorted perspectives, ethereal beauty, introspective + imagery, mesmerizing patterns, reflecting mood and emotion, creating visual depth, + playing with perception + +- name: Photography | Sport + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: sport photography of {prompt}, action-packed moment, dynamic, intense competition, + thrilling movement, showcasing skill, conveying energy, adrenaline-fueled visuals, + immersive experience, storytelling through action, dramatic composition, showcasing + passion, capturing decisive moments, vibrant colors, dynamic composition, powerful + imagery, engaging perspective + +- name: Photography | Street + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: street photography of {prompt}, capturing urban life, candid moment, everyday + story, raw emotion, dynamic composition, spontaneous moment, artistic interpretation, + evoking the energy of the street, authentic urban atmosphere, storytelling through + real life + +- name: Photography | Still Life + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: still life photography of {prompt}, capturing tranquility, timeless beauty, + meticulous arrangement, exquisite detail, professional lighting, expert composition, + evocative mood, storytelling through objects, artistic interpretation, creative + expression, showcasing textures, intricate patterns, enhancing atmosphere, conveying + emotions, masterful technique, immersive experience + +- name: Photography | Surreal + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: surreal photography of {prompt}, dreamlike imagery, subconscious exploration, + bending reality, imaginative narratives, juxtaposing elements, evoking wonder + and awe, transcending boundaries, challenging perceptions, fantastical landscapes, + otherworldly atmospheres + +- name: Photography | Time-lapse + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: time-lapse photography of {prompt}, dynamic motion, fluid transition, changing + landscape, evolving scene, captivating visual storytelling, accelerated time + +- name: Photography | Underwater + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: underwater photography of {prompt}, otherworldly landscape, unique perspective, + ethereal lighting, dynamic composition, captivating underwater scene, immersive, + serene, expert lighting technique, breathtaking moment captured + +- name: Photography | Vintage + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: vintage photography of {prompt}, nostalgic charm, timeless appeal, old-world + aesthetics, classic elegance, warm tones, soft focus, aged textures, evoking nostalgia, + historical ambiance, storytelling through imagery, vintage atmosphere, timeless + compositions, authentic vintage look, professional technique + +- name: Photography | Wildlife + negative_prompt: bad anatomy, comics, cropped, cross-eyed, worst quality, low quality, + painting, 3D render, drawing, crayon, sketch, graphite, impressionist, cartoon, + anime, noisy, blurry, soft, deformed, ugly, lowres, low details, JPEG artifacts, + airbrushed, semi-realistic, CGI, render, Blender, digital art, manga, amateur, + mutilated, distorted + prompt: wildlife photography of {prompt}, capturing nature's beauty, breathtaking + landscapes, immersive experience, storytelling through imagery, showcasing wildlife + behavior, sharp details, evocative composition, unique perspective + +- name: Sculpture | Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifact + prompt: Sculpture style of {prompt}, three-dimensional art form, allows for the + creation of expressive and tactile works using various materials, embodies creativity + and artistic vision + +- name: Sculpture | Abstract Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Abstract sculpture {prompt}, abstract scultpure art style, emphasizes form, + shape, and texture over realistic representation, explores the relationships between + volume, space, and material, often uses geometric or organic forms, avant-garde + and innovative design, dynamic and expressive, minimal or complex, allows for + open interpretation and emotional impact + +- name: Sculpture | Alebrije Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Alebrije sculpture style of {prompt}, vibrant and fantastical Mexican folk + art sculpture, intricate and whimsical figure, handcrafted, celebrates creativity + and imagination + +- name: Sculpture | Bas-relief + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Bas-relief art style of {prompt}, sculptural technique where figures or + designs are raised slightly from the background, creates depth and texture + +- name: Sculpture | Bronze Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Bronze sculpture craft style of {prompt}, utilizes bronze as the primary + material for creating three-dimensional artworks, known for its durability and + timeless beauty, allows for intricate detailing and expressive forms + +- name: Sculpture | Clay Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Clay sculpture craft style of {prompt}, utilizes clay as the primary material + for creating three-dimensional artworks, allows for versatile shaping and modeling + technique + +- name: Sculpture | Fantasy Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Fantasy sculpture of {prompt}, fantasy sculpture art style, brings mythical + and fantastical creatures or worlds to life, highly imaginative and detailed, + often features magical beings, enchanted landscapes, or legendary figures, intricate + and expressive design, evokes a sense of wonder and adventure, captures the essence + of otherworldly beauty, dynamic and ethereal forms + +- name: Sculpture | Haniwa + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Haniwa craft style of {prompt}, ancient Japanese burial sculptures, simplistic + and stylized figure, cultural and historical significance, preserves traditional + craftsmanship and artistry + +- name: Sculpture | Ice Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Ice sculpture {prompt}, ice sculpture art style, made of ice, temporary + and ephemeral art form using ice, intricate detailing and craftsmanship, dramatic + lighting and clear, glass-like appearance + +- name: Sculpture | Jade Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Jade sculpture craft style of {prompt}, utilizes jade as the primary material + for creating three-dimensional artworks, esteemed for its beauty and cultural + significance, allows for intricate carving and sculpting techniques + +- name: Sculpture | Marble Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Marble sculpture craft style of {prompt}, utilizes marble as the primary + material for creating three-dimensional artworks, renowned for its elegance and + beauty, allows for intricate detailing and smooth finishes, timeless and enduring + +- name: Sculpture | Netsuke + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Netsuke craft style of {prompt},traditional Japanese miniature sculpture, + intricately carved and detailed, functional and decorative, reflects Japanese + culture and craftsmanship + +- name: Sculpture | Olmec + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Olmec craft style of {prompt}, ancient Mesoamerican art tradition, iconic + stone sculpture and figurine, rich cultural heritage, significant influence on + subsequent civilizations + +- name: Sculpture | Gold Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Gold sculpture craft style of {prompt}, utilizes gold as the primary material + for creating three-dimensional artworks, embodies luxury and opulence, allows + for intricate detailing and fine craftsmanship + +- name: Sculpture | Sand Scultpure + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Sand sculpture art style of {prompt}, temporary and ephemeral art form created + by shaping and carving sand, showcases creativity and skill + +- name: Sculpture | Stone Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Stone sculpture craft style of {prompt},utilizes stone as the primary material + for creating three-dimensional artworks, allows for intricate carving and sculpting + techniques, durable and long-lasting, embodies strength and solidity + +- name: Sculpture | Terracotta Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Terracotta sculpture of {prompt}, Terracotta sculpture craft style, traditional + clay-based material, earthy and warm tones, versatile and used across cultures, + often for architectural or decorative works, allows for textured and organic forms + traditional clay-based material + +- name: Sculpture | Wooden Sculpture + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Wooden sculpture craft style of {prompt},utilizes wood as the primary material + for creating three-dimensional artworks, showcases the natural beauty and texture + of wood, allows for intricate detailing and expressive forms + +- name: Sculpture | Wood Carving + negative_prompt: signature, watermark, ugly, off-center, deformed, cropped, worst + quality, low quality, lowres, JPEG artifacts + prompt: Wood carving art style of {prompt},sculptural technique that involves carving + wood to create three-dimensional forms, showcases craftsmanship and precision + +- name: Vector | Cartoon Vector + negative_prompt: signature, shading, gradient, painting, watermark, photo, photorealistic, + realism, ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, + low quality, lowres, JPEG artifacts + prompt: cartoon vector art style of {prompt}, playful and vibrant, bold outlines, + colorful and expressive characters, simplified shapes, dynamic composition, professional-grade + vector illustration, scalable and editable, ideal for animation, web, and print + +- name: Vector | Coloring Book Page + negative_prompt: painting, signature, shading, gray, gradient, watermark, photo, + photorealistic, realism, ugly, off-center, deformed, 35mm film, dslr, cropped, + frame, worst quality, low quality, lowres, JPEG artifacts + prompt: Vector coloring book page style of {prompt}, clean and crisp lines, on solid + white background, scalable and editable artwork, suitable for printing and digital + coloring, promotes creativity and relaxation, black and white, contrast, profesional, + minimalist + +- name: Vector | Flat Art Style + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: Modern flat vector style art of {prompt}, on solid color background, minimalist, flat + vector art, corporate artstyle, simplified shapes, modern color palette, modern + conceptual art, clean lines, geometric forms, contemporary graphic design influence, + stylized character features, playful touch, visually appealing, clear communication + of ideas, suitable for modern media, web design, advertising, cheerful and engaging + aesthetic, easily adaptable + +- name: Vector | Flat Pastel Vector + negative_prompt: signature, watermark, photo, photorealistic, realism, ugly, off-center, + deformed, 35mm film, dslr, cropped, frame, worst quality, low quality, lowres, + JPEG artifacts + prompt: flat pastel vector illustration of {prompt}, soft and calming color palette, + clean and crisp lines, minimal shading, professional-grade vector execution, flat + design style, scalable and editable, ideal for web and mobile design, light and + airy aesthetic + +- name: Vector | Line Art + negative_prompt: painting, signature, shading, gradient, watermark, photo, photorealistic, + realism, ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, + low quality, lowres, JPEG artifacts + prompt: black vector line art of {prompt}, on solid white background, minimalist, + vector line art style, clean lines, scalable graphics, professional-grade execution, + stylized, professional vector, sleek, modern, graphic, vector graphics + +- name: Vector | Logo Symbol + negative_prompt: signature, shading, gradient, painting, watermark, photo, photorealistic, + realism, ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, + low quality, lowres, JPEG artifacts + prompt: vector logo art style of {prompt}, on solid color background, vector logo + symbol, stylized logo, logo icon, minimalist, clean, clean and scalable designs, + precise lines, professional-grade execution, emphasizes simplicity and versatility + +- name: Vector | Retro Vector + negative_prompt: signature, shading, gradient, painting, watermark, photo, photorealistic, + realism, ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, + low quality, lowres, JPEG artifacts + prompt: retro vector art style of {prompt}, vintage-inspired color palette, flat + vector design, minimalist shapes, geometric forms, nostalgic aesthetic, professional + vector execution, stylized illustrations, scalable graphics, perfect for logos, + posters, and branding + +- name: Vector | Silhouette + negative_prompt: signature, shading, gradient, painting, watermark, photo, photorealistic, + realism, ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, + low quality, lowres, JPEG artifacts + prompt: ((black vector silhouette of {prompt},)) on solid white background, minimalist, + SVG silhouette art style, clean lines and shapes, scalable graphics, professional-grade + execution, stylized, professional vector + +- name: Vector | Silhouette Cute + negative_prompt: signature, shading, gradient, painting, watermark, photo, photorealistic, + realism, ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, + low quality, lowres, JPEG artifacts + prompt: ((cute cartoon black vector silhouette of {prompt},)) on solid white background, + minimalist, SVG silhouette art style, adorable, clean lines and shapes, scalable + graphics, professional-grade execution, stylized cartoon, professional cartoon + vector + +- name: Vector | Vector Tattoo Design + negative_prompt: signature, shading, gradient, painting, watermark, photo, photorealistic, + realism, ugly, off-center, deformed, 35mm film, dslr, cropped, frame, worst quality, + low quality, lowres, JPEG artifacts + prompt: (vector tattoo of {prompt}), vector tattoo art style, clean and sharp linework, + bold black ink, scalable and editable vector design, professional-grade execution, + classic tattoo-inspired style + diff --git a/Styles/artist.yaml b/Styles/artist.yaml new file mode 100644 index 0000000..14a908e --- /dev/null +++ b/Styles/artist.yaml @@ -0,0 +1,7353 @@ +# It is recommended not to modify this file, +# as it serves as the initialization file for the node. +# +# Instead, create a copy, place it in the same folder, +# and the iTools Prompt Styler node will read all your style files from there. +# +# Ensure that the formatting is kept the same as in this file. +# Indents in YAML are critical. Ensure proper indentation, as incorrect spacing can cause errors. +# +# Best approach is to copy a block of name, negative_prompt and a prompt and then replace their values +# Note that your text_positive will be added in this part {prompt} +# Adding - name: random will allow the node to pick random name from this file + +- name: none + negative_prompt: '' + prompt: '' + +- name: random + negative_prompt: '' + prompt: '' + +- name: A.J.Casson + negative_prompt: '' + prompt: '{prompt} (in the style of A.J.Casson)' + +- name: Aaron Douglas + negative_prompt: '' + prompt: '{prompt} (in the style of Aaron Douglas)' + +- name: Aaron Horkey + negative_prompt: '' + prompt: '{prompt} (in the style of Aaron Horkey)' + +- name: Aaron Jasinski + negative_prompt: '' + prompt: '{prompt} (in the style of Aaron Jasinski)' + +- name: Aaron Siskind + negative_prompt: '' + prompt: '{prompt} (in the style of Aaron Siskind)' + +- name: Abbott Fuller Graves + negative_prompt: '' + prompt: '{prompt} (in the style of Abbott Fuller Graves)' + +- name: Abbott Handerson Thayer + negative_prompt: '' + prompt: '{prompt} (in the style of Abbott Handerson Thayer)' + +- name: Abdel Hadi Al Gazzar + negative_prompt: '' + prompt: '{prompt} (in the style of Abdel Hadi Al Gazzar)' + +- name: Abed Abdi + negative_prompt: '' + prompt: '{prompt} (in the style of Abed Abdi)' + +- name: Abigail Larson + negative_prompt: '' + prompt: '{prompt} (in the style of Abigail Larson)' + +- name: Abraham Mintchine + negative_prompt: '' + prompt: '{prompt} (in the style of Abraham Mintchine)' + +- name: Abraham Pether + negative_prompt: '' + prompt: '{prompt} (in the style of Abraham Pether)' + +- name: Abram Efimovich Arkhipov + negative_prompt: '' + prompt: '{prompt} (in the style of Abram Efimovich Arkhipov)' + +- name: Adam Elsheimer + negative_prompt: '' + prompt: '{prompt} (in the style of Adam Elsheimer)' + +- name: Adam Hughes + negative_prompt: '' + prompt: '{prompt} (in the style of Adam Hughes)' + +- name: Adam Martinakis + negative_prompt: '' + prompt: '{prompt} (in the style of Adam Martinakis)' + +- name: Adam Paquette + negative_prompt: '' + prompt: '{prompt} (in the style of Adam Paquette)' + +- name: Adi Granov + negative_prompt: '' + prompt: '{prompt} (in the style of Adi Granov)' + +- name: Adolf Hirémy-Hirschl + negative_prompt: '' + prompt: '{prompt} (in the style of Adolf Hirémy-Hirschl)' + +- name: Adolph Gottlieb + negative_prompt: '' + prompt: '{prompt} (in the style of Adolph Gottlieb)' + +- name: Adolph Menzel + negative_prompt: '' + prompt: '{prompt} (in the style of Adolph Menzel)' + +- name: Adonna Khare + negative_prompt: '' + prompt: '{prompt} (in the style of Adonna Khare)' + +- name: Adriaen van Ostade + negative_prompt: '' + prompt: '{prompt} (in the style of Adriaen van Ostade)' + +- name: Adriaen van Outrecht + negative_prompt: '' + prompt: '{prompt} (in the style of Adriaen van Outrecht)' + +- name: Adrian Donoghue + negative_prompt: '' + prompt: '{prompt} (in the style of Adrian Donoghue)' + +- name: Adrian Ghenie + negative_prompt: '' + prompt: '{prompt} (in the style of Adrian Ghenie)' + +- name: Adrian Paul Allinson + negative_prompt: '' + prompt: '{prompt} (in the style of Adrian Paul Allinson)' + +- name: Adrian Smith + negative_prompt: '' + prompt: '{prompt} (in the style of Adrian Smith)' + +- name: Adrian Tomine + negative_prompt: '' + prompt: '{prompt} (in the style of Adrian Tomine)' + +- name: Adrianus Eversen + negative_prompt: '' + prompt: '{prompt} (in the style of Adrianus Eversen)' + +- name: Afarin Sajedi + negative_prompt: '' + prompt: '{prompt} (in the style of Afarin Sajedi)' + +- name: Affandi + negative_prompt: '' + prompt: '{prompt} (in the style of Affandi)' + +- name: Aggi Erguna + negative_prompt: '' + prompt: '{prompt} (in the style of Aggi Erguna)' + +- name: Agnes Cecile + negative_prompt: '' + prompt: '{prompt} (in the style of Agnes Cecile)' + +- name: Agnes Lawrence Pelton + negative_prompt: '' + prompt: '{prompt} (in the style of Agnes Lawrence Pelton)' + +- name: Agnes Martin + negative_prompt: '' + prompt: '{prompt} (in the style of Agnes Martin)' + +- name: Agostino Arrivabene + negative_prompt: '' + prompt: '{prompt} (in the style of Agostino Arrivabene)' + +- name: Agostino Tassi + negative_prompt: '' + prompt: '{prompt} (in the style of Agostino Tassi)' + +- name: Ai Weiwei + negative_prompt: '' + prompt: '{prompt} (in the style of Ai Weiwei)' + +- name: Ai Yazawa + negative_prompt: '' + prompt: '{prompt} (in the style of Ai Yazawa)' + +- name: Akihiko Yoshida + negative_prompt: '' + prompt: '{prompt} (in the style of Akihiko Yoshida)' + +- name: Akira Toriyama + negative_prompt: '' + prompt: '{prompt} (in the style of Akira Toriyama)' + +- name: Akos Major + negative_prompt: '' + prompt: '{prompt} (in the style of Akos Major)' + +- name: Akseli Gallen-Kallela + negative_prompt: '' + prompt: '{prompt} (in the style of Akseli Gallen-Kallela)' + +- name: Al Capp + negative_prompt: '' + prompt: '{prompt} (in the style of Al Capp)' + +- name: Al Feldstein + negative_prompt: '' + prompt: '{prompt} (in the style of Al Feldstein)' + +- name: Al Williamson + negative_prompt: '' + prompt: '{prompt} (in the style of Al Williamson)' + +- name: Alain Laboile + negative_prompt: '' + prompt: '{prompt} (in the style of Alain Laboile)' + +- name: Alan Bean + negative_prompt: '' + prompt: '{prompt} (in the style of Alan Bean)' + +- name: Alan Davis + negative_prompt: '' + prompt: '{prompt} (in the style of Alan Davis)' + +- name: Alan Kenny + negative_prompt: '' + prompt: '{prompt} (in the style of Alan Kenny)' + +- name: Alan Lee + negative_prompt: '' + prompt: '{prompt} (in the style of Alan Lee)' + +- name: Alan Moore + negative_prompt: '' + prompt: '{prompt} (in the style of Alan Moore)' + +- name: Alan Parry + negative_prompt: '' + prompt: '{prompt} (in the style of Alan Parry)' + +- name: Alan Schaller + negative_prompt: '' + prompt: '{prompt} (in the style of Alan Schaller)' + +- name: Alasdair McLellan + negative_prompt: '' + prompt: '{prompt} (in the style of Alasdair McLellan)' + +- name: Alastair Magnaldo + negative_prompt: '' + prompt: '{prompt} (in the style of Alastair Magnaldo)' + +- name: Alayna Lemmer + negative_prompt: '' + prompt: '{prompt} (in the style of Alayna Lemmer)' + +- name: Albert Benois + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Benois)' + +- name: Albert Bierstadt + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Bierstadt)' + +- name: Albert Bloch + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Bloch)' + +- name: Albert Dubois-Pillet + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Dubois-Pillet)' + +- name: Albert Eckhout + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Eckhout)' + +- name: Albert Edelfelt + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Edelfelt)' + +- name: Albert Gleizes + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Gleizes)' + +- name: Albert Goodwin + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Goodwin)' + +- name: Albert Joseph Moore + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Joseph Moore)' + +- name: Albert Koetsier + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Koetsier)' + +- name: Albert Kotin + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Kotin)' + +- name: Albert Lynch + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Lynch)' + +- name: Albert Marquet + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Marquet)' + +- name: Albert Pinkham Ryder + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Pinkham Ryder)' + +- name: Albert Robida + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Robida)' + +- name: Albert Servaes + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Servaes)' + +- name: Albert Tucker + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Tucker)' + +- name: Albert Watson + negative_prompt: '' + prompt: '{prompt} (in the style of Albert Watson)' + +- name: Alberto Biasi + negative_prompt: '' + prompt: '{prompt} (in the style of Alberto Biasi)' + +- name: Alberto Burri + negative_prompt: '' + prompt: '{prompt} (in the style of Alberto Burri)' + +- name: Alberto Giacometti + negative_prompt: '' + prompt: '{prompt} (in the style of Alberto Giacometti)' + +- name: Alberto Magnelli + negative_prompt: '' + prompt: '{prompt} (in the style of Alberto Magnelli)' + +- name: Alberto Seveso + negative_prompt: '' + prompt: '{prompt} (in the style of Alberto Seveso)' + +- name: Alberto Sughi + negative_prompt: '' + prompt: '{prompt} (in the style of Alberto Sughi)' + +- name: Alberto Vargas + negative_prompt: '' + prompt: '{prompt} (in the style of Alberto Vargas)' + +- name: Albrecht Anker + negative_prompt: '' + prompt: '{prompt} (in the style of Albrecht Anker)' + +- name: Albrecht Durer + negative_prompt: '' + prompt: '{prompt} (in the style of Albrecht Durer)' + +- name: Alec Soth + negative_prompt: '' + prompt: '{prompt} (in the style of Alec Soth)' + +- name: Alejandro Burdisio + negative_prompt: '' + prompt: '{prompt} (in the style of Alejandro Burdisio)' + +- name: Alejandro Jodorowsky + negative_prompt: '' + prompt: '{prompt} (in the style of Alejandro Jodorowsky)' + +- name: Aleksey Savrasov + negative_prompt: '' + prompt: '{prompt} (in the style of Aleksey Savrasov)' + +- name: Aleksi Briclot + negative_prompt: '' + prompt: '{prompt} (in the style of Aleksi Briclot)' + +- name: Alena Aenami + negative_prompt: '' + prompt: '{prompt} (in the style of Alena Aenami)' + +- name: Alessandro Allori + negative_prompt: '' + prompt: '{prompt} (in the style of Alessandro Allori)' + +- name: Alessandro Barbucci + negative_prompt: '' + prompt: '{prompt} (in the style of Alessandro Barbucci)' + +- name: Alessandro Gottardo + negative_prompt: '' + prompt: '{prompt} (in the style of Alessandro Gottardo)' + +- name: Alessio Albi + negative_prompt: '' + prompt: '{prompt} (in the style of Alessio Albi)' + +- name: Alex Alemany + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Alemany)' + +- name: Alex Andreev + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Andreev)' + +- name: Alex Colville + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Colville)' + +- name: Alex Figini + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Figini)' + +- name: Alex Garant + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Garant)' + +- name: Alex Grey + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Grey)' + +- name: Alex Gross + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Gross)' + +- name: Alex Hirsch + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Hirsch)' + +- name: Alex Horley + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Horley)' + +- name: Alex Howitt + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Howitt)' + +- name: Alex Katz + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Katz)' + +- name: Alex Maleev + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Maleev)' + +- name: Alex Petruk + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Petruk)' + +- name: Alex Prager + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Prager)' + +- name: Alex Ross + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Ross)' + +- name: Alex Russell Flint + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Russell Flint)' + +- name: Alex Schomburg + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Schomburg)' + +- name: Alex Timmermans + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Timmermans)' + +- name: Alex Toth + negative_prompt: '' + prompt: '{prompt} (in the style of Alex Toth)' + +- name: Alexander Archipenko + negative_prompt: '' + prompt: '{prompt} (in the style of Alexander Archipenko)' + +- name: Alexander Bogen + negative_prompt: '' + prompt: '{prompt} (in the style of Alexander Bogen)' + +- name: Alexander Fedosav + negative_prompt: '' + prompt: '{prompt} (in the style of Alexander Fedosav)' + +- name: Alexander Jansson + negative_prompt: '' + prompt: '{prompt} (in the style of Alexander Jansson)' + +- name: Alexander Kanoldt + negative_prompt: '' + prompt: '{prompt} (in the style of Alexander Kanoldt)' + +- name: Alexander McQueen + negative_prompt: '' + prompt: '{prompt} (in the style of Alexander McQueen)' + +- name: Alexander Millar + negative_prompt: '' + prompt: '{prompt} (in the style of Alexander Millar)' + +- name: Alexander Milne Calder + negative_prompt: '' + prompt: '{prompt} (in the style of Alexander Milne Calder)' + +- name: Alexandr Averin + negative_prompt: '' + prompt: '{prompt} (in the style of Alexandr Averin)' + +- name: Alexandre Antigna + negative_prompt: '' + prompt: '{prompt} (in the style of Alexandre Antigna)' + +- name: Alexandre Benois + negative_prompt: '' + prompt: '{prompt} (in the style of Alexandre Benois)' + +- name: Alexandre Cabanel + negative_prompt: '' + prompt: '{prompt} (in the style of Alexandre Cabanel)' + +- name: Alexandre Calame + negative_prompt: '' + prompt: '{prompt} (in the style of Alexandre Calame)' + +- name: Alexandre Jacovleff + negative_prompt: '' + prompt: '{prompt} (in the style of Alexandre Jacovleff)' + +- name: Alexandre-Évariste Fragonard + negative_prompt: '' + prompt: '{prompt} (in the style of Alexandre-Évariste Fragonard)' + +- name: Alexei Harlamoff + negative_prompt: '' + prompt: '{prompt} (in the style of Alexei Harlamoff)' + +- name: Alexej von Jawlensky + negative_prompt: '' + prompt: '{prompt} (in the style of Alexej von Jawlensky)' + +- name: Alexey Kurbatov + negative_prompt: '' + prompt: '{prompt} (in the style of Alexey Kurbatov)' + +- name: Alexis Gritchenko + negative_prompt: '' + prompt: '{prompt} (in the style of Alexis Gritchenko)' + +- name: Alfred Augustus Glendening + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Augustus Glendening)' + +- name: Alfred Cheney Johnston + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Cheney Johnston)' + +- name: Alfred Eisenstaedt + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Eisenstaedt)' + +- name: Alfred Guillou + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Guillou)' + +- name: Alfred Heber Hutty + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Heber Hutty)' + +- name: Alfred Henry Maurer + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Henry Maurer)' + +- name: Alfred Kelsner + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Kelsner)' + +- name: Alfred Kubin + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Kubin)' + +- name: Alfred Munnings + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Munnings)' + +- name: Alfred Parsons + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Parsons)' + +- name: Alfred Sisley + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Sisley)' + +- name: Alfred Stevens + negative_prompt: '' + prompt: '{prompt} (in the style of Alfred Stevens)' + +- name: Alfredo Jaar + negative_prompt: '' + prompt: '{prompt} (in the style of Alfredo Jaar)' + +- name: Algernon Blackwood + negative_prompt: '' + prompt: '{prompt} (in the style of Algernon Blackwood)' + +- name: Alice Bailly + negative_prompt: '' + prompt: '{prompt} (in the style of Alice Bailly)' + +- name: Alice Neel + negative_prompt: '' + prompt: '{prompt} (in the style of Alice Neel)' + +- name: Alice Pasquini + negative_prompt: '' + prompt: '{prompt} (in the style of Alice Pasquini)' + +- name: Alice Rahon + negative_prompt: '' + prompt: '{prompt} (in the style of Alice Rahon)' + +- name: Alison Bechdel + negative_prompt: '' + prompt: '{prompt} (in the style of Alison Bechdel)' + +- name: Aliza Razell + negative_prompt: '' + prompt: '{prompt} (in the style of Aliza Razell)' + +- name: Allen Williams + negative_prompt: '' + prompt: '{prompt} (in the style of Allen Williams)' + +- name: Allie Brosh + negative_prompt: '' + prompt: '{prompt} (in the style of Allie Brosh)' + +- name: Allison Bechdel + negative_prompt: '' + prompt: '{prompt} (in the style of Allison Bechdel)' + +- name: Alma Thomas + negative_prompt: '' + prompt: '{prompt} (in the style of Alma Thomas)' + +- name: Alois Arnegger + negative_prompt: '' + prompt: '{prompt} (in the style of Alois Arnegger)' + +- name: Alphonse Mucha + negative_prompt: '' + prompt: '{prompt} (in the style of Alphonse Mucha)' + +- name: Alphonse Osbert + negative_prompt: '' + prompt: '{prompt} (in the style of Alphonse Osbert)' + +- name: Alpo Jaakola + negative_prompt: '' + prompt: '{prompt} (in the style of Alpo Jaakola)' + +- name: Alson Skinner Clark + negative_prompt: '' + prompt: '{prompt} (in the style of Alson Skinner Clark)' + +- name: Alvar Aalto + negative_prompt: '' + prompt: '{prompt} (in the style of Alvar Aalto)' + +- name: Alvaro Siza + negative_prompt: '' + prompt: '{prompt} (in the style of Alvaro Siza)' + +- name: Alvin Langdon Coburn + negative_prompt: '' + prompt: '{prompt} (in the style of Alvin Langdon Coburn)' + +- name: Alyssa Monks + negative_prompt: '' + prompt: '{prompt} (in the style of Alyssa Monks)' + +- name: Amadou Opa Bathily + negative_prompt: '' + prompt: '{prompt} (in the style of Amadou Opa Bathily)' + +- name: Amanda Clark + negative_prompt: '' + prompt: '{prompt} (in the style of Amanda Clark)' + +- name: Amanda Sage + negative_prompt: '' + prompt: '{prompt} (in the style of Amanda Sage)' + +- name: Amandine Van Ray + negative_prompt: '' + prompt: '{prompt} (in the style of Amandine Van Ray)' + +- name: Ambrosius Benson + negative_prompt: '' + prompt: '{prompt} (in the style of Ambrosius Benson)' + +- name: Ambrosius Bosschaert + negative_prompt: '' + prompt: '{prompt} (in the style of Ambrosius Bosschaert)' + +- name: Amedee Ozenfant + negative_prompt: '' + prompt: '{prompt} (in the style of Amedee Ozenfant)' + +- name: Amedeo Modigliani + negative_prompt: '' + prompt: '{prompt} (in the style of Amedeo Modigliani)' + +- name: Amiet Cuno + negative_prompt: '' + prompt: '{prompt} (in the style of Amiet Cuno)' + +- name: Aminollah Rezaei + negative_prompt: '' + prompt: '{prompt} (in the style of Aminollah Rezaei)' + +- name: Amir Zand + negative_prompt: '' + prompt: '{prompt} (in the style of Amir Zand)' + +- name: Amy Earles + negative_prompt: '' + prompt: '{prompt} (in the style of Amy Earles)' + +- name: Amy Judd + negative_prompt: '' + prompt: '{prompt} (in the style of Amy Judd)' + +- name: Amy Sillman + negative_prompt: '' + prompt: '{prompt} (in the style of Amy Sillman)' + +- name: Amédée Guillemin + negative_prompt: '' + prompt: '{prompt} (in the style of Amédée Guillemin)' + +- name: Anato Finnstark + negative_prompt: '' + prompt: '{prompt} (in the style of Anato Finnstark)' + +- name: Anatoly Metlan + negative_prompt: '' + prompt: '{prompt} (in the style of Anatoly Metlan)' + +- name: Anders Zorn + negative_prompt: '' + prompt: '{prompt} (in the style of Anders Zorn)' + +- name: Ando Fuchs + negative_prompt: '' + prompt: '{prompt} (in the style of Ando Fuchs)' + +- name: Andre De Dienes + negative_prompt: '' + prompt: '{prompt} (in the style of Andre De Dienes)' + +- name: Andre Derain + negative_prompt: '' + prompt: '{prompt} (in the style of Andre Derain)' + +- name: Andre Kertesz + negative_prompt: '' + prompt: '{prompt} (in the style of Andre Kertesz)' + +- name: Andre Kohn + negative_prompt: '' + prompt: '{prompt} (in the style of Andre Kohn)' + +- name: Andre Norton + negative_prompt: '' + prompt: '{prompt} (in the style of Andre Norton)' + +- name: Andre-Charles Boulle + negative_prompt: '' + prompt: '{prompt} (in the style of Andre-Charles Boulle)' + +- name: Andrea Kowch + negative_prompt: '' + prompt: '{prompt} (in the style of Andrea Kowch)' + +- name: Andrea Mantegna + negative_prompt: '' + prompt: '{prompt} (in the style of Andrea Mantegna)' + +- name: Andreas Achenbach + negative_prompt: '' + prompt: '{prompt} (in the style of Andreas Achenbach)' + +- name: Andreas Franke + negative_prompt: '' + prompt: '{prompt} (in the style of Andreas Franke)' + +- name: Andreas Gursky + negative_prompt: '' + prompt: '{prompt} (in the style of Andreas Gursky)' + +- name: Andreas Levers + negative_prompt: '' + prompt: '{prompt} (in the style of Andreas Levers)' + +- name: Andreas Rocha + negative_prompt: '' + prompt: '{prompt} (in the style of Andreas Rocha)' + +- name: Andreas Vesalius + negative_prompt: '' + prompt: '{prompt} (in the style of Andreas Vesalius)' + +- name: Andrei Markin + negative_prompt: '' + prompt: '{prompt} (in the style of Andrei Markin)' + +- name: Andrew Atroshenko + negative_prompt: '' + prompt: '{prompt} (in the style of Andrew Atroshenko)' + +- name: Andrew Ferez + negative_prompt: '' + prompt: '{prompt} (in the style of Andrew Ferez)' + +- name: Andrew Macara + negative_prompt: '' + prompt: '{prompt} (in the style of Andrew Macara)' + +- name: Andrew Robinson + negative_prompt: '' + prompt: '{prompt} (in the style of Andrew Robinson)' + +- name: Andrew Whem + negative_prompt: '' + prompt: '{prompt} (in the style of Andrew Whem)' + +- name: Andrew Wyeth + negative_prompt: '' + prompt: '{prompt} (in the style of Andrew Wyeth)' + +- name: Andrey Remnev + negative_prompt: '' + prompt: '{prompt} (in the style of Andrey Remnev)' + +- name: Andréi Arinouchkine + negative_prompt: '' + prompt: '{prompt} (in the style of Andréi Arinouchkine)' + +- name: Android Jones + negative_prompt: '' + prompt: '{prompt} (in the style of Android Jones)' + +- name: Andrzej Sykut + negative_prompt: '' + prompt: '{prompt} (in the style of Andrzej Sykut)' + +- name: André Lhote + negative_prompt: '' + prompt: '{prompt} (in the style of André Lhote)' + +- name: André Masson + negative_prompt: '' + prompt: '{prompt} (in the style of André Masson)' + +- name: Andy Fairhurst + negative_prompt: '' + prompt: '{prompt} (in the style of Andy Fairhurst)' + +- name: Andy Goldsworthy + negative_prompt: '' + prompt: '{prompt} (in the style of Andy Goldsworthy)' + +- name: Andy Kehoe + negative_prompt: '' + prompt: '{prompt} (in the style of Andy Kehoe)' + +- name: Andy Warhol + negative_prompt: '' + prompt: '{prompt} (in the style of Andy Warhol)' + +- name: Angela Barrett + negative_prompt: '' + prompt: '{prompt} (in the style of Angela Barrett)' + +- name: Angela Sung + negative_prompt: '' + prompt: '{prompt} (in the style of Angela Sung)' + +- name: Angus McKie + negative_prompt: '' + prompt: '{prompt} (in the style of Angus McKie)' + +- name: Anish Kapoor + negative_prompt: '' + prompt: '{prompt} (in the style of Anish Kapoor)' + +- name: Anita Malfatti + negative_prompt: '' + prompt: '{prompt} (in the style of Anita Malfatti)' + +- name: Anja Millen + negative_prompt: '' + prompt: '{prompt} (in the style of Anja Millen)' + +- name: Anja Percival + negative_prompt: '' + prompt: '{prompt} (in the style of Anja Percival)' + +- name: Anka Zhuravleva + negative_prompt: '' + prompt: '{prompt} (in the style of Anka Zhuravleva)' + +- name: Ann Stookey + negative_prompt: '' + prompt: '{prompt} (in the style of Ann Stookey)' + +- name: Anna Ancher + negative_prompt: '' + prompt: '{prompt} (in the style of Anna Ancher)' + +- name: Anna Bocek + negative_prompt: '' + prompt: '{prompt} (in the style of Anna Bocek)' + +- name: Anna Dittmann + negative_prompt: '' + prompt: '{prompt} (in the style of Anna Dittmann)' + +- name: Anna Razumovskaya + negative_prompt: '' + prompt: '{prompt} (in the style of Anna Razumovskaya)' + +- name: Anna and Elena Balbusso + negative_prompt: '' + prompt: '{prompt} (in the style of Anna and Elena Balbusso)' + +- name: Anne Bachelier + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Bachelier)' + +- name: Anne Brigman + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Brigman)' + +- name: Anne Dewailly + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Dewailly)' + +- name: Anne Mccaffrey + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Mccaffrey)' + +- name: Anne Packard + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Packard)' + +- name: Anne Rothenstein + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Rothenstein)' + +- name: Anne Stokes + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Stokes)' + +- name: Anne Sudworth + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Sudworth)' + +- name: Anne Truitt + negative_prompt: '' + prompt: '{prompt} (in the style of Anne Truitt)' + +- name: Anne-Louis Girodet + negative_prompt: '' + prompt: '{prompt} (in the style of Anne-Louis Girodet)' + +- name: Anni Albers + negative_prompt: '' + prompt: '{prompt} (in the style of Anni Albers)' + +- name: Annibale Carracci + negative_prompt: '' + prompt: '{prompt} (in the style of Annibale Carracci)' + +- name: Annick Bouvattier + negative_prompt: '' + prompt: '{prompt} (in the style of Annick Bouvattier)' + +- name: Annie Soudain + negative_prompt: '' + prompt: '{prompt} (in the style of Annie Soudain)' + +- name: Annie Swynnerton + negative_prompt: '' + prompt: '{prompt} (in the style of Annie Swynnerton)' + +- name: Ansel Adams + negative_prompt: '' + prompt: '{prompt} (in the style of Ansel Adams)' + +- name: Anselm Kiefer + negative_prompt: '' + prompt: '{prompt} (in the style of Anselm Kiefer)' + +- name: Antanas Sutkus + negative_prompt: '' + prompt: '{prompt} (in the style of Antanas Sutkus)' + +- name: Anthony Gerace + negative_prompt: '' + prompt: '{prompt} (in the style of Anthony Gerace)' + +- name: Anthony Thieme + negative_prompt: '' + prompt: '{prompt} (in the style of Anthony Thieme)' + +- name: Anthony van Dyck + negative_prompt: '' + prompt: '{prompt} (in the style of Anthony van Dyck)' + +- name: Anto Carte + negative_prompt: '' + prompt: '{prompt} (in the style of Anto Carte)' + +- name: Antoine Blanchard + negative_prompt: '' + prompt: '{prompt} (in the style of Antoine Blanchard)' + +- name: Antoine Verney-Carron + negative_prompt: '' + prompt: '{prompt} (in the style of Antoine Verney-Carron)' + +- name: Anton Corbijn + negative_prompt: '' + prompt: '{prompt} (in the style of Anton Corbijn)' + +- name: Anton Domenico Gabbiani + negative_prompt: '' + prompt: '{prompt} (in the style of Anton Domenico Gabbiani)' + +- name: Anton Fadeev + negative_prompt: '' + prompt: '{prompt} (in the style of Anton Fadeev)' + +- name: Anton Mauve + negative_prompt: '' + prompt: '{prompt} (in the style of Anton Mauve)' + +- name: Anton Otto Fischer + negative_prompt: '' + prompt: '{prompt} (in the style of Anton Otto Fischer)' + +- name: Anton Pieck + negative_prompt: '' + prompt: '{prompt} (in the style of Anton Pieck)' + +- name: Anton Raphael Mengs + negative_prompt: '' + prompt: '{prompt} (in the style of Anton Raphael Mengs)' + +- name: Anton Semenov + negative_prompt: '' + prompt: '{prompt} (in the style of Anton Semenov)' + +- name: Antonello da Messina + negative_prompt: '' + prompt: '{prompt} (in the style of Antonello da Messina)' + +- name: Antoni Gaudi + negative_prompt: '' + prompt: '{prompt} (in the style of Antoni Gaudi)' + +- name: Antonio Canova + negative_prompt: '' + prompt: '{prompt} (in the style of Antonio Canova)' + +- name: Antonio Donghi + negative_prompt: '' + prompt: '{prompt} (in the style of Antonio Donghi)' + +- name: Antonio J. Manzanedo + negative_prompt: '' + prompt: '{prompt} (in the style of Antonio J. Manzanedo)' + +- name: Antonio Mancini + negative_prompt: '' + prompt: '{prompt} (in the style of Antonio Mancini)' + +- name: Antonio Mora + negative_prompt: '' + prompt: '{prompt} (in the style of Antonio Mora)' + +- name: Antonio Roybal + negative_prompt: '' + prompt: '{prompt} (in the style of Antonio Roybal)' + +- name: Antony Gormley + negative_prompt: '' + prompt: '{prompt} (in the style of Antony Gormley)' + +- name: Apollinary Vasnetsov + negative_prompt: '' + prompt: '{prompt} (in the style of Apollinary Vasnetsov)' + +- name: Apollonia Saintclair + negative_prompt: '' + prompt: '{prompt} (in the style of Apollonia Saintclair)' + +- name: Aquirax Uno + negative_prompt: '' + prompt: '{prompt} (in the style of Aquirax Uno)' + +- name: Archibald Thorburn + negative_prompt: '' + prompt: '{prompt} (in the style of Archibald Thorburn)' + +- name: Aries Moross + negative_prompt: '' + prompt: '{prompt} (in the style of Aries Moross)' + +- name: Arik Brauer + negative_prompt: '' + prompt: '{prompt} (in the style of Arik Brauer)' + +- name: Aristarkh Lentulov + negative_prompt: '' + prompt: '{prompt} (in the style of Aristarkh Lentulov)' + +- name: Aristide Maillol + negative_prompt: '' + prompt: '{prompt} (in the style of Aristide Maillol)' + +- name: Arkhyp Kuindzhi + negative_prompt: '' + prompt: '{prompt} (in the style of Arkhyp Kuindzhi)' + +- name: Armand Guillaumin + negative_prompt: '' + prompt: '{prompt} (in the style of Armand Guillaumin)' + +- name: Armand Point + negative_prompt: '' + prompt: '{prompt} (in the style of Armand Point)' + +- name: Arnold Bocklin + negative_prompt: '' + prompt: '{prompt} (in the style of Arnold Bocklin)' + +- name: Arnold Böcklin + negative_prompt: '' + prompt: '{prompt} (in the style of Arnold Böcklin)' + +- name: Arnold Schoenberg + negative_prompt: '' + prompt: '{prompt} (in the style of Arnold Schoenberg)' + +- name: Aron Demetz + negative_prompt: '' + prompt: '{prompt} (in the style of Aron Demetz)' + +- name: Aron Wiesenfeld + negative_prompt: '' + prompt: '{prompt} (in the style of Aron Wiesenfeld)' + +- name: Arshile Gorky + negative_prompt: '' + prompt: '{prompt} (in the style of Arshile Gorky)' + +- name: Art Fitzpatrick + negative_prompt: '' + prompt: '{prompt} (in the style of Art Fitzpatrick)' + +- name: Art Frahm + negative_prompt: '' + prompt: '{prompt} (in the style of Art Frahm)' + +- name: Art Spiegelman + negative_prompt: '' + prompt: '{prompt} (in the style of Art Spiegelman)' + +- name: Artem Chebokha + negative_prompt: '' + prompt: '{prompt} (in the style of Artem Chebokha)' + +- name: Artemisia Gentileschi + negative_prompt: '' + prompt: '{prompt} (in the style of Artemisia Gentileschi)' + +- name: Artgerm + negative_prompt: '' + prompt: '{prompt} (in the style of Artgerm)' + +- name: Arthur Adams + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Adams)' + +- name: Arthur Boyd + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Boyd)' + +- name: Arthur Dove + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Dove)' + +- name: Arthur Garfield Dove + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Garfield Dove)' + +- name: Arthur Hacker + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Hacker)' + +- name: Arthur Hughes + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Hughes)' + +- name: Arthur Lismer + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Lismer)' + +- name: Arthur Rackham + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Rackham)' + +- name: Arthur Radebaugh + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Radebaugh)' + +- name: Arthur Sarnoff + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Sarnoff)' + +- name: Arthur Stanley Wilkinson + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Stanley Wilkinson)' + +- name: Arthur Streeton + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Streeton)' + +- name: Arthur Tress + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Tress)' + +- name: Arthur Wardle + negative_prompt: '' + prompt: '{prompt} (in the style of Arthur Wardle)' + +- name: Artur Bordalo + negative_prompt: '' + prompt: '{prompt} (in the style of Artur Bordalo)' + +- name: Arturo Souto + negative_prompt: '' + prompt: '{prompt} (in the style of Arturo Souto)' + +- name: Artus Scheiner + negative_prompt: '' + prompt: '{prompt} (in the style of Artus Scheiner)' + +- name: Ary Scheffer + negative_prompt: '' + prompt: '{prompt} (in the style of Ary Scheffer)' + +- name: Asaf Hanuka + negative_prompt: '' + prompt: '{prompt} (in the style of Asaf Hanuka)' + +- name: Asger Jorn + negative_prompt: '' + prompt: '{prompt} (in the style of Asger Jorn)' + +- name: Asher Brown Durand + negative_prompt: '' + prompt: '{prompt} (in the style of Asher Brown Durand)' + +- name: Ashley Willerton + negative_prompt: '' + prompt: '{prompt} (in the style of Ashley Willerton)' + +- name: Ashley Wood + negative_prompt: '' + prompt: '{prompt} (in the style of Ashley Wood)' + +- name: Atay Ghailan + negative_prompt: '' + prompt: '{prompt} (in the style of Atay Ghailan)' + +- name: Atelier Olschinsky + negative_prompt: '' + prompt: '{prompt} (in the style of Atelier Olschinsky)' + +- name: Atey Ghailan + negative_prompt: '' + prompt: '{prompt} (in the style of Atey Ghailan)' + +- name: Aubrey Beardsley + negative_prompt: '' + prompt: '{prompt} (in the style of Aubrey Beardsley)' + +- name: Audrey Kawasaki + negative_prompt: '' + prompt: '{prompt} (in the style of Audrey Kawasaki)' + +- name: August Friedrich Schenck + negative_prompt: '' + prompt: '{prompt} (in the style of August Friedrich Schenck)' + +- name: August Macke + negative_prompt: '' + prompt: '{prompt} (in the style of August Macke)' + +- name: August Sander + negative_prompt: '' + prompt: '{prompt} (in the style of August Sander)' + +- name: August von Pettenkofen + negative_prompt: '' + prompt: '{prompt} (in the style of August von Pettenkofen)' + +- name: Auguste Herbin + negative_prompt: '' + prompt: '{prompt} (in the style of Auguste Herbin)' + +- name: Auguste Mambour + negative_prompt: '' + prompt: '{prompt} (in the style of Auguste Mambour)' + +- name: Auguste Toulmouche + negative_prompt: '' + prompt: '{prompt} (in the style of Auguste Toulmouche)' + +- name: Augustus Edwin Mulready + negative_prompt: '' + prompt: '{prompt} (in the style of Augustus Edwin Mulready)' + +- name: Augustus Jansson + negative_prompt: '' + prompt: '{prompt} (in the style of Augustus Jansson)' + +- name: Augustus John + negative_prompt: '' + prompt: '{prompt} (in the style of Augustus John)' + +- name: Austin Osman Spare + negative_prompt: '' + prompt: '{prompt} (in the style of Austin Osman Spare)' + +- name: Axel Törneman + negative_prompt: '' + prompt: '{prompt} (in the style of Axel Törneman)' + +- name: Ayami Kojima + negative_prompt: '' + prompt: '{prompt} (in the style of Ayami Kojima)' + +- name: Ayan Nag + negative_prompt: '' + prompt: '{prompt} (in the style of Ayan Nag)' + +- name: Aykut Aydogdu + negative_prompt: '' + prompt: '{prompt} (in the style of Aykut Aydogdu)' + +- name: Bakemono Zukushi + negative_prompt: '' + prompt: '{prompt} (in the style of Bakemono Zukushi)' + +- name: Balthus + negative_prompt: '' + prompt: '{prompt} (in the style of Balthus)' + +- name: Banksy + negative_prompt: '' + prompt: '{prompt} (in the style of Banksy)' + +- name: Barbara Hepworth + negative_prompt: '' + prompt: '{prompt} (in the style of Barbara Hepworth)' + +- name: Barbara Kruger + negative_prompt: '' + prompt: '{prompt} (in the style of Barbara Kruger)' + +- name: Barbara Stauffacher Solomon + negative_prompt: '' + prompt: '{prompt} (in the style of Barbara Stauffacher Solomon)' + +- name: Barbara Takenaga + negative_prompt: '' + prompt: '{prompt} (in the style of Barbara Takenaga)' + +- name: Barclay Shaw + negative_prompt: '' + prompt: '{prompt} (in the style of Barclay Shaw)' + +- name: Barkley L. Hendricks + negative_prompt: '' + prompt: '{prompt} (in the style of Barkley L. Hendricks)' + +- name: Barnett Newman + negative_prompt: '' + prompt: '{prompt} (in the style of Barnett Newman)' + +- name: Barry McGee + negative_prompt: '' + prompt: '{prompt} (in the style of Barry McGee)' + +- name: Barry Windsor Smith + negative_prompt: '' + prompt: '{prompt} (in the style of Barry Windsor Smith)' + +- name: Bart Sears + negative_prompt: '' + prompt: '{prompt} (in the style of Bart Sears)' + +- name: Barthel Bruyn the Elder + negative_prompt: '' + prompt: '{prompt} (in the style of Barthel Bruyn the Elder)' + +- name: Barthel Bruyn the Younger + negative_prompt: '' + prompt: '{prompt} (in the style of Barthel Bruyn the Younger)' + +- name: Bartolome Esteban Murillo + negative_prompt: '' + prompt: '{prompt} (in the style of Bartolome Esteban Murillo)' + +- name: Basil Gogos + negative_prompt: '' + prompt: '{prompt} (in the style of Basil Gogos)' + +- name: Bastien Lecouffe-Deharme + negative_prompt: '' + prompt: '{prompt} (in the style of Bastien Lecouffe-Deharme)' + +- name: Bayard Wu + negative_prompt: '' + prompt: '{prompt} (in the style of Bayard Wu)' + +- name: Beatrix Potter + negative_prompt: '' + prompt: '{prompt} (in the style of Beatrix Potter)' + +- name: Beauford Delaney + negative_prompt: '' + prompt: '{prompt} (in the style of Beauford Delaney)' + +- name: Becky Cloonan + negative_prompt: '' + prompt: '{prompt} (in the style of Becky Cloonan)' + +- name: Beeple + negative_prompt: '' + prompt: '{prompt} (in the style of Beeple)' + +- name: Bella Kotak + negative_prompt: '' + prompt: '{prompt} (in the style of Bella Kotak)' + +- name: Ben Aronson + negative_prompt: '' + prompt: '{prompt} (in the style of Ben Aronson)' + +- name: Ben Goossens + negative_prompt: '' + prompt: '{prompt} (in the style of Ben Goossens)' + +- name: Ben Hatke + negative_prompt: '' + prompt: '{prompt} (in the style of Ben Hatke)' + +- name: Ben Nicholson + negative_prompt: '' + prompt: '{prompt} (in the style of Ben Nicholson)' + +- name: Ben Quilty + negative_prompt: '' + prompt: '{prompt} (in the style of Ben Quilty)' + +- name: Ben Shahn + negative_prompt: '' + prompt: '{prompt} (in the style of Ben Shahn)' + +- name: Ben Templesmith + negative_prompt: '' + prompt: '{prompt} (in the style of Ben Templesmith)' + +- name: Ben Wooten + negative_prompt: '' + prompt: '{prompt} (in the style of Ben Wooten)' + +- name: Benedetto Caliari + negative_prompt: '' + prompt: '{prompt} (in the style of Benedetto Caliari)' + +- name: Benedick Bana + negative_prompt: '' + prompt: '{prompt} (in the style of Benedick Bana)' + +- name: Benoit B. Mandelbrot + negative_prompt: '' + prompt: '{prompt} (in the style of Benoit B. Mandelbrot)' + +- name: Berend Strik + negative_prompt: '' + prompt: '{prompt} (in the style of Berend Strik)' + +- name: Bernard Aubertin + negative_prompt: '' + prompt: '{prompt} (in the style of Bernard Aubertin)' + +- name: Bernard Buffet + negative_prompt: '' + prompt: '{prompt} (in the style of Bernard Buffet)' + +- name: Bernardo Bellotto + negative_prompt: '' + prompt: '{prompt} (in the style of Bernardo Bellotto)' + +- name: Bernardo Strozzi + negative_prompt: '' + prompt: '{prompt} (in the style of Bernardo Strozzi)' + +- name: Berndnaut Smilde + negative_prompt: '' + prompt: '{prompt} (in the style of Berndnaut Smilde)' + +- name: Bernie Wrightson + negative_prompt: '' + prompt: '{prompt} (in the style of Bernie Wrightson)' + +- name: Bert Hardy + negative_prompt: '' + prompt: '{prompt} (in the style of Bert Hardy)' + +- name: Bert Stern + negative_prompt: '' + prompt: '{prompt} (in the style of Bert Stern)' + +- name: Berthe Morisot + negative_prompt: '' + prompt: '{prompt} (in the style of Berthe Morisot)' + +- name: Bertil Nilsson + negative_prompt: '' + prompt: '{prompt} (in the style of Bertil Nilsson)' + +- name: Bess Hamiti + negative_prompt: '' + prompt: '{prompt} (in the style of Bess Hamiti)' + +- name: Beth Conklin + negative_prompt: '' + prompt: '{prompt} (in the style of Beth Conklin)' + +- name: Bettina Rheims + negative_prompt: '' + prompt: '{prompt} (in the style of Bettina Rheims)' + +- name: Bhupen Khakhar + negative_prompt: '' + prompt: '{prompt} (in the style of Bhupen Khakhar)' + +- name: Bijou Karman + negative_prompt: '' + prompt: '{prompt} (in the style of Bijou Karman)' + +- name: Bill Brandt + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Brandt)' + +- name: Bill Brauer + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Brauer)' + +- name: Bill Carman + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Carman)' + +- name: Bill Durgin + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Durgin)' + +- name: Bill Gekas + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Gekas)' + +- name: Bill Henson + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Henson)' + +- name: Bill Jacklin + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Jacklin)' + +- name: Bill Medcalf + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Medcalf)' + +- name: Bill Sienkiewicz + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Sienkiewicz)' + +- name: Bill Traylor + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Traylor)' + +- name: Bill Viola + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Viola)' + +- name: Bill Ward + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Ward)' + +- name: Bill Watterson + negative_prompt: '' + prompt: '{prompt} (in the style of Bill Watterson)' + +- name: Billy Childish + negative_prompt: '' + prompt: '{prompt} (in the style of Billy Childish)' + +- name: Bjarke Ingels + negative_prompt: '' + prompt: '{prompt} (in the style of Bjarke Ingels)' + +- name: Blek Le Rat + negative_prompt: '' + prompt: '{prompt} (in the style of Blek Le Rat)' + +- name: Bo Bartlett + negative_prompt: '' + prompt: '{prompt} (in the style of Bo Bartlett)' + +- name: Bo Chen + negative_prompt: '' + prompt: '{prompt} (in the style of Bo Chen)' + +- name: Bob Byerley + negative_prompt: '' + prompt: '{prompt} (in the style of Bob Byerley)' + +- name: Bob Eggleton + negative_prompt: '' + prompt: '{prompt} (in the style of Bob Eggleton)' + +- name: Bob Ross + negative_prompt: '' + prompt: '{prompt} (in the style of Bob Ross)' + +- name: Bojan Jevtic + negative_prompt: '' + prompt: '{prompt} (in the style of Bojan Jevtic)' + +- name: Bojan Koturanovic + negative_prompt: '' + prompt: '{prompt} (in the style of Bojan Koturanovic)' + +- name: Bordalo II + negative_prompt: '' + prompt: '{prompt} (in the style of Bordalo II)' + +- name: Boris Grigoriev + negative_prompt: '' + prompt: '{prompt} (in the style of Boris Grigoriev)' + +- name: Boris Groh + negative_prompt: '' + prompt: '{prompt} (in the style of Boris Groh)' + +- name: Boris Kustodiev + negative_prompt: '' + prompt: '{prompt} (in the style of Boris Kustodiev)' + +- name: Boris Vallejo + negative_prompt: '' + prompt: '{prompt} (in the style of Boris Vallejo)' + +- name: Botero + negative_prompt: '' + prompt: '{prompt} (in the style of Botero)' + +- name: Brad Kunkle + negative_prompt: '' + prompt: '{prompt} (in the style of Brad Kunkle)' + +- name: Brad Rigney + negative_prompt: '' + prompt: '{prompt} (in the style of Brad Rigney)' + +- name: Brandon Mably + negative_prompt: '' + prompt: '{prompt} (in the style of Brandon Mably)' + +- name: Brandon Woelfel + negative_prompt: '' + prompt: '{prompt} (in the style of Brandon Woelfel)' + +- name: Brenda Zlamany + negative_prompt: '' + prompt: '{prompt} (in the style of Brenda Zlamany)' + +- name: Brent Cotton + negative_prompt: '' + prompt: '{prompt} (in the style of Brent Cotton)' + +- name: Brent Heighton + negative_prompt: '' + prompt: '{prompt} (in the style of Brent Heighton)' + +- name: Brett Weston + negative_prompt: '' + prompt: '{prompt} (in the style of Brett Weston)' + +- name: Brett Whiteley + negative_prompt: '' + prompt: '{prompt} (in the style of Brett Whiteley)' + +- name: Brian Bolland + negative_prompt: '' + prompt: '{prompt} (in the style of Brian Bolland)' + +- name: Brian Despain + negative_prompt: '' + prompt: '{prompt} (in the style of Brian Despain)' + +- name: Brian Froud + negative_prompt: '' + prompt: '{prompt} (in the style of Brian Froud)' + +- name: Brian K. Vaughan + negative_prompt: '' + prompt: '{prompt} (in the style of Brian K. Vaughan)' + +- name: Brian Kesinger + negative_prompt: '' + prompt: '{prompt} (in the style of Brian Kesinger)' + +- name: Brian M. Viveros + negative_prompt: '' + prompt: '{prompt} (in the style of Brian M. Viveros)' + +- name: Brian Mashburn + negative_prompt: '' + prompt: '{prompt} (in the style of Brian Mashburn)' + +- name: Brian Oldham + negative_prompt: '' + prompt: '{prompt} (in the style of Brian Oldham)' + +- name: Brian Stelfreeze + negative_prompt: '' + prompt: '{prompt} (in the style of Brian Stelfreeze)' + +- name: Brian Sum + negative_prompt: '' + prompt: '{prompt} (in the style of Brian Sum)' + +- name: Briana Mora + negative_prompt: '' + prompt: '{prompt} (in the style of Briana Mora)' + +- name: Brice Marden + negative_prompt: '' + prompt: '{prompt} (in the style of Brice Marden)' + +- name: Bridget Bate Tichenor + negative_prompt: '' + prompt: '{prompt} (in the style of Bridget Bate Tichenor)' + +- name: Bridget Riley + negative_prompt: '' + prompt: '{prompt} (in the style of Bridget Riley)' + +- name: Briton Rivière + negative_prompt: '' + prompt: '{prompt} (in the style of Briton Rivière)' + +- name: Brooke DiDonato + negative_prompt: '' + prompt: '{prompt} (in the style of Brooke DiDonato)' + +- name: Brooke Shaden + negative_prompt: '' + prompt: '{prompt} (in the style of Brooke Shaden)' + +- name: Brothers Grimm + negative_prompt: '' + prompt: '{prompt} (in the style of Brothers Grimm)' + +- name: Brothers Hildebrandt + negative_prompt: '' + prompt: '{prompt} (in the style of Brothers Hildebrandt)' + +- name: Bruce Coville + negative_prompt: '' + prompt: '{prompt} (in the style of Bruce Coville)' + +- name: Bruce Munro + negative_prompt: '' + prompt: '{prompt} (in the style of Bruce Munro)' + +- name: Bruce Nauman + negative_prompt: '' + prompt: '{prompt} (in the style of Bruce Nauman)' + +- name: Bruce Pennington + negative_prompt: '' + prompt: '{prompt} (in the style of Bruce Pennington)' + +- name: Bruce Timm + negative_prompt: '' + prompt: '{prompt} (in the style of Bruce Timm)' + +- name: Bruno Catalano + negative_prompt: '' + prompt: '{prompt} (in the style of Bruno Catalano)' + +- name: Bruno Munari + negative_prompt: '' + prompt: '{prompt} (in the style of Bruno Munari)' + +- name: Bruno Walpoth + negative_prompt: '' + prompt: '{prompt} (in the style of Bruno Walpoth)' + +- name: Bryan Hitch + negative_prompt: '' + prompt: '{prompt} (in the style of Bryan Hitch)' + +- name: Butcher Billy + negative_prompt: '' + prompt: '{prompt} (in the style of Butcher Billy)' + +- name: C. R. W. Nevinson + negative_prompt: '' + prompt: '{prompt} (in the style of C. R. W. Nevinson)' + +- name: Cagnaccio Di San Pietro + negative_prompt: '' + prompt: '{prompt} (in the style of Cagnaccio Di San Pietro)' + +- name: Camille Corot + negative_prompt: '' + prompt: '{prompt} (in the style of Camille Corot)' + +- name: Camille Pissarro + negative_prompt: '' + prompt: '{prompt} (in the style of Camille Pissarro)' + +- name: Camille Walala + negative_prompt: '' + prompt: '{prompt} (in the style of Camille Walala)' + +- name: Canaletto + negative_prompt: '' + prompt: '{prompt} (in the style of Canaletto)' + +- name: Candido Portinari + negative_prompt: '' + prompt: '{prompt} (in the style of Candido Portinari)' + +- name: Carel Willink + negative_prompt: '' + prompt: '{prompt} (in the style of Carel Willink)' + +- name: Carl Barks + negative_prompt: '' + prompt: '{prompt} (in the style of Carl Barks)' + +- name: Carl Gustav Carus + negative_prompt: '' + prompt: '{prompt} (in the style of Carl Gustav Carus)' + +- name: Carl Holsoe + negative_prompt: '' + prompt: '{prompt} (in the style of Carl Holsoe)' + +- name: Carl Larsson + negative_prompt: '' + prompt: '{prompt} (in the style of Carl Larsson)' + +- name: Carl Spitzweg + negative_prompt: '' + prompt: '{prompt} (in the style of Carl Spitzweg)' + +- name: Carlo Crivelli + negative_prompt: '' + prompt: '{prompt} (in the style of Carlo Crivelli)' + +- name: Carlos Schwabe + negative_prompt: '' + prompt: '{prompt} (in the style of Carlos Schwabe)' + +- name: Carmen Saldana + negative_prompt: '' + prompt: '{prompt} (in the style of Carmen Saldana)' + +- name: Carne Griffiths + negative_prompt: '' + prompt: '{prompt} (in the style of Carne Griffiths)' + +- name: Carrie Mae Weems + negative_prompt: '' + prompt: '{prompt} (in the style of Carrie Mae Weems)' + +- name: Casey Weldon + negative_prompt: '' + prompt: '{prompt} (in the style of Casey Weldon)' + +- name: Caspar David Friedrich + negative_prompt: '' + prompt: '{prompt} (in the style of Caspar David Friedrich)' + +- name: Cassius Marcellus Coolidge + negative_prompt: '' + prompt: '{prompt} (in the style of Cassius Marcellus Coolidge)' + +- name: Catherine Hyde + negative_prompt: '' + prompt: '{prompt} (in the style of Catherine Hyde)' + +- name: Catrin Welz-Stein + negative_prompt: '' + prompt: '{prompt} (in the style of Catrin Welz-Stein)' + +- name: Cedric Peyravernay + negative_prompt: '' + prompt: '{prompt} (in the style of Cedric Peyravernay)' + +- name: Chad Knight + negative_prompt: '' + prompt: '{prompt} (in the style of Chad Knight)' + +- name: Chantal Joffe + negative_prompt: '' + prompt: '{prompt} (in the style of Chantal Joffe)' + +- name: Charles Addams + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Addams)' + +- name: Charles Angrand + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Angrand)' + +- name: Charles Blackman + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Blackman)' + +- name: Charles Camoin + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Camoin)' + +- name: Charles Dana Gibson + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Dana Gibson)' + +- name: Charles E. Burchfield + negative_prompt: '' + prompt: '{prompt} (in the style of Charles E. Burchfield)' + +- name: Charles Gwathmey + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Gwathmey)' + +- name: Charles Le Brun + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Le Brun)' + +- name: Charles Liu + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Liu)' + +- name: Charles Schridde + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Schridde)' + +- name: Charles Schulz + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Schulz)' + +- name: Charles Spencelayh + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Spencelayh)' + +- name: Charles Vess + negative_prompt: '' + prompt: '{prompt} (in the style of Charles Vess)' + +- name: Charles-Francois Daubigny + negative_prompt: '' + prompt: '{prompt} (in the style of Charles-Francois Daubigny)' + +- name: Charlie Bowater + negative_prompt: '' + prompt: '{prompt} (in the style of Charlie Bowater)' + +- name: Charline von Heyl + negative_prompt: '' + prompt: '{prompt} (in the style of Charline von Heyl)' + +- name: Chaïm Soutine + negative_prompt: '' + prompt: '{prompt} (in the style of Chaïm Soutine)' + +- name: Chen Zhen + negative_prompt: '' + prompt: '{prompt} (in the style of Chen Zhen)' + +- name: Chesley Bonestell + negative_prompt: '' + prompt: '{prompt} (in the style of Chesley Bonestell)' + +- name: Chiharu Shiota + negative_prompt: '' + prompt: '{prompt} (in the style of Chiharu Shiota)' + +- name: Ching Yeh + negative_prompt: '' + prompt: '{prompt} (in the style of Ching Yeh)' + +- name: Chip Zdarsky + negative_prompt: '' + prompt: '{prompt} (in the style of Chip Zdarsky)' + +- name: Chris Claremont + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Claremont)' + +- name: Chris Cunningham + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Cunningham)' + +- name: Chris Foss + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Foss)' + +- name: Chris Leib + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Leib)' + +- name: Chris Mars + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Mars)' + +- name: Chris Moore + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Moore)' + +- name: Chris Ofili + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Ofili)' + +- name: Chris Saunders + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Saunders)' + +- name: Chris Turnham + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Turnham)' + +- name: Chris Uminga + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Uminga)' + +- name: Chris Van Allsburg + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Van Allsburg)' + +- name: Chris Ware + negative_prompt: '' + prompt: '{prompt} (in the style of Chris Ware)' + +- name: Christian Dimitrov + negative_prompt: '' + prompt: '{prompt} (in the style of Christian Dimitrov)' + +- name: Christian Grajewski + negative_prompt: '' + prompt: '{prompt} (in the style of Christian Grajewski)' + +- name: Christophe Vacher + negative_prompt: '' + prompt: '{prompt} (in the style of Christophe Vacher)' + +- name: Christopher Balaskas + negative_prompt: '' + prompt: '{prompt} (in the style of Christopher Balaskas)' + +- name: Christopher Jin Baron + negative_prompt: '' + prompt: '{prompt} (in the style of Christopher Jin Baron)' + +- name: Chuck Close + negative_prompt: '' + prompt: '{prompt} (in the style of Chuck Close)' + +- name: Cicely Mary Barker + negative_prompt: '' + prompt: '{prompt} (in the style of Cicely Mary Barker)' + +- name: Cindy Sherman + negative_prompt: '' + prompt: '{prompt} (in the style of Cindy Sherman)' + +- name: Claire Hummel + negative_prompt: '' + prompt: '{prompt} (in the style of Claire Hummel)' + +- name: Clara Miller Burd + negative_prompt: '' + prompt: '{prompt} (in the style of Clara Miller Burd)' + +- name: Clara Peeters + negative_prompt: '' + prompt: '{prompt} (in the style of Clara Peeters)' + +- name: Clarence Holbrook Carter + negative_prompt: '' + prompt: '{prompt} (in the style of Clarence Holbrook Carter)' + +- name: Claude Cahun + negative_prompt: '' + prompt: '{prompt} (in the style of Claude Cahun)' + +- name: Claude Monet + negative_prompt: '' + prompt: '{prompt} (in the style of Claude Monet)' + +- name: Clemens Ascher + negative_prompt: '' + prompt: '{prompt} (in the style of Clemens Ascher)' + +- name: Cliff Chiang + negative_prompt: '' + prompt: '{prompt} (in the style of Cliff Chiang)' + +- name: Clive Madgwick + negative_prompt: '' + prompt: '{prompt} (in the style of Clive Madgwick)' + +- name: Clovis Trouille + negative_prompt: '' + prompt: '{prompt} (in the style of Clovis Trouille)' + +- name: Clyde Caldwell + negative_prompt: '' + prompt: '{prompt} (in the style of Clyde Caldwell)' + +- name: Coby Whitmore + negative_prompt: '' + prompt: '{prompt} (in the style of Coby Whitmore)' + +- name: Coles Phillips + negative_prompt: '' + prompt: '{prompt} (in the style of Coles Phillips)' + +- name: Colin Geller + negative_prompt: '' + prompt: '{prompt} (in the style of Colin Geller)' + +- name: Conor Harrington + negative_prompt: '' + prompt: '{prompt} (in the style of Conor Harrington)' + +- name: Conrad Roset + negative_prompt: '' + prompt: '{prompt} (in the style of Conrad Roset)' + +- name: Constant Permeke + negative_prompt: '' + prompt: '{prompt} (in the style of Constant Permeke)' + +- name: Constantin Brancusi + negative_prompt: '' + prompt: '{prompt} (in the style of Constantin Brancusi)' + +- name: Cory Arcangel + negative_prompt: '' + prompt: '{prompt} (in the style of Cory Arcangel)' + +- name: Cory Loftis + negative_prompt: '' + prompt: '{prompt} (in the style of Cory Loftis)' + +- name: Costa Dvorezky + negative_prompt: '' + prompt: '{prompt} (in the style of Costa Dvorezky)' + +- name: Craig Davison + negative_prompt: '' + prompt: '{prompt} (in the style of Craig Davison)' + +- name: Craig Mullins + negative_prompt: '' + prompt: '{prompt} (in the style of Craig Mullins)' + +- name: Craig Wylie + negative_prompt: '' + prompt: '{prompt} (in the style of Craig Wylie)' + +- name: Craola + negative_prompt: '' + prompt: '{prompt} (in the style of Craola)' + +- name: Cuno Amiet + negative_prompt: '' + prompt: '{prompt} (in the style of Cuno Amiet)' + +- name: Cyril Rolando + negative_prompt: '' + prompt: '{prompt} (in the style of Cyril Rolando)' + +- name: Dain Yoon + negative_prompt: '' + prompt: '{prompt} (in the style of Dain Yoon)' + +- name: Dale Chihuly + negative_prompt: '' + prompt: '{prompt} (in the style of Dale Chihuly)' + +- name: Damien Hirst + negative_prompt: '' + prompt: '{prompt} (in the style of Damien Hirst)' + +- name: Dan Flavin + negative_prompt: '' + prompt: '{prompt} (in the style of Dan Flavin)' + +- name: Dan Mumford + negative_prompt: '' + prompt: '{prompt} (in the style of Dan Mumford)' + +- name: Dan Witz + negative_prompt: '' + prompt: '{prompt} (in the style of Dan Witz)' + +- name: Daniel Buren + negative_prompt: '' + prompt: '{prompt} (in the style of Daniel Buren)' + +- name: Daniel Clowes + negative_prompt: '' + prompt: '{prompt} (in the style of Daniel Clowes)' + +- name: Daniel Garber + negative_prompt: '' + prompt: '{prompt} (in the style of Daniel Garber)' + +- name: Daniel Merriam + negative_prompt: '' + prompt: '{prompt} (in the style of Daniel Merriam)' + +- name: Daniel Ridgway Knight + negative_prompt: '' + prompt: '{prompt} (in the style of Daniel Ridgway Knight)' + +- name: Daniela Uhlig + negative_prompt: '' + prompt: '{prompt} (in the style of Daniela Uhlig)' + +- name: Daniele Afferni + negative_prompt: '' + prompt: '{prompt} (in the style of Daniele Afferni)' + +- name: Dante Gabriel Rossetti + negative_prompt: '' + prompt: '{prompt} (in the style of Dante Gabriel Rossetti)' + +- name: Dao Le Trong + negative_prompt: '' + prompt: '{prompt} (in the style of Dao Le Trong)' + +- name: Dariusz Zawadzki + negative_prompt: '' + prompt: '{prompt} (in the style of Dariusz Zawadzki)' + +- name: Darren Bacon + negative_prompt: '' + prompt: '{prompt} (in the style of Darren Bacon)' + +- name: Darwyn Cooke + negative_prompt: '' + prompt: '{prompt} (in the style of Darwyn Cooke)' + +- name: Daryl Mandryk + negative_prompt: '' + prompt: '{prompt} (in the style of Daryl Mandryk)' + +- name: Dave Dorman + negative_prompt: '' + prompt: '{prompt} (in the style of Dave Dorman)' + +- name: Dave Gibbons + negative_prompt: '' + prompt: '{prompt} (in the style of Dave Gibbons)' + +- name: Dave McKean + negative_prompt: '' + prompt: '{prompt} (in the style of Dave McKean)' + +- name: David A. Hardy + negative_prompt: '' + prompt: '{prompt} (in the style of David A. Hardy)' + +- name: David Aja + negative_prompt: '' + prompt: '{prompt} (in the style of David Aja)' + +- name: David B. Mattingly + negative_prompt: '' + prompt: '{prompt} (in the style of David B. Mattingly)' + +- name: David Bomberg + negative_prompt: '' + prompt: '{prompt} (in the style of David Bomberg)' + +- name: David Bowie + negative_prompt: '' + prompt: '{prompt} (in the style of David Bowie)' + +- name: David Burdeny + negative_prompt: '' + prompt: '{prompt} (in the style of David Burdeny)' + +- name: David Burliuk + negative_prompt: '' + prompt: '{prompt} (in the style of David Burliuk)' + +- name: David Choe + negative_prompt: '' + prompt: '{prompt} (in the style of David Choe)' + +- name: David Driskell + negative_prompt: '' + prompt: '{prompt} (in the style of David Driskell)' + +- name: David Finch + negative_prompt: '' + prompt: '{prompt} (in the style of David Finch)' + +- name: David Hockney + negative_prompt: '' + prompt: '{prompt} (in the style of David Hockney)' + +- name: David Inshaw + negative_prompt: '' + prompt: '{prompt} (in the style of David Inshaw)' + +- name: David Ligare + negative_prompt: '' + prompt: '{prompt} (in the style of David Ligare)' + +- name: David Lynch + negative_prompt: '' + prompt: '{prompt} (in the style of David Lynch)' + +- name: David McClellan + negative_prompt: '' + prompt: '{prompt} (in the style of David McClellan)' + +- name: David Palumbo + negative_prompt: '' + prompt: '{prompt} (in the style of David Palumbo)' + +- name: David Shrigley + negative_prompt: '' + prompt: '{prompt} (in the style of David Shrigley)' + +- name: David Spriggs + negative_prompt: '' + prompt: '{prompt} (in the style of David Spriggs)' + +- name: David Teniers the Younger + negative_prompt: '' + prompt: '{prompt} (in the style of David Teniers the Younger)' + +- name: David Wiesner + negative_prompt: '' + prompt: '{prompt} (in the style of David Wiesner)' + +- name: Dean Cornwell + negative_prompt: '' + prompt: '{prompt} (in the style of Dean Cornwell)' + +- name: Dean Ellis + negative_prompt: '' + prompt: '{prompt} (in the style of Dean Ellis)' + +- name: Death Burger + negative_prompt: '' + prompt: '{prompt} (in the style of Death Burger)' + +- name: Debbie Criswell + negative_prompt: '' + prompt: '{prompt} (in the style of Debbie Criswell)' + +- name: Derek Boshier + negative_prompt: '' + prompt: '{prompt} (in the style of Derek Boshier)' + +- name: Desmond Morris + negative_prompt: '' + prompt: '{prompt} (in the style of Desmond Morris)' + +- name: Diane Arbus + negative_prompt: '' + prompt: '{prompt} (in the style of Diane Arbus)' + +- name: Diane Dillon + negative_prompt: '' + prompt: '{prompt} (in the style of Diane Dillon)' + +- name: Dick Bickenbach + negative_prompt: '' + prompt: '{prompt} (in the style of Dick Bickenbach)' + +- name: Diego Dayer + negative_prompt: '' + prompt: '{prompt} (in the style of Diego Dayer)' + +- name: Diego Rivera + negative_prompt: '' + prompt: '{prompt} (in the style of Diego Rivera)' + +- name: Diego Velázquez + negative_prompt: '' + prompt: '{prompt} (in the style of Diego Velázquez)' + +- name: Dmitry Kustanovich + negative_prompt: '' + prompt: '{prompt} (in the style of Dmitry Kustanovich)' + +- name: Don Bluth + negative_prompt: '' + prompt: '{prompt} (in the style of Don Bluth)' + +- name: Don Maitz + negative_prompt: '' + prompt: '{prompt} (in the style of Don Maitz)' + +- name: Donald Judd + negative_prompt: '' + prompt: '{prompt} (in the style of Donald Judd)' + +- name: Donato Giancola + negative_prompt: '' + prompt: '{prompt} (in the style of Donato Giancola)' + +- name: Dora Carrington + negative_prompt: '' + prompt: '{prompt} (in the style of Dora Carrington)' + +- name: Dora Maar + negative_prompt: '' + prompt: '{prompt} (in the style of Dora Maar)' + +- name: Dorina Costras + negative_prompt: '' + prompt: '{prompt} (in the style of Dorina Costras)' + +- name: Dorothea Tanning + negative_prompt: '' + prompt: '{prompt} (in the style of Dorothea Tanning)' + +- name: Dorothy Lathrop + negative_prompt: '' + prompt: '{prompt} (in the style of Dorothy Lathrop)' + +- name: Doug Chiang + negative_prompt: '' + prompt: '{prompt} (in the style of Doug Chiang)' + +- name: Douglas Smith + negative_prompt: '' + prompt: '{prompt} (in the style of Douglas Smith)' + +- name: Dr. Seuss + negative_prompt: '' + prompt: '{prompt} (in the style of Dr. Seuss)' + +- name: Dunkelbunt Hundertwasser” + negative_prompt: '' + prompt: '{prompt} (in the style of Dunkelbunt Hundertwasser”)' + +- name: Dustin Nguyen + negative_prompt: '' + prompt: '{prompt} (in the style of Dustin Nguyen)' + +- name: Duy Huynh + negative_prompt: '' + prompt: '{prompt} (in the style of Duy Huynh)' + +- name: E. H. Shepard + negative_prompt: '' + prompt: '{prompt} (in the style of E. H. Shepard)' + +- name: Earl Norem + negative_prompt: '' + prompt: '{prompt} (in the style of Earl Norem)' + +- name: Ed Benedict + negative_prompt: '' + prompt: '{prompt} (in the style of Ed Benedict)' + +- name: Ed Binkley + negative_prompt: '' + prompt: '{prompt} (in the style of Ed Binkley)' + +- name: Ed Brubaker + negative_prompt: '' + prompt: '{prompt} (in the style of Ed Brubaker)' + +- name: Ed Emshwiller + negative_prompt: '' + prompt: '{prompt} (in the style of Ed Emshwiller)' + +- name: Ed Freeman + negative_prompt: '' + prompt: '{prompt} (in the style of Ed Freeman)' + +- name: Ed Mell + negative_prompt: '' + prompt: '{prompt} (in the style of Ed Mell)' + +- name: Ed Roth + negative_prompt: '' + prompt: '{prompt} (in the style of Ed Roth)' + +- name: Eddie Campbell + negative_prompt: '' + prompt: '{prompt} (in the style of Eddie Campbell)' + +- name: Eddie Mendoza + negative_prompt: '' + prompt: '{prompt} (in the style of Eddie Mendoza)' + +- name: Edgar Degas + negative_prompt: '' + prompt: '{prompt} (in the style of Edgar Degas)' + +- name: Edmund Dulac + negative_prompt: '' + prompt: '{prompt} (in the style of Edmund Dulac)' + +- name: Edmund Leighton + negative_prompt: '' + prompt: '{prompt} (in the style of Edmund Leighton)' + +- name: Edouard Manet + negative_prompt: '' + prompt: '{prompt} (in the style of Edouard Manet)' + +- name: Edouard Riou + negative_prompt: '' + prompt: '{prompt} (in the style of Edouard Riou)' + +- name: Eduardo Kobra + negative_prompt: '' + prompt: '{prompt} (in the style of Eduardo Kobra)' + +- name: Edvard Munch + negative_prompt: '' + prompt: '{prompt} (in the style of Edvard Munch)' + +- name: Edward Atkinson Hornel + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Atkinson Hornel)' + +- name: Edward Burne-Jones + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Burne-Jones)' + +- name: Edward Gorey + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Gorey)' + +- name: Edward Hopper + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Hopper)' + +- name: Edward John Poynter + negative_prompt: '' + prompt: '{prompt} (in the style of Edward John Poynter)' + +- name: Edward Julius Detmold + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Julius Detmold)' + +- name: Edward Lear + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Lear)' + +- name: Edward Robert Hughes + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Robert Hughes)' + +- name: Edward Steichen + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Steichen)' + +- name: Edward Weston + negative_prompt: '' + prompt: '{prompt} (in the style of Edward Weston)' + +- name: Edwin Austin Abbey + negative_prompt: '' + prompt: '{prompt} (in the style of Edwin Austin Abbey)' + +- name: Edwin Deakin + negative_prompt: '' + prompt: '{prompt} (in the style of Edwin Deakin)' + +- name: Edwin Henry Landseer + negative_prompt: '' + prompt: '{prompt} (in the style of Edwin Henry Landseer)' + +- name: Eero Saarinen + negative_prompt: '' + prompt: '{prompt} (in the style of Eero Saarinen)' + +- name: Egon Schiele + negative_prompt: '' + prompt: '{prompt} (in the style of Egon Schiele)' + +- name: Eiichiro Oda + negative_prompt: '' + prompt: '{prompt} (in the style of Eiichiro Oda)' + +- name: Eileen Agar + negative_prompt: '' + prompt: '{prompt} (in the style of Eileen Agar)' + +- name: El Greco + negative_prompt: '' + prompt: '{prompt} (in the style of El Greco)' + +- name: Elaine de Kooning + negative_prompt: '' + prompt: '{prompt} (in the style of Elaine de Kooning)' + +- name: Eleanor Vere Boyle + negative_prompt: '' + prompt: '{prompt} (in the style of Eleanor Vere Boyle)' + +- name: Elenore Abbott + negative_prompt: '' + prompt: '{prompt} (in the style of Elenore Abbott)' + +- name: Eliott Lilly + negative_prompt: '' + prompt: '{prompt} (in the style of Eliott Lilly)' + +- name: Elizabeth Gadd + negative_prompt: '' + prompt: '{prompt} (in the style of Elizabeth Gadd)' + +- name: Elizabeth Shippen Green + negative_prompt: '' + prompt: '{prompt} (in the style of Elizabeth Shippen Green)' + +- name: Ellen Gallagher + negative_prompt: '' + prompt: '{prompt} (in the style of Ellen Gallagher)' + +- name: Ellen Jewett + negative_prompt: '' + prompt: '{prompt} (in the style of Ellen Jewett)' + +- name: Elliot Lilly + negative_prompt: '' + prompt: '{prompt} (in the style of Elliot Lilly)' + +- name: Elsa Beskow + negative_prompt: '' + prompt: '{prompt} (in the style of Elsa Beskow)' + +- name: Emil Alzamora + negative_prompt: '' + prompt: '{prompt} (in the style of Emil Alzamora)' + +- name: Emil Ferris + negative_prompt: '' + prompt: '{prompt} (in the style of Emil Ferris)' + +- name: Emil Nolde + negative_prompt: '' + prompt: '{prompt} (in the style of Emil Nolde)' + +- name: Emilia Wilk + negative_prompt: '' + prompt: '{prompt} (in the style of Emilia Wilk)' + +- name: Emily Kame Kngwarreye + negative_prompt: '' + prompt: '{prompt} (in the style of Emily Kame Kngwarreye)' + +- name: Emma Geary + negative_prompt: '' + prompt: '{prompt} (in the style of Emma Geary)' + +- name: Emmanuel Shiu + negative_prompt: '' + prompt: '{prompt} (in the style of Emmanuel Shiu)' + +- name: Emmanuelle Moureaux + negative_prompt: '' + prompt: '{prompt} (in the style of Emmanuelle Moureaux)' + +- name: Emory Douglas + negative_prompt: '' + prompt: '{prompt} (in the style of Emory Douglas)' + +- name: Enki Bilal + negative_prompt: '' + prompt: '{prompt} (in the style of Enki Bilal)' + +- name: Ephraim Moses Lilien + negative_prompt: '' + prompt: '{prompt} (in the style of Ephraim Moses Lilien)' + +- name: Eric Fischl + negative_prompt: '' + prompt: '{prompt} (in the style of Eric Fischl)' + +- name: Eric Wallis + negative_prompt: '' + prompt: '{prompt} (in the style of Eric Wallis)' + +- name: Eric Zener + negative_prompt: '' + prompt: '{prompt} (in the style of Eric Zener)' + +- name: Erich Heckel + negative_prompt: '' + prompt: '{prompt} (in the style of Erich Heckel)' + +- name: Erin Hanson + negative_prompt: '' + prompt: '{prompt} (in the style of Erin Hanson)' + +- name: Ernest Crichlow + negative_prompt: '' + prompt: '{prompt} (in the style of Ernest Crichlow)' + +- name: Ernie Barnes + negative_prompt: '' + prompt: '{prompt} (in the style of Ernie Barnes)' + +- name: Ernst Fuchs + negative_prompt: '' + prompt: '{prompt} (in the style of Ernst Fuchs)' + +- name: Ernst Haas + negative_prompt: '' + prompt: '{prompt} (in the style of Ernst Haas)' + +- name: Ernst Haeckel + negative_prompt: '' + prompt: '{prompt} (in the style of Ernst Haeckel)' + +- name: Ernst Ludwig Kirchner + negative_prompt: '' + prompt: '{prompt} (in the style of Ernst Ludwig Kirchner)' + +- name: Esao Andrews + negative_prompt: '' + prompt: '{prompt} (in the style of Esao Andrews)' + +- name: Etel Adnan + negative_prompt: '' + prompt: '{prompt} (in the style of Etel Adnan)' + +- name: Ethan Van Sciver + negative_prompt: '' + prompt: '{prompt} (in the style of Ethan Van Sciver)' + +- name: Etienne Hebinger + negative_prompt: '' + prompt: '{prompt} (in the style of Etienne Hebinger)' + +- name: Ettore Sottsass + negative_prompt: '' + prompt: '{prompt} (in the style of Ettore Sottsass)' + +- name: Ettore Tito + negative_prompt: '' + prompt: '{prompt} (in the style of Ettore Tito)' + +- name: Eugene Delacroix + negative_prompt: '' + prompt: '{prompt} (in the style of Eugene Delacroix)' + +- name: Eugene von Guerard + negative_prompt: '' + prompt: '{prompt} (in the style of Eugene von Guerard)' + +- name: Eugène Grasset + negative_prompt: '' + prompt: '{prompt} (in the style of Eugène Grasset)' + +- name: Evelyn De Morgan + negative_prompt: '' + prompt: '{prompt} (in the style of Evelyn De Morgan)' + +- name: Everett Raymond Kinstler + negative_prompt: '' + prompt: '{prompt} (in the style of Everett Raymond Kinstler)' + +- name: Evgeni Gordiets + negative_prompt: '' + prompt: '{prompt} (in the style of Evgeni Gordiets)' + +- name: Ewald Rübsamen + negative_prompt: '' + prompt: '{prompt} (in the style of Ewald Rübsamen)' + +- name: Eyvind Earle + negative_prompt: '' + prompt: '{prompt} (in the style of Eyvind Earle)' + +- name: F Scott Hess + negative_prompt: '' + prompt: '{prompt} (in the style of F Scott Hess)' + +- name: Fabian Perez + negative_prompt: '' + prompt: '{prompt} (in the style of Fabian Perez)' + +- name: Fabio Hurtado + negative_prompt: '' + prompt: '{prompt} (in the style of Fabio Hurtado)' + +- name: Fairfield Porter + negative_prompt: '' + prompt: '{prompt} (in the style of Fairfield Porter)' + +- name: Faith 47 + negative_prompt: '' + prompt: '{prompt} (in the style of Faith 47)' + +- name: Faith Ringgold + negative_prompt: '' + prompt: '{prompt} (in the style of Faith Ringgold)' + +- name: Fang Lijun + negative_prompt: '' + prompt: '{prompt} (in the style of Fang Lijun)' + +- name: Farel Dalrymple + negative_prompt: '' + prompt: '{prompt} (in the style of Farel Dalrymple)' + +- name: Fenghua Zhong + negative_prompt: '' + prompt: '{prompt} (in the style of Fenghua Zhong)' + +- name: Ferdinand Hodler + negative_prompt: '' + prompt: '{prompt} (in the style of Ferdinand Hodler)' + +- name: Ferdinand Knab + negative_prompt: '' + prompt: '{prompt} (in the style of Ferdinand Knab)' + +- name: Ferdinand Van Kessel + negative_prompt: '' + prompt: '{prompt} (in the style of Ferdinand Van Kessel)' + +- name: Fernand Khnopff + negative_prompt: '' + prompt: '{prompt} (in the style of Fernand Khnopff)' + +- name: Fernand Toussaint + negative_prompt: '' + prompt: '{prompt} (in the style of Fernand Toussaint)' + +- name: Fernando Herenu + negative_prompt: '' + prompt: '{prompt} (in the style of Fernando Herenu)' + +- name: Filip Hodas + negative_prompt: '' + prompt: '{prompt} (in the style of Filip Hodas)' + +- name: Filippino Lippi + negative_prompt: '' + prompt: '{prompt} (in the style of Filippino Lippi)' + +- name: Filippo Balbi + negative_prompt: '' + prompt: '{prompt} (in the style of Filippo Balbi)' + +- name: Flora Borsi + negative_prompt: '' + prompt: '{prompt} (in the style of Flora Borsi)' + +- name: Ford Madox Brown + negative_prompt: '' + prompt: '{prompt} (in the style of Ford Madox Brown)' + +- name: Francesca Woodman + negative_prompt: '' + prompt: '{prompt} (in the style of Francesca Woodman)' + +- name: Francis Bacon + negative_prompt: '' + prompt: '{prompt} (in the style of Francis Bacon)' + +- name: Francis Coates Jones + negative_prompt: '' + prompt: '{prompt} (in the style of Francis Coates Jones)' + +- name: Francis Picabia + negative_prompt: '' + prompt: '{prompt} (in the style of Francis Picabia)' + +- name: Francisco De Goya + negative_prompt: '' + prompt: '{prompt} (in the style of Francisco De Goya)' + +- name: Francisco Martín + negative_prompt: '' + prompt: '{prompt} (in the style of Francisco Martín)' + +- name: Frank Auerbach + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Auerbach)' + +- name: Frank Frazetta + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Frazetta)' + +- name: Frank Gehry + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Gehry)' + +- name: Frank Holl + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Holl)' + +- name: Frank Lloyd Wright + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Lloyd Wright)' + +- name: Frank Miller + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Miller)' + +- name: Frank Stella + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Stella)' + +- name: Frank Tinsley + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Tinsley)' + +- name: Frank Xavier Leyendecker + negative_prompt: '' + prompt: '{prompt} (in the style of Frank Xavier Leyendecker)' + +- name: Franklin Booth + negative_prompt: '' + prompt: '{prompt} (in the style of Franklin Booth)' + +- name: Franz Marc + negative_prompt: '' + prompt: '{prompt} (in the style of Franz Marc)' + +- name: Franz Sedlacek + negative_prompt: '' + prompt: '{prompt} (in the style of Franz Sedlacek)' + +- name: Franz Xaver Winterhalter + negative_prompt: '' + prompt: '{prompt} (in the style of Franz Xaver Winterhalter)' + +- name: Frederic Church + negative_prompt: '' + prompt: '{prompt} (in the style of Frederic Church)' + +- name: Frederic Remington + negative_prompt: '' + prompt: '{prompt} (in the style of Frederic Remington)' + +- name: Frederick Lord Leighton + negative_prompt: '' + prompt: '{prompt} (in the style of Frederick Lord Leighton)' + +- name: Frederick McCubbin + negative_prompt: '' + prompt: '{prompt} (in the style of Frederick McCubbin)' + +- name: Frida Kahlo + negative_prompt: '' + prompt: '{prompt} (in the style of Frida Kahlo)' + +- name: Frits Van den Berghe + negative_prompt: '' + prompt: '{prompt} (in the style of Frits Van den Berghe)' + +- name: Gabriel Dawe + negative_prompt: '' + prompt: '{prompt} (in the style of Gabriel Dawe)' + +- name: Gabriele Münter + negative_prompt: '' + prompt: '{prompt} (in the style of Gabriele Münter)' + +- name: Gaetano Pesce + negative_prompt: '' + prompt: '{prompt} (in the style of Gaetano Pesce)' + +- name: Galan Pang + negative_prompt: '' + prompt: '{prompt} (in the style of Galan Pang)' + +- name: Gareth Pugh + negative_prompt: '' + prompt: '{prompt} (in the style of Gareth Pugh)' + +- name: Gary Larson + negative_prompt: '' + prompt: '{prompt} (in the style of Gary Larson)' + +- name: Gaston Bussière + negative_prompt: '' + prompt: '{prompt} (in the style of Gaston Bussière)' + +- name: Gediminas Pranckevicius + negative_prompt: '' + prompt: '{prompt} (in the style of Gediminas Pranckevicius)' + +- name: Genndy Tartakovsky + negative_prompt: '' + prompt: '{prompt} (in the style of Genndy Tartakovsky)' + +- name: Geof Darrow + negative_prompt: '' + prompt: '{prompt} (in the style of Geof Darrow)' + +- name: Georg Jensen + negative_prompt: '' + prompt: '{prompt} (in the style of Georg Jensen)' + +- name: Georg Karl Pfahler + negative_prompt: '' + prompt: '{prompt} (in the style of Georg Karl Pfahler)' + +- name: George Ault + negative_prompt: '' + prompt: '{prompt} (in the style of George Ault)' + +- name: George Cruikshank + negative_prompt: '' + prompt: '{prompt} (in the style of George Cruikshank)' + +- name: George Dionysus Ehret + negative_prompt: '' + prompt: '{prompt} (in the style of George Dionysus Ehret)' + +- name: George Frederic Watts + negative_prompt: '' + prompt: '{prompt} (in the style of George Frederic Watts)' + +- name: George French Angas + negative_prompt: '' + prompt: '{prompt} (in the style of George French Angas)' + +- name: George Grosz + negative_prompt: '' + prompt: '{prompt} (in the style of George Grosz)' + +- name: George Herriman + negative_prompt: '' + prompt: '{prompt} (in the style of George Herriman)' + +- name: George Inness + negative_prompt: '' + prompt: '{prompt} (in the style of George Inness)' + +- name: George Lucas + negative_prompt: '' + prompt: '{prompt} (in the style of George Lucas)' + +- name: George Luks + negative_prompt: '' + prompt: '{prompt} (in the style of George Luks)' + +- name: George Stubbs + negative_prompt: '' + prompt: '{prompt} (in the style of George Stubbs)' + +- name: George Tooker + negative_prompt: '' + prompt: '{prompt} (in the style of George Tooker)' + +- name: Georges Rouault + negative_prompt: '' + prompt: '{prompt} (in the style of Georges Rouault)' + +- name: Georges Seurat + negative_prompt: '' + prompt: '{prompt} (in the style of Georges Seurat)' + +- name: Georges de La Tour + negative_prompt: '' + prompt: '{prompt} (in the style of Georges de La Tour)' + +- name: Georgia O’Keeffe + negative_prompt: '' + prompt: '{prompt} (in the style of Georgia O’Keeffe)' + +- name: Gerald Brom + negative_prompt: '' + prompt: '{prompt} (in the style of Gerald Brom)' + +- name: Gerda Wegener + negative_prompt: '' + prompt: '{prompt} (in the style of Gerda Wegener)' + +- name: Gerhard Munthe + negative_prompt: '' + prompt: '{prompt} (in the style of Gerhard Munthe)' + +- name: Gerhard Richter + negative_prompt: '' + prompt: '{prompt} (in the style of Gerhard Richter)' + +- name: Gertrude Abercrombie + negative_prompt: '' + prompt: '{prompt} (in the style of Gertrude Abercrombie)' + +- name: Giacomo Balla + negative_prompt: '' + prompt: '{prompt} (in the style of Giacomo Balla)' + +- name: Gianluca Foli + negative_prompt: '' + prompt: '{prompt} (in the style of Gianluca Foli)' + +- name: Gifford Beal + negative_prompt: '' + prompt: '{prompt} (in the style of Gifford Beal)' + +- name: Gil Elvgren + negative_prompt: '' + prompt: '{prompt} (in the style of Gil Elvgren)' + +- name: Gilbert Stuart + negative_prompt: '' + prompt: '{prompt} (in the style of Gilbert Stuart)' + +- name: Giorgio De Chirico + negative_prompt: '' + prompt: '{prompt} (in the style of Giorgio De Chirico)' + +- name: Giotto Di Bondone + negative_prompt: '' + prompt: '{prompt} (in the style of Giotto Di Bondone)' + +- name: Giovanni Battista Bracelli + negative_prompt: '' + prompt: '{prompt} (in the style of Giovanni Battista Bracelli)' + +- name: Giovanni Battista Gaulli + negative_prompt: '' + prompt: '{prompt} (in the style of Giovanni Battista Gaulli)' + +- name: Giovanni Battista Piranesi + negative_prompt: '' + prompt: '{prompt} (in the style of Giovanni Battista Piranesi)' + +- name: Giovanni Battista Venanzi + negative_prompt: '' + prompt: '{prompt} (in the style of Giovanni Battista Venanzi)' + +- name: Giovanni da Udina + negative_prompt: '' + prompt: '{prompt} (in the style of Giovanni da Udina)' + +- name: Giuseppe Arcimboldo + negative_prompt: '' + prompt: '{prompt} (in the style of Giuseppe Arcimboldo)' + +- name: Giuseppe de Nittis + negative_prompt: '' + prompt: '{prompt} (in the style of Giuseppe de Nittis)' + +- name: Gjon Mili + negative_prompt: '' + prompt: '{prompt} (in the style of Gjon Mili)' + +- name: Glen Orbik + negative_prompt: '' + prompt: '{prompt} (in the style of Glen Orbik)' + +- name: Glenn Fabry + negative_prompt: '' + prompt: '{prompt} (in the style of Glenn Fabry)' + +- name: Gloria Stoll Karn + negative_prompt: '' + prompt: '{prompt} (in the style of Gloria Stoll Karn)' + +- name: Go Nagai + negative_prompt: '' + prompt: '{prompt} (in the style of Go Nagai)' + +- name: Gordon Browne + negative_prompt: '' + prompt: '{prompt} (in the style of Gordon Browne)' + +- name: Gordon Parks + negative_prompt: '' + prompt: '{prompt} (in the style of Gordon Parks)' + +- name: Goro Fujita + negative_prompt: '' + prompt: '{prompt} (in the style of Goro Fujita)' + +- name: Grace Cossington Smith + negative_prompt: '' + prompt: '{prompt} (in the style of Grace Cossington Smith)' + +- name: Grace Popp + negative_prompt: '' + prompt: '{prompt} (in the style of Grace Popp)' + +- name: Grandma Moses + negative_prompt: '' + prompt: '{prompt} (in the style of Grandma Moses)' + +- name: Grant Wood + negative_prompt: '' + prompt: '{prompt} (in the style of Grant Wood)' + +- name: Grayson Perry + negative_prompt: '' + prompt: '{prompt} (in the style of Grayson Perry)' + +- name: Greg Girard + negative_prompt: '' + prompt: '{prompt} (in the style of Greg Girard)' + +- name: Greg Hildebrandt + negative_prompt: '' + prompt: '{prompt} (in the style of Greg Hildebrandt)' + +- name: Greg Rutkowski + negative_prompt: '' + prompt: '{prompt} (in the style of Greg Rutkowski)' + +- name: Greg Simkins + negative_prompt: '' + prompt: '{prompt} (in the style of Greg Simkins)' + +- name: Gregory Crewdson + negative_prompt: '' + prompt: '{prompt} (in the style of Gregory Crewdson)' + +- name: Guerrilla Girls + negative_prompt: '' + prompt: '{prompt} (in the style of Guerrilla Girls)' + +- name: Guido Borelli Da Caluso + negative_prompt: '' + prompt: '{prompt} (in the style of Guido Borelli Da Caluso)' + +- name: Guido Crepax + negative_prompt: '' + prompt: '{prompt} (in the style of Guido Crepax)' + +- name: Guillermo del Toro + negative_prompt: '' + prompt: '{prompt} (in the style of Guillermo del Toro)' + +- name: Guo Pei + negative_prompt: '' + prompt: '{prompt} (in the style of Guo Pei)' + +- name: Gustaf Tenggren + negative_prompt: '' + prompt: '{prompt} (in the style of Gustaf Tenggren)' + +- name: Gustav Klimt + negative_prompt: '' + prompt: '{prompt} (in the style of Gustav Klimt)' + +- name: Gustave Buchet + negative_prompt: '' + prompt: '{prompt} (in the style of Gustave Buchet)' + +- name: Gustave Courbet + negative_prompt: '' + prompt: '{prompt} (in the style of Gustave Courbet)' + +- name: Gustave Doré + negative_prompt: '' + prompt: '{prompt} (in the style of Gustave Doré)' + +- name: Gustave Moreau + negative_prompt: '' + prompt: '{prompt} (in the style of Gustave Moreau)' + +- name: Gustave Van de Woestijne + negative_prompt: '' + prompt: '{prompt} (in the style of Gustave Van de Woestijne)' + +- name: Guy Billout + negative_prompt: '' + prompt: '{prompt} (in the style of Guy Billout)' + +- name: Gwen John + negative_prompt: '' + prompt: '{prompt} (in the style of Gwen John)' + +- name: Gwenda Morgan + negative_prompt: '' + prompt: '{prompt} (in the style of Gwenda Morgan)' + +- name: H. R. (Hans Ruedi) Giger + negative_prompt: '' + prompt: '{prompt} (in the style of H. R. (Hans Ruedi) Giger)' + +- name: H.P. Lovecraft + negative_prompt: '' + prompt: '{prompt} (in the style of H.P. Lovecraft)' + +- name: Haddon Sundblom + negative_prompt: '' + prompt: '{prompt} (in the style of Haddon Sundblom)' + +- name: Hajime Sorayama + negative_prompt: '' + prompt: '{prompt} (in the style of Hajime Sorayama)' + +- name: Hal Foster + negative_prompt: '' + prompt: '{prompt} (in the style of Hal Foster)' + +- name: Hale Woodruff + negative_prompt: '' + prompt: '{prompt} (in the style of Hale Woodruff)' + +- name: Hanna-Barbera + negative_prompt: '' + prompt: '{prompt} (in the style of Hanna-Barbera)' + +- name: Hannah Hoch + negative_prompt: '' + prompt: '{prompt} (in the style of Hannah Hoch)' + +- name: Hans Arnold + negative_prompt: '' + prompt: '{prompt} (in the style of Hans Arnold)' + +- name: Hans Baldung + negative_prompt: '' + prompt: '{prompt} (in the style of Hans Baldung)' + +- name: Hans Baluschek + negative_prompt: '' + prompt: '{prompt} (in the style of Hans Baluschek)' + +- name: Hans Bellmer + negative_prompt: '' + prompt: '{prompt} (in the style of Hans Bellmer)' + +- name: Harold McCauley + negative_prompt: '' + prompt: '{prompt} (in the style of Harold McCauley)' + +- name: Haroon Mirza + negative_prompt: '' + prompt: '{prompt} (in the style of Haroon Mirza)' + +- name: Harriet Backer + negative_prompt: '' + prompt: '{prompt} (in the style of Harriet Backer)' + +- name: Harry Clarke + negative_prompt: '' + prompt: '{prompt} (in the style of Harry Clarke)' + +- name: Hasui Kawase + negative_prompt: '' + prompt: '{prompt} (in the style of Hasui Kawase)' + +- name: Hayao Miyazaki + negative_prompt: '' + prompt: '{prompt} (in the style of Hayao Miyazaki)' + +- name: Hayv Kahraman + negative_prompt: '' + prompt: '{prompt} (in the style of Hayv Kahraman)' + +- name: Hein Gorny + negative_prompt: '' + prompt: '{prompt} (in the style of Hein Gorny)' + +- name: Heinrich Kley + negative_prompt: '' + prompt: '{prompt} (in the style of Heinrich Kley)' + +- name: Heinrich Lefler + negative_prompt: '' + prompt: '{prompt} (in the style of Heinrich Lefler)' + +- name: Heinz Edelmann + negative_prompt: '' + prompt: '{prompt} (in the style of Heinz Edelmann)' + +- name: Helen Frankenthaler + negative_prompt: '' + prompt: '{prompt} (in the style of Helen Frankenthaler)' + +- name: Helene Knoop + negative_prompt: '' + prompt: '{prompt} (in the style of Helene Knoop)' + +- name: Helene Schjerfbeck + negative_prompt: '' + prompt: '{prompt} (in the style of Helene Schjerfbeck)' + +- name: Helio Oiticica + negative_prompt: '' + prompt: '{prompt} (in the style of Helio Oiticica)' + +- name: Helmut Newton + negative_prompt: '' + prompt: '{prompt} (in the style of Helmut Newton)' + +- name: Hendrick Avercamp + negative_prompt: '' + prompt: '{prompt} (in the style of Hendrick Avercamp)' + +- name: Hendrick Cornelisz Vroom + negative_prompt: '' + prompt: '{prompt} (in the style of Hendrick Cornelisz Vroom)' + +- name: Hendrick Goltzius + negative_prompt: '' + prompt: '{prompt} (in the style of Hendrick Goltzius)' + +- name: Hendrik Kerstens + negative_prompt: '' + prompt: '{prompt} (in the style of Hendrik Kerstens)' + +- name: Henri De Toulouse Lautrec + negative_prompt: '' + prompt: '{prompt} (in the style of Henri De Toulouse Lautrec)' + +- name: Henri Fantin Latour + negative_prompt: '' + prompt: '{prompt} (in the style of Henri Fantin Latour)' + +- name: Henri Matisse + negative_prompt: '' + prompt: '{prompt} (in the style of Henri Matisse)' + +- name: Henri Rousseau + negative_prompt: '' + prompt: '{prompt} (in the style of Henri Rousseau)' + +- name: Henri-Edmond Cross + negative_prompt: '' + prompt: '{prompt} (in the style of Henri-Edmond Cross)' + +- name: Henriette Grindat + negative_prompt: '' + prompt: '{prompt} (in the style of Henriette Grindat)' + +- name: Henry Asencio + negative_prompt: '' + prompt: '{prompt} (in the style of Henry Asencio)' + +- name: Henry Fuseli + negative_prompt: '' + prompt: '{prompt} (in the style of Henry Fuseli)' + +- name: Henry Moore + negative_prompt: '' + prompt: '{prompt} (in the style of Henry Moore)' + +- name: Henry Moret + negative_prompt: '' + prompt: '{prompt} (in the style of Henry Moret)' + +- name: Henry Ossawa Tanner + negative_prompt: '' + prompt: '{prompt} (in the style of Henry Ossawa Tanner)' + +- name: Henry Raleigh + negative_prompt: '' + prompt: '{prompt} (in the style of Henry Raleigh)' + +- name: Herbert List + negative_prompt: '' + prompt: '{prompt} (in the style of Herbert List)' + +- name: Herve Groussin + negative_prompt: '' + prompt: '{prompt} (in the style of Herve Groussin)' + +- name: Hervé Guibert + negative_prompt: '' + prompt: '{prompt} (in the style of Hervé Guibert)' + +- name: Hethe Srodawa + negative_prompt: '' + prompt: '{prompt} (in the style of Hethe Srodawa)' + +- name: Hieronymus Bosch + negative_prompt: '' + prompt: '{prompt} (in the style of Hieronymus Bosch)' + +- name: Hikari Shimoda + negative_prompt: '' + prompt: '{prompt} (in the style of Hikari Shimoda)' + +- name: Hilma AF Klint + negative_prompt: '' + prompt: '{prompt} (in the style of Hilma AF Klint)' + +- name: Hirohiko Araki + negative_prompt: '' + prompt: '{prompt} (in the style of Hirohiko Araki)' + +- name: Hiroshi Nagai + negative_prompt: '' + prompt: '{prompt} (in the style of Hiroshi Nagai)' + +- name: Hiroshi Sugimoto + negative_prompt: '' + prompt: '{prompt} (in the style of Hiroshi Sugimoto)' + +- name: Hiroshi Yoshida + negative_prompt: '' + prompt: '{prompt} (in the style of Hiroshi Yoshida)' + +- name: Honor C. Appleton + negative_prompt: '' + prompt: '{prompt} (in the style of Honor C. Appleton)' + +- name: Honoré Daumier + negative_prompt: '' + prompt: '{prompt} (in the style of Honoré Daumier)' + +- name: Hope Gangloff + negative_prompt: '' + prompt: '{prompt} (in the style of Hope Gangloff)' + +- name: Horace Vernet + negative_prompt: '' + prompt: '{prompt} (in the style of Horace Vernet)' + +- name: Hou China + negative_prompt: '' + prompt: '{prompt} (in the style of Hou China)' + +- name: Howard Chandler Christy + negative_prompt: '' + prompt: '{prompt} (in the style of Howard Chandler Christy)' + +- name: Howard Finster + negative_prompt: '' + prompt: '{prompt} (in the style of Howard Finster)' + +- name: Howard Hodgkin + negative_prompt: '' + prompt: '{prompt} (in the style of Howard Hodgkin)' + +- name: Howard Pyle + negative_prompt: '' + prompt: '{prompt} (in the style of Howard Pyle)' + +- name: Hsiao-Ron Cheng + negative_prompt: '' + prompt: '{prompt} (in the style of Hsiao-Ron Cheng)' + +- name: Hubert Robert + negative_prompt: '' + prompt: '{prompt} (in the style of Hubert Robert)' + +- name: Hugh Ferriss + negative_prompt: '' + prompt: '{prompt} (in the style of Hugh Ferriss)' + +- name: Hugh Kretschmer + negative_prompt: '' + prompt: '{prompt} (in the style of Hugh Kretschmer)' + +- name: Hyacinthe Rigaud + negative_prompt: '' + prompt: '{prompt} (in the style of Hyacinthe Rigaud)' + +- name: Iain Faulkner + negative_prompt: '' + prompt: '{prompt} (in the style of Iain Faulkner)' + +- name: Ian McQue + negative_prompt: '' + prompt: '{prompt} (in the style of Ian McQue)' + +- name: Ian Miller + negative_prompt: '' + prompt: '{prompt} (in the style of Ian Miller)' + +- name: Ida Rentoul Outhwaite + negative_prompt: '' + prompt: '{prompt} (in the style of Ida Rentoul Outhwaite)' + +- name: Igor Morski + negative_prompt: '' + prompt: '{prompt} (in the style of Igor Morski)' + +- name: Igor Wolski + negative_prompt: '' + prompt: '{prompt} (in the style of Igor Wolski)' + +- name: Igor Zenin + negative_prompt: '' + prompt: '{prompt} (in the style of Igor Zenin)' + +- name: Ilya Kuvshinov + negative_prompt: '' + prompt: '{prompt} (in the style of Ilya Kuvshinov)' + +- name: Ilya Repin + negative_prompt: '' + prompt: '{prompt} (in the style of Ilya Repin)' + +- name: Incarcerated Jerkfaces + negative_prompt: '' + prompt: '{prompt} (in the style of Incarcerated Jerkfaces)' + +- name: Ingrid Baars + negative_prompt: '' + prompt: '{prompt} (in the style of Ingrid Baars)' + +- name: Inio Asano + negative_prompt: '' + prompt: '{prompt} (in the style of Inio Asano)' + +- name: Irma Stern + negative_prompt: '' + prompt: '{prompt} (in the style of Irma Stern)' + +- name: Iryna Yermolova + negative_prompt: '' + prompt: '{prompt} (in the style of Iryna Yermolova)' + +- name: Isaac Cordal + negative_prompt: '' + prompt: '{prompt} (in the style of Isaac Cordal)' + +- name: Isaac Levitan + negative_prompt: '' + prompt: '{prompt} (in the style of Isaac Levitan)' + +- name: Ismail Inceoglu + negative_prompt: '' + prompt: '{prompt} (in the style of Ismail Inceoglu)' + +- name: Issac Levitan + negative_prompt: '' + prompt: '{prompt} (in the style of Issac Levitan)' + +- name: Istvan Banyai + negative_prompt: '' + prompt: '{prompt} (in the style of Istvan Banyai)' + +- name: Itō Jakuchū + negative_prompt: '' + prompt: '{prompt} (in the style of Itō Jakuchū)' + +- name: Ivan Aivazovsky + negative_prompt: '' + prompt: '{prompt} (in the style of Ivan Aivazovsky)' + +- name: Ivan Albright + negative_prompt: '' + prompt: '{prompt} (in the style of Ivan Albright)' + +- name: Ivan Bilibin + negative_prompt: '' + prompt: '{prompt} (in the style of Ivan Bilibin)' + +- name: Ivan Shishkin + negative_prompt: '' + prompt: '{prompt} (in the style of Ivan Shishkin)' + +- name: Iwan Baan + negative_prompt: '' + prompt: '{prompt} (in the style of Iwan Baan)' + +- name: J. J. Grandville + negative_prompt: '' + prompt: '{prompt} (in the style of J. J. Grandville)' + +- name: J.C. Leyendecker + negative_prompt: '' + prompt: '{prompt} (in the style of J.C. Leyendecker)' + +- name: J.M.W. Turner + negative_prompt: '' + prompt: '{prompt} (in the style of J.M.W. Turner)' + +- name: JC Leyendecker + negative_prompt: '' + prompt: '{prompt} (in the style of JC Leyendecker)' + +- name: Jacek Yerka + negative_prompt: '' + prompt: '{prompt} (in the style of Jacek Yerka)' + +- name: Jack Butler Yeats + negative_prompt: '' + prompt: '{prompt} (in the style of Jack Butler Yeats)' + +- name: Jack Davis + negative_prompt: '' + prompt: '{prompt} (in the style of Jack Davis)' + +- name: Jack Gaughan + negative_prompt: '' + prompt: '{prompt} (in the style of Jack Gaughan)' + +- name: Jack Kirby + negative_prompt: '' + prompt: '{prompt} (in the style of Jack Kirby)' + +- name: Jackson Pollock + negative_prompt: '' + prompt: '{prompt} (in the style of Jackson Pollock)' + +- name: Jacob Hashimoto + negative_prompt: '' + prompt: '{prompt} (in the style of Jacob Hashimoto)' + +- name: Jacob Lawrence + negative_prompt: '' + prompt: '{prompt} (in the style of Jacob Lawrence)' + +- name: Jacob van Ruisdael + negative_prompt: '' + prompt: '{prompt} (in the style of Jacob van Ruisdael)' + +- name: Jacques Le Moyne + negative_prompt: '' + prompt: '{prompt} (in the style of Jacques Le Moyne)' + +- name: Jacques Nathan-Garamond + negative_prompt: '' + prompt: '{prompt} (in the style of Jacques Nathan-Garamond)' + +- name: Jake Parker + negative_prompt: '' + prompt: '{prompt} (in the style of Jake Parker)' + +- name: Jakub Różalski + negative_prompt: '' + prompt: '{prompt} (in the style of Jakub Różalski)' + +- name: James Abbott McNeill Whistler + negative_prompt: '' + prompt: '{prompt} (in the style of James Abbott McNeill Whistler)' + +- name: James C Christensen + negative_prompt: '' + prompt: '{prompt} (in the style of James C Christensen)' + +- name: James Ensor + negative_prompt: '' + prompt: '{prompt} (in the style of James Ensor)' + +- name: James Gilleard + negative_prompt: '' + prompt: '{prompt} (in the style of James Gilleard)' + +- name: James Gillray + negative_prompt: '' + prompt: '{prompt} (in the style of James Gillray)' + +- name: James Gurney + negative_prompt: '' + prompt: '{prompt} (in the style of James Gurney)' + +- name: James Jean + negative_prompt: '' + prompt: '{prompt} (in the style of James Jean)' + +- name: James Montgomery Flagg + negative_prompt: '' + prompt: '{prompt} (in the style of James Montgomery Flagg)' + +- name: James Paick + negative_prompt: '' + prompt: '{prompt} (in the style of James Paick)' + +- name: James Stokoe + negative_prompt: '' + prompt: '{prompt} (in the style of James Stokoe)' + +- name: James Thomas Watts + negative_prompt: '' + prompt: '{prompt} (in the style of James Thomas Watts)' + +- name: James Tissot + negative_prompt: '' + prompt: '{prompt} (in the style of James Tissot)' + +- name: James Turrell + negative_prompt: '' + prompt: '{prompt} (in the style of James Turrell)' + +- name: Jamie Baldridge + negative_prompt: '' + prompt: '{prompt} (in the style of Jamie Baldridge)' + +- name: Jamie Hawkesworth + negative_prompt: '' + prompt: '{prompt} (in the style of Jamie Hawkesworth)' + +- name: Jamie Hewlett + negative_prompt: '' + prompt: '{prompt} (in the style of Jamie Hewlett)' + +- name: Jamie McKelvie + negative_prompt: '' + prompt: '{prompt} (in the style of Jamie McKelvie)' + +- name: Jamini Roy + negative_prompt: '' + prompt: '{prompt} (in the style of Jamini Roy)' + +- name: Jan Brett + negative_prompt: '' + prompt: '{prompt} (in the style of Jan Brett)' + +- name: Jan Luyken + negative_prompt: '' + prompt: '{prompt} (in the style of Jan Luyken)' + +- name: Jan Pietersz Saenredam + negative_prompt: '' + prompt: '{prompt} (in the style of Jan Pietersz Saenredam)' + +- name: Jan Van Eyck + negative_prompt: '' + prompt: '{prompt} (in the style of Jan Van Eyck)' + +- name: Jan van Kessel the Elder + negative_prompt: '' + prompt: '{prompt} (in the style of Jan van Kessel the Elder)' + +- name: Jane Graverol + negative_prompt: '' + prompt: '{prompt} (in the style of Jane Graverol)' + +- name: Jane Newland + negative_prompt: '' + prompt: '{prompt} (in the style of Jane Newland)' + +- name: Janek Sedlar + negative_prompt: '' + prompt: '{prompt} (in the style of Janek Sedlar)' + +- name: Jasmine Becket-Griffith + negative_prompt: '' + prompt: '{prompt} (in the style of Jasmine Becket-Griffith)' + +- name: Jason A. Engle + negative_prompt: '' + prompt: '{prompt} (in the style of Jason A. Engle)' + +- name: Jason Chan + negative_prompt: '' + prompt: '{prompt} (in the style of Jason Chan)' + +- name: Jason Edmiston + negative_prompt: '' + prompt: '{prompt} (in the style of Jason Edmiston)' + +- name: Jasper Johns + negative_prompt: '' + prompt: '{prompt} (in the style of Jasper Johns)' + +- name: Jaume Plensa + negative_prompt: '' + prompt: '{prompt} (in the style of Jaume Plensa)' + +- name: Jaya Suberg + negative_prompt: '' + prompt: '{prompt} (in the style of Jaya Suberg)' + +- name: Jean Arp + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Arp)' + +- name: Jean Auguste Dominique Ingres + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Auguste Dominique Ingres)' + +- name: Jean Bourdichon + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Bourdichon)' + +- name: Jean Delville + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Delville)' + +- name: Jean Dubuffet + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Dubuffet)' + +- name: Jean Fouquet + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Fouquet)' + +- name: Jean Giraud + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Giraud)' + +- name: Jean Jullien + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Jullien)' + +- name: Jean Marc Nattier + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Marc Nattier)' + +- name: Jean Metzinger + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Metzinger)' + +- name: Jean Nouvel + negative_prompt: '' + prompt: '{prompt} (in the style of Jean Nouvel)' + +- name: Jean-Antoine Watteau + negative_prompt: '' + prompt: '{prompt} (in the style of Jean-Antoine Watteau)' + +- name: Jean-Baptiste Monge + negative_prompt: '' + prompt: '{prompt} (in the style of Jean-Baptiste Monge)' + +- name: Jean-François Millet + negative_prompt: '' + prompt: '{prompt} (in the style of Jean-François Millet)' + +- name: Jean-Honoré Fragonard + negative_prompt: '' + prompt: '{prompt} (in the style of Jean-Honoré Fragonard)' + +- name: Jean-Louis Prevost + negative_prompt: '' + prompt: '{prompt} (in the style of Jean-Louis Prevost)' + +- name: Jean-Léon Gérôme + negative_prompt: '' + prompt: '{prompt} (in the style of Jean-Léon Gérôme)' + +- name: Jean-Michel Basquiat + negative_prompt: '' + prompt: '{prompt} (in the style of Jean-Michel Basquiat)' + +- name: Jean-Paul Riopelle + negative_prompt: '' + prompt: '{prompt} (in the style of Jean-Paul Riopelle)' + +- name: Jeanloup Sieff + negative_prompt: '' + prompt: '{prompt} (in the style of Jeanloup Sieff)' + +- name: Jeannette Guichard-Bunel + negative_prompt: '' + prompt: '{prompt} (in the style of Jeannette Guichard-Bunel)' + +- name: Jed Henry + negative_prompt: '' + prompt: '{prompt} (in the style of Jed Henry)' + +- name: Jef Wu + negative_prompt: '' + prompt: '{prompt} (in the style of Jef Wu)' + +- name: Jeff Easley + negative_prompt: '' + prompt: '{prompt} (in the style of Jeff Easley)' + +- name: Jeff Goldblum + negative_prompt: '' + prompt: '{prompt} (in the style of Jeff Goldblum)' + +- name: Jeff Kinney + negative_prompt: '' + prompt: '{prompt} (in the style of Jeff Kinney)' + +- name: Jeff Koons + negative_prompt: '' + prompt: '{prompt} (in the style of Jeff Koons)' + +- name: Jeff Legg + negative_prompt: '' + prompt: '{prompt} (in the style of Jeff Legg)' + +- name: Jeff Lemire + negative_prompt: '' + prompt: '{prompt} (in the style of Jeff Lemire)' + +- name: Jeff Simpson + negative_prompt: '' + prompt: '{prompt} (in the style of Jeff Simpson)' + +- name: Jeff Wall + negative_prompt: '' + prompt: '{prompt} (in the style of Jeff Wall)' + +- name: Jeffrey Catherine Jones + negative_prompt: '' + prompt: '{prompt} (in the style of Jeffrey Catherine Jones)' + +- name: Jeffrey Smith art + negative_prompt: '' + prompt: '{prompt} (in the style of Jeffrey Smith art)' + +- name: Jeffrey T. Larson + negative_prompt: '' + prompt: '{prompt} (in the style of Jeffrey T. Larson)' + +- name: Jenny Saville + negative_prompt: '' + prompt: '{prompt} (in the style of Jenny Saville)' + +- name: JennyBird Alcantara + negative_prompt: '' + prompt: '{prompt} (in the style of JennyBird Alcantara)' + +- name: Jeremiah Ketner + negative_prompt: '' + prompt: '{prompt} (in the style of Jeremiah Ketner)' + +- name: Jeremy Geddes + negative_prompt: '' + prompt: '{prompt} (in the style of Jeremy Geddes)' + +- name: Jeremy Lipking + negative_prompt: '' + prompt: '{prompt} (in the style of Jeremy Lipking)' + +- name: Jeremy Mann + negative_prompt: '' + prompt: '{prompt} (in the style of Jeremy Mann)' + +- name: Jerry Pinkney + negative_prompt: '' + prompt: '{prompt} (in the style of Jerry Pinkney)' + +- name: Jerry Siegel + negative_prompt: '' + prompt: '{prompt} (in the style of Jerry Siegel)' + +- name: Jerzy Duda-Gracz + negative_prompt: '' + prompt: '{prompt} (in the style of Jerzy Duda-Gracz)' + +- name: Jesper Ejsing + negative_prompt: '' + prompt: '{prompt} (in the style of Jesper Ejsing)' + +- name: Jessica Rossier + negative_prompt: '' + prompt: '{prompt} (in the style of Jessica Rossier)' + +- name: Jessica Woulfe + negative_prompt: '' + prompt: '{prompt} (in the style of Jessica Woulfe)' + +- name: Jessie Willcox Smith + negative_prompt: '' + prompt: '{prompt} (in the style of Jessie Willcox Smith)' + +- name: Jhonen Vasquez + negative_prompt: '' + prompt: '{prompt} (in the style of Jhonen Vasquez)' + +- name: Jillian Tamaki + negative_prompt: '' + prompt: '{prompt} (in the style of Jillian Tamaki)' + +- name: Jim Burns + negative_prompt: '' + prompt: '{prompt} (in the style of Jim Burns)' + +- name: Jim Davis + negative_prompt: '' + prompt: '{prompt} (in the style of Jim Davis)' + +- name: Jim Lee + negative_prompt: '' + prompt: '{prompt} (in the style of Jim Lee)' + +- name: Jim Mahfood + negative_prompt: '' + prompt: '{prompt} (in the style of Jim Mahfood)' + +- name: Jim Woodring + negative_prompt: '' + prompt: '{prompt} (in the style of Jim Woodring)' + +- name: Jimmy Ernst + negative_prompt: '' + prompt: '{prompt} (in the style of Jimmy Ernst)' + +- name: Jimmy Lawlor + negative_prompt: '' + prompt: '{prompt} (in the style of Jimmy Lawlor)' + +- name: Joachim Brohm + negative_prompt: '' + prompt: '{prompt} (in the style of Joachim Brohm)' + +- name: Joan Miró + negative_prompt: '' + prompt: '{prompt} (in the style of Joan Miró)' + +- name: Joan Tuset + negative_prompt: '' + prompt: '{prompt} (in the style of Joan Tuset)' + +- name: Joanna Kustra + negative_prompt: '' + prompt: '{prompt} (in the style of Joanna Kustra)' + +- name: Joao Ruas + negative_prompt: '' + prompt: '{prompt} (in the style of Joao Ruas)' + +- name: Joaquín Sorolla + negative_prompt: '' + prompt: '{prompt} (in the style of Joaquín Sorolla)' + +- name: Joe Bowler + negative_prompt: '' + prompt: '{prompt} (in the style of Joe Bowler)' + +- name: Joe De Mers + negative_prompt: '' + prompt: '{prompt} (in the style of Joe De Mers)' + +- name: Joe Fenton + negative_prompt: '' + prompt: '{prompt} (in the style of Joe Fenton)' + +- name: Joe Jusko + negative_prompt: '' + prompt: '{prompt} (in the style of Joe Jusko)' + +- name: Joe Madureira + negative_prompt: '' + prompt: '{prompt} (in the style of Joe Madureira)' + +- name: Joe Webb + negative_prompt: '' + prompt: '{prompt} (in the style of Joe Webb)' + +- name: Joel Meyerowitz + negative_prompt: '' + prompt: '{prompt} (in the style of Joel Meyerowitz)' + +- name: Joel Sternfeld + negative_prompt: '' + prompt: '{prompt} (in the style of Joel Sternfeld)' + +- name: Joey Chou + negative_prompt: '' + prompt: '{prompt} (in the style of Joey Chou)' + +- name: Johann Wolfgang von Goethe + negative_prompt: '' + prompt: '{prompt} (in the style of Johann Wolfgang von Goethe)' + +- name: Johannes Itten + negative_prompt: '' + prompt: '{prompt} (in the style of Johannes Itten)' + +- name: Johannes Vermeer + negative_prompt: '' + prompt: '{prompt} (in the style of Johannes Vermeer)' + +- name: Johannes Voss + negative_prompt: '' + prompt: '{prompt} (in the style of Johannes Voss)' + +- name: Johfra Bosschart + negative_prompt: '' + prompt: '{prompt} (in the style of Johfra Bosschart)' + +- name: John Anster Fitzgerald + negative_prompt: '' + prompt: '{prompt} (in the style of John Anster Fitzgerald)' + +- name: John Atherton + negative_prompt: '' + prompt: '{prompt} (in the style of John Atherton)' + +- name: John Atkinson Grimshaw + negative_prompt: '' + prompt: '{prompt} (in the style of John Atkinson Grimshaw)' + +- name: John Bauer + negative_prompt: '' + prompt: '{prompt} (in the style of John Bauer)' + +- name: John Berkey + negative_prompt: '' + prompt: '{prompt} (in the style of John Berkey)' + +- name: John Blanche + negative_prompt: '' + prompt: '{prompt} (in the style of John Blanche)' + +- name: John Bratby + negative_prompt: '' + prompt: '{prompt} (in the style of John Bratby)' + +- name: John Cassaday + negative_prompt: '' + prompt: '{prompt} (in the style of John Cassaday)' + +- name: John Constable + negative_prompt: '' + prompt: '{prompt} (in the style of John Constable)' + +- name: John Currin + negative_prompt: '' + prompt: '{prompt} (in the style of John Currin)' + +- name: John Duncan + negative_prompt: '' + prompt: '{prompt} (in the style of John Duncan)' + +- name: John Frederick Kensett + negative_prompt: '' + prompt: '{prompt} (in the style of John Frederick Kensett)' + +- name: John French Sloan + negative_prompt: '' + prompt: '{prompt} (in the style of John French Sloan)' + +- name: John Harris + negative_prompt: '' + prompt: '{prompt} (in the style of John Harris)' + +- name: John Howe + negative_prompt: '' + prompt: '{prompt} (in the style of John Howe)' + +- name: John Hoyland + negative_prompt: '' + prompt: '{prompt} (in the style of John Hoyland)' + +- name: John James Audubon + negative_prompt: '' + prompt: '{prompt} (in the style of John James Audubon)' + +- name: John Kenn Mortensen + negative_prompt: '' + prompt: '{prompt} (in the style of John Kenn Mortensen)' + +- name: John La Farge + negative_prompt: '' + prompt: '{prompt} (in the style of John La Farge)' + +- name: John Lavery + negative_prompt: '' + prompt: '{prompt} (in the style of John Lavery)' + +- name: John Martin + negative_prompt: '' + prompt: '{prompt} (in the style of John Martin)' + +- name: John Perceval + negative_prompt: '' + prompt: '{prompt} (in the style of John Perceval)' + +- name: John Philip Falter + negative_prompt: '' + prompt: '{prompt} (in the style of John Philip Falter)' + +- name: John Salminen + negative_prompt: '' + prompt: '{prompt} (in the style of John Salminen)' + +- name: John Singer Sargent + negative_prompt: '' + prompt: '{prompt} (in the style of John Singer Sargent)' + +- name: John Singleton Copley + negative_prompt: '' + prompt: '{prompt} (in the style of John Singleton Copley)' + +- name: John Stezaker + negative_prompt: '' + prompt: '{prompt} (in the style of John Stezaker)' + +- name: John Totleben + negative_prompt: '' + prompt: '{prompt} (in the style of John Totleben)' + +- name: John Wayne Gacy + negative_prompt: '' + prompt: '{prompt} (in the style of John Wayne Gacy)' + +- name: John Whitcomb + negative_prompt: '' + prompt: '{prompt} (in the style of John Whitcomb)' + +- name: John Wilhelm + negative_prompt: '' + prompt: '{prompt} (in the style of John Wilhelm)' + +- name: John William Waterhouse + negative_prompt: '' + prompt: '{prompt} (in the style of John William Waterhouse)' + +- name: Jon Klassen + negative_prompt: '' + prompt: '{prompt} (in the style of Jon Klassen)' + +- name: Jon McCoy + negative_prompt: '' + prompt: '{prompt} (in the style of Jon McCoy)' + +- name: Jon Whitcomb + negative_prompt: '' + prompt: '{prompt} (in the style of Jon Whitcomb)' + +- name: Jordan Grimmer + negative_prompt: '' + prompt: '{prompt} (in the style of Jordan Grimmer)' + +- name: Jorge Jacinto + negative_prompt: '' + prompt: '{prompt} (in the style of Jorge Jacinto)' + +- name: Josan Gonzalez + negative_prompt: '' + prompt: '{prompt} (in the style of Josan Gonzalez)' + +- name: Josef Albers + negative_prompt: '' + prompt: '{prompt} (in the style of Josef Albers)' + +- name: Joseph Cornell + negative_prompt: '' + prompt: '{prompt} (in the style of Joseph Cornell)' + +- name: Joseph Ducreux + negative_prompt: '' + prompt: '{prompt} (in the style of Joseph Ducreux)' + +- name: Joseph Lorusso + negative_prompt: '' + prompt: '{prompt} (in the style of Joseph Lorusso)' + +- name: Joseph Mallord William Turner + negative_prompt: '' + prompt: '{prompt} (in the style of Joseph Mallord William Turner)' + +- name: Joseph Stella + negative_prompt: '' + prompt: '{prompt} (in the style of Joseph Stella)' + +- name: Josephine Wall + negative_prompt: '' + prompt: '{prompt} (in the style of Josephine Wall)' + +- name: Josh Kao + negative_prompt: '' + prompt: '{prompt} (in the style of Josh Kao)' + +- name: Josh Keyes + negative_prompt: '' + prompt: '{prompt} (in the style of Josh Keyes)' + +- name: José Clemente Orozco + negative_prompt: '' + prompt: '{prompt} (in the style of José Clemente Orozco)' + +- name: Jovana Rikalo + negative_prompt: '' + prompt: '{prompt} (in the style of Jovana Rikalo)' + +- name: Juan Gris + negative_prompt: '' + prompt: '{prompt} (in the style of Juan Gris)' + +- name: Judy Chicago + negative_prompt: '' + prompt: '{prompt} (in the style of Judy Chicago)' + +- name: Juergen Teller + negative_prompt: '' + prompt: '{prompt} (in the style of Juergen Teller)' + +- name: Jules Bastien-Lepage + negative_prompt: '' + prompt: '{prompt} (in the style of Jules Bastien-Lepage)' + +- name: Julia Contacessi + negative_prompt: '' + prompt: '{prompt} (in the style of Julia Contacessi)' + +- name: Julian Calle + negative_prompt: '' + prompt: '{prompt} (in the style of Julian Calle)' + +- name: Juliana Huxtable + negative_prompt: '' + prompt: '{prompt} (in the style of Juliana Huxtable)' + +- name: Julie Bell + negative_prompt: '' + prompt: '{prompt} (in the style of Julie Bell)' + +- name: Julie Blackmon + negative_prompt: '' + prompt: '{prompt} (in the style of Julie Blackmon)' + +- name: Julie Mehretu + negative_prompt: '' + prompt: '{prompt} (in the style of Julie Mehretu)' + +- name: Julien Delval + negative_prompt: '' + prompt: '{prompt} (in the style of Julien Delval)' + +- name: Julius Horsthuis + negative_prompt: '' + prompt: '{prompt} (in the style of Julius Horsthuis)' + +- name: Jun Kaneko + negative_prompt: '' + prompt: '{prompt} (in the style of Jun Kaneko)' + +- name: Junji Ito + negative_prompt: '' + prompt: '{prompt} (in the style of Junji Ito)' + +- name: Justin Gerard + negative_prompt: '' + prompt: '{prompt} (in the style of Justin Gerard)' + +- name: Józef Mehoffer + negative_prompt: '' + prompt: '{prompt} (in the style of Józef Mehoffer)' + +- name: Kadir Nelson + negative_prompt: '' + prompt: '{prompt} (in the style of Kadir Nelson)' + +- name: Kaethe Butcher + negative_prompt: '' + prompt: '{prompt} (in the style of Kaethe Butcher)' + +- name: Kapwani Kiwanga + negative_prompt: '' + prompt: '{prompt} (in the style of Kapwani Kiwanga)' + +- name: Karel Appel + negative_prompt: '' + prompt: '{prompt} (in the style of Karel Appel)' + +- name: Karel Thole + negative_prompt: '' + prompt: '{prompt} (in the style of Karel Thole)' + +- name: Karen Wallis + negative_prompt: '' + prompt: '{prompt} (in the style of Karen Wallis)' + +- name: Karl Blossfeldt + negative_prompt: '' + prompt: '{prompt} (in the style of Karl Blossfeldt)' + +- name: Karl Schmidt-Rottluff + negative_prompt: '' + prompt: '{prompt} (in the style of Karl Schmidt-Rottluff)' + +- name: Karol Bak + negative_prompt: '' + prompt: '{prompt} (in the style of Karol Bak)' + +- name: Kasia Nowowiejska + negative_prompt: '' + prompt: '{prompt} (in the style of Kasia Nowowiejska)' + +- name: Kate Beaton + negative_prompt: '' + prompt: '{prompt} (in the style of Kate Beaton)' + +- name: Kate Greenaway + negative_prompt: '' + prompt: '{prompt} (in the style of Kate Greenaway)' + +- name: Kathryn Morris Trotter + negative_prompt: '' + prompt: '{prompt} (in the style of Kathryn Morris Trotter)' + +- name: Kati Horna + negative_prompt: '' + prompt: '{prompt} (in the style of Kati Horna)' + +- name: Katsuhiro Otomo + negative_prompt: '' + prompt: '{prompt} (in the style of Katsuhiro Otomo)' + +- name: Katsushika Hokusai + negative_prompt: '' + prompt: '{prompt} (in the style of Katsushika Hokusai)' + +- name: Kawanabe Kyōsai + negative_prompt: '' + prompt: '{prompt} (in the style of Kawanabe Kyōsai)' + +- name: Kaws + negative_prompt: '' + prompt: '{prompt} (in the style of Kaws)' + +- name: Kay Nielsen + negative_prompt: '' + prompt: '{prompt} (in the style of Kay Nielsen)' + +- name: Kay Sage + negative_prompt: '' + prompt: '{prompt} (in the style of Kay Sage)' + +- name: Kazimir Malevich + negative_prompt: '' + prompt: '{prompt} (in the style of Kazimir Malevich)' + +- name: Kazuo Koike + negative_prompt: '' + prompt: '{prompt} (in the style of Kazuo Koike)' + +- name: Kehinde Wiley + negative_prompt: '' + prompt: '{prompt} (in the style of Kehinde Wiley)' + +- name: Keith Haring + negative_prompt: '' + prompt: '{prompt} (in the style of Keith Haring)' + +- name: Keith Negley + negative_prompt: '' + prompt: '{prompt} (in the style of Keith Negley)' + +- name: Keith Parkinson + negative_prompt: '' + prompt: '{prompt} (in the style of Keith Parkinson)' + +- name: Kelly Freas + negative_prompt: '' + prompt: '{prompt} (in the style of Kelly Freas)' + +- name: Kelly Mckernan + negative_prompt: '' + prompt: '{prompt} (in the style of Kelly Mckernan)' + +- name: Kelly Sue Deconnick + negative_prompt: '' + prompt: '{prompt} (in the style of Kelly Sue Deconnick)' + +- name: Kelly Vivanco + negative_prompt: '' + prompt: '{prompt} (in the style of Kelly Vivanco)' + +- name: Ken Fairclough + negative_prompt: '' + prompt: '{prompt} (in the style of Ken Fairclough)' + +- name: Ken Kelly + negative_prompt: '' + prompt: '{prompt} (in the style of Ken Kelly)' + +- name: Ken Sugimori + negative_prompt: '' + prompt: '{prompt} (in the style of Ken Sugimori)' + +- name: Kengo Kuma + negative_prompt: '' + prompt: '{prompt} (in the style of Kengo Kuma)' + +- name: Kenne Gregoire + negative_prompt: '' + prompt: '{prompt} (in the style of Kenne Gregoire)' + +- name: Kent Monkman + negative_prompt: '' + prompt: '{prompt} (in the style of Kent Monkman)' + +- name: Kentaro Miura + negative_prompt: '' + prompt: '{prompt} (in the style of Kentaro Miura)' + +- name: Kevin Gnutzmans + negative_prompt: '' + prompt: '{prompt} (in the style of Kevin Gnutzmans)' + +- name: Kevin Sloan + negative_prompt: '' + prompt: '{prompt} (in the style of Kevin Sloan)' + +- name: Kieron Gillen + negative_prompt: '' + prompt: '{prompt} (in the style of Kieron Gillen)' + +- name: Kilian Eng + negative_prompt: '' + prompt: '{prompt} (in the style of Kilian Eng)' + +- name: Kim Jung Gi + negative_prompt: '' + prompt: '{prompt} (in the style of Kim Jung Gi)' + +- name: Kim Keever + negative_prompt: '' + prompt: '{prompt} (in the style of Kim Keever)' + +- name: Kitagawa Utamaro + negative_prompt: '' + prompt: '{prompt} (in the style of Kitagawa Utamaro)' + +- name: Kitty Lange Kielland + negative_prompt: '' + prompt: '{prompt} (in the style of Kitty Lange Kielland)' + +- name: Klaus Burgle + negative_prompt: '' + prompt: '{prompt} (in the style of Klaus Burgle)' + +- name: Klaus Janson + negative_prompt: '' + prompt: '{prompt} (in the style of Klaus Janson)' + +- name: Klaus Wittmann + negative_prompt: '' + prompt: '{prompt} (in the style of Klaus Wittmann)' + +- name: Kobayashi Kiyochika + negative_prompt: '' + prompt: '{prompt} (in the style of Kobayashi Kiyochika)' + +- name: Konstantin Korovin + negative_prompt: '' + prompt: '{prompt} (in the style of Konstantin Korovin)' + +- name: Konstantin Yuon + negative_prompt: '' + prompt: '{prompt} (in the style of Konstantin Yuon)' + +- name: Koson Ohara + negative_prompt: '' + prompt: '{prompt} (in the style of Koson Ohara)' + +- name: Krenz Cushart + negative_prompt: '' + prompt: '{prompt} (in the style of Krenz Cushart)' + +- name: Kris Kuksi + negative_prompt: '' + prompt: '{prompt} (in the style of Kris Kuksi)' + +- name: Kuang Hong + negative_prompt: '' + prompt: '{prompt} (in the style of Kuang Hong)' + +- name: Kunisada + negative_prompt: '' + prompt: '{prompt} (in the style of Kunisada)' + +- name: Kuno Veeber + negative_prompt: '' + prompt: '{prompt} (in the style of Kuno Veeber)' + +- name: Kurzgesagt + negative_prompt: '' + prompt: '{prompt} (in the style of Kurzgesagt)' + +- name: Käthe Kollwitz + negative_prompt: '' + prompt: '{prompt} (in the style of Käthe Kollwitz)' + +- name: L. Birge Harrison + negative_prompt: '' + prompt: '{prompt} (in the style of L. Birge Harrison)' + +- name: Lady Pink + negative_prompt: '' + prompt: '{prompt} (in the style of Lady Pink)' + +- name: Larry Elmore + negative_prompt: '' + prompt: '{prompt} (in the style of Larry Elmore)' + +- name: Larry Poons + negative_prompt: '' + prompt: '{prompt} (in the style of Larry Poons)' + +- name: Larry Sultan + negative_prompt: '' + prompt: '{prompt} (in the style of Larry Sultan)' + +- name: Laurel Burch + negative_prompt: '' + prompt: '{prompt} (in the style of Laurel Burch)' + +- name: Laurent Grasso + negative_prompt: '' + prompt: '{prompt} (in the style of Laurent Grasso)' + +- name: Laurie Greasley + negative_prompt: '' + prompt: '{prompt} (in the style of Laurie Greasley)' + +- name: Laurie Lipton + negative_prompt: '' + prompt: '{prompt} (in the style of Laurie Lipton)' + +- name: Lawren Harris + negative_prompt: '' + prompt: '{prompt} (in the style of Lawren Harris)' + +- name: Lee Krasner + negative_prompt: '' + prompt: '{prompt} (in the style of Lee Krasner)' + +- name: Lee Madgwick + negative_prompt: '' + prompt: '{prompt} (in the style of Lee Madgwick)' + +- name: Lee Quinones + negative_prompt: '' + prompt: '{prompt} (in the style of Lee Quinones)' + +- name: Leiji Matsumoto + negative_prompt: '' + prompt: '{prompt} (in the style of Leiji Matsumoto)' + +- name: Leon Kossoff + negative_prompt: '' + prompt: '{prompt} (in the style of Leon Kossoff)' + +- name: Leonardo Da Vinci + negative_prompt: '' + prompt: '{prompt} (in the style of Leonardo Da Vinci)' + +- name: Leonetto Cappiello + negative_prompt: '' + prompt: '{prompt} (in the style of Leonetto Cappiello)' + +- name: Leonid Afremov + negative_prompt: '' + prompt: '{prompt} (in the style of Leonid Afremov)' + +- name: Leonora Carrington + negative_prompt: '' + prompt: '{prompt} (in the style of Leonora Carrington)' + +- name: Les Edwards + negative_prompt: '' + prompt: '{prompt} (in the style of Les Edwards)' + +- name: Lesley Vance + negative_prompt: '' + prompt: '{prompt} (in the style of Lesley Vance)' + +- name: Leticia Gillett + negative_prompt: '' + prompt: '{prompt} (in the style of Leticia Gillett)' + +- name: Liam Wong + negative_prompt: '' + prompt: '{prompt} (in the style of Liam Wong)' + +- name: Liang Mark + negative_prompt: '' + prompt: '{prompt} (in the style of Liang Mark)' + +- name: Lisa Frank + negative_prompt: '' + prompt: '{prompt} (in the style of Lisa Frank)' + +- name: Lisa Keene + negative_prompt: '' + prompt: '{prompt} (in the style of Lisa Keene)' + +- name: Liu Ye + negative_prompt: '' + prompt: '{prompt} (in the style of Liu Ye)' + +- name: Liubov Sergeevna Popova + negative_prompt: '' + prompt: '{prompt} (in the style of Liubov Sergeevna Popova)' + +- name: Lois van Baarle + negative_prompt: '' + prompt: '{prompt} (in the style of Lois van Baarle)' + +- name: Loish + negative_prompt: '' + prompt: '{prompt} (in the style of Loish)' + +- name: Lorena Alvarez Gómez + negative_prompt: '' + prompt: '{prompt} (in the style of Lorena Alvarez Gómez)' + +- name: Lorenz Hideyoshi + negative_prompt: '' + prompt: '{prompt} (in the style of Lorenz Hideyoshi)' + +- name: Loretta Lux + negative_prompt: '' + prompt: '{prompt} (in the style of Loretta Lux)' + +- name: Lori Earley + negative_prompt: '' + prompt: '{prompt} (in the style of Lori Earley)' + +- name: Louis Comfort Tiffany + negative_prompt: '' + prompt: '{prompt} (in the style of Louis Comfort Tiffany)' + +- name: Louis Glackens + negative_prompt: '' + prompt: '{prompt} (in the style of Louis Glackens)' + +- name: Louis Icart + negative_prompt: '' + prompt: '{prompt} (in the style of Louis Icart)' + +- name: Louis Janmot + negative_prompt: '' + prompt: '{prompt} (in the style of Louis Janmot)' + +- name: Louis Rhead + negative_prompt: '' + prompt: '{prompt} (in the style of Louis Rhead)' + +- name: Louis Wain + negative_prompt: '' + prompt: '{prompt} (in the style of Louis Wain)' + +- name: Louise Bourgeois + negative_prompt: '' + prompt: '{prompt} (in the style of Louise Bourgeois)' + +- name: Louise Dahl-Wolfe + negative_prompt: '' + prompt: '{prompt} (in the style of Louise Dahl-Wolfe)' + +- name: Lovis Corinth + negative_prompt: '' + prompt: '{prompt} (in the style of Lovis Corinth)' + +- name: Luca Boni + negative_prompt: '' + prompt: '{prompt} (in the style of Luca Boni)' + +- name: Lucas Cranach the Elder + negative_prompt: '' + prompt: '{prompt} (in the style of Lucas Cranach the Elder)' + +- name: Lucian Freud + negative_prompt: '' + prompt: '{prompt} (in the style of Lucian Freud)' + +- name: Lucy Madox Brown + negative_prompt: '' + prompt: '{prompt} (in the style of Lucy Madox Brown)' + +- name: Ludwig Mies van der Rohe + negative_prompt: '' + prompt: '{prompt} (in the style of Ludwig Mies van der Rohe)' + +- name: Luis Royo + negative_prompt: '' + prompt: '{prompt} (in the style of Luis Royo)' + +- name: Luisa Russo + negative_prompt: '' + prompt: '{prompt} (in the style of Luisa Russo)' + +- name: Lynd Ward + negative_prompt: '' + prompt: '{prompt} (in the style of Lynd Ward)' + +- name: Lynda Barry + negative_prompt: '' + prompt: '{prompt} (in the style of Lynda Barry)' + +- name: Lynda Benglis + negative_prompt: '' + prompt: '{prompt} (in the style of Lynda Benglis)' + +- name: Lyonel Feininger + negative_prompt: '' + prompt: '{prompt} (in the style of Lyonel Feininger)' + +- name: Lyubov Popova + negative_prompt: '' + prompt: '{prompt} (in the style of Lyubov Popova)' + +- name: László Moholy-Nagy + negative_prompt: '' + prompt: '{prompt} (in the style of László Moholy-Nagy)' + +- name: M.C. Escher + negative_prompt: '' + prompt: '{prompt} (in the style of M.C. Escher)' + +- name: M.W. Kaluta + negative_prompt: '' + prompt: '{prompt} (in the style of M.W. Kaluta)' + +- name: Mab Graves + negative_prompt: '' + prompt: '{prompt} (in the style of Mab Graves)' + +- name: Maginel Wright Enright Barney + negative_prompt: '' + prompt: '{prompt} (in the style of Maginel Wright Enright Barney)' + +- name: Magnus Enckell + negative_prompt: '' + prompt: '{prompt} (in the style of Magnus Enckell)' + +- name: Makoto Shinkai + negative_prompt: '' + prompt: '{prompt} (in the style of Makoto Shinkai)' + +- name: Malcolm Liepke + negative_prompt: '' + prompt: '{prompt} (in the style of Malcolm Liepke)' + +- name: Man Ray + negative_prompt: '' + prompt: '{prompt} (in the style of Man Ray)' + +- name: Mandy Disher + negative_prompt: '' + prompt: '{prompt} (in the style of Mandy Disher)' + +- name: Mao Hamaguchi + negative_prompt: '' + prompt: '{prompt} (in the style of Mao Hamaguchi)' + +- name: Marat Latypov + negative_prompt: '' + prompt: '{prompt} (in the style of Marat Latypov)' + +- name: Marc Chagall + negative_prompt: '' + prompt: '{prompt} (in the style of Marc Chagall)' + +- name: Marc Davis + negative_prompt: '' + prompt: '{prompt} (in the style of Marc Davis)' + +- name: Marc Samson + negative_prompt: '' + prompt: '{prompt} (in the style of Marc Samson)' + +- name: Marc Simonetti + negative_prompt: '' + prompt: '{prompt} (in the style of Marc Simonetti)' + +- name: Marcin Jakubowski + negative_prompt: '' + prompt: '{prompt} (in the style of Marcin Jakubowski)' + +- name: Marco Mazzoni + negative_prompt: '' + prompt: '{prompt} (in the style of Marco Mazzoni)' + +- name: Marcus Selmer + negative_prompt: '' + prompt: '{prompt} (in the style of Marcus Selmer)' + +- name: Marek Okon + negative_prompt: '' + prompt: '{prompt} (in the style of Marek Okon)' + +- name: Margaret Brundage + negative_prompt: '' + prompt: '{prompt} (in the style of Margaret Brundage)' + +- name: Margaret Macdonald Mackintosh + negative_prompt: '' + prompt: '{prompt} (in the style of Margaret Macdonald Mackintosh)' + +- name: Margaret Mee + negative_prompt: '' + prompt: '{prompt} (in the style of Margaret Mee)' + +- name: Margaux Valonia + negative_prompt: '' + prompt: '{prompt} (in the style of Margaux Valonia)' + +- name: Maria Kreyn + negative_prompt: '' + prompt: '{prompt} (in the style of Maria Kreyn)' + +- name: Maria Pascual Alberich + negative_prompt: '' + prompt: '{prompt} (in the style of Maria Pascual Alberich)' + +- name: Maria Sibylla Merian + negative_prompt: '' + prompt: '{prompt} (in the style of Maria Sibylla Merian)' + +- name: Marianne North + negative_prompt: '' + prompt: '{prompt} (in the style of Marianne North)' + +- name: Marianne von Werefkin + negative_prompt: '' + prompt: '{prompt} (in the style of Marianne von Werefkin)' + +- name: Marie Guillemine Benoist + negative_prompt: '' + prompt: '{prompt} (in the style of Marie Guillemine Benoist)' + +- name: Marie Spartali Stillman + negative_prompt: '' + prompt: '{prompt} (in the style of Marie Spartali Stillman)' + +- name: Marina Abramović + negative_prompt: '' + prompt: '{prompt} (in the style of Marina Abramović)' + +- name: Marius Borgeaud + negative_prompt: '' + prompt: '{prompt} (in the style of Marius Borgeaud)' + +- name: Marjane Satrapi + negative_prompt: '' + prompt: '{prompt} (in the style of Marjane Satrapi)' + +- name: Mark Arian + negative_prompt: '' + prompt: '{prompt} (in the style of Mark Arian)' + +- name: Mark Briscoe + negative_prompt: '' + prompt: '{prompt} (in the style of Mark Briscoe)' + +- name: Mark Brooks + negative_prompt: '' + prompt: '{prompt} (in the style of Mark Brooks)' + +- name: Mark Keathley + negative_prompt: '' + prompt: '{prompt} (in the style of Mark Keathley)' + +- name: Mark Lovett + negative_prompt: '' + prompt: '{prompt} (in the style of Mark Lovett)' + +- name: Mark Rothko + negative_prompt: '' + prompt: '{prompt} (in the style of Mark Rothko)' + +- name: Mark Ryden + negative_prompt: '' + prompt: '{prompt} (in the style of Mark Ryden)' + +- name: Mark Seliger + negative_prompt: '' + prompt: '{prompt} (in the style of Mark Seliger)' + +- name: Marsden Hartley + negative_prompt: '' + prompt: '{prompt} (in the style of Marsden Hartley)' + +- name: Martin Ansin + negative_prompt: '' + prompt: '{prompt} (in the style of Martin Ansin)' + +- name: Martin Deschambault + negative_prompt: '' + prompt: '{prompt} (in the style of Martin Deschambault)' + +- name: Martin John Heade + negative_prompt: '' + prompt: '{prompt} (in the style of Martin John Heade)' + +- name: Martin Johnson Heade + negative_prompt: '' + prompt: '{prompt} (in the style of Martin Johnson Heade)' + +- name: Martin Kippenberger + negative_prompt: '' + prompt: '{prompt} (in the style of Martin Kippenberger)' + +- name: Martine Johanna + negative_prompt: '' + prompt: '{prompt} (in the style of Martine Johanna)' + +- name: Martiros Saryan + negative_prompt: '' + prompt: '{prompt} (in the style of Martiros Saryan)' + +- name: Mary Anning + negative_prompt: '' + prompt: '{prompt} (in the style of Mary Anning)' + +- name: Mary Blair + negative_prompt: '' + prompt: '{prompt} (in the style of Mary Blair)' + +- name: Mary Cassatt + negative_prompt: '' + prompt: '{prompt} (in the style of Mary Cassatt)' + +- name: Masaaki Sasamoto + negative_prompt: '' + prompt: '{prompt} (in the style of Masaaki Sasamoto)' + +- name: Masamune Shirow + negative_prompt: '' + prompt: '{prompt} (in the style of Masamune Shirow)' + +- name: Mat Collishaw + negative_prompt: '' + prompt: '{prompt} (in the style of Mat Collishaw)' + +- name: Mati Klarwein + negative_prompt: '' + prompt: '{prompt} (in the style of Mati Klarwein)' + +- name: Matias Hannecke + negative_prompt: '' + prompt: '{prompt} (in the style of Matias Hannecke)' + +- name: Matt Bors + negative_prompt: '' + prompt: '{prompt} (in the style of Matt Bors)' + +- name: Matt Fraction + negative_prompt: '' + prompt: '{prompt} (in the style of Matt Fraction)' + +- name: Matt Groening + negative_prompt: '' + prompt: '{prompt} (in the style of Matt Groening)' + +- name: Matthias Grünewald + negative_prompt: '' + prompt: '{prompt} (in the style of Matthias Grünewald)' + +- name: Matthias Jung + negative_prompt: '' + prompt: '{prompt} (in the style of Matthias Jung)' + +- name: Matti Suuronen + negative_prompt: '' + prompt: '{prompt} (in the style of Matti Suuronen)' + +- name: Maurice Sendak + negative_prompt: '' + prompt: '{prompt} (in the style of Maurice Sendak)' + +- name: Max Beckmann + negative_prompt: '' + prompt: '{prompt} (in the style of Max Beckmann)' + +- name: Max Dupain + negative_prompt: '' + prompt: '{prompt} (in the style of Max Dupain)' + +- name: Max Ernst + negative_prompt: '' + prompt: '{prompt} (in the style of Max Ernst)' + +- name: Max Pechstein + negative_prompt: '' + prompt: '{prompt} (in the style of Max Pechstein)' + +- name: Max Weber + negative_prompt: '' + prompt: '{prompt} (in the style of Max Weber)' + +- name: Maxfield Parrish + negative_prompt: '' + prompt: '{prompt} (in the style of Maxfield Parrish)' + +- name: Maximilian Pirner + negative_prompt: '' + prompt: '{prompt} (in the style of Maximilian Pirner)' + +- name: Maximilien Luce + negative_prompt: '' + prompt: '{prompt} (in the style of Maximilien Luce)' + +- name: Maxwell Boas + negative_prompt: '' + prompt: '{prompt} (in the style of Maxwell Boas)' + +- name: Mead Schaeffer + negative_prompt: '' + prompt: '{prompt} (in the style of Mead Schaeffer)' + +- name: Meryl McMaster + negative_prompt: '' + prompt: '{prompt} (in the style of Meryl McMaster)' + +- name: Michael Carson + negative_prompt: '' + prompt: '{prompt} (in the style of Michael Carson)' + +- name: Michael Cheval + negative_prompt: '' + prompt: '{prompt} (in the style of Michael Cheval)' + +- name: Michael Deforge + negative_prompt: '' + prompt: '{prompt} (in the style of Michael Deforge)' + +- name: Michael Heizer + negative_prompt: '' + prompt: '{prompt} (in the style of Michael Heizer)' + +- name: Michael Hutter + negative_prompt: '' + prompt: '{prompt} (in the style of Michael Hutter)' + +- name: Michael Parkes + negative_prompt: '' + prompt: '{prompt} (in the style of Michael Parkes)' + +- name: Michael Sowa + negative_prompt: '' + prompt: '{prompt} (in the style of Michael Sowa)' + +- name: Michael Whelan + negative_prompt: '' + prompt: '{prompt} (in the style of Michael Whelan)' + +- name: Michal Karcz + negative_prompt: '' + prompt: '{prompt} (in the style of Michal Karcz)' + +- name: Michal Lisowski + negative_prompt: '' + prompt: '{prompt} (in the style of Michal Lisowski)' + +- name: Michelangelo Buonarroti + negative_prompt: '' + prompt: '{prompt} (in the style of Michelangelo Buonarroti)' + +- name: Michelangelo Merisi Da Caravaggio + negative_prompt: '' + prompt: '{prompt} (in the style of Michelangelo Merisi Da Caravaggio)' + +- name: Mickalene Thomas + negative_prompt: '' + prompt: '{prompt} (in the style of Mickalene Thomas)' + +- name: Miho Hirano + negative_prompt: '' + prompt: '{prompt} (in the style of Miho Hirano)' + +- name: Mikalojus Konstantinas Ciurlionis + negative_prompt: '' + prompt: '{prompt} (in the style of Mikalojus Konstantinas Ciurlionis)' + +- name: Mike Campau + negative_prompt: '' + prompt: '{prompt} (in the style of Mike Campau)' + +- name: Mike Deodato + negative_prompt: '' + prompt: '{prompt} (in the style of Mike Deodato)' + +- name: Mike Mayhew + negative_prompt: '' + prompt: '{prompt} (in the style of Mike Mayhew)' + +- name: Mike Mignola + negative_prompt: '' + prompt: '{prompt} (in the style of Mike Mignola)' + +- name: Mike Winkelmann (Beeple) + negative_prompt: '' + prompt: '{prompt} (in the style of Mike Winkelmann (Beeple))' + +- name: Mike Worrall + negative_prompt: '' + prompt: '{prompt} (in the style of Mike Worrall)' + +- name: Mikhail Larionov + negative_prompt: '' + prompt: '{prompt} (in the style of Mikhail Larionov)' + +- name: Mikhail Nesterov + negative_prompt: '' + prompt: '{prompt} (in the style of Mikhail Nesterov)' + +- name: Mikhail Vrubel + negative_prompt: '' + prompt: '{prompt} (in the style of Mikhail Vrubel)' + +- name: Mikko Lagerstedt + negative_prompt: '' + prompt: '{prompt} (in the style of Mikko Lagerstedt)' + +- name: Milo Manara + negative_prompt: '' + prompt: '{prompt} (in the style of Milo Manara)' + +- name: Milton Avery + negative_prompt: '' + prompt: '{prompt} (in the style of Milton Avery)' + +- name: Milton Caniff + negative_prompt: '' + prompt: '{prompt} (in the style of Milton Caniff)' + +- name: Milton Glaser + negative_prompt: '' + prompt: '{prompt} (in the style of Milton Glaser)' + +- name: Miriam Schapiro + negative_prompt: '' + prompt: '{prompt} (in the style of Miriam Schapiro)' + +- name: Moebius + negative_prompt: '' + prompt: '{prompt} (in the style of Moebius)' + +- name: Mordecai Ardon + negative_prompt: '' + prompt: '{prompt} (in the style of Mordecai Ardon)' + +- name: Mort Kunstler + negative_prompt: '' + prompt: '{prompt} (in the style of Mort Kunstler)' + +- name: Muxxi + negative_prompt: '' + prompt: '{prompt} (in the style of Muxxi)' + +- name: Méret Oppenheim + negative_prompt: '' + prompt: '{prompt} (in the style of Méret Oppenheim)' + +- name: NC Wyeth + negative_prompt: '' + prompt: '{prompt} (in the style of NC Wyeth)' + +- name: NHK Animation + negative_prompt: '' + prompt: '{prompt} (in the style of NHK Animation)' + +- name: Nagel Patrick + negative_prompt: '' + prompt: '{prompt} (in the style of Nagel Patrick)' + +- name: Nan Goldin + negative_prompt: '' + prompt: '{prompt} (in the style of Nan Goldin)' + +- name: Naoki Urasawa + negative_prompt: '' + prompt: '{prompt} (in the style of Naoki Urasawa)' + +- name: Naoko Takeuchi + negative_prompt: '' + prompt: '{prompt} (in the style of Naoko Takeuchi)' + +- name: Naomi Okubo + negative_prompt: '' + prompt: '{prompt} (in the style of Naomi Okubo)' + +- name: Naoto Hattori + negative_prompt: '' + prompt: '{prompt} (in the style of Naoto Hattori)' + +- name: Natalia Goncharova + negative_prompt: '' + prompt: '{prompt} (in the style of Natalia Goncharova)' + +- name: Nathan Coley + negative_prompt: '' + prompt: '{prompt} (in the style of Nathan Coley)' + +- name: Nathan Wirth + negative_prompt: '' + prompt: '{prompt} (in the style of Nathan Wirth)' + +- name: Neil Boyle + negative_prompt: '' + prompt: '{prompt} (in the style of Neil Boyle)' + +- name: Neil Welliver + negative_prompt: '' + prompt: '{prompt} (in the style of Neil Welliver)' + +- name: Nele Zirnite + negative_prompt: '' + prompt: '{prompt} (in the style of Nele Zirnite)' + +- name: Ni Chuanjing + negative_prompt: '' + prompt: '{prompt} (in the style of Ni Chuanjing)' + +- name: Nicholas Roerich + negative_prompt: '' + prompt: '{prompt} (in the style of Nicholas Roerich)' + +- name: Nick Knight + negative_prompt: '' + prompt: '{prompt} (in the style of Nick Knight)' + +- name: Nick Sharratt + negative_prompt: '' + prompt: '{prompt} (in the style of Nick Sharratt)' + +- name: Nick Silva + negative_prompt: '' + prompt: '{prompt} (in the style of Nick Silva)' + +- name: Nicola Samori + negative_prompt: '' + prompt: '{prompt} (in the style of Nicola Samori)' + +- name: Nicolas Delort + negative_prompt: '' + prompt: '{prompt} (in the style of Nicolas Delort)' + +- name: Nicolas Mignard + negative_prompt: '' + prompt: '{prompt} (in the style of Nicolas Mignard)' + +- name: Nicolas de Stael + negative_prompt: '' + prompt: '{prompt} (in the style of Nicolas de Stael)' + +- name: Nikolai Ge + negative_prompt: '' + prompt: '{prompt} (in the style of Nikolai Ge)' + +- name: Nikolina Petolas + negative_prompt: '' + prompt: '{prompt} (in the style of Nikolina Petolas)' + +- name: Noah Bradley + negative_prompt: '' + prompt: '{prompt} (in the style of Noah Bradley)' + +- name: Nobuyoshi Araki + negative_prompt: '' + prompt: '{prompt} (in the style of Nobuyoshi Araki)' + +- name: Noelle Stevenson + negative_prompt: '' + prompt: '{prompt} (in the style of Noelle Stevenson)' + +- name: Noriyoshi Ohrai + negative_prompt: '' + prompt: '{prompt} (in the style of Noriyoshi Ohrai)' + +- name: Norman Ackroyd + negative_prompt: '' + prompt: '{prompt} (in the style of Norman Ackroyd)' + +- name: Norman Bluhm + negative_prompt: '' + prompt: '{prompt} (in the style of Norman Bluhm)' + +- name: Norman Foster + negative_prompt: '' + prompt: '{prompt} (in the style of Norman Foster)' + +- name: Norman Rockwell + negative_prompt: '' + prompt: '{prompt} (in the style of Norman Rockwell)' + +- name: OSGEMEOS + negative_prompt: '' + prompt: '{prompt} (in the style of OSGEMEOS)' + +- name: Octavio Ocampo + negative_prompt: '' + prompt: '{prompt} (in the style of Octavio Ocampo)' + +- name: Odd Nerdrum + negative_prompt: '' + prompt: '{prompt} (in the style of Odd Nerdrum)' + +- name: Odilon Redon + negative_prompt: '' + prompt: '{prompt} (in the style of Odilon Redon)' + +- name: Ogawa Kazumasa + negative_prompt: '' + prompt: '{prompt} (in the style of Ogawa Kazumasa)' + +- name: Ohara Koson + negative_prompt: '' + prompt: '{prompt} (in the style of Ohara Koson)' + +- name: Olafur Eliasson + negative_prompt: '' + prompt: '{prompt} (in the style of Olafur Eliasson)' + +- name: Oleg Oprisco + negative_prompt: '' + prompt: '{prompt} (in the style of Oleg Oprisco)' + +- name: Olga Skomorokhova + negative_prompt: '' + prompt: '{prompt} (in the style of Olga Skomorokhova)' + +- name: Olivier Bonhomme + negative_prompt: '' + prompt: '{prompt} (in the style of Olivier Bonhomme)' + +- name: Olivier Valsecchi + negative_prompt: '' + prompt: '{prompt} (in the style of Olivier Valsecchi)' + +- name: Ollie Hoff + negative_prompt: '' + prompt: '{prompt} (in the style of Ollie Hoff)' + +- name: Os Gemeos + negative_prompt: '' + prompt: '{prompt} (in the style of Os Gemeos)' + +- name: Osamu Tezuka + negative_prompt: '' + prompt: '{prompt} (in the style of Osamu Tezuka)' + +- name: Oskar Fischinger + negative_prompt: '' + prompt: '{prompt} (in the style of Oskar Fischinger)' + +- name: Oskar Kokoschka + negative_prompt: '' + prompt: '{prompt} (in the style of Oskar Kokoschka)' + +- name: Ossip Zadkine + negative_prompt: '' + prompt: '{prompt} (in the style of Ossip Zadkine)' + +- name: Otto Dix + negative_prompt: '' + prompt: '{prompt} (in the style of Otto Dix)' + +- name: Otto Marseus van Schrieck + negative_prompt: '' + prompt: '{prompt} (in the style of Otto Marseus van Schrieck)' + +- name: Pablo Picasso + negative_prompt: '' + prompt: '{prompt} (in the style of Pablo Picasso)' + +- name: Pamela Colman Smith + negative_prompt: '' + prompt: '{prompt} (in the style of Pamela Colman Smith)' + +- name: Paolo Roversi + negative_prompt: '' + prompt: '{prompt} (in the style of Paolo Roversi)' + +- name: Paolo Veronese + negative_prompt: '' + prompt: '{prompt} (in the style of Paolo Veronese)' + +- name: Pascal Blanche + negative_prompt: '' + prompt: '{prompt} (in the style of Pascal Blanche)' + +- name: Pascale Campion + negative_prompt: '' + prompt: '{prompt} (in the style of Pascale Campion)' + +- name: Patrice Murciano + negative_prompt: '' + prompt: '{prompt} (in the style of Patrice Murciano)' + +- name: Patricia Polacco + negative_prompt: '' + prompt: '{prompt} (in the style of Patricia Polacco)' + +- name: Patrick Brown + negative_prompt: '' + prompt: '{prompt} (in the style of Patrick Brown)' + +- name: Patrick Caulfield + negative_prompt: '' + prompt: '{prompt} (in the style of Patrick Caulfield)' + +- name: Patrick Dougherty + negative_prompt: '' + prompt: '{prompt} (in the style of Patrick Dougherty)' + +- name: Patrick Heron + negative_prompt: '' + prompt: '{prompt} (in the style of Patrick Heron)' + +- name: Patrick Woodroffe + negative_prompt: '' + prompt: '{prompt} (in the style of Patrick Woodroffe)' + +- name: Paul Barson + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Barson)' + +- name: Paul Chadeisson + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Chadeisson)' + +- name: Paul Corfield + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Corfield)' + +- name: Paul Cézanne + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Cézanne)' + +- name: Paul Delvaux + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Delvaux)' + +- name: Paul Gauguin + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Gauguin)' + +- name: Paul Gustav Fischer + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Gustav Fischer)' + +- name: Paul Henry + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Henry)' + +- name: Paul Klee + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Klee)' + +- name: Paul Laffoley + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Laffoley)' + +- name: Paul Lehr + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Lehr)' + +- name: Paul Ranson + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Ranson)' + +- name: Paul Strand + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Strand)' + +- name: Paul Wonner + negative_prompt: '' + prompt: '{prompt} (in the style of Paul Wonner)' + +- name: Paula Modersohn-Becker + negative_prompt: '' + prompt: '{prompt} (in the style of Paula Modersohn-Becker)' + +- name: Paulus Potter + negative_prompt: '' + prompt: '{prompt} (in the style of Paulus Potter)' + +- name: Pawel Kuczynski + negative_prompt: '' + prompt: '{prompt} (in the style of Pawel Kuczynski)' + +- name: Peter Andrew Jones + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Andrew Jones)' + +- name: Peter Bagge + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Bagge)' + +- name: Peter De Seve + negative_prompt: '' + prompt: '{prompt} (in the style of Peter De Seve)' + +- name: Peter Doig + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Doig)' + +- name: Peter Elson + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Elson)' + +- name: Peter Gric + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Gric)' + +- name: Peter Holme III + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Holme III)' + +- name: Peter Howson + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Howson)' + +- name: Peter Kemp + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Kemp)' + +- name: Peter Max + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Max)' + +- name: Peter Milligan + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Milligan)' + +- name: Peter Mohrbacher + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Mohrbacher)' + +- name: Peter Paul Rubens + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Paul Rubens)' + +- name: Peter Sculthorpe + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Sculthorpe)' + +- name: Peter Wileman + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Wileman)' + +- name: Peter Zumthor + negative_prompt: '' + prompt: '{prompt} (in the style of Peter Zumthor)' + +- name: Phil Foglio + negative_prompt: '' + prompt: '{prompt} (in the style of Phil Foglio)' + +- name: Phil Jimenez + negative_prompt: '' + prompt: '{prompt} (in the style of Phil Jimenez)' + +- name: Phil Koch + negative_prompt: '' + prompt: '{prompt} (in the style of Phil Koch)' + +- name: Phil Noto + negative_prompt: '' + prompt: '{prompt} (in the style of Phil Noto)' + +- name: Philip Guston + negative_prompt: '' + prompt: '{prompt} (in the style of Philip Guston)' + +- name: Philippe Druillet + negative_prompt: '' + prompt: '{prompt} (in the style of Philippe Druillet)' + +- name: Philippe Parreno + negative_prompt: '' + prompt: '{prompt} (in the style of Philippe Parreno)' + +- name: Pierre Bonnard + negative_prompt: '' + prompt: '{prompt} (in the style of Pierre Bonnard)' + +- name: Pierre Puvis de Chavannes + negative_prompt: '' + prompt: '{prompt} (in the style of Pierre Puvis de Chavannes)' + +- name: Pierre-Auguste Renoir + negative_prompt: '' + prompt: '{prompt} (in the style of Pierre-Auguste Renoir)' + +- name: Piet Hein Eek + negative_prompt: '' + prompt: '{prompt} (in the style of Piet Hein Eek)' + +- name: Piet Mondrian + negative_prompt: '' + prompt: '{prompt} (in the style of Piet Mondrian)' + +- name: Pieter Aertsen + negative_prompt: '' + prompt: '{prompt} (in the style of Pieter Aertsen)' + +- name: Pieter Bruegel The Elder + negative_prompt: '' + prompt: '{prompt} (in the style of Pieter Bruegel The Elder)' + +- name: Pieter Claesz + negative_prompt: '' + prompt: '{prompt} (in the style of Pieter Claesz)' + +- name: Pieter Jansz Saenredam + negative_prompt: '' + prompt: '{prompt} (in the style of Pieter Jansz Saenredam)' + +- name: Pieter de Hooch + negative_prompt: '' + prompt: '{prompt} (in the style of Pieter de Hooch)' + +- name: Piotr Jabłoński + negative_prompt: '' + prompt: '{prompt} (in the style of Piotr Jabłoński)' + +- name: Pipilotti Rist + negative_prompt: '' + prompt: '{prompt} (in the style of Pipilotti Rist)' + +- name: Pixar + negative_prompt: '' + prompt: '{prompt} (in the style of Pixar)' + +- name: Pixar Concept Artists + negative_prompt: '' + prompt: '{prompt} (in the style of Pixar Concept Artists)' + +- name: Posuka Demizu + negative_prompt: '' + prompt: '{prompt} (in the style of Posuka Demizu)' + +- name: Qian Xuan + negative_prompt: '' + prompt: '{prompt} (in the style of Qian Xuan)' + +- name: Qing Han + negative_prompt: '' + prompt: '{prompt} (in the style of Qing Han)' + +- name: Quentin Blake + negative_prompt: '' + prompt: '{prompt} (in the style of Quentin Blake)' + +- name: Quentin Tarantino + negative_prompt: '' + prompt: '{prompt} (in the style of Quentin Tarantino)' + +- name: Quint Buchholz + negative_prompt: '' + prompt: '{prompt} (in the style of Quint Buchholz)' + +- name: RETNA (Marquis Lewis) + negative_prompt: '' + prompt: '{prompt} (in the style of RETNA (Marquis Lewis))' + +- name: RHADS + negative_prompt: '' + prompt: '{prompt} (in the style of RHADS)' + +- name: ROA + negative_prompt: '' + prompt: '{prompt} (in the style of ROA)' + +- name: Rafael Albuquerque + negative_prompt: '' + prompt: '{prompt} (in the style of Rafael Albuquerque)' + +- name: Rafał Olbiński + negative_prompt: '' + prompt: '{prompt} (in the style of Rafał Olbiński)' + +- name: Raffaello Sanizo + negative_prompt: '' + prompt: '{prompt} (in the style of Raffaello Sanizo)' + +- name: Raina Telgemeier + negative_prompt: '' + prompt: '{prompt} (in the style of Raina Telgemeier)' + +- name: Raja Ravi Varma + negative_prompt: '' + prompt: '{prompt} (in the style of Raja Ravi Varma)' + +- name: Ralph Horsley + negative_prompt: '' + prompt: '{prompt} (in the style of Ralph Horsley)' + +- name: Ralph McQuarrie + negative_prompt: '' + prompt: '{prompt} (in the style of Ralph McQuarrie)' + +- name: Ralph Steadman + negative_prompt: '' + prompt: '{prompt} (in the style of Ralph Steadman)' + +- name: Ramon Casas + negative_prompt: '' + prompt: '{prompt} (in the style of Ramon Casas)' + +- name: Randolph Caldecott + negative_prompt: '' + prompt: '{prompt} (in the style of Randolph Caldecott)' + +- name: Raphael + negative_prompt: '' + prompt: '{prompt} (in the style of Raphael)' + +- name: Raphael Lacoste + negative_prompt: '' + prompt: '{prompt} (in the style of Raphael Lacoste)' + +- name: Raphaelle Peale + negative_prompt: '' + prompt: '{prompt} (in the style of Raphaelle Peale)' + +- name: Ravi Zupa + negative_prompt: '' + prompt: '{prompt} (in the style of Ravi Zupa)' + +- name: Ray Caesar + negative_prompt: '' + prompt: '{prompt} (in the style of Ray Caesar)' + +- name: Ray Donley + negative_prompt: '' + prompt: '{prompt} (in the style of Ray Donley)' + +- name: Raymond Briggs + negative_prompt: '' + prompt: '{prompt} (in the style of Raymond Briggs)' + +- name: Raymond Duchamp-Villon + negative_prompt: '' + prompt: '{prompt} (in the style of Raymond Duchamp-Villon)' + +- name: Raymond Leech + negative_prompt: '' + prompt: '{prompt} (in the style of Raymond Leech)' + +- name: Raymond Swanland + negative_prompt: '' + prompt: '{prompt} (in the style of Raymond Swanland)' + +- name: Rayner Alencar + negative_prompt: '' + prompt: '{prompt} (in the style of Rayner Alencar)' + +- name: Rebeca Saray + negative_prompt: '' + prompt: '{prompt} (in the style of Rebeca Saray)' + +- name: Rebecca Guay + negative_prompt: '' + prompt: '{prompt} (in the style of Rebecca Guay)' + +- name: Rebecca Louise Law + negative_prompt: '' + prompt: '{prompt} (in the style of Rebecca Louise Law)' + +- name: Rebecca Sugar + negative_prompt: '' + prompt: '{prompt} (in the style of Rebecca Sugar)' + +- name: Reginald Marsh + negative_prompt: '' + prompt: '{prompt} (in the style of Reginald Marsh)' + +- name: Rembrandt Van Rijn + negative_prompt: '' + prompt: '{prompt} (in the style of Rembrandt Van Rijn)' + +- name: Remedios Varo + negative_prompt: '' + prompt: '{prompt} (in the style of Remedios Varo)' + +- name: Rene Laloux + negative_prompt: '' + prompt: '{prompt} (in the style of Rene Laloux)' + +- name: Rene Magritte + negative_prompt: '' + prompt: '{prompt} (in the style of Rene Magritte)' + +- name: René Lalique + negative_prompt: '' + prompt: '{prompt} (in the style of René Lalique)' + +- name: Reylia Slaby + negative_prompt: '' + prompt: '{prompt} (in the style of Reylia Slaby)' + +- name: Rich Davies + negative_prompt: '' + prompt: '{prompt} (in the style of Rich Davies)' + +- name: Richard Burlet + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Burlet)' + +- name: Richard Corben + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Corben)' + +- name: Richard Dadd + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Dadd)' + +- name: Richard Deacon + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Deacon)' + +- name: Richard Diebenkorn + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Diebenkorn)' + +- name: Richard Doyle + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Doyle)' + +- name: Richard Eurich + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Eurich)' + +- name: Richard Hamilton + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Hamilton)' + +- name: Richard Lindner + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Lindner)' + +- name: Richard McGuire + negative_prompt: '' + prompt: '{prompt} (in the style of Richard McGuire)' + +- name: Richard Misrach + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Misrach)' + +- name: Richard S. Johnson + negative_prompt: '' + prompt: '{prompt} (in the style of Richard S. Johnson)' + +- name: Richard Scarry + negative_prompt: '' + prompt: '{prompt} (in the style of Richard Scarry)' + +- name: Rick Guidice + negative_prompt: '' + prompt: '{prompt} (in the style of Rick Guidice)' + +- name: Rob Gonsalves + negative_prompt: '' + prompt: '{prompt} (in the style of Rob Gonsalves)' + +- name: Rob Liefeld + negative_prompt: '' + prompt: '{prompt} (in the style of Rob Liefeld)' + +- name: Robby Cavanaugh + negative_prompt: '' + prompt: '{prompt} (in the style of Robby Cavanaugh)' + +- name: Robert Antoine Pinchon + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Antoine Pinchon)' + +- name: Robert Chew + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Chew)' + +- name: Robert Childress + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Childress)' + +- name: Robert Crumb + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Crumb)' + +- name: Robert Farkas + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Farkas)' + +- name: Robert Hagan + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Hagan)' + +- name: Robert Irwin + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Irwin)' + +- name: Robert M Cunningham + negative_prompt: '' + prompt: '{prompt} (in the style of Robert M Cunningham)' + +- name: Robert Maguire + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Maguire)' + +- name: Robert McCall + negative_prompt: '' + prompt: '{prompt} (in the style of Robert McCall)' + +- name: Robert Mcginnis + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Mcginnis)' + +- name: Robert Motherwell + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Motherwell)' + +- name: Robert Neubecker + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Neubecker)' + +- name: Robert Rauschenberg + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Rauschenberg)' + +- name: Robert S. Duncanson + negative_prompt: '' + prompt: '{prompt} (in the style of Robert S. Duncanson)' + +- name: Robert Stivers + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Stivers)' + +- name: Robert Vonnoh + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Vonnoh)' + +- name: Robert William Hume + negative_prompt: '' + prompt: '{prompt} (in the style of Robert William Hume)' + +- name: Robert Williams + negative_prompt: '' + prompt: '{prompt} (in the style of Robert Williams)' + +- name: Roberto Ferri + negative_prompt: '' + prompt: '{prompt} (in the style of Roberto Ferri)' + +- name: Roberto Matta + negative_prompt: '' + prompt: '{prompt} (in the style of Roberto Matta)' + +- name: Roberto Parada + negative_prompt: '' + prompt: '{prompt} (in the style of Roberto Parada)' + +- name: Rockwell Kent + negative_prompt: '' + prompt: '{prompt} (in the style of Rockwell Kent)' + +- name: Rodney Matthews + negative_prompt: '' + prompt: '{prompt} (in the style of Rodney Matthews)' + +- name: Rodríguez ARS + negative_prompt: '' + prompt: '{prompt} (in the style of Rodríguez ARS)' + +- name: Roger Ballen + negative_prompt: '' + prompt: '{prompt} (in the style of Roger Ballen)' + +- name: Roger Dean + negative_prompt: '' + prompt: '{prompt} (in the style of Roger Dean)' + +- name: Roger de La Fresnaye + negative_prompt: '' + prompt: '{prompt} (in the style of Roger de La Fresnaye)' + +- name: Rolf Armstrong + negative_prompt: '' + prompt: '{prompt} (in the style of Rolf Armstrong)' + +- name: Romero Britto + negative_prompt: '' + prompt: '{prompt} (in the style of Romero Britto)' + +- name: Ron Mueck + negative_prompt: '' + prompt: '{prompt} (in the style of Ron Mueck)' + +- name: Ron Walotsky + negative_prompt: '' + prompt: '{prompt} (in the style of Ron Walotsky)' + +- name: Ronald Balfour + negative_prompt: '' + prompt: '{prompt} (in the style of Ronald Balfour)' + +- name: Ross Tran + negative_prompt: '' + prompt: '{prompt} (in the style of Ross Tran)' + +- name: Roy Gjertson + negative_prompt: '' + prompt: '{prompt} (in the style of Roy Gjertson)' + +- name: Roy Lichtenstein + negative_prompt: '' + prompt: '{prompt} (in the style of Roy Lichtenstein)' + +- name: Roz Chast + negative_prompt: '' + prompt: '{prompt} (in the style of Roz Chast)' + +- name: Ruan Jia + negative_prompt: '' + prompt: '{prompt} (in the style of Ruan Jia)' + +- name: Rudolf Freund + negative_prompt: '' + prompt: '{prompt} (in the style of Rudolf Freund)' + +- name: Rufino Tamayo + negative_prompt: '' + prompt: '{prompt} (in the style of Rufino Tamayo)' + +- name: Rumiko Takahashi + negative_prompt: '' + prompt: '{prompt} (in the style of Rumiko Takahashi)' + +- name: Russ Mills + negative_prompt: '' + prompt: '{prompt} (in the style of Russ Mills)' + +- name: Russell Ayto + negative_prompt: '' + prompt: '{prompt} (in the style of Russell Ayto)' + +- name: Ruth Bernhard + negative_prompt: '' + prompt: '{prompt} (in the style of Ruth Bernhard)' + +- name: Ruxing Gao + negative_prompt: '' + prompt: '{prompt} (in the style of Ruxing Gao)' + +- name: Ryan Hewett + negative_prompt: '' + prompt: '{prompt} (in the style of Ryan Hewett)' + +- name: Ryan McGinley + negative_prompt: '' + prompt: '{prompt} (in the style of Ryan McGinley)' + +- name: Ryan Stegman + negative_prompt: '' + prompt: '{prompt} (in the style of Ryan Stegman)' + +- name: Ryohei Hase + negative_prompt: '' + prompt: '{prompt} (in the style of Ryohei Hase)' + +- name: Sacha Goldberger + negative_prompt: '' + prompt: '{prompt} (in the style of Sacha Goldberger)' + +- name: Sailor Moon + negative_prompt: '' + prompt: '{prompt} (in the style of Sailor Moon)' + +- name: Sakai Hōitsu + negative_prompt: '' + prompt: '{prompt} (in the style of Sakai Hōitsu)' + +- name: Sally Mann + negative_prompt: '' + prompt: '{prompt} (in the style of Sally Mann)' + +- name: Salomon van Ruysdael + negative_prompt: '' + prompt: '{prompt} (in the style of Salomon van Ruysdael)' + +- name: Salvador Dali + negative_prompt: '' + prompt: '{prompt} (in the style of Salvador Dali)' + +- name: Sam Bosma + negative_prompt: '' + prompt: '{prompt} (in the style of Sam Bosma)' + +- name: Sam Kieth + negative_prompt: '' + prompt: '{prompt} (in the style of Sam Kieth)' + +- name: Sam Spratt + negative_prompt: '' + prompt: '{prompt} (in the style of Sam Spratt)' + +- name: Samuel Earp + negative_prompt: '' + prompt: '{prompt} (in the style of Samuel Earp)' + +- name: Samuel Melton Fisher + negative_prompt: '' + prompt: '{prompt} (in the style of Samuel Melton Fisher)' + +- name: Samuel and Joseph Newsom + negative_prompt: '' + prompt: '{prompt} (in the style of Samuel and Joseph Newsom)' + +- name: Sandra Chevrier + negative_prompt: '' + prompt: '{prompt} (in the style of Sandra Chevrier)' + +- name: Sandro Botticelli + negative_prompt: '' + prompt: '{prompt} (in the style of Sandro Botticelli)' + +- name: Sandy Skoglund + negative_prompt: '' + prompt: '{prompt} (in the style of Sandy Skoglund)' + +- name: Saner Edgar + negative_prompt: '' + prompt: '{prompt} (in the style of Saner Edgar)' + +- name: Sanford Kossin + negative_prompt: '' + prompt: '{prompt} (in the style of Sanford Kossin)' + +- name: Sangyeob Park + negative_prompt: '' + prompt: '{prompt} (in the style of Sangyeob Park)' + +- name: Santiago Calatrava + negative_prompt: '' + prompt: '{prompt} (in the style of Santiago Calatrava)' + +- name: Santiago Caruso + negative_prompt: '' + prompt: '{prompt} (in the style of Santiago Caruso)' + +- name: Sara Wollfalk + negative_prompt: '' + prompt: '{prompt} (in the style of Sara Wollfalk)' + +- name: Sarah Lucas + negative_prompt: '' + prompt: '{prompt} (in the style of Sarah Lucas)' + +- name: Satoshi Kon + negative_prompt: '' + prompt: '{prompt} (in the style of Satoshi Kon)' + +- name: Saturno Butto + negative_prompt: '' + prompt: '{prompt} (in the style of Saturno Butto)' + +- name: Saul Bass + negative_prompt: '' + prompt: '{prompt} (in the style of Saul Bass)' + +- name: Saul Steinberg + negative_prompt: '' + prompt: '{prompt} (in the style of Saul Steinberg)' + +- name: Saul Tepper + negative_prompt: '' + prompt: '{prompt} (in the style of Saul Tepper)' + +- name: Scarlett Hooft Graafland + negative_prompt: '' + prompt: '{prompt} (in the style of Scarlett Hooft Graafland)' + +- name: Scott Brundage + negative_prompt: '' + prompt: '{prompt} (in the style of Scott Brundage)' + +- name: Scott Listfield + negative_prompt: '' + prompt: '{prompt} (in the style of Scott Listfield)' + +- name: Scott Naismith + negative_prompt: '' + prompt: '{prompt} (in the style of Scott Naismith)' + +- name: Sean Scully + negative_prompt: '' + prompt: '{prompt} (in the style of Sean Scully)' + +- name: Sean Yoro + negative_prompt: '' + prompt: '{prompt} (in the style of Sean Yoro)' + +- name: Seb Mckinnon + negative_prompt: '' + prompt: '{prompt} (in the style of Seb Mckinnon)' + +- name: Sebastian Errazuriz + negative_prompt: '' + prompt: '{prompt} (in the style of Sebastian Errazuriz)' + +- name: Serge Marshennikov + negative_prompt: '' + prompt: '{prompt} (in the style of Serge Marshennikov)' + +- name: Shaddy Safadi + negative_prompt: '' + prompt: '{prompt} (in the style of Shaddy Safadi)' + +- name: Shaun Tan + negative_prompt: '' + prompt: '{prompt} (in the style of Shaun Tan)' + +- name: Shawn Coss + negative_prompt: '' + prompt: '{prompt} (in the style of Shawn Coss)' + +- name: Sheilah Beckett + negative_prompt: '' + prompt: '{prompt} (in the style of Sheilah Beckett)' + +- name: Shepard Fairey + negative_prompt: '' + prompt: '{prompt} (in the style of Shepard Fairey)' + +- name: Sherree Valentine Daines + negative_prompt: '' + prompt: '{prompt} (in the style of Sherree Valentine Daines)' + +- name: Shin Jeongho + negative_prompt: '' + prompt: '{prompt} (in the style of Shin Jeongho)' + +- name: Shinji Aramaki + negative_prompt: '' + prompt: '{prompt} (in the style of Shinji Aramaki)' + +- name: Shintaro Kago + negative_prompt: '' + prompt: '{prompt} (in the style of Shintaro Kago)' + +- name: Shohei Otomo + negative_prompt: '' + prompt: '{prompt} (in the style of Shohei Otomo)' + +- name: Shotaro Ishinomori + negative_prompt: '' + prompt: '{prompt} (in the style of Shotaro Ishinomori)' + +- name: Shusei Nagaoko + negative_prompt: '' + prompt: '{prompt} (in the style of Shusei Nagaoko)' + +- name: Sidney Nolan + negative_prompt: '' + prompt: '{prompt} (in the style of Sidney Nolan)' + +- name: Silvestro Lega + negative_prompt: '' + prompt: '{prompt} (in the style of Silvestro Lega)' + +- name: Simeon Solomon + negative_prompt: '' + prompt: '{prompt} (in the style of Simeon Solomon)' + +- name: Simon Birch + negative_prompt: '' + prompt: '{prompt} (in the style of Simon Birch)' + +- name: Simon Bisley + negative_prompt: '' + prompt: '{prompt} (in the style of Simon Bisley)' + +- name: Simon Stalenhag + negative_prompt: '' + prompt: '{prompt} (in the style of Simon Stalenhag)' + +- name: Simone Martini + negative_prompt: '' + prompt: '{prompt} (in the style of Simone Martini)' + +- name: Sir James Guthrie + negative_prompt: '' + prompt: '{prompt} (in the style of Sir James Guthrie)' + +- name: Siya Oum + negative_prompt: '' + prompt: '{prompt} (in the style of Siya Oum)' + +- name: Skottie Young + negative_prompt: '' + prompt: '{prompt} (in the style of Skottie Young)' + +- name: Slim Aarons + negative_prompt: '' + prompt: '{prompt} (in the style of Slim Aarons)' + +- name: Sofonisba Anguissola + negative_prompt: '' + prompt: '{prompt} (in the style of Sofonisba Anguissola)' + +- name: Sonia Delaunay + negative_prompt: '' + prompt: '{prompt} (in the style of Sonia Delaunay)' + +- name: Sou Fujimoto + negative_prompt: '' + prompt: '{prompt} (in the style of Sou Fujimoto)' + +- name: Sparth + negative_prompt: '' + prompt: '{prompt} (in the style of Sparth)' + +- name: Squeak Carnwath + negative_prompt: '' + prompt: '{prompt} (in the style of Squeak Carnwath)' + +- name: Stan And Jan Berenstain + negative_prompt: '' + prompt: '{prompt} (in the style of Stan And Jan Berenstain)' + +- name: Stan Lee + negative_prompt: '' + prompt: '{prompt} (in the style of Stan Lee)' + +- name: Stanislav Poltavsky + negative_prompt: '' + prompt: '{prompt} (in the style of Stanislav Poltavsky)' + +- name: Stanisław Szukalski + negative_prompt: '' + prompt: '{prompt} (in the style of Stanisław Szukalski)' + +- name: Stanley Donwood + negative_prompt: '' + prompt: '{prompt} (in the style of Stanley Donwood)' + +- name: Stephan Martiniere + negative_prompt: '' + prompt: '{prompt} (in the style of Stephan Martiniere)' + +- name: Stephen Gammell + negative_prompt: '' + prompt: '{prompt} (in the style of Stephen Gammell)' + +- name: Stephen Oakley + negative_prompt: '' + prompt: '{prompt} (in the style of Stephen Oakley)' + +- name: Stephen Shore + negative_prompt: '' + prompt: '{prompt} (in the style of Stephen Shore)' + +- name: Stevan Dohanos + negative_prompt: '' + prompt: '{prompt} (in the style of Stevan Dohanos)' + +- name: Steve Argyle + negative_prompt: '' + prompt: '{prompt} (in the style of Steve Argyle)' + +- name: Steve Dillon + negative_prompt: '' + prompt: '{prompt} (in the style of Steve Dillon)' + +- name: Steve Ditko + negative_prompt: '' + prompt: '{prompt} (in the style of Steve Ditko)' + +- name: Steve Henderson + negative_prompt: '' + prompt: '{prompt} (in the style of Steve Henderson)' + +- name: Steve Lieber + negative_prompt: '' + prompt: '{prompt} (in the style of Steve Lieber)' + +- name: Steve McCurry + negative_prompt: '' + prompt: '{prompt} (in the style of Steve McCurry)' + +- name: Steven Belledin + negative_prompt: '' + prompt: '{prompt} (in the style of Steven Belledin)' + +- name: Storm Thorgerson + negative_prompt: '' + prompt: '{prompt} (in the style of Storm Thorgerson)' + +- name: Stuart Davis + negative_prompt: '' + prompt: '{prompt} (in the style of Stuart Davis)' + +- name: Stuart Haygarth + negative_prompt: '' + prompt: '{prompt} (in the style of Stuart Haygarth)' + +- name: Stuart Immonen + negative_prompt: '' + prompt: '{prompt} (in the style of Stuart Immonen)' + +- name: Studio Ghibli + negative_prompt: '' + prompt: '{prompt} (in the style of Studio Ghibli)' + +- name: Sue Bryce + negative_prompt: '' + prompt: '{prompt} (in the style of Sue Bryce)' + +- name: Susan Luo + negative_prompt: '' + prompt: '{prompt} (in the style of Susan Luo)' + +- name: Susan Seddon Boulet + negative_prompt: '' + prompt: '{prompt} (in the style of Susan Seddon Boulet)' + +- name: Sven Nordqvist + negative_prompt: '' + prompt: '{prompt} (in the style of Sven Nordqvist)' + +- name: Syd Mead + negative_prompt: '' + prompt: '{prompt} (in the style of Syd Mead)' + +- name: Sydney Edmunds + negative_prompt: '' + prompt: '{prompt} (in the style of Sydney Edmunds)' + +- name: Sydney Prior Hall + negative_prompt: '' + prompt: '{prompt} (in the style of Sydney Prior Hall)' + +- name: Tadao Ando + negative_prompt: '' + prompt: '{prompt} (in the style of Tadao Ando)' + +- name: Taiyō Matsumoto + negative_prompt: '' + prompt: '{prompt} (in the style of Taiyō Matsumoto)' + +- name: Takashi Murakami + negative_prompt: '' + prompt: '{prompt} (in the style of Takashi Murakami)' + +- name: Takato Yamamoto + negative_prompt: '' + prompt: '{prompt} (in the style of Takato Yamamoto)' + +- name: Takeshi Obata + negative_prompt: '' + prompt: '{prompt} (in the style of Takeshi Obata)' + +- name: Tamara Lempicka + negative_prompt: '' + prompt: '{prompt} (in the style of Tamara Lempicka)' + +- name: Tan Zhi Hui + negative_prompt: '' + prompt: '{prompt} (in the style of Tan Zhi Hui)' + +- name: Tara McPherson + negative_prompt: '' + prompt: '{prompt} (in the style of Tara McPherson)' + +- name: Tari Márk Dávid + negative_prompt: '' + prompt: '{prompt} (in the style of Tari Márk Dávid)' + +- name: Tatsuro Kiuchi + negative_prompt: '' + prompt: '{prompt} (in the style of Tatsuro Kiuchi)' + +- name: Ted Nasmith + negative_prompt: '' + prompt: '{prompt} (in the style of Ted Nasmith)' + +- name: Ted Wallace + negative_prompt: '' + prompt: '{prompt} (in the style of Ted Wallace)' + +- name: Teophilus Tetteh + negative_prompt: '' + prompt: '{prompt} (in the style of Teophilus Tetteh)' + +- name: Terada Katsuya + negative_prompt: '' + prompt: '{prompt} (in the style of Terada Katsuya)' + +- name: Teresa Ramos + negative_prompt: '' + prompt: '{prompt} (in the style of Teresa Ramos)' + +- name: Terry Oakes + negative_prompt: '' + prompt: '{prompt} (in the style of Terry Oakes)' + +- name: Terry Redlin + negative_prompt: '' + prompt: '{prompt} (in the style of Terry Redlin)' + +- name: Tex Avery + negative_prompt: '' + prompt: '{prompt} (in the style of Tex Avery)' + +- name: Theo van Rysselberghe + negative_prompt: '' + prompt: '{prompt} (in the style of Theo van Rysselberghe)' + +- name: Thomas Allom + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Allom)' + +- name: Thomas Benjamin Kennington + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Benjamin Kennington)' + +- name: Thomas Blackshear + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Blackshear)' + +- name: Thomas Cole + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Cole)' + +- name: Thomas Dodd + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Dodd)' + +- name: Thomas Eakins + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Eakins)' + +- name: Thomas Gainsborough + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Gainsborough)' + +- name: Thomas Moran + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Moran)' + +- name: Thomas Rowlandson + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Rowlandson)' + +- name: Thomas Saliot + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Saliot)' + +- name: Thomas Struth + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Struth)' + +- name: Thomas Visscher + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas Visscher)' + +- name: Thomas W Schaller + negative_prompt: '' + prompt: '{prompt} (in the style of Thomas W Schaller)' + +- name: Thornton Oakley + negative_prompt: '' + prompt: '{prompt} (in the style of Thornton Oakley)' + +- name: Théodore Géricault + negative_prompt: '' + prompt: '{prompt} (in the style of Théodore Géricault)' + +- name: Tibor Nagy + negative_prompt: '' + prompt: '{prompt} (in the style of Tibor Nagy)' + +- name: Till Freitag + negative_prompt: '' + prompt: '{prompt} (in the style of Till Freitag)' + +- name: Tim Burton + negative_prompt: '' + prompt: '{prompt} (in the style of Tim Burton)' + +- name: Tim Doyle + negative_prompt: '' + prompt: '{prompt} (in the style of Tim Doyle)' + +- name: Tim Hildebrandt + negative_prompt: '' + prompt: '{prompt} (in the style of Tim Hildebrandt)' + +- name: Tim White + negative_prompt: '' + prompt: '{prompt} (in the style of Tim White)' + +- name: Tintoretto + negative_prompt: '' + prompt: '{prompt} (in the style of Tintoretto)' + +- name: Titian + negative_prompt: '' + prompt: '{prompt} (in the style of Titian)' + +- name: Todd McFarlane + negative_prompt: '' + prompt: '{prompt} (in the style of Todd McFarlane)' + +- name: Todd Schorr + negative_prompt: '' + prompt: '{prompt} (in the style of Todd Schorr)' + +- name: Toei Animations + negative_prompt: '' + prompt: '{prompt} (in the style of Toei Animations)' + +- name: Tokujin Yoshioka + negative_prompt: '' + prompt: '{prompt} (in the style of Tokujin Yoshioka)' + +- name: Tom Bagshaw + negative_prompt: '' + prompt: '{prompt} (in the style of Tom Bagshaw)' + +- name: Tom Hammick + negative_prompt: '' + prompt: '{prompt} (in the style of Tom Hammick)' + +- name: Tom Lovell + negative_prompt: '' + prompt: '{prompt} (in the style of Tom Lovell)' + +- name: Tom Roberts + negative_prompt: '' + prompt: '{prompt} (in the style of Tom Roberts)' + +- name: Tom Thomson + negative_prompt: '' + prompt: '{prompt} (in the style of Tom Thomson)' + +- name: Tom Whalen + negative_prompt: '' + prompt: '{prompt} (in the style of Tom Whalen)' + +- name: Tomasz Alen Kopera + negative_prompt: '' + prompt: '{prompt} (in the style of Tomasz Alen Kopera)' + +- name: Tomer Hanuka + negative_prompt: '' + prompt: '{prompt} (in the style of Tomer Hanuka)' + +- name: Tomi Ungerer + negative_prompt: '' + prompt: '{prompt} (in the style of Tomi Ungerer)' + +- name: Tomma Abts + negative_prompt: '' + prompt: '{prompt} (in the style of Tomma Abts)' + +- name: Tomokazu Matsuyama + negative_prompt: '' + prompt: '{prompt} (in the style of Tomokazu Matsuyama)' + +- name: Tony DiTerlizzi + negative_prompt: '' + prompt: '{prompt} (in the style of Tony DiTerlizzi)' + +- name: Tony Moore + negative_prompt: '' + prompt: '{prompt} (in the style of Tony Moore)' + +- name: Toshiharu Mizutani + negative_prompt: '' + prompt: '{prompt} (in the style of Toshiharu Mizutani)' + +- name: Toumas Korpi + negative_prompt: '' + prompt: '{prompt} (in the style of Toumas Korpi)' + +- name: Tove Jansson + negative_prompt: '' + prompt: '{prompt} (in the style of Tove Jansson)' + +- name: Tracey Emin + negative_prompt: '' + prompt: '{prompt} (in the style of Tracey Emin)' + +- name: Travis Louie + negative_prompt: '' + prompt: '{prompt} (in the style of Travis Louie)' + +- name: Tristan Eaton + negative_prompt: '' + prompt: '{prompt} (in the style of Tristan Eaton)' + +- name: Tsutomu Nihei + negative_prompt: '' + prompt: '{prompt} (in the style of Tsutomu Nihei)' + +- name: Tyler Edlin + negative_prompt: '' + prompt: '{prompt} (in the style of Tyler Edlin)' + +- name: Tyler Shields + negative_prompt: '' + prompt: '{prompt} (in the style of Tyler Shields)' + +- name: Tyler West + negative_prompt: '' + prompt: '{prompt} (in the style of Tyler West)' + +- name: Ub Iwerks + negative_prompt: '' + prompt: '{prompt} (in the style of Ub Iwerks)' + +- name: Uemura Shoen + negative_prompt: '' + prompt: '{prompt} (in the style of Uemura Shoen)' + +- name: Ul Di Rico + negative_prompt: '' + prompt: '{prompt} (in the style of Ul Di Rico)' + +- name: Umberto Boccioni + negative_prompt: '' + prompt: '{prompt} (in the style of Umberto Boccioni)' + +- name: Utagawa Hiroshige + negative_prompt: '' + prompt: '{prompt} (in the style of Utagawa Hiroshige)' + +- name: Valerie Hegarty + negative_prompt: '' + prompt: '{prompt} (in the style of Valerie Hegarty)' + +- name: Vhils + negative_prompt: '' + prompt: '{prompt} (in the style of Vhils)' + +- name: Victo Ngai + negative_prompt: '' + prompt: '{prompt} (in the style of Victo Ngai)' + +- name: Victor Adame Minguez + negative_prompt: '' + prompt: '{prompt} (in the style of Victor Adame Minguez)' + +- name: Victor Brauner + negative_prompt: '' + prompt: '{prompt} (in the style of Victor Brauner)' + +- name: Victor Medina + negative_prompt: '' + prompt: '{prompt} (in the style of Victor Medina)' + +- name: Victor Moscoso + negative_prompt: '' + prompt: '{prompt} (in the style of Victor Moscoso)' + +- name: Victor Nizovtsev + negative_prompt: '' + prompt: '{prompt} (in the style of Victor Nizovtsev)' + +- name: Victor Vasarely + negative_prompt: '' + prompt: '{prompt} (in the style of Victor Vasarely)' + +- name: Victoria Crowe + negative_prompt: '' + prompt: '{prompt} (in the style of Victoria Crowe)' + +- name: Viktor Vasnetsov + negative_prompt: '' + prompt: '{prompt} (in the style of Viktor Vasnetsov)' + +- name: Viktoria Gavrilenko + negative_prompt: '' + prompt: '{prompt} (in the style of Viktoria Gavrilenko)' + +- name: Vincent Di Fate + negative_prompt: '' + prompt: '{prompt} (in the style of Vincent Di Fate)' + +- name: Vincent Tanguay + negative_prompt: '' + prompt: '{prompt} (in the style of Vincent Tanguay)' + +- name: Vincent Van Gogh + negative_prompt: '' + prompt: '{prompt} (in the style of Vincent Van Gogh)' + +- name: Virgil Finlay + negative_prompt: '' + prompt: '{prompt} (in the style of Virgil Finlay)' + +- name: Vito Acconci + negative_prompt: '' + prompt: '{prompt} (in the style of Vito Acconci)' + +- name: Vittorio Matteo Corcos + negative_prompt: '' + prompt: '{prompt} (in the style of Vittorio Matteo Corcos)' + +- name: Vivian Maier + negative_prompt: '' + prompt: '{prompt} (in the style of Vivian Maier)' + +- name: Viviane Sassen + negative_prompt: '' + prompt: '{prompt} (in the style of Viviane Sassen)' + +- name: Vivienne Westwood + negative_prompt: '' + prompt: '{prompt} (in the style of Vivienne Westwood)' + +- name: Vladimir Kush + negative_prompt: '' + prompt: '{prompt} (in the style of Vladimir Kush)' + +- name: W. Heath Robinson + negative_prompt: '' + prompt: '{prompt} (in the style of W. Heath Robinson)' + +- name: W.W. Denslow + negative_prompt: '' + prompt: '{prompt} (in the style of W.W. Denslow)' + +- name: Wadim Kashin + negative_prompt: '' + prompt: '{prompt} (in the style of Wadim Kashin)' + +- name: Walt Disney + negative_prompt: '' + prompt: '{prompt} (in the style of Walt Disney)' + +- name: Walt Kelly + negative_prompt: '' + prompt: '{prompt} (in the style of Walt Kelly)' + +- name: Walter Crane + negative_prompt: '' + prompt: '{prompt} (in the style of Walter Crane)' + +- name: Walter Kim + negative_prompt: '' + prompt: '{prompt} (in the style of Walter Kim)' + +- name: Walter Langley + negative_prompt: '' + prompt: '{prompt} (in the style of Walter Langley)' + +- name: Walter Percy Day + negative_prompt: '' + prompt: '{prompt} (in the style of Walter Percy Day)' + +- name: Wangechi Mutu + negative_prompt: '' + prompt: '{prompt} (in the style of Wangechi Mutu)' + +- name: Warren Ellis + negative_prompt: '' + prompt: '{prompt} (in the style of Warren Ellis)' + +- name: Warwick Globe + negative_prompt: '' + prompt: '{prompt} (in the style of Warwick Globe)' + +- name: Wassily Kandinsky + negative_prompt: '' + prompt: '{prompt} (in the style of Wassily Kandinsky)' + +- name: Wayne Barlowe + negative_prompt: '' + prompt: '{prompt} (in the style of Wayne Barlowe)' + +- name: Wendy Froud + negative_prompt: '' + prompt: '{prompt} (in the style of Wendy Froud)' + +- name: Wes Anderson + negative_prompt: '' + prompt: '{prompt} (in the style of Wes Anderson)' + +- name: Wilfredo Lam + negative_prompt: '' + prompt: '{prompt} (in the style of Wilfredo Lam)' + +- name: Will Barnet + negative_prompt: '' + prompt: '{prompt} (in the style of Will Barnet)' + +- name: Will Eisner + negative_prompt: '' + prompt: '{prompt} (in the style of Will Eisner)' + +- name: Willem de Kooning + negative_prompt: '' + prompt: '{prompt} (in the style of Willem de Kooning)' + +- name: Willem van Haecht + negative_prompt: '' + prompt: '{prompt} (in the style of Willem van Haecht)' + +- name: William Blake + negative_prompt: '' + prompt: '{prompt} (in the style of William Blake)' + +- name: William Eggleston + negative_prompt: '' + prompt: '{prompt} (in the style of William Eggleston)' + +- name: William Etty + negative_prompt: '' + prompt: '{prompt} (in the style of William Etty)' + +- name: William Gropper + negative_prompt: '' + prompt: '{prompt} (in the style of William Gropper)' + +- name: William Henry Hunt + negative_prompt: '' + prompt: '{prompt} (in the style of William Henry Hunt)' + +- name: William Hogarth + negative_prompt: '' + prompt: '{prompt} (in the style of William Hogarth)' + +- name: William Holman Hunt + negative_prompt: '' + prompt: '{prompt} (in the style of William Holman Hunt)' + +- name: William Kentridge + negative_prompt: '' + prompt: '{prompt} (in the style of William Kentridge)' + +- name: William Morris + negative_prompt: '' + prompt: '{prompt} (in the style of William Morris)' + +- name: William S. Burroughs + negative_prompt: '' + prompt: '{prompt} (in the style of William S. Burroughs)' + +- name: William Steig + negative_prompt: '' + prompt: '{prompt} (in the style of William Steig)' + +- name: William Stout + negative_prompt: '' + prompt: '{prompt} (in the style of William Stout)' + +- name: William Wegman + negative_prompt: '' + prompt: '{prompt} (in the style of William Wegman)' + +- name: William Zorach + negative_prompt: '' + prompt: '{prompt} (in the style of William Zorach)' + +- name: William-Adolphe Bouguereau + negative_prompt: '' + prompt: '{prompt} (in the style of William-Adolphe Bouguereau)' + +- name: Wim Crouwel + negative_prompt: '' + prompt: '{prompt} (in the style of Wim Crouwel)' + +- name: Wim Wenders + negative_prompt: '' + prompt: '{prompt} (in the style of Wim Wenders)' + +- name: Winslow Homer + negative_prompt: '' + prompt: '{prompt} (in the style of Winslow Homer)' + +- name: Winsor McCay + negative_prompt: '' + prompt: '{prompt} (in the style of Winsor McCay)' + +- name: Wojciech Ostrycharz + negative_prompt: '' + prompt: '{prompt} (in the style of Wojciech Ostrycharz)' + +- name: Wolf Kahn + negative_prompt: '' + prompt: '{prompt} (in the style of Wolf Kahn)' + +- name: Wolfgang Tillmans + negative_prompt: '' + prompt: '{prompt} (in the style of Wolfgang Tillmans)' + +- name: Worthington Whittredge + negative_prompt: '' + prompt: '{prompt} (in the style of Worthington Whittredge)' + +- name: Yaacov Agam + negative_prompt: '' + prompt: '{prompt} (in the style of Yaacov Agam)' + +- name: Yang Jialun + negative_prompt: '' + prompt: '{prompt} (in the style of Yang Jialun)' + +- name: Yanjun Cheng + negative_prompt: '' + prompt: '{prompt} (in the style of Yanjun Cheng)' + +- name: Yasuo Kuniyoshi + negative_prompt: '' + prompt: '{prompt} (in the style of Yasuo Kuniyoshi)' + +- name: Yasushi Nirasawa + negative_prompt: '' + prompt: '{prompt} (in the style of Yasushi Nirasawa)' + +- name: Yasutomo Oka + negative_prompt: '' + prompt: '{prompt} (in the style of Yasutomo Oka)' + +- name: Yayi Morales + negative_prompt: '' + prompt: '{prompt} (in the style of Yayi Morales)' + +- name: Yayoi Kusama + negative_prompt: '' + prompt: '{prompt} (in the style of Yayoi Kusama)' + +- name: Yiannis Moralis + negative_prompt: '' + prompt: '{prompt} (in the style of Yiannis Moralis)' + +- name: Yinka Shonibare + negative_prompt: '' + prompt: '{prompt} (in the style of Yinka Shonibare)' + +- name: Yohann Schepacz + negative_prompt: '' + prompt: '{prompt} (in the style of Yohann Schepacz)' + +- name: Yoji Shinkawa + negative_prompt: '' + prompt: '{prompt} (in the style of Yoji Shinkawa)' + +- name: Yoshitaka Amano + negative_prompt: '' + prompt: '{prompt} (in the style of Yoshitaka Amano)' + +- name: Yoshiyuki Tomino + negative_prompt: '' + prompt: '{prompt} (in the style of Yoshiyuki Tomino)' + +- name: Yue Minjun + negative_prompt: '' + prompt: '{prompt} (in the style of Yue Minjun)' + +- name: Yuri Ivanovich Pimenov + negative_prompt: '' + prompt: '{prompt} (in the style of Yuri Ivanovich Pimenov)' + +- name: Yuumei + negative_prompt: '' + prompt: '{prompt} (in the style of Yuumei)' + +- name: Yves Klein + negative_prompt: '' + prompt: '{prompt} (in the style of Yves Klein)' + +- name: Yves Tanguy + negative_prompt: '' + prompt: '{prompt} (in the style of Yves Tanguy)' + +- name: Zack Snyder + negative_prompt: '' + prompt: '{prompt} (in the style of Zack Snyder)' + +- name: Zaha Hadid + negative_prompt: '' + prompt: '{prompt} (in the style of Zaha Hadid)' + +- name: Zanele Muholi + negative_prompt: '' + prompt: '{prompt} (in the style of Zanele Muholi)' + +- name: Zdzisław Beksiński + negative_prompt: '' + prompt: '{prompt} (in the style of Zdzisław Beksiński)' + +- name: Zeen Chin + negative_prompt: '' + prompt: '{prompt} (in the style of Zeen Chin)' + +- name: Zhang Kechun + negative_prompt: '' + prompt: '{prompt} (in the style of Zhang Kechun)' + +- name: Zhelong Xu + negative_prompt: '' + prompt: '{prompt} (in the style of Zhelong Xu)' + +- name: Zhichao Cai + negative_prompt: '' + prompt: '{prompt} (in the style of Zhichao Cai)' + +- name: Zinaida Serebriakova + negative_prompt: '' + prompt: '{prompt} (in the style of Zinaida Serebriakova)' + +- name: teamLab + negative_prompt: '' + prompt: '{prompt} (in the style of teamLab)' + +- name: theCHAMBA + negative_prompt: '' + prompt: '{prompt} (in the style of theCHAMBA)' + +- name: tokyogenso + negative_prompt: '' + prompt: '{prompt} (in the style of tokyogenso)' + +- name: Élisabeth Vigée Le Brun + negative_prompt: '' + prompt: '{prompt} (in the style of Élisabeth Vigée Le Brun)' + +- name: Émile Bernard + negative_prompt: '' + prompt: '{prompt} (in the style of Émile Bernard)' + +- name: Émile Gallé + negative_prompt: '' + prompt: '{prompt} (in the style of Émile Gallé)' + +- name: Étienne-Louis Boullée + negative_prompt: '' + prompt: '{prompt} (in the style of Étienne-Louis Boullée)' + +- name: “Friedensreich Regentag + negative_prompt: '' + prompt: '{prompt} (in the style of “Friedensreich Regentag)' + diff --git a/Styles/basic.json b/Styles/basic.json new file mode 100644 index 0000000..30c3e6c --- /dev/null +++ b/Styles/basic.json @@ -0,0 +1,332 @@ +[ + { + "name": "3d-model", + "prompt": "professional 3d model of {prompt}. octane render, highly detailed, volumetric, dramatic lighting", + "negative_prompt": "ugly, deformed, noisy, low poly, blurry, painting" + }, + { + "name": "abstract", + "prompt": "abstract style of {prompt}. non-representational, colors and shapes, expression of feelings, imaginative, highly detailed", + "negative_prompt": "realistic, photographic, figurative, concrete" + }, + { + "name": "analog", + "prompt": "analog film photo of {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": "anime", + "prompt": "anime artwork of {prompt}. anime style, key visual, vibrant, studio anime, highly detailed", + "negative_prompt": "photo, deformed, black and white, realism, disfigured, low contrast" + }, + { + "name": "arcade", + "prompt": "retro arcade style of {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": "architectural", + "prompt": "architectural style of {prompt}. clean lines, geometric shapes, minimalist, modern, architectural drawing, highly detailed", + "negative_prompt": "curved lines, ornate, baroque, abstract, grunge" + }, + { + "name": "art-deco", + "prompt": "art deco style of {prompt}. geometric shapes, bold colors, luxurious, elegant, decorative, symmetrical, ornate, detailed", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, modernist, minimalist" + }, + { + "name": "automotive", + "prompt": "automotive advertisement style of {prompt}. sleek, dynamic, professional, commercial, vehicle-focused, high-resolution, highly detailed", + "negative_prompt": "noisy, blurry, unattractive, sloppy, unprofessional" + }, + { + "name": "biomechanics", + "prompt": "biomechanical cyberpunk of {prompt}. cybernetics, human-machine fusion, dystopian, organic meets artificial, dark, intricate, highly detailed", + "negative_prompt": "natural, colorful, deformed, sketch, low contrast, watercolor" + }, + { + "name": "child's-drawing", + "prompt": "hand drawing of {prompt}. cute, crayon, pencil, crayola, scribble, sketch, paper, vibrant, colorful, loosely colored, unsophisticated", + "negative_prompt": "cgi, 3D, photoreal, out of focus, glitch, photorealistic, realistic" + }, + { + "name": "cinematic", + "prompt": "cinematic film still of {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": "clay", + "prompt": "play-doh style of {prompt}. sculpture, clay art, centered composition, Claymation, plasticine", + "negative_prompt": "sloppy, messy, grainy, highly detailed, ultra textured, photo" + }, + { + "name": "comic-book", + "prompt": "comic of {prompt}. graphic illustration, comic art, graphic novel art, vibrant, highly detailed", + "negative_prompt": "photograph, deformed, glitch, noisy, realistic, stock photo" + }, + { + "name": "constructivist", + "prompt": "constructivist style of {prompt}. geometric shapes, bold colors, dynamic composition, propaganda art style", + "negative_prompt": "realistic, photorealistic, low contrast, plain, simple, abstract expressionism" + }, + { + "name": "corporate", + "prompt": "corporate branding style of {prompt}. professional, clean, modern, sleek, minimalist, business-oriented, highly detailed", + "negative_prompt": "noisy, blurry, grungy, sloppy, cluttered, disorganized" + }, + { + "name": "cubist", + "prompt": "cubist artwork of {prompt}. cubism, geometric shapes, abstract, innovative, revolutionary, picasso", + "negative_prompt": "anime, photorealistic, 35mm film, deformed, glitch, low contrast, noisy" + }, + { + "name": "cute", + "prompt": "kawaii style of {prompt}. cute, adorable, brightly colored, cheerful, anime influence, highly detailed", + "negative_prompt": "dark, scary, realistic, monochrome, abstract" + }, + { + "name": "cyber-punk", + "prompt": "cyberpunk cityscape of {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": "cybernetic", + "prompt": "biomechanical style of {prompt}. blend of organic and mechanical elements, futuristic, cybernetic, detailed, intricate", + "negative_prompt": "natural, rustic, primitive, organic, simplistic" + }, + { + "name": "digital-painting", + "prompt": "concept art of {prompt}. digital artwork, illustrative, painterly, matte painting, highly detailed", + "negative_prompt": "photo, photorealistic, realism, ugly" + }, + { + "name": "dreamscape", + "prompt": "dreamscape of {prompt}. surreal, ethereal, dreamy, mysterious, fantasy, highly detailed", + "negative_prompt": "realistic, concrete, ordinary, mundane" + }, + { + "name": "dystopian", + "prompt": "dystopian style of {prompt}. bleak, post-apocalyptic, somber, dramatic, highly detailed", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, cheerful, optimistic, vibrant, colorful" + }, + { + "name": "expressionist", + "prompt": "expressionist painting of {prompt}. energetic brushwork, bold colors, abstract forms, expressive, emotional", + "negative_prompt": "realistic, photorealistic, low contrast, plain, simple, monochrome" + }, + { + "name": "fantasy", + "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": "fashion", + "prompt": "fashion editorial style of {prompt}. high fashion, trendy, stylish, editorial, magazine style, professional, highly detailed", + "negative_prompt": "outdated, blurry, noisy, unattractive, sloppy" + }, + { + "name": "film-noir", + "prompt": "film noir style of {prompt}. monochrome, high contrast, dramatic shadows, 1940s style, mysterious, cinematic", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, vibrant, colorful" + }, + { + "name": "food", + "prompt": "food photography style of {prompt}. appetizing, professional, culinary, high-resolution, commercial, highly detailed", + "negative_prompt": "unappetizing, sloppy, unprofessional, noisy, blurry" + }, + { + "name": "food-(gourmet)", + "prompt": "gourmet food photo of {prompt}. soft natural lighting, macro details, vibrant colors, fresh ingredients, glistening textures, bokeh background, styled plating, wooden tabletop, garnished, tantalizing, editorial quality", + "negative_prompt": "cartoon, anime, sketch, grayscale, dull, overexposed, cluttered, messy plate, deformed" + }, + { + "name": "futuristic", + "prompt": "futuristic style of {prompt}. sleek, modern, ultramodern, high tech, detailed", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, vintage, antique" + }, + { + "name": "glamour", + "prompt": "glamorous photo of {prompt}. high fashion, luxurious, extravagant, stylish, sensual, opulent, elegance, stunning beauty, professional, high contrast, detailed", + "negative_prompt": "ugly, deformed, noisy, blurry, distorted, grainy, sketch, low contrast, dull, plain, modest" + }, + { + "name": "gothic", + "prompt": "gothic style of {prompt}. dark, mysterious, haunting, dramatic, ornate, detailed", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, cheerful, optimistic" + }, + { + "name": "horror", + "prompt": "horror-themed of {prompt}. eerie, unsettling, dark, spooky, suspenseful, grim, highly detailed", + "negative_prompt": "cheerful, bright, vibrant, light-hearted, cute" + }, + { + "name": "hyperreal", + "prompt": "hyperrealistic art of {prompt}. extremely high-resolution details, photographic, realism pushed to extreme, fine texture, incredibly lifelike", + "negative_prompt": "simplified, abstract, unrealistic, impressionistic, low resolution" + }, + { + "name": "impressionist", + "prompt": "impressionist painting of {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": "isometric", + "prompt": "isometric style of {prompt}. vibrant, beautiful, crisp, detailed, ultra detailed, intricate", + "negative_prompt": "deformed, mutated, ugly, disfigured, blur, blurry, noise, noisy, realistic, photographic" + }, + { + "name": "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": "line-art", + "prompt": "line art drawing of {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": "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": "lovecraftian", + "prompt": "lovecraftian horror of {prompt}. eldritch, cosmic horror, unknown, mysterious, surreal, highly detailed", + "negative_prompt": "light-hearted, mundane, familiar, simplistic, realistic" + }, + { + "name": "low-poly", + "prompt": "low-poly style of {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": "luxury", + "prompt": "luxury product style of {prompt}. elegant, sophisticated, high-end, luxurious, professional, highly detailed", + "negative_prompt": "cheap, noisy, blurry, unattractive, amateurish" + }, + { + "name": "manga", + "prompt": "manga style of {prompt}. vibrant, high-energy, detailed, iconic, Japanese comic style", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, Western comic style" + }, + { + "name": "minimalist", + "prompt": "minimalist style of {prompt}. simple, clean, uncluttered, modern, elegant", + "negative_prompt": "ornate, complicated, highly detailed, cluttered, disordered, messy, noisy" + }, + { + "name": "monochrome", + "prompt": "monochrome of {prompt}. black and white, contrast, tone, texture, detailed", + "negative_prompt": "colorful, vibrant, noisy, blurry, deformed" + }, + { + "name": "neon-punk", + "prompt": "neonpunk style of {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\"" + }, + { + "name": "origami", + "prompt": "origami style of {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": "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", + "prompt": "papercraft style of {prompt}. mixed media, layered, textural, detailed, paper, clean cuts, sharp edges", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic" + }, + { + "name": "papercut", + "prompt": "flat papercut style of {prompt}. silhouette, clean cuts, paper, sharp edges, minimalist, color block", + "negative_prompt": "3D, high detail, noise, grainy, blurry, painting, drawing, photo, disfigured" + }, + { + "name": "papercut-(stacked)", + "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": "pixel-art", + "prompt": "pixel-art of {prompt}. low-res, blocky, pixel art style, 8-bit graphics", + "negative_prompt": "sloppy, messy, blurry, noisy, highly detailed, ultra textured, photo, realistic" + }, + { + "name": "pointillism", + "prompt": "pointillism style of {prompt}. composed entirely of small, distinct dots of color, vibrant, highly detailed", + "negative_prompt": "line drawing, smooth shading, large color fields, simplistic" + }, + { + "name": "pop", + "prompt": "pop art style of {prompt}. bright colors, bold outlines, popular culture themes, ironic or kitsch", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, minimalist" + }, + { + "name": "product", + "prompt": "advertising poster style of {prompt}. Professional, modern, product-focused, commercial, eye-catching, highly detailed", + "negative_prompt": "noisy, blurry, amateurish, sloppy, unattractive" + }, + { + "name": "professional", + "prompt": "cinematic photo of {prompt}. 35mm photograph, film, bokeh, professional, 4k, highly detailed", + "negative_prompt": "drawing, painting, crayon, sketch, graphite, impressionist, noisy, blurry, soft, deformed, ugly" + }, + { + "name": "psychedelic", + "prompt": "psychedelic style of {prompt}. vibrant colors, swirling patterns, abstract forms, surreal, trippy", + "negative_prompt": "monochrome, black and white, low contrast, realistic, photorealistic, plain, simple" + }, + { + "name": "real-estate", + "prompt": "real estate photography style of {prompt}. professional, inviting, well-lit, high-resolution, property-focused, commercial, highly detailed", + "negative_prompt": "dark, blurry, unappealing, noisy, unprofessional" + }, + { + "name": "renaissance", + "prompt": "renaissance style of {prompt}. realistic, perspective, light and shadow, religious or mythological themes, highly detailed", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, modernist, minimalist, abstract" + }, + { + "name": "retro-futurism", + "prompt": "retro-futuristic of {prompt}. vintage sci-fi, 50s and 60s style, atomic age, vibrant, highly detailed", + "negative_prompt": "contemporary, realistic, rustic, primitive" + }, + { + "name": "robotics", + "prompt": "cybernetic robot of {prompt}. android, AI, machine, metal, wires, tech, futuristic, highly detailed", + "negative_prompt": "organic, natural, human, sketch, watercolor, low contrast" + }, + { + "name": "sci-fi", + "prompt": "sci-fi style of {prompt}. futuristic, technological, alien worlds, space themes, advanced civilizations", + "negative_prompt": "ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, historical, medieval" + }, + { + "name": "steampunk", + "prompt": "steampunk style of {prompt}. antique, mechanical, brass and copper tones, gears, intricate, detailed", + "negative_prompt": "deformed, glitch, noisy, low contrast, anime, photorealistic" + }, + { + "name": "surreal", + "prompt": "surrealist art of {prompt}. dreamlike, mysterious, provocative, symbolic, intricate, detailed", + "negative_prompt": "anime, photorealistic, realistic, deformed, glitch, noisy, low contrast" + }, + { + "name": "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" + }, + { + "name": "vaporwave", + "prompt": "vaporwave style of {prompt}. retro aesthetic, cyberpunk, vibrant, neon colors, vintage 80s and 90s style, highly detailed", + "negative_prompt": "monochrome, muted colors, realism, rustic, minimalist, dark" + }, + { + "name": "watercolor", + "prompt": "watercolor painting of {prompt}. vibrant, beautiful, painterly, detailed, textural, artistic", + "negative_prompt": "anime, photorealistic, 35mm film, deformed, glitch, low contrast, noisy" + } +] \ No newline at end of file diff --git a/Styles/camera.yaml b/Styles/camera.yaml new file mode 100644 index 0000000..7a8c919 --- /dev/null +++ b/Styles/camera.yaml @@ -0,0 +1,539 @@ +# It is recommended not to modify this file, +# as it serves as the initialization file for the node. +# +# Instead, create a copy, place it in the same folder, +# and the iTools Prompt Styler node will read all your style files from there. +# +# Ensure that the formatting is kept the same as in this file. +# Indents in YAML are critical. Ensure proper indentation, as incorrect spacing can cause errors. +# +# Best approach is to copy a block of name, negative_prompt and a prompt and then replace their values +# Note that your text_positive will be added in this part {prompt} +# Adding - name: random will allow the node to pick random name from this file + +- name: none + negative_prompt: '' + prompt: '' + +- name: random + negative_prompt: '' + prompt: '' + +- name: Canon EOS 90D + negative_prompt: slow shooting, inaccurate capture, static subjects + prompt: Photograph of {prompt}, captured on a (Canon EOS 90D) + +- name: Canon EOS M50 + negative_prompt: imbalanced quality + prompt: Photograph of {prompt}, captured on a (Canon EOS M50) + +- name: Canon EOS M50 Mark II + negative_prompt: complex, non-vlogging, specialized photography + prompt: Photograph of {prompt}, captured on a (Canon EOS M50 Mark II) + +- name: Canon EOS M6 Mark II + negative_prompt: professionals, poor image quality, slow capture, specialized + prompt: Photograph of {prompt}, captured on a (Canon EOS M6 Mark II) + +- name: Canon EOS R5 + negative_prompt: inferior capture, lack of stabilization, amateur use + prompt: Photograph of {prompt}, captured on a (Canon EOS R5) + +- name: Canon EOS R5 (Unique Variant) + negative_prompt: low-resolution, basic video, amateurs, single field + prompt: Photograph of {prompt}, captured on a (Canon EOS R5) + +- name: Canon EOS RP + negative_prompt: cropped frame, amateur quality, professionals + prompt: Photograph of {prompt}, captured on a (Canon EOS RP) + +- name: Canon EOS Rebel T8i + negative_prompt: professional-level + prompt: Photograph of {prompt}, captured on a (Canon EOS Rebel T8i), characterized + by (vibrant colors, sharp details) + +- name: Canon EOS Rebel T8i (Unique Variant) + negative_prompt: professional-level + prompt: Photograph of {prompt}, captured on a (Canon EOS Rebel T8i) + +- name: Canon EOS-1D X Mark III + negative_prompt: slow speed, inaccuracy + prompt: Photograph of {prompt}, captured on a (Canon EOS-1D X Mark III) + +- name: Canon EOS-1D X Mark III (Unique Dynamic Capture Variant) + negative_prompt: amateur, portrait photographers, slow shooting, inaccurate capture, + static scenes + prompt: Photograph of {prompt}, captured on a (Canon EOS-1D X Mark III) + +- name: Canon EOS-1D X Mark III (Unique Dynamic Scenes Variant) + negative_prompt: amateur, slow shooting, unreliable capture, still life, passive + scenes + prompt: Photograph of {prompt}, captured on a (Canon EOS-1D X Mark III) + +- name: Canon PowerShot G7 X Mark III + negative_prompt: complex, poor vlogging, HD video + prompt: Photograph of {prompt}, captured on a (Canon PowerShot G7 X Mark III) + +- name: Canon PowerShot G7 X Mark III (Unique Specific Variant) + negative_prompt: photographers, video limitations, professional recording + prompt: Photograph of {prompt}, captured on a (Canon PowerShot G7 X Mark III) + +- name: Canon PowerShot G7 X Mark III (Unique Variant) + negative_prompt: still photography, HD video, traditional photographers, stationary + prompt: Photograph of {prompt}, captured on a (Canon PowerShot G7 X Mark III ) + +- name: Fujifilm FinePix XP140 + negative_prompt: indoor use, shock-prone + prompt: Photograph of {prompt}, captured on a (Fujifilm FinePix XP140) + +- name: Fujifilm GFX 100 + negative_prompt: low resolution, color inconsistency, amateurish quality + prompt: Photograph of {prompt}, captured on a (Fujifilm GFX 100) + +- name: Fujifilm GFX 100 (Unique Specific Variant) + negative_prompt: low resolution, lack of stabilization, blurred images + prompt: Photograph of {prompt}, captured on a (Fujifilm GFX 100) + +- name: Fujifilm GFX 100 (Unique Variant) + negative_prompt: low resolution, lack of detail, limited range, amateur + prompt: Photograph of {prompt}, captured on a (Fujifilm GFX 100 ) + +- name: Fujifilm GFX 50S + negative_prompt: low resolution, poor tones, casual snapfocus + prompt: Photograph of {prompt}, captured on a (Fujifilm GFX 50S) + +- name: Fujifilm Instax Mini 11 + negative_prompt: serious, complex, professional events, solitude, digital storage + prompt: Photograph of {prompt}, captured on a (Fujifilm Instax Mini 11) + +- name: Fujifilm X-E4 + negative_prompt: dull color, studio photography + prompt: Photograph of {prompt}, captured on a (Fujifilm X-E4) + +- name: Fujifilm X-E4 (Unique Variant) + negative_prompt: studio, portrait photographers + prompt: Photograph of {prompt}, captured on a (Fujifilm X-E4) + +- name: Fujifilm X-Pro3 + negative_prompt: viewfinder, digital look, modern images + prompt: Photograph of {prompt}, captured on a (Fujifilm X-Pro3) + +- name: Fujifilm X-Pro3 (Unique Variant) + negative_prompt: viewfinder, digital look, modern experience, digital aesthetics + prompt: Photograph of {prompt}, captured on a (Fujifilm X-Pro3) + +- name: Fujifilm X-T200 + negative_prompt: complex, dull color, professionals, low-quality images + prompt: Photograph of {prompt}, captured on a (Fujifilm X-T200) + +- name: Fujifilm X-T4 + negative_prompt: slowness, lack of stabilization, amateur videography + prompt: Photograph of {prompt}, captured on a (Fujifilm X-T4) + +- name: Fujifilm X-T4 (Unique Strong Stabilization) + negative_prompt: weak stabilization, specialized performance, photography only, + videography only + prompt: Photograph of {prompt}, captured on a (Fujifilm X-T4) + +- name: Fujifilm X100V + negative_prompt: digital look, contemporary images + prompt: Photograph of {prompt}, captured on a (Fujifilm X100V) + +- name: Fujifilm X100V (Unique Variant) + negative_prompt: modern looks, average image quality, studio photography + prompt: Photograph of {prompt}, captured on a (Fujifilm X100V) + +- name: GoPro HERO9 Black + negative_prompt: shaky footage, static scenes + prompt: Photograph of {prompt}, captured on a (GoPro HERO9 Black) + +- name: Hasselblad 907X 50C + negative_prompt: modern aesthetics, poor detail + prompt: Photograph of {prompt}, captured on a (Hasselblad 907X 50C) + +- name: Hasselblad 907X 50C (Unique Large Format) + negative_prompt: poor image quality + prompt: Photograph of {prompt}, captured on a (Hasselblad 907X 50C) + +- name: Hasselblad H5D-50c + negative_prompt: lack of detail, color inaccuracy + prompt: Photograph of {prompt}, captured on a (Hasselblad H5D-50c) + +- name: Hasselblad H6D-100c + negative_prompt: low resolution, amateur work + prompt: Photograph of {prompt}, captured on a (Hasselblad H6D-100c) + +- name: Hasselblad X1D II 50C + negative_prompt: limited detail, narrow dynamic range, dull colors + prompt: Photograph of {prompt}, captured on a (Hasselblad X1D II 50C) + +- name: Hasselblad X1D II 50C (Unique High Resolution) + negative_prompt: low resolution, color inaccuracy, amateur portraits + prompt: Photograph of {prompt}, captured on a (Hasselblad X1D II 50C) + +- name: Hasselblad XCD 4/45P + negative_prompt: average , harsh bokeh + prompt: Photograph of {prompt}, captured on a (Hasselblad XCD 4/45P) + +- name: Leica CL + negative_prompt: average optics, soft images + prompt: Photograph of {prompt}, captured on a (Leica CL) + +- name: Leica M-D + negative_prompt: DSLR, enhanced photography + prompt: Photograph of {prompt}, captured on a (Leica M-D) + +- name: Leica M10 Monochrom + negative_prompt: color photography, flat tones, contemporary look + prompt: Photograph of {prompt}, captured on a (Leica M10 Monochrom) + +- name: Leica M10 Monochrom (Unique Variant) + negative_prompt: color photography, conventional, non-artists, color enthusiasts + prompt: Photograph of {prompt}, captured on a (Leica M10 Monochrom) + +- name: Leica M10-R + negative_prompt: mediocre quality, lack of detail, snapshot photography + prompt: Photograph of {prompt}, captured on a (Leica M10-R) + +- name: Leica M11 + negative_prompt: '' + prompt: Photograph of {prompt}, captured on a (Leica M11) + +- name: Leica Q-P + negative_prompt: attention-grabbing, studio photographers + prompt: Photograph of {prompt}, captured on a (Leica Q-P) + +- name: Leica Q2 + negative_prompt: cropped sensor, lack of , low + prompt: Photograph of {prompt}, captured on a (Leica Q2) + +- name: Leica Q2 Monochrom + negative_prompt: color photography, complex approach, low-resolution, color enthusiasts + prompt: Photograph of {prompt}, captured on a (Leica Q2 Monochrom) + +- name: Leica S3 + negative_prompt: mediocre image quality, basic build, low-end commercial + prompt: Photograph of {prompt}, captured on a (Leica S3) + +- name: Leica SL2 + negative_prompt: low-quality images, cheap feel + prompt: Photograph of {prompt}, captured on a (Leica SL2) + +- name: Leica SL2 (Unique Variant) + negative_prompt: cropped sensor, mediocre quality, snap, budget advertising + prompt: Photograph of {prompt}, captured on a (Leica SL2) + +- name: Leica SL2-S + negative_prompt: cropped-frame, basic build, specialization, photography only, videography + only + prompt: Photograph of {prompt}, captured on a (Leica SL2-S) + +- name: Nikon Coolpix P950 + negative_prompt: limited zoom, lack of stabilization, close-up photography + prompt: Photograph of {prompt}, captured on a (Nikon Coolpix P950) + +- name: Nikon Coolpix P950 (Unique Variant) + negative_prompt: limited zoom, no stabilization, close-up subjects + prompt: Photograph of {prompt}, captured on a (Nikon Coolpix P950) + +- name: Nikon Coolpix W300 + negative_prompt: studio, , HD video + prompt: Photograph of {prompt}, captured on a (Nikon Coolpix W300) + +- name: Nikon D3500 + negative_prompt: poor image quality + prompt: Photograph of {prompt}, captured on a (Nikon D3500), characterized by (rich + colors, smooth tonal transitions) + +- name: Nikon D6 + negative_prompt: amateur, slowness, inaccuracy, still life photography, static scenes + prompt: Photograph of {prompt}, captured on a (Nikon D6) + +- name: Nikon D780 + negative_prompt: poor low-light, limited video, low-detail images + prompt: Photograph of {prompt}, captured on a (Nikon D780) + +- name: Nikon D850 + negative_prompt: low resolution, slow performance + prompt: Photograph of {prompt}, captured on a (Nikon D850) + +- name: Nikon D850 (Unique High Resolution) + negative_prompt: cropped-frame, low resolution, specialized performance, amateur, + narrow range + prompt: Photograph of {prompt}, captured on a (Nikon D850) + +- name: Nikon Z5 + negative_prompt: cropped-frame, imbalance, poor performance, expensive, beginners, + high-end professionals + prompt: Photograph of {prompt}, captured on a (Nikon Z5) + +- name: Nikon Z50 + negative_prompt: complex, dull images + prompt: Photograph of {prompt}, captured on a (Nikon Z50) + +- name: Nikon Z50 (Unique Variant) + negative_prompt: complex, professionals, stationary photography + prompt: Photograph of {prompt}, captured on a (Nikon Z50) + +- name: Nikon Z6 + negative_prompt: cropped sensor, poor low-light performance, noisy images + prompt: Photograph of {prompt}, captured on a (Nikon Z6) + +- name: Nikon Z6 II + negative_prompt: poor low-light, slow capture, static , day scenes + prompt: Photograph of {prompt}, captured on a (Nikon Z6 II) + +- name: Nikon Z7 II + negative_prompt: low-resolution, slow shooting, lack of detail, static scenes + prompt: Photograph of {prompt}, captured on a (Nikon Z7 II) + +- name: Nikon Z7 II (Unique Variant) + negative_prompt: poor resolution, limited range, portrait photographers, vague details + prompt: Photograph of {prompt}, captured on a (Nikon Z7 II) + +- name: Olympus E-M1X + negative_prompt: weak stabilization, slow capture, still life, passive scenes + prompt: Photograph of {prompt}, captured on a (Olympus E-M1X) + +- name: Olympus OM-D E-M1 Mark II + negative_prompt: slow capture, action, missed timing + prompt: Photograph of {prompt}, captured on a (Olympus OM-D E-M1 Mark II) + +- name: Olympus OM-D E-M10 Mark IV + negative_prompt: heavy, fixed location, shaky images + prompt: Photograph of {prompt}, captured on a (Olympus OM-D E-M10 Mark IV) + +- name: Olympus OM-D E-M10 Mark IV (Unique Variant) + negative_prompt: complex, professional-level + prompt: Photograph of {prompt}, captured on a (Olympus OM-D E-M10 Mark IV) + +- name: Olympus OM-D E-M1X + negative_prompt: amateur, still life, basic stabilization, non-weather-sealed, controlled + conditions + prompt: Photograph of {prompt}, captured on a (Olympus OM-D E-M1X) + +- name: Olympus OM-D E-M5 Mark III + negative_prompt: weak stabilization, studio photography + prompt: Photograph of {prompt}, captured on a (Olympus OM-D E-M5 Mark III) + +- name: Olympus OM-D E-M5 Mark III (Unique Variant) + negative_prompt: heavy, non-weather-sealed, indoor photography, controlled weather + prompt: Photograph of {prompt}, captured on a (Olympus OM-D E-M5 Mark III) + +- name: Olympus PEN E-PL10 + negative_prompt: technical photographers, images + prompt: Photograph of {prompt}, captured on a (Olympus PEN E-PL10) + +- name: Olympus PEN-F + negative_prompt: poor color reproduction, dull photos + prompt: Photograph of {prompt}, captured on a (Olympus PEN-F) + +- name: Olympus PEN-F (Unique Specific Variant) + negative_prompt: fixed , limited creativity, studio photography + prompt: Photograph of {prompt}, captured on a (Olympus PEN-F) + +- name: Olympus PEN-F (Unique Variant) + negative_prompt: modern-styled, controls, non-artists, lack of style, limited functionality + prompt: Photograph of {prompt}, captured on a (Olympus PEN-F ) + +- name: Olympus Tough TG-6 + negative_prompt: not waterproof, indoor photography + prompt: Photograph of {prompt}, captured on a (Olympus Tough TG-6) + +- name: Olympus Tough TG-6 (Unique Variant) + negative_prompt: studio, , shock-prone + prompt: Photograph of {prompt}, captured on a (Olympus Tough TG-6) + +- name: Panasonic Lumix DC-G100 + negative_prompt: photographers, external microphone required, poor audio + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DC-G100) + +- name: Panasonic Lumix DC-G9 + negative_prompt: videographers, low-resolution, slow burst, still life, static scenes + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DC-G9) + +- name: Panasonic Lumix DC-GH5 + negative_prompt: HD video, basic features, photographers, non-cinematic content + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DC-GH5) + +- name: Panasonic Lumix DC-S1R + negative_prompt: low-resolution, build, landscapes, amateur indoor + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DC-S1R) + +- name: Panasonic Lumix DC-S5 + negative_prompt: photo-only, limited video, specialization, single-format creators + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DC-S5) + +- name: Panasonic Lumix DC-S5 (Unique Variant) + negative_prompt: cropped-frame, imbalance, poor image quality, limited video, specialized + creators + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DC-S5) + +- name: Panasonic Lumix DMC-FZ300 + negative_prompt: variable aperture, non-weather-sealed, indoor photography + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DMC-FZ300), characterized + by (fast autofocus, great macro capabilities) + +- name: Panasonic Lumix DMC-FZ300 (Unique Variant) + negative_prompt: fixed , studio photographers, non-adventurous + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DMC-FZ300) + +- name: Panasonic Lumix DMC-LX100 II + negative_prompt: budget, slow , HD video, studio work, specialized photography + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix DMC-LX100 II) + +- name: Panasonic Lumix FZ1000 II + negative_prompt: limited zoom, HD video, single-purpose + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix FZ1000 II) + +- name: Panasonic Lumix G100 + negative_prompt: still photography, HD video, fixed , limited framing + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix G100) + +- name: Panasonic Lumix GH5 II + negative_prompt: still photography, shaky footage, low frame rates, amateur video + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix GH5 II) + +- name: Panasonic Lumix S1 + negative_prompt: still photography, photographers, indoor videography + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix S1) + +- name: Panasonic Lumix S1R + negative_prompt: low resolution, lack of detail, amateur use + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix S1R) + +- name: Panasonic Lumix S5 + negative_prompt: HD video, non-vlogging + prompt: Photograph of {prompt}, captured on a (Panasonic Lumix S5) + +- name: Pentax 645Z + negative_prompt: lack of detail, limited range, amateur portraits + prompt: Photograph of {prompt}, captured on a (Pentax 645Z) + +- name: Pentax 645Z (Unique Large Format) + negative_prompt: average image quality, limited range, amateur, action, on-the-go + prompt: Photograph of {prompt}, captured on a (Pentax 645Z) + +- name: Pentax K-1 Mark II + negative_prompt: soft , limited dynamic range + prompt: Photograph of {prompt}, captured on a (Pentax K-1 Mark II) + +- name: Pentax KP + negative_prompt: build, non-weather-sealed, indoor photography + prompt: Photograph of {prompt}, captured on a (Pentax KP) + +- name: Phase One XF IQ4 150MP + negative_prompt: low-end, low resolution, amateur, lack of detail + prompt: Photograph of {prompt}, captured on a (Phase One XF IQ4 150MP) + +- name: Phase One XT + negative_prompt: studio camera, action, portrait, lack of detail, disconnected system + prompt: Photograph of {prompt}, captured on a (Phase One XT) + +- name: Ricoh GR III + negative_prompt: soft , shaky , handheld images + prompt: Photograph of {prompt}, captured on a (Ricoh GR III) + +- name: Ricoh GR III (Unique Steady Focus) + negative_prompt: soft , studio photography + prompt: Photograph of {prompt}, captured on a (Ricoh GR III) + +- name: Ricoh GR III (Unique Variant) + negative_prompt: studio photography, softness + prompt: Photograph of {prompt}, captured on a (Ricoh GR III) + +- name: Ricoh Theta Z1 + negative_prompt: photography, flat images, limited views + prompt: Photograph of {prompt}, captured on a (Ricoh Theta Z1) + +- name: Ricoh Theta Z1 (Unique Variant) + negative_prompt: camera, flat images, non-VR, limited angles + prompt: Photograph of {prompt}, captured on a (Ricoh Theta Z1) + +- name: Sigma SD Quattro H + negative_prompt: traditional sensor, blended color, soft + prompt: Photograph of {prompt}, captured on a (Sigma SD Quattro H) + +- name: Sigma fp + negative_prompt: limited versatility, soft images, jittery video + prompt: Photograph of {prompt}, captured on a (Sigma fp) + +- name: Sigma fp (Unique Specific Variant) + negative_prompt: rigidity, limited scenarios + prompt: Photograph of {prompt}, captured on a (Sigma fp) + +- name: Sigma fp (Unique Variant) + negative_prompt: cropped-frame, bulkiness, specialization, photo only, video only + prompt: Photograph of {prompt}, captured on a (Sigma fp ) + +- name: Sigma fp L + negative_prompt: low resolution, limited creativity + prompt: Photograph of {prompt}, captured on a (Sigma fp L) + +- name: Sony A6000 + negative_prompt: poor capture, studio photography, staged + prompt: Photograph of {prompt}, captured on a (Sony A6000) + +- name: Sony A6400 + negative_prompt: slowness, capture inaccuracy, still photography + prompt: Photograph of {prompt}, captured on a (Sony A6400) + +- name: Sony A7R IV + negative_prompt: low resolution, limited range, lack of detail, portraits, casual + snapfocus + prompt: Photograph of {prompt}, captured on a (Sony A7R IV) + +- name: Sony A7S III + negative_prompt: poor low-light, HD video, non-filmmakers, daytime photography + prompt: Photograph of {prompt}, captured on a (Sony A7S III) + +- name: Sony A9 II + negative_prompt: poor capture, single shot, action + prompt: Photograph of {prompt}, captured on a (Sony A9 II) + +- name: Sony Alpha 1 + negative_prompt: entry-level, slow speed, amateur quality + prompt: Photograph of {prompt}, captured on a (Sony Alpha 1) + +- name: Sony Alpha 1 (Unique Variant) + negative_prompt: amateur, still life, slow subjects, slow burst, imprecise capture + prompt: Photograph of {prompt}, captured on a (Sony Alpha 1) + +- name: Sony Alpha A7 III + negative_prompt: overpriced, average quality images, unreliable performance, beginners, + casual users + prompt: Photograph of {prompt}, captured on a (Sony Alpha A7 III) + +- name: Sony Alpha A9 II + negative_prompt: amateur, slow shooting, unreliable capture, still life photography + prompt: Photograph of {prompt}, captured on a (Sony Alpha A9 II) + +- name: Sony Cyber-shot DSC-RX10 IV + negative_prompt: short zoom, poor video, portrait photography, close-up subjects + prompt: Photograph of {prompt}, captured on a (Sony Cyber-shot DSC-RX10 IV) + +- name: Sony Cyber-shot DSC-W800 + negative_prompt: professional-level, expensive, expert photographers, primary camera + prompt: Photograph of {prompt}, captured on a (Sony Cyber-shot DSC-W800) + +- name: Sony Cyber-shot RX100 VII + negative_prompt: large-sized, limited zoom, studio work, specialized photography, + compromise quality + prompt: Photograph of {prompt}, captured on a (Sony Cyber-shot RX100 VII) + +- name: Sony RX10 IV + negative_prompt: limited zoom, poor capture, close-up photography + prompt: Photograph of {prompt}, captured on a (Sony RX10 IV) + +- name: Sony RX100 VII + negative_prompt: slow capture, limited zoom, images + prompt: Photograph of {prompt}, captured on a (Sony RX100 VII) + +- name: Sony RX100 VII (Unique Fast Capture) + negative_prompt: budget, slow , basic capture, studio photography, static scenes + prompt: Photograph of {prompt}, captured on a (Sony RX100 VII) + +- name: Sony ZV-1 + negative_prompt: general use, slow , poor capture, videos + prompt: Photograph of {prompt}, captured on a (Sony ZV-1) + diff --git a/Styles/mood.yaml b/Styles/mood.yaml new file mode 100644 index 0000000..bc908d7 --- /dev/null +++ b/Styles/mood.yaml @@ -0,0 +1,163 @@ +# It is recommended not to modify this file, +# as it serves as the initialization file for the node. +# +# Instead, create a copy, place it in the same folder, +# and the iTools Prompt Styler node will read all your style files from there. +# +# Ensure that the formatting is kept the same as in this file. +# Indents in YAML are critical. Ensure proper indentation, as incorrect spacing can cause errors. +# +# Best approach is to copy a block of name, negative_prompt and a prompt and then replace their values +# Note that your text_positive will be added in this part {prompt} +# Adding - name: random will allow the node to pick random name from this file + +- name: none + negative_prompt: '' + prompt: '' + +- name: random + negative_prompt: '' + prompt: '' + +- name: Abyssal Silence + negative_prompt: Unsilenced, ordinary, lacking darkness, uninhabited, mundane. + prompt: A profound and eerie mood of deep silence, where the world is shrouded in + darkness and an overwhelming sense of isolation prevails. + +- name: Aggressive + negative_prompt: calm + prompt: aggressive {prompt} + +- name: Bittersweet Nostalgia + negative_prompt: Unbittersweet, ordinary, lacking nostalgia, unreflective, mundane. + prompt: A bittersweet and nostalgic mood where the world is tinged with memories + of the past, evoking a sense of longing and reflection. + +- name: Calm + negative_prompt: energetic + prompt: calm {prompt} + +- name: Celestial Harmony + negative_prompt: Unharmonious, ordinary, lacking celestial bodies, uncosmic, mundane. + prompt: A harmonious and celestial mood where the world is adorned with celestial + bodies, and a sense of cosmic unity and serenity prevails. + +- name: Chaos and Discord + negative_prompt: Unchaotic, ordinary, lacking discord, unharmonious, mundane. + prompt: A chaotic and discordant mood where the world is filled with cacophonous + sounds and jarring visuals, creating a sense of disarray and confusion. + +- name: Chaotic + negative_prompt: serene + prompt: chaotic {prompt} + +- name: Dark, Brooding Atmosphere + negative_prompt: Unbrooding, ordinary, lacking darkness, ununeasy, mundane. + prompt: A moody and ominous mood where shadows loom large, and a sense of foreboding + and tension hangs in the air, creating a sense of unease and suspense. + +- name: Dreamy Serenity + negative_prompt: Undreamy, ordinary, lacking serenity, unsoothing, mundane. + prompt: A dreamlike and serene mood where the world is bathed in soft, pastel colors, + and a sense of calm and tranquility pervades, creating a soothing and dreamy atmosphere. + +- name: Dystopian Desolation + negative_prompt: Undystopian, ordinary, lacking desolation, unhopeful, mundane. + prompt: A mood of dystopian desolation where the world is a bleak and desolate landscape, + and a sense of despair and isolation hangs in the air. + +- name: Enchanted Whispers + negative_prompt: Unenchanted, ordinary, lacking whispers, unmysterious, mundane. + prompt: A mystical and enchanting mood where the world is hushed, and whispers of + magic and wonder are carried on the wind, igniting a sense of enchantment and + mystery. + +- name: Energetic + negative_prompt: relaxed + prompt: energetic {prompt} + +- name: Enigmatic Wonder + negative_prompt: Unenigmatic, ordinary, lacking wonders, uncurious, mundane. + prompt: A mysterious and awe-inspiring mood where the world is filled with enigmatic + phenomena and hidden wonders waiting to be uncovered, inspiring curiosity and + fascination. + +- name: Eternal Twilight + negative_prompt: Untwilight, ordinary, lacking light, untimeless, mundane. + prompt: A perpetual twilight mood where the world is bathed in soft, muted light, + evoking a sense of timeless serenity and contemplation. + +- name: Ethereal Tranquility + negative_prompt: Untranquil, ordinary, lacking music, unrelaxing, mundane. + prompt: A serene and otherworldly mood where soft, ambient music plays, and the + world seems to slow down, evoking a sense of peace and relaxation. + +- name: Frenetic Energy + negative_prompt: Unfrenetic, ordinary, lacking energy, unexciting, mundane. + prompt: A high-energy and frenetic mood where the world pulsates with vitality and + motion, creating a sense of exhilaration and excitement. + +- name: Gothic Elegance + negative_prompt: Ungothic, ordinary, lacking elegance, unbeguiling, mundane. + prompt: A mood of dark and gothic elegance, where the world is adorned with intricate + architecture, opulent decor, and a sense of brooding beauty. + +- name: Happy + negative_prompt: sad + prompt: happy {prompt} + +- name: Hushed Reverence + negative_prompt: Unreverent, ordinary, lacking silence, unawe-inspiring, mundane. + prompt: A reverent and tranquil mood where silence reigns, and the world is filled + with a sense of awe and sacredness, inviting contemplation and meditation. + +- name: Joyful Celebration + negative_prompt: Unjoyful, ordinary, lacking celebration, uncamaraderie, mundane. + prompt: A festive and celebratory mood where the world is alive with music, dancing, + and laughter, evoking a sense of joy and camaraderie. + +- name: Melancholic Reflection + negative_prompt: Unmelancholic, ordinary, lacking reflection, unreflective, mundane. + prompt: A contemplative and melancholic mood where the world is bathed in soft, + muted colors, and a sense of nostalgia and introspection fills the air. + +- name: Mysterious + negative_prompt: clear + prompt: mysterious {prompt} + +- name: Relaxed + negative_prompt: excited + prompt: relaxed {prompt} + +- name: Romantic + negative_prompt: depressed + prompt: romantic {prompt} + +- name: Sad + negative_prompt: happy + prompt: sad {prompt} + +- name: Serene + negative_prompt: chaotic + prompt: serene {prompt} + +- name: Spectral Whispers + negative_prompt: Unspectral, ordinary, lacking whispers, unhaunted, mundane. + prompt: A spectral and haunting mood where ghostly whispers fill the air, and the + world is haunted by the echoes of the past, creating an eerie and ethereal atmosphere. + +- name: Surreal Euphoria + negative_prompt: Uneuphoric, ordinary, lacking surrealism, undreamlike, mundane. + prompt: A surreal and euphoric mood where the boundaries of reality are blurred, + and a sense of euphoria and elation fills the world, creating a dreamlike and + euphoric experience. + +- name: Tense, Suspenseful Ambiance + negative_prompt: Untense, ordinary, lacking suspense, unintriguing, mundane. + prompt: A tense and suspenseful mood where every moment is charged with anticipation + and uncertainty, creating a sense of adrenaline and intrigue. + +- name: Whimsical Delight + negative_prompt: Unwhimsical, ordinary, lacking playfulness, unjoyful, mundane. + prompt: A playful and lighthearted mood where the world is filled with whimsical + characters, magical creatures, and joyful surprises, inviting laughter and joy. diff --git a/Styles/original.yaml b/Styles/original.yaml new file mode 100644 index 0000000..a26c68c --- /dev/null +++ b/Styles/original.yaml @@ -0,0 +1,554 @@ +# It is recommended not to modify this file, +# as it serves as the initialization file for the node. +# +# Instead, create a copy, place it in the same folder, +# and the iTools Prompt Styler node will read all your style files from there. +# +# Ensure that the formatting is kept the same as in this file. +# Indents in YAML are critical. Ensure proper indentation, as incorrect spacing can cause errors. +# +# Best approach is to copy a block of name, negative_prompt and a prompt and then replace their values +# Note that your text_positive will be added in this part {prompt} +# Adding - name: random will allow the node to pick random name from this file + +- name: none + negative_prompt: '' + prompt: '' + +- name: random + negative_prompt: '' + prompt: '' + +- name: ads-advertising + negative_prompt: noisy, blurry, amateurish, sloppy, unattractive + prompt: Advertising poster style of {prompt}. Professional, modern, product-focused, + commercial, eye-catching, highly detailed + +- name: ads-automotive + negative_prompt: noisy, blurry, unattractive, sloppy, unprofessional + prompt: Automotive advertisement style of {prompt}. Sleek, dynamic, professional, + commercial, vehicle-focused, high-resolution, highly detailed + +- name: ads-corporate + negative_prompt: noisy, blurry, grungy, sloppy, cluttered, disorganized + prompt: Corporate branding style of {prompt}. Professional, clean, modern, sleek, + minimalist, business-oriented, highly detailed + +- name: ads-fashion editorial + negative_prompt: outdated, blurry, noisy, unattractive, sloppy + prompt: Fashion editorial style of {prompt}. High fashion, trendy, stylish, editorial, + magazine style, professional, highly detailed + +- name: ads-food photography + negative_prompt: unappetizing, sloppy, unprofessional, noisy, blurry + prompt: Food photography style of {prompt}. Appetizing, professional, culinary, + high-resolution, commercial, highly detailed + +- name: ads-luxury + negative_prompt: cheap, noisy, blurry, unattractive, amateurish + prompt: Luxury product style of {prompt}. Elegant, sophisticated, high-end, luxurious, + professional, highly detailed + +- name: ads-real estate + negative_prompt: dark, blurry, unappealing, noisy, unprofessional + prompt: Real estate photography style of {prompt}. Professional, inviting, well-lit, + high-resolution, property-focused, commercial, highly detailed + +- name: ads-retail + negative_prompt: noisy, blurry, amateurish, sloppy, unattractive + prompt: Retail packaging style of {prompt}. Vibrant, enticing, commercial, product-focused, + eye-catching, professional, highly detailed + +- name: artstyle-abstract + negative_prompt: realistic, photographic, figurative, concrete + prompt: abstract style of {prompt}. non-representational, colors and shapes, expression + of feelings, imaginative, highly detailed + +- name: artstyle-abstract expressionism + negative_prompt: realistic, photorealistic, low contrast, plain, simple, monochrome + prompt: abstract expressionist painting of {prompt}. energetic brushwork, bold colors, + abstract forms, expressive, emotional + +- name: artstyle-art deco + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + modernist, minimalist + prompt: Art Deco style of {prompt}. geometric shapes, bold colors, luxurious, elegant, + decorative, symmetrical, ornate, detailed + +- name: artstyle-art nouveau + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + modernist, minimalist + prompt: Art Nouveau style of {prompt}. elegant, decorative, curvilinear forms, nature-inspired, + ornate, detailed + +- name: artstyle-constructivist + negative_prompt: realistic, photorealistic, low contrast, plain, simple, abstract + expressionism + prompt: constructivist style of {prompt}. geometric shapes, bold colors, dynamic + composition, propaganda art style + +- name: artstyle-cubist + negative_prompt: anime, photorealistic, 35mm film, deformed, glitch, low contrast, + noisy + prompt: cubist artwork of {prompt}. geometric shapes, abstract, innovative, revolutionary + +- name: artstyle-expressionist + negative_prompt: realism, symmetry, quiet, calm, photo + prompt: expressionist of {prompt}. raw, emotional, dynamic, distortion for emotional + effect, vibrant, use of unusual colors, detailed + +- name: artstyle-graffiti + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic + prompt: graffiti style of {prompt}. street art, vibrant, urban, detailed, tag, mural + +- name: artstyle-hyperrealism + negative_prompt: simplified, abstract, unrealistic, impressionistic, low resolution + prompt: hyperrealistic art of {prompt}. extremely high-resolution details, photographic, + realism pushed to extreme, fine texture, incredibly lifelike + +- name: artstyle-impressionist + negative_prompt: anime, photorealistic, 35mm film, deformed, glitch, low contrast, + noisy + prompt: impressionist painting of {prompt}. loose brushwork, vibrant color, light + and shadow play, captures feeling over form + +- name: artstyle-pointillism + negative_prompt: line drawing, smooth shading, large color fields, simplistic + prompt: pointillism style of {prompt}. composed entirely of small, distinct dots + of color, vibrant, highly detailed + +- name: artstyle-pop art + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + minimalist + prompt: Pop Art style of {prompt}. bright colors, bold outlines, popular culture + themes, ironic or kitsch + +- name: artstyle-psychedelic + negative_prompt: monochrome, black and white, low contrast, realistic, photorealistic, + plain, simple + prompt: psychedelic style of {prompt}. vibrant colors, swirling patterns, abstract + forms, surreal, trippy + +- name: artstyle-renaissance + negative_prompt: ugly, deformed, noisy, blurry, low contrast, modernist, minimalist, + abstract + prompt: Renaissance style of {prompt}. realistic, perspective, light and shadow, + religious or mythological themes, highly detailed + +- name: artstyle-steampunk + negative_prompt: deformed, glitch, noisy, low contrast, anime, photorealistic + prompt: steampunk style of {prompt}. antique, mechanical, brass and copper tones, + gears, intricate, detailed + +- name: artstyle-surrealist + negative_prompt: anime, photorealistic, realistic, deformed, glitch, noisy, low + contrast + prompt: surrealist art of {prompt}. dreamlike, mysterious, provocative, symbolic, + intricate, detailed + +- name: artstyle-typography + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic + prompt: typographic art of {prompt}. stylized, intricate, detailed, artistic, text-based + +- name: artstyle-watercolor + negative_prompt: anime, photorealistic, 35mm film, deformed, glitch, low contrast, + noisy + prompt: watercolor painting of {prompt}. vibrant, beautiful, painterly, detailed, + textural, artistic + +- name: futuristic-biomechanical + negative_prompt: natural, rustic, primitive, organic, simplistic + prompt: biomechanical style of {prompt}. blend of organic and mechanical elements, + futuristic, cybernetic, detailed, intricate + +- name: futuristic-biomechanical cyberpunk + negative_prompt: natural, colorful, deformed, sketch, low contrast, watercolor + prompt: biomechanical cyberpunk of {prompt}. cybernetics, human-machine fusion, + dystopian, organic meets artificial, dark, intricate, highly detailed + +- name: futuristic-cybernetic + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + historical, medieval + prompt: cybernetic style of {prompt}. futuristic, technological, cybernetic enhancements, + robotics, artificial intelligence themes + +- name: futuristic-cybernetic robot + negative_prompt: organic, natural, human, sketch, watercolor, low contrast + prompt: cybernetic robot of {prompt}. android, AI, machine, metal, wires, tech, + futuristic, highly detailed + +- name: futuristic-cyberpunk cityscape + negative_prompt: natural, rural, deformed, low contrast, black and white, sketch, + watercolor + prompt: cyberpunk cityscape of {prompt}. neon lights, dark alleys, skyscrapers, + futuristic, vibrant colors, high contrast, highly detailed + +- name: futuristic-futuristic + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + vintage, antique + prompt: futuristic style of {prompt}. sleek, modern, ultramodern, high tech, detailed + +- name: futuristic-retro cyberpunk + negative_prompt: modern, desaturated, black and white, realism, low contrast + prompt: retro cyberpunk of {prompt}. 80's inspired, synthwave, neon, vibrant, detailed, + retro futurism + +- name: futuristic-retro futurism + negative_prompt: contemporary, realistic, rustic, primitive + prompt: retro-futuristic of {prompt}. vintage sci-fi, 50s and 60s style, atomic + age, vibrant, highly detailed + +- name: futuristic-sci-fi + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + historical, medieval + prompt: sci-fi style of {prompt}. futuristic, technological, alien worlds, space + themes, advanced civilizations + +- name: futuristic-vaporwave + negative_prompt: monochrome, muted colors, realism, rustic, minimalist, dark + prompt: vaporwave style of {prompt}. retro aesthetic, cyberpunk, vibrant, neon colors, + vintage 80s and 90s style, highly detailed + +- name: game-bubble bobble + negative_prompt: realistic, modern, photorealistic, violent, horror + prompt: Bubble Bobble style of {prompt}. 8-bit, cute, pixelated, fantasy, vibrant, + reminiscent of Bubble Bobble game + +- name: game-cyberpunk game + negative_prompt: historical, natural, rustic, low detailed + prompt: cyberpunk game style of {prompt}. neon, dystopian, futuristic, digital, + vibrant, detailed, high contrast, reminiscent of cyberpunk genre video games + +- name: game-fighting game + negative_prompt: peaceful, calm, minimalist, photorealistic + prompt: fighting game style of {prompt}. dynamic, vibrant, action-packed, detailed + character design, reminiscent of fighting video games + +- name: game-gta + negative_prompt: realistic, black and white, low contrast, impressionist, cubist, + noisy, blurry, deformed + prompt: GTA-style artwork of {prompt}. satirical, exaggerated, pop art style, vibrant + colors, iconic characters, action-packed + +- name: game-mario + negative_prompt: realistic, modern, horror, dystopian, violent + prompt: Super Mario style of {prompt}. vibrant, cute, cartoony, fantasy, playful, + reminiscent of Super Mario series + +- name: game-minecraft + negative_prompt: smooth, realistic, detailed, photorealistic, noise, blurry, deformed + prompt: Minecraft style of {prompt}. blocky, pixelated, vibrant colors, recognizable + characters and objects, game assets + +- name: game-pokemon + negative_prompt: realistic, modern, horror, dystopian, violent + prompt: Pokémon style of {prompt}. vibrant, cute, anime, fantasy, reminiscent of + Pokémon series + +- name: game-retro arcade + negative_prompt: modern, ultra-high resolution, photorealistic, 3D + prompt: retro arcade style of {prompt}. 8-bit, pixelated, vibrant, classic video + game, old school gaming, reminiscent of 80s and 90s arcade games + +- name: game-retro game + negative_prompt: realistic, photorealistic, 35mm film, deformed, glitch, low contrast, + noisy + prompt: retro game art of {prompt}. 16-bit, vibrant colors, pixelated, nostalgic, + charming, fun + +- name: game-rpg fantasy game + negative_prompt: sci-fi, modern, urban, futuristic, low detailed + prompt: role-playing game (RPG) style fantasy of {prompt}. detailed, vibrant, immersive, + reminiscent of high fantasy RPG games + +- name: game-strategy game + negative_prompt: first-person view, modern, photorealistic + prompt: strategy game style of {prompt}. overhead view, detailed map, units, reminiscent + of real-time strategy video games + +- name: game-streetfighter + negative_prompt: 3D, realistic, modern, photorealistic, turn-based strategy + prompt: Street Fighter style of {prompt}. vibrant, dynamic, arcade, 2D fighting + game, highly detailed, reminiscent of Street Fighter series + +- name: game-zelda + negative_prompt: sci-fi, modern, realistic, horror + prompt: Legend of Zelda style of {prompt}. vibrant, fantasy, detailed, epic, heroic, + reminiscent of The Legend of Zelda series + +- name: misc-architectural + negative_prompt: curved lines, ornate, baroque, abstract, grunge + prompt: architectural style of {prompt}. clean lines, geometric shapes, minimalist, + modern, architectural drawing, highly detailed + +- name: misc-disco + negative_prompt: minimalist, rustic, monochrome, contemporary, simplistic + prompt: disco-themed of {prompt}. vibrant, groovy, retro 70s style, shiny disco + balls, neon lights, dance floor, highly detailed + +- name: misc-dreamscape + negative_prompt: realistic, concrete, ordinary, mundane + prompt: dreamscape of {prompt}. surreal, ethereal, dreamy, mysterious, fantasy, + highly detailed + +- name: misc-dystopian + negative_prompt: ugly, deformed, noisy, blurry, low contrast, cheerful, optimistic, + vibrant, colorful + prompt: dystopian style of {prompt}. bleak, post-apocalyptic, somber, dramatic, + highly detailed + +- name: misc-fairy tale + negative_prompt: realistic, modern, ordinary, mundane + prompt: fairy tale of {prompt}. magical, fantastical, enchanting, storybook style, + highly detailed + +- name: misc-gothic + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + cheerful, optimistic + prompt: gothic style of {prompt}. dark, mysterious, haunting, dramatic, ornate, + detailed + +- name: misc-grunge + negative_prompt: smooth, clean, minimalist, sleek, modern, photorealistic + prompt: grunge style of {prompt}. textured, distressed, vintage, edgy, punk rock + vibe, dirty, noisy + +- name: misc-horror + negative_prompt: cheerful, bright, vibrant, light-hearted, cute + prompt: horror-themed of {prompt}. eerie, unsettling, dark, spooky, suspenseful, + grim, highly detailed + +- name: misc-kawaii + negative_prompt: dark, scary, realistic, monochrome, abstract + prompt: kawaii style of {prompt}. cute, adorable, brightly colored, cheerful, anime + influence, highly detailed + +- name: misc-lovecraftian + negative_prompt: light-hearted, mundane, familiar, simplistic, realistic + prompt: lovecraftian horror of {prompt}. eldritch, cosmic horror, unknown, mysterious, + surreal, highly detailed + +- name: misc-macabre + negative_prompt: bright, cheerful, light-hearted, cartoonish, cute + prompt: macabre style of {prompt}. dark, gothic, grim, haunting, highly detailed + +- name: misc-manga + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + Western comic style + prompt: manga style of {prompt}. vibrant, high-energy, detailed, iconic, Japanese + comic style + +- name: misc-metropolis + negative_prompt: rural, natural, rustic, historical, simple + prompt: metropolis-themed of {prompt}. urban, cityscape, skyscrapers, modern, futuristic, + highly detailed + +- name: misc-minimalist + negative_prompt: ornate, complicated, highly detailed, cluttered, disordered, messy, + noisy + prompt: minimalist style of {prompt}. simple, clean, uncluttered, modern, elegant + +- name: misc-monochrome + negative_prompt: colorful, vibrant, noisy, blurry, deformed + prompt: monochrome of {prompt}. black and white, contrast, tone, texture, detailed + +- name: misc-nautical + negative_prompt: landlocked, desert, mountains, urban, rustic + prompt: nautical-themed of {prompt}. sea, ocean, ships, maritime, beach, marine + life, highly detailed + +- name: misc-space + negative_prompt: earthly, mundane, ground-based, realism + prompt: space-themed of {prompt}. cosmic, celestial, stars, galaxies, nebulas, planets, + science fiction, highly detailed + +- name: misc-stained glass + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic + prompt: stained glass style of {prompt}. vibrant, beautiful, translucent, intricate, + detailed + +- name: misc-techwear fashion + negative_prompt: vintage, rural, colorful, low contrast, realism, sketch, watercolor + prompt: techwear fashion of {prompt}. futuristic, cyberpunk, urban, tactical, sleek, + dark, highly detailed + +- name: misc-tribal + negative_prompt: modern, futuristic, minimalist, pastel + prompt: tribal style of {prompt}. indigenous, ethnic, traditional patterns, bold, + natural colors, highly detailed + +- name: misc-zentangle + negative_prompt: colorful, representative, simplistic, large fields of color + prompt: zentangle of {prompt}. intricate, abstract, monochrome, patterns, meditative, + highly detailed + +- name: papercraft-collage + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic + prompt: collage style of {prompt}. mixed media, layered, textural, detailed, artistic + +- name: papercraft-flat papercut + negative_prompt: 3D, high detail, noise, grainy, blurry, painting, drawing, photo, + disfigured + prompt: flat papercut style of {prompt}. silhouette, clean cuts, paper, sharp edges, + minimalist, color block + +- name: papercraft-kirigami + negative_prompt: painting, drawing, 2D, noisy, blurry, deformed + prompt: kirigami representation of {prompt}. 3D, paper folding, paper cutting, Japanese, + intricate, symmetrical, precision, clean lines + +- name: papercraft-paper mache + negative_prompt: 2D, flat, photo, sketch, digital art, deformed, noisy, blurry + prompt: paper mache representation of {prompt}. 3D, sculptural, textured, handmade, + vibrant, fun + +- name: papercraft-paper quilling + negative_prompt: photo, painting, drawing, 2D, flat, deformed, noisy, blurry + prompt: paper quilling art of {prompt}. intricate, delicate, curling, rolling, shaping, + coiling, loops, 3D, dimensional, ornamental + +- name: papercraft-papercut collage + negative_prompt: photo, 3D, realistic, drawing, painting, high detail, disfigured + prompt: papercut collage of {prompt}. mixed media, textured paper, overlapping, + asymmetrical, abstract, vibrant + +- name: papercraft-papercut shadow box + negative_prompt: painting, drawing, photo, 2D, flat, high detail, blurry, noisy, + disfigured + prompt: 3D papercut shadow box of {prompt}. layered, dimensional, depth, silhouette, + shadow, papercut, handmade, high contrast + +- name: papercraft-stacked papercut + negative_prompt: 2D, flat, noisy, blurry, painting, drawing, photo, deformed + prompt: stacked papercut art of {prompt}. 3D, layered, dimensional, depth, precision + cut, stacked layers, papercut, high contrast + +- name: papercraft-thick layered papercut + negative_prompt: 2D, flat, thin paper, low stack, smooth texture, painting, drawing, + photo, deformed + prompt: thick layered papercut art of {prompt}. deep 3D, volumetric, dimensional, + depth, thick paper, high stack, heavy texture, tangible layers + +- name: photo-alien + negative_prompt: earthly, mundane, common, realistic, simple + prompt: alien-themed of {prompt}. extraterrestrial, cosmic, otherworldly, mysterious, + sci-fi, highly detailed + +- name: photo-film noir + negative_prompt: ugly, deformed, noisy, blurry, low contrast, realism, photorealistic, + vibrant, colorful + prompt: film noir style of {prompt}. monochrome, high contrast, dramatic shadows, + 1940s style, mysterious, cinematic + +- name: photo-hdr + negative_prompt: flat, low contrast, oversaturated, underexposed, overexposed, blurred, + noisy + prompt: HDR photo of {prompt}. High dynamic range, vivid, rich details, clear shadows + and highlights, realistic, intense, enhanced contrast, highly detailed + +- name: photo-long exposure + negative_prompt: static, noisy, deformed, shaky, abrupt, flat, low contrast + prompt: long exposure photo of {prompt}. Blurred motion, streaks of light, surreal, + dreamy, ghosting effect, highly detailed + +- name: photo-neon noir + negative_prompt: bright, sunny, daytime, low contrast, black and white, sketch, + watercolor + prompt: neon noir of {prompt}. cyberpunk, dark, rainy streets, neon signs, high + contrast, low light, vibrant, highly detailed + +- name: photo-silhouette + negative_prompt: ugly, deformed, noisy, blurry, low contrast, color, realism, photorealistic + prompt: silhouette style of {prompt}. high contrast, minimalistic, black and white, + stark, dramatic + +- name: photo-tilt-shift + negative_prompt: blurry, noisy, deformed, flat, low contrast, unrealistic, oversaturated, + underexposed + prompt: tilt-shift photo of {prompt}. Selective focus, miniature effect, blurred + background, highly detailed, vibrant, perspective control + +- name: sai-anime + negative_prompt: photo, deformed, black and white, realism, disfigured, low contrast + prompt: anime artwork of {prompt}. anime style, key visual, vibrant, studio anime, highly + detailed + +- name: sai-cinematic + negative_prompt: anime, cartoon, graphic, text, painting, crayon, graphite, abstract, + glitch, deformed, mutated, ugly, disfigured + prompt: cinematic film still of {prompt}. shallow depth of field, vignette, highly + detailed, high budget, bokeh, cinemascope, moody, epic, gorgeous, film grain, + grainy + +- name: sai-comic book + negative_prompt: photograph, deformed, glitch, noisy, realistic, stock photo + prompt: comic of {prompt}. graphic illustration, comic art, graphic novel art, vibrant, + highly detailed + +- name: sai-craft clay + negative_prompt: sloppy, messy, grainy, highly detailed, ultra textured, photo + prompt: play-doh style of {prompt}. sculpture, clay art, centered composition, Claymation + +- name: sai-digital art + negative_prompt: photo, photorealistic, realism, ugly + prompt: concept art of {prompt}. digital artwork, illustrative, painterly, matte + painting, highly detailed + +- name: sai-enhance + negative_prompt: ugly, deformed, noisy, blurry, distorted, grainy + prompt: breathtaking of {prompt}. award-winning, professional, highly detailed + +- name: sai-fantasy art + 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 + prompt: ethereal fantasy concept art of {prompt}. magnificent, celestial, ethereal, + painterly, epic, majestic, magical, fantasy art, cover art, dreamy + +- name: sai-isometric + negative_prompt: deformed, mutated, ugly, disfigured, blur, blurry, noise, noisy, + realistic, photographic + prompt: isometric style of {prompt}. vibrant, beautiful, crisp, detailed, ultra + detailed, intricate + +- name: sai-line art + 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 + prompt: line art drawing of {prompt}. professional, sleek, modern, minimalist, graphic, + line art, vector graphics + +- name: sai-lowpoly + negative_prompt: noisy, sloppy, messy, grainy, highly detailed, ultra textured, + photo + prompt: low-poly style of {prompt}. low-poly game art, polygon mesh, jagged, blocky, + wireframe edges, centered composition + +- name: sai-neonpunk + negative_prompt: painting, drawing, illustration, glitch, deformed, mutated, cross-eyed, + ugly, disfigured + prompt: neonpunk style of {prompt}. cyberpunk, vaporwave, neon, vibes, vibrant, + stunningly beautiful, crisp, detailed, sleek, ultramodern, magenta highlights, + dark purple shadows, high contrast, cinematic, ultra detailed, intricate, professional + +- name: sai-origami + negative_prompt: noisy, sloppy, messy, grainy, highly detailed, ultra textured, + photo + prompt: origami style of {prompt}. paper art, pleated paper, folded, origami art, + pleats, cut and fold, centered composition + +- name: sai-photographic + negative_prompt: drawing, painting, crayon, sketch, graphite, impressionist, noisy, + blurry, soft, deformed, ugly + prompt: cinematic photo of {prompt}. 35mm photograph, film, bokeh, professional, + 4k, highly detailed + +- name: sai-pixel art + negative_prompt: sloppy, messy, blurry, noisy, highly detailed, ultra textured, + photo, realistic + prompt: pixel-art of {prompt}. low-res, blocky, pixel art style, 8-bit graphics + +- name: sai-texture + negative_prompt: ugly, deformed, noisy, blurry + prompt: texture of {prompt}top down close-up + diff --git a/__init__.py b/__init__.py index 5710c80..07a18c1 100644 --- a/__init__.py +++ b/__init__.py @@ -1,12 +1,35 @@ -from .WF_nodes import NODE_CLASS_MAPPINGS as DENOISE_NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as DENOISE_NODE_DISPLAY_NAME_MAPPINGS -from .ModelParamsNode import NODE_CLASS_MAPPINGS as MODEL_NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as MODEL_NODE_DISPLAY_NAME_MAPPINGS - +import traceback +# Ініціалізація порожніх словників NODE_CLASS_MAPPINGS = {} NODE_DISPLAY_NAME_MAPPINGS = {} -NODE_CLASS_MAPPINGS.update(DENOISE_NODE_CLASS_MAPPINGS) -NODE_CLASS_MAPPINGS.update(MODEL_NODE_CLASS_MAPPINGS) -NODE_DISPLAY_NAME_MAPPINGS.update(DENOISE_NODE_DISPLAY_NAME_MAPPINGS) -NODE_DISPLAY_NAME_MAPPINGS.update(MODEL_NODE_DISPLAY_NAME_MAPPINGS) \ No newline at end of file + +print(f"--- Initializing MultiModel --- ") + +try: + # Спробуємо імпортувати ноди з ModelParamsNode.py + from .ModelParamsNode import NODE_CLASS_MAPPINGS as MODEL_NODE_CLASS_MAPPINGS + from .ModelParamsNode import NODE_DISPLAY_NAME_MAPPINGS as MODEL_NODE_DISPLAY_NAME_MAPPINGS + + # Оновлення словників даними з ModelParamsNode.py + NODE_CLASS_MAPPINGS.update(MODEL_NODE_CLASS_MAPPINGS) + NODE_DISPLAY_NAME_MAPPINGS.update(MODEL_NODE_DISPLAY_NAME_MAPPINGS) + + print("✅ MultiModel: Mappings imported and updated successfully.") + +except ImportError as e: + print(f"❌ MultiModel: Failed to import from ModelParamsNode. ImportError: {e}") + print(traceback.format_exc()) +except Exception as e: + print(f"❌ MultiModel: An unexpected error occurred during initialization: {e}") + print(traceback.format_exc()) + +# Видалено блок імпорту для logic.py, оскільки файли видалено + +# Вказуємо ComfyUI, що в папці js є веб-файли +WEB_DIRECTORY = "js" + +# Цей рядок залишиться, щоб показати, чи дійшов __init__.py до кінця +print(f"--- MultiModel initialization finished (check for errors above) --- ") \ No newline at end of file diff --git a/js/ModelParamsNode.js b/js/ModelParamsNode.js new file mode 100644 index 0000000..8ce9077 --- /dev/null +++ b/js/ModelParamsNode.js @@ -0,0 +1,121 @@ +import { app } from "/scripts/app.js"; + +// Simple test log to confirm the file is loaded +// console.log("SIMPLE TEST: js/ModelParamsNode.js executed!"); + +console.log("%c[ModelParamsNode] JS файл завантажився! (v2-dynamic-inputs)", "color: white; background: #007acc; font-weight: bold; padding: 2px 8px; border-radius: 3px;"); +// --- Loading js/ModelParamsNode.js --- v2-dynamic-inputs + +// Helper function to fetch style names from the backend +async function fetchStyleNames(filename) { + // Return empty array immediately if filename is 'None' or invalid + if (!filename || filename === "None") { + return []; + } + try { + const response = await fetch('/multi_model/get_style_names', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ filename: filename }) + }); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status} - ${await response.text()}`); + } + const data = await response.json(); + // console.log("Received style names:", data); // Keep commented + return data.style_names || []; // Return empty array on failure or no names + } catch (error) { + console.error(`[MultiModel Extension] Error fetching style names for ${filename}:`, error); + return []; // Return empty array on error + } +} + +const ext = { + name: "MultiModel.PromptBuilderNode.StyleUpdater", + async setup(app) { + // console.log("MultiModel.PromptBuilderNode.StyleUpdater extension setup called"); + }, + + async nodeCreated(node) { + // console.log(`MultiModel Extension: nodeCreated called for node: ${node.getTitle()} (Type: ${node.constructor.type})`); + + // Check if this is the target node type we want to modify + if (node.constructor.type === "PromptBuilder") { + // console.log(`MultiModel Extension: Found target node type 'PromptBuilderNode': ${node.getTitle()}`); + + const styleFileWidget = node.widgets.find(w => w.name === "style_file"); + const styleNameWidget = node.widgets.find(w => w.name === "style_name"); + + if (!styleFileWidget) { + console.error("[MultiModel Extension] Could not find 'style_file' widget on PromptBuilderNode!"); + return; + } + if (!styleNameWidget) { + console.error("[MultiModel Extension] Could not find 'style_name' widget on PromptBuilderNode!"); + return; + } + + // Force the widget type to combo, even if Python defined it as STRING + styleNameWidget.type = "combo"; + // Ensure options object exists for combo box properties + if (!styleNameWidget.options) { styleNameWidget.options = {}; } + + // Add a callback to handle selection changes for the style_name widget itself + styleNameWidget.callback = (value) => { + // Explicitly set the widget's value on selection + styleNameWidget.value = value; + console.log(`[MultiModel Extension] style_name selected and value set to: ${styleNameWidget.value}`); + // Optional: Force redraw if the value change doesn't update visually + // node.setDirtyCanvas(true, false); + }; + + // console.log("MultiModel Extension: Found 'style_file' and 'style_name' widgets."); + + // Function to update style_name options + const updateStyleNames = async (selectedFilename) => { + const names = await fetchStyleNames(selectedFilename); + if (styleNameWidget.options) { + // console.log(`[MultiModel Extension] Updating styleNameWidget.options.values to:`, names); + styleNameWidget.options.values = names; + + // Встановлюємо значення: або поточне (якщо воно є в новому списку), або перший елемент нового списку + // console.log(`[MultiModel Extension] Before setting value - current styleNameWidget.value: ${styleNameWidget.value}, styleNames includes current value: ${names.includes(styleNameWidget.value)}`); + styleNameWidget.value = names.includes(styleNameWidget.value) ? styleNameWidget.value : names[0]; + // console.log(`[MultiModel Extension] After setting value - new styleNameWidget.value: ${styleNameWidget.value}`); + + // Додаємо колбек, якщо його ще немає + if (!styleNameWidget.callback) { + styleNameWidget.callback = (value) => { + styleNameWidget.value = value; + console.log(`[MultiModel Extension] style_name selected and value set to: ${styleNameWidget.value}`); + }; + } + } else { + console.error("[MultiModel Extension] 'style_name' widget does not have accessible options."); + } + }; + + const originalCallback = styleFileWidget.callback; + + styleFileWidget.callback = async (value) => { + // console.log(`MultiModel Extension: style_file changed to: ${value}`); + await updateStyleNames(value); + if (originalCallback) { + originalCallback.call(styleFileWidget, value); + } + }; + + if (styleFileWidget.value) { + // console.log(`MultiModel Extension: Initializing style_names for file: ${styleFileWidget.value}`); + setTimeout(() => updateStyleNames(styleFileWidget.value), 100); // Keep timeout for initialization + } else { + console.warn("[MultiModel Extension] 'style_file' widget has no initial value on creation."); + } + } + } +}; + +app.registerExtension(ext); + diff --git a/js/ModelParamsNodeExt.js b/js/ModelParamsNodeExt.js new file mode 100644 index 0000000..5f7294a --- /dev/null +++ b/js/ModelParamsNodeExt.js @@ -0,0 +1,237 @@ +// js/ModelParamsNodeExt.js +// Розширення для ModelParamsPipeNode, щоб він повідомляв про свої зміни + +import { app } from "/scripts/app.js"; + +const TARGET_NODE_TYPE = "ModelParamsPipe"; // Цільовий тип вузла, який ми розширюємо + +console.log("%c[ModelParamsNodeExt] JS файл завантажився! (v2-dynamic-inputs)", "color: white; background: #007acc; font-weight: bold; padding: 2px 8px; border-radius: 3px;"); +// --- Loading js/ModelParamsNodeExt.js --- v2-dynamic-inputs + +console.log(`--- Loading extension for ${TARGET_NODE_TYPE} ---`); + +app.registerExtension({ + name: "MultiModel.ModelParamsPipeNode.Notifier", + + // Додатковий трекінг для діагностики + newNodesDetected: false, + + // Додаємо базову ініціалізацію та прямий пошук вузлів + async setup() { + console.log(`[${TARGET_NODE_TYPE} Notifier] SETUP starting...`); + + // Перевіряємо наявність сервісу одразу + if (app.HubNodesService) { + console.log(`[${TARGET_NODE_TYPE} Notifier] HubNodesService found during setup`); + } else { + console.error(`[${TARGET_NODE_TYPE} Notifier] HubNodesService NOT found during setup!`); + } + + // Зачекаємо, доки граф буде завантажено, і потім проскануємо його + const checkForGraph = () => { + if (app.graph) { + console.log(`[${TARGET_NODE_TYPE} Notifier] Graph found in setup`); + + // Додаємо обробник зміни графу + if (app.graph.onNodeAdded && !app.graph._notifier_attached) { + const origNodeAdded = app.graph.onNodeAdded; + + app.graph.onNodeAdded = function(node) { + console.log(`[${TARGET_NODE_TYPE} Notifier] Graph onNodeAdded called for node ID: ${node.id}, type: ${node.type}`); + + if (origNodeAdded) { + origNodeAdded.call(this, node); + } + + // Перевіряємо, чи це наш цільовий тип + if (node.type === TARGET_NODE_TYPE) { + console.log(`[${TARGET_NODE_TYPE} Notifier] Target node added to graph: ID ${node.id}`); + + // Викликаємо наш обробник + const extension = app.extensions.find(ext => ext.name === "MultiModel.ModelParamsPipeNode.Notifier"); + if (extension) { + extension.setupNodeMonitoring(node); + + if (app.HubNodesService) { + console.log(`[${TARGET_NODE_TYPE} Notifier] Notifying service about new graph node: ID ${node.id}`); + app.HubNodesService.notifyHubAdded(node); + + // Пробуємо різні методи оновлення інтерфейсу + if (typeof app.HubNodesService.forceUpdates === 'function') { + app.HubNodesService.forceUpdates(); + } else if (typeof app.HubNodesService.updateWidgets === 'function') { + app.HubNodesService.updateWidgets(); + } else if (app.HubNodesService.refreshUI && typeof app.HubNodesService.refreshUI === 'function') { + app.HubNodesService.refreshUI(); + } + } + } + } + }; + + app.graph._notifier_attached = true; + console.log(`[${TARGET_NODE_TYPE} Notifier] Attached graph.onNodeAdded handler`); + } + + // Зробимо сканування графу з невеликою затримкою для певності + setTimeout(() => { + if (!app.graph || !app.graph._nodes) { + console.log(`[${TARGET_NODE_TYPE} Notifier] No graph nodes found yet`); + return; + } + + const targetNodes = app.graph._nodes.filter(node => node.type === TARGET_NODE_TYPE); + console.log(`[${TARGET_NODE_TYPE} Notifier] Initial graph scan found ${targetNodes.length} target nodes`); + + const extension = app.extensions.find(ext => ext.name === "MultiModel.ModelParamsPipeNode.Notifier"); + if (!extension) { + console.error(`[${TARGET_NODE_TYPE} Notifier] Extension not found in array!`); + return; + } + + // Обробляємо знайдені вузли + for (const node of targetNodes) { + extension.setupNodeMonitoring(node); + + // Якщо знайшли хоча б один вузол, спробуємо оновити інтерфейс + if (app.HubNodesService) { + console.log(`[${TARGET_NODE_TYPE} Notifier] Found existing node in scan: ID ${node.id}`); + } + } + + // Якщо було знайдено вузли, форсуємо оновлення + if (targetNodes.length > 0 && app.HubNodesService) { + console.log(`[${TARGET_NODE_TYPE} Notifier] Forcing update after scan found ${targetNodes.length} nodes`); + + if (typeof app.HubNodesService.forceUpdates === 'function') { + app.HubNodesService.forceUpdates(); + } else if (typeof app.HubNodesService.updateWidgets === 'function') { + app.HubNodesService.updateWidgets(); + } else if (app.HubNodesService.refreshUI && typeof app.HubNodesService.refreshUI === 'function') { + app.HubNodesService.refreshUI(); + } + } + }, 500); + } else { + console.log(`[${TARGET_NODE_TYPE} Notifier] Graph not available yet, will retry...`); + setTimeout(checkForGraph, 500); + } + }; + + // Запускаємо перевірку графу + checkForGraph(); + + console.log(`[${TARGET_NODE_TYPE} Notifier] SETUP completed`); + }, + + // Встановлення моніторингу title/видалення для вузла + setupNodeMonitoring(node, appInstance = app) { + if (!node) return false; + console.log(`[${TARGET_NODE_TYPE} Notifier] Setting up monitoring for node ID: ${node.id}`); + + // --- Встановлюємо моніторинг title --- + if (!node.__title_monitored) { + console.log(`[${TARGET_NODE_TYPE} Notifier] Setting up title monitoring for node ID: ${node.id}`); + + try { + const originalTitle = node.title; + + // Зберігаємо оригінальне значення + Object.defineProperty(node, '_monitored_title', { + value: originalTitle, + writable: true + }); + + // Перевизначаємо геттер/сеттер для title + Object.defineProperty(node, 'title', { + get: function() { + return this._monitored_title; + }, + set: function(newTitle) { + console.log(`---> [${TARGET_NODE_TYPE} Notifier] title property CHANGED: "${this._monitored_title}" → "${newTitle}" for node ID: ${this.id}`); + + // Якщо значення не змінилось, не виконуємо додаткові дії + if (this._monitored_title === newTitle) { + console.log(` Title not changed (same value), skipping notification.`); + return; + } + + // Зберігаємо нове значення + this._monitored_title = newTitle; + + // Повідомляємо сервіс про перейменування з невеликою затримкою + setTimeout(() => { + if (appInstance.HubNodesService) { + console.log(` Notifying service about rename for node ID: ${this.id}`); + appInstance.HubNodesService.notifyHubRenamed(this); + } else { + console.error(` HubNodesService not found! Cannot notify rename.`); + } + }, 0); + }, + enumerable: true, + configurable: true + }); + + node.__title_monitored = true; + console.log(`[${TARGET_NODE_TYPE} Notifier] Title property monitored for node ID: ${node.id}`); + } catch (error) { + console.error(`[${TARGET_NODE_TYPE} Notifier] Error setting up title monitoring:`, error); + } + } + + // --- Встановлюємо перехоплення видалення --- + if (!node.onRemoved || !node.onRemoved.__isNotifierOverridden) { + try { + const originalOnRemoved = node.onRemoved; + + node.onRemoved = function() { + console.log(`[${TARGET_NODE_TYPE} Notifier] Node removed: ID ${this.id}`); + + // Повідомляємо сервіс про видалення + if (appInstance.HubNodesService) { + console.log(` Notifying service about removal for node ID: ${this.id}`); + appInstance.HubNodesService.notifyHubRemoved(this); + } else { + console.error(` HubNodesService not found! Cannot notify removal.`); + } + + // Викликаємо оригінальний метод, якщо він існує + if (originalOnRemoved) { + originalOnRemoved.apply(this, arguments); + } + }; + + node.onRemoved.__isNotifierOverridden = true; + console.log(`[${TARGET_NODE_TYPE} Notifier] onRemoved overridden for node ID: ${node.id}`); + } catch (error) { + console.error(`[${TARGET_NODE_TYPE} Notifier] Error overriding onRemoved:`, error); + } + } + + return true; + }, + + // Для логування проблемних випадків + async nodeCreated(node) { + console.log(`[${TARGET_NODE_TYPE} Notifier] nodeCreated called for node type: ${node ? node.type : 'undefined'}, ID: ${node ? node.id : 'undefined'}`); + }, + + // Для логування проблемних випадків + async onNodeAdded(node) { + console.log(`[${TARGET_NODE_TYPE} Notifier] onNodeAdded called for node type: ${node ? node.type : 'undefined'}, ID: ${node ? node.id : 'undefined'}`); + }, + + // Хук для обробки вузлів, що вже існують при завантаженні + async loadedGraphNode(node, appInstance) { + if (!node) return; + console.log(`[${TARGET_NODE_TYPE} Notifier] loadedGraphNode called for node type: ${node.type}, ID: ${node.id}`); + + if (node.type === TARGET_NODE_TYPE) { + // Встановлюємо моніторинг для існуючого вузла + this.setupNodeMonitoring(node, appInstance); + } + } +}); + +console.log(`--- Extension for ${TARGET_NODE_TYPE} loaded ---`); \ No newline at end of file diff --git a/js/MultiModelSwitch.js b/js/MultiModelSwitch.js new file mode 100644 index 0000000..b579e50 --- /dev/null +++ b/js/MultiModelSwitch.js @@ -0,0 +1,127 @@ +import { app } from "../../../scripts/app.js"; +import { ComfyWidgets } from "../../../scripts/widgets.js"; + +// Simple debounce function +function debounce(func, delay) { + let timeoutId; + return function(...args) { + clearTimeout(timeoutId); + timeoutId = setTimeout(() => { + func.apply(this, args); + }, delay); + }; +} + +// Use the class name registered in NODE_CLASS_MAPPINGS +const nodeClassName = "MySwitchIndex"; + +app.registerExtension({ + name: "MultiModel.MySwitchIndex", + async beforeRegisterNodeDef(nodeType, nodeData, app) { + // Compare with the class name + if (nodeData.name === nodeClassName) { + console.log(`[MultiModel] Patching ${nodeClassName}`); + + const onNodeCreated = nodeType.prototype.onNodeCreated; + nodeType.prototype.onNodeCreated = function() { + onNodeCreated?.apply(this, arguments); + console.log(`[MultiModel] ${nodeClassName} created`); + + // Find widgets (should exist based on Python definition) + const modeWidget = this.widgets.find(w => w.name === "mode"); + const indexWidget = this.widgets.find(w => w.name === "index"); + + if (!modeWidget) { + console.error(`[MultiModel] ${nodeClassName}: 'mode' widget not found! Cannot apply dynamic visibility.`); + return; + } + if (!indexWidget) { + console.error(`[MultiModel] ${nodeClassName}: 'index' widget not found! Cannot apply dynamic visibility.`); + return; + } + + // Function to update index widget visibility + const updateVisibility = (modeValue) => { + if (indexWidget) { + const shouldBeHidden = (modeValue !== "index"); // Поле повинно бути приховане, якщо режим НЕ "index" + // Завжди встановлюємо правильний стан `hidden` + indexWidget.hidden = shouldBeHidden; + console.log(`[MultiModel] ${nodeClassName}: Setting index widget hidden to: ${indexWidget.hidden} (mode is ${modeValue})`); + // Запитуємо перемалювання, щоб зміни відобразились + app.graph.setDirtyCanvas(true, false); + // Можливо, знадобиться примусове оновлення розміру, якщо ComfyUI не робить це автоматично при зміні hidden + // this.computeSize(); + } + }; + + // Store original callback and wrap it + const originalModeCallback = modeWidget.callback; + modeWidget.callback = (value) => { + console.log(`[MultiModel] ${nodeClassName}: Mode widget callback triggered with value: ${value}`); + // Викликаємо оригінальний callback, якщо він існує + originalModeCallback?.apply(modeWidget, [value]); + updateVisibility(value); + }; + + // Set initial visibility based on the current mode value + // Викликаємо відразу після ініціалізації віджетів + console.log(`[MultiModel] ${nodeClassName}: Setting initial visibility for mode: ${modeWidget.value}`); + updateVisibility(modeWidget.value); + + // --- Keep dynamic input logic --- + // We might want this active even in 'index' mode if the user wants + // to visually see which inputs are available, though they aren't used + // for selection in that mode. + this.updateInputs(); // Initial call to potentially add the first input + }; + + // --- Dynamic input logic (kept mostly as is) --- + const onConnectionsChange = nodeType.prototype.onConnectionsChange; + nodeType.prototype.onConnectionsChange = function(type, index, connected, link_info, slot) { + onConnectionsChange?.apply(this, arguments); + this.scheduleUpdateInputs(); + }; + + nodeType.prototype.scheduleUpdateInputs = debounce(function() { + this.updateInputs(); + }, 100); + + nodeType.prototype.updateInputs = function() { + const prefix = "input_"; + const minInputs = 1; + + let lastConnectedIndex = -1; + for (let i = 0; i < this.inputs.length; i++) { + if (this.inputs[i].name.startsWith(prefix) && this.inputs[i].link != null) { + lastConnectedIndex = i; + } + } + + let removalIndex = this.inputs.length - 1; + while (removalIndex > lastConnectedIndex && this.inputs.length > minInputs && removalIndex >= 0) { + if (this.inputs[removalIndex].name.startsWith(prefix) && this.inputs[removalIndex].link == null) { + if(this.inputs.length > minInputs) { + console.log(`[MultiModel] Removing input ${this.inputs[removalIndex].name}`); + this.removeInput(removalIndex); + } else { + break; + } + } else { + break; + } + removalIndex--; + } + + // Add a new input if the last one is connected OR if there are no inputs yet + if (this.inputs.length === 0 || (this.inputs[this.inputs.length - 1].name.startsWith(prefix) && this.inputs[this.inputs.length - 1].link != null)) { + const nextIndex = this.inputs.length + 1; // 1-based index for name + const name = `${prefix}${nextIndex}`; + console.log(`[MultiModel] Adding input ${name}`); + this.addInput(name, "*"); + } + + app.graph.setDirtyCanvas(true, true); + }; + } + }, +}); \ No newline at end of file diff --git a/js/active_model.js b/js/active_model.js new file mode 100644 index 0000000..435a6de --- /dev/null +++ b/js/active_model.js @@ -0,0 +1,738 @@ +console.log("%c[ActiveModel] JS файл завантажився! (v2-dynamic-inputs)", "color: white; background: #007acc; font-weight: bold; padding: 2px 8px; border-radius: 3px;"); +// --- Loading js/active_model.js --- v2-dynamic-inputs +import { app } from "/scripts/app.js"; // Виправлено шлях на абсолютний + +// Цільовий тип вузла, який ми шукаємо +const TARGET_NODE_TYPE = "ModelParamsPipe"; +// Режими роботи вузлів ComfyUI/LiteGraph +const MODE_ALWAYS = 0; // Завжди активний +const MODE_BYPASS = 4; // Режим обходу (Bypass) +const NODE_TITLE = "Active Model"; // Змінено заголовок +const NODE_TYPE = "ActiveModel"; // І тип + +class ActiveModel { + + // Налаштування для LiteGraph + constructor() { + // Цей вузол є переважно контейнером для дій + this.properties = {}; + console.log(`[${ActiveModel.title}] CONSTRUCTOR CALLED.`); + // Спробуємо знайти та вивести вузли одразу при створенні + this.logTargetNodeNames(); + } + + // Статичні властивості для визначення типу вузла + static title = "Active Model"; + static type = "ActiveModel"; // Унікальний тип для цього вузла + + // Функція для пошуку та логування імен цільових вузлів + logTargetNodeNames() { + console.log(`[${ActiveModel.title}] Searching for nodes of type '${TARGET_NODE_TYPE}'...`); + const nodes = app.graph._nodes.filter(node => node.type === TARGET_NODE_TYPE); + console.log(`[${ActiveModel.title}] Found ${nodes.length} nodes:`); + if (nodes.length > 0) { + nodes.forEach(n => console.log(` - Node ID: ${n.id}, Title: ${n.title}, Current mode: ${n.mode}`)); + } else { + console.log(` (No nodes found)`); + } + return nodes; // Повертаємо для можливого використання в onAction + } + + // Метод для встановлення режиму для всіх знайдених цільових вузлів + setHubsMode(mode) { + const nodes = this.logTargetNodeNames(); + if (nodes.length === 0) { + console.log(`[${ActiveModel.title}] No target nodes found to set mode.`); + return; // Виходимо, якщо немає цільових вузлів + } + const modeStr = mode === MODE_ALWAYS ? "ALWAYS" : (mode === MODE_BYPASS ? "BYPASS" : mode); + console.log(`[${ActiveModel.title}] Attempting to set mode to ${modeStr} for ${nodes.length} nodes.`); + + let changed = false; + for (const node of nodes) { + console.log(` - Processing Node ID: ${node.id}, Title: ${node.title}, Current mode: ${node.mode}`); + if (node.mode !== mode) { + node.mode = mode; + console.log(` - Mode set to: ${node.mode}`); + changed = true; + } else { + console.log(` - Mode already set to ${node.mode}. Skipping.`); + } + } + + if (changed) { + console.log(`[${ActiveModel.title}] Triggering canvas redraw.`); + app.graph.setDirtyCanvas(true, true); + } else { + console.log(`[${ActiveModel.title}] No modes were changed. Skipping redraw.`); + } + } + + // Спрощена обробка дій для тестування + onAction(action) { + console.log(`[${ActiveModel.title}] === onAction ENTERED === Action: ${action}`); + // Просто логуємо знайдені вузли ще раз при виклику дії + this.logTargetNodeNames(); + // Логіку зміни режимів поки що прибрали + // if (action === "Bypass All Hubs") { ... } + } + + // Цей вузол не виконує обчислень, тому onExecute може бути порожнім + onExecute() { + // console.log(`[${ActiveModel.title}] Executed (likely no-op).`); + } + + // Статичний метод для налаштування та реєстрації вузла + static setUp(clazz) { + // Явно встановлюємо статичні властивості, які потрібні LiteGraph + clazz.title = ActiveModel.title; + clazz.type = ActiveModel.type; + clazz.title_mode = LiteGraph.NORMAL_TITLE; + clazz.collapsable = true; + clazz.size = [240, 50]; + clazz.category = "MultiModel"; // Змінюємо категорію на основну + + console.log(`[${ActiveModel.title}] Attempting to register node type via setUp: ${clazz.type}`); + try { + // Реєструємо сам клас + LiteGraph.registerNodeType(clazz.type, clazz); + console.log(`[${ActiveModel.title}] Node type registration via setUp SUCCESSFUL.`); + } catch (e) { + console.error(`[${ActiveModel.title}] Node type registration via setUp FAILED:`, e); + } + } +} + +// Визначаємо дії, доступні в контекстному меню +ActiveModel.exposedActions = ["Log Hub Names", "Enable All Hubs", "Bypass All Hubs", "Toggle All Hubs"]; +// Визначаємо статичні властивості title та type тут, щоб вони були доступні для setUp +ActiveModel.title = "Active Model"; +ActiveModel.type = "ActiveModel"; + +// --- Допоміжні функції --- // + +// Функція пошуку цільових вузлів (тепер отримує їх з сервісу) +function findTargetNodes() { + return HubNodesService.getHubNodes(); +} + +// Функція зміни режиму ОДНОГО вузла +function setHubMode(targetNode, mode) { + if (!targetNode) return; + const currentMode = targetNode.mode; + const modeStr = mode === MODE_ALWAYS ? "ON" : "OFF"; + console.log(`[${NODE_TITLE}] Setting Node ID ${targetNode.id} ('${targetNode.title}') to mode ${modeStr}`); + + // Якщо ми вмикаємо вузол (MODE_ALWAYS), і при цьому поточний режим НЕ MODE_ALWAYS + // (тобто вузол був вимкнений, а тепер ми його вмикаємо) + if (mode === MODE_ALWAYS && currentMode !== MODE_ALWAYS) { + // Потрібно перевірити, чи є інші активні вузли, і вимкнути їх + const allHubNodes = HubNodesService.getHubNodes(); + const otherActiveNodes = allHubNodes.filter(n => n.id !== targetNode.id && n.mode === MODE_ALWAYS); + + if (otherActiveNodes.length > 0) { + console.log(`[${NODE_TITLE}] Found ${otherActiveNodes.length} other active nodes, disabling them...`); + otherActiveNodes.forEach(node => { + node.mode = MODE_BYPASS; + console.log(`[${NODE_TITLE}] Disabled node ID ${node.id} ('${node.title}')`); + + // Оновлюємо віджети всіх байпасерів для цього вузла + updateAllBypasserWidgets(node); + }); + } + } + + // Змінюємо режим цільового вузла, незалежно від того, чи є інші активні вузли + if (currentMode !== mode) { + targetNode.mode = mode; + app.graph.setDirtyCanvas(true, true); + + // Також оновлюємо віджети для цього вузла + updateAllBypasserWidgets(targetNode); + } +} + +// Нова функція для оновлення віджетів у всіх байпасерах для конкретного вузла +function updateAllBypasserWidgets(targetNode) { + if (!targetNode) return; + + console.log(`[${NODE_TITLE}] Updating widgets for node ID: ${targetNode.id} in all bypassers`); + const bypassers = HubNodesService.bypasserNodes; + + bypassers.forEach(bypasser => { + if (!bypasser || !bypasser.widgets) return; + + const widgetName = `hub_${targetNode.id}`; + const widget = bypasser.widgets.find(w => w.name === widgetName); + + if (widget) { + // Оновлюємо значення віджета + const isBypassed = targetNode.mode === MODE_BYPASS; + const newValue = !isBypassed; + + // Оновлюємо також заголовок, щоб він відповідав новому формату + const newLabel = `${targetNode.title || '(Untitled)'}`; + + let changed = false; + + if (widget.value !== newValue) { + console.log(`[${NODE_TITLE}] Updating widget value in bypasser ID: ${bypasser.id} for node ID: ${targetNode.id} to: ${newValue}`); + widget.value = newValue; + changed = true; + } + + if (widget.label !== newLabel) { + console.log(`[${NODE_TITLE}] Updating widget label in bypasser ID: ${bypasser.id} for node ID: ${targetNode.id} to: "${newLabel}"`); + widget.label = newLabel; + changed = true; + } + + if (changed) { + bypasser.graph.setDirtyCanvas(true, false); + } + } + }); +} + +// --- Сервіс для керування вузлами --- // +const HubNodesService = { + hubNodes: [], + bypasserNodes: [], + updateTimeout: null, + updateDelay: 100, + app: null, // Додано для доступу до app + + registerBypasserNode(node) { + if (!this.bypasserNodes.find(n => n.id === node.id)) { + console.log(`[HubNodesService] Registering bypasser node ID: ${node.id}`); + this.bypasserNodes.push(node); + this.scheduleUpdate(`registerBypasser_${node.id}`); + } + }, + + unregisterBypasserNode(node) { + const index = this.bypasserNodes.findIndex(n => n.id === node.id); + if (index !== -1) { + console.log(`[HubNodesService] Unregistering bypasser node ID: ${node.id}`); + this.bypasserNodes.splice(index, 1); + // Оновлення не потрібне при видаленні самого байпасера + } else { + console.log(`[HubNodesService] Node ID ${node.id} not found for unregistration.`); + } + }, + + getHubNodes() { + return [...this.hubNodes]; + }, + + // --- Нові методи для сповіщень від Hub --- // + notifyHubAdded(node) { + if (!node) return; + console.log(`[HubNodesService] Hub node added notification received: ID ${node.id}`); + if (!this.hubNodes.find(n => n.id === node.id)) { + this.hubNodes.push(node); + this.hubNodes.sort((a, b) => a.id - b.id); // Підтримуємо сортування + this.scheduleUpdate(`notifyHubAdded_${node.id}`); + } else { + console.log(`[HubNodesService] Hub node ID ${node.id} already exists.`); + } + }, + + notifyHubRemoved(node) { + if (!node) return; + console.log(`[HubNodesService] Hub node removed notification received: ID ${node.id}`); + const index = this.hubNodes.findIndex(n => n.id === node.id); + if (index !== -1) { + this.hubNodes.splice(index, 1); + this.scheduleUpdate(`notifyHubRemoved_${node.id}`); + } else { + console.log(`[HubNodesService] Hub node ID ${node.id} not found for removal notification.`); + } + }, + + notifyHubRenamed(node) { + if (!node) return; + console.log(`[HubNodesService] Hub node rename notification received: ID ${node.id}`); + // Сам список hubNodes містить посилання на об'єкти вузлів, + // тому оновлювати список не потрібно, зміна title вже відбулася. + // Просто плануємо оновлення віджетів, щоб відобразити нову назву. + this.scheduleUpdate(`notifyHubRenamed_${node.id}`); + }, + // --- Кінець нових методів --- // + + scheduleUpdate(reason = "unknown") { + console.log(`[HubNodesService] Scheduling update. Reason: ${reason}`); + if (this.updateTimeout) { + clearTimeout(this.updateTimeout); + } + this.updateTimeout = setTimeout(() => { + console.log("[HubNodesService] Timeout reached. Running update..."); + this.updateTimeout = null; + // Оновлення списку hubNodes більше не потрібне тут + // this.refreshHubNodes(); + this.bypasserNodes.forEach(node => { + if (node.refreshWidgets) { + console.log(`[HubNodesService] Refreshing widgets for bypasser node ID: ${node.id}`); + node.refreshWidgets(); + } else { + console.warn(`[HubNodesService] Bypasser node ID: ${node.id} missing refreshWidgets method.`); + } + }); + console.log("[HubNodesService] Update finished."); + }, this.updateDelay); + } +}; + +app.registerExtension({ + name: "MultiModel.ActiveModel.ServiceDriven", // Оновлено назву розширення + + setup(appInstance) { + console.log(`[${NODE_TITLE}] === Extension setup CALLED ===`); + // Реєструємо сервіс, щоб він був доступний іншим розширенням + appInstance.HubNodesService = HubNodesService; + HubNodesService.app = appInstance; + + // Додаємо перехоплення onNodeAdded для відстеження додавання нашої ноди + if (appInstance.graph && !appInstance.graph._activemodel_onNodeAdded_attached) { + const origNodeAdded = appInstance.graph.onNodeAdded; + + appInstance.graph.onNodeAdded = function(node) { + // Спочатку викликаємо оригінальний обробник + if (origNodeAdded) { + origNodeAdded.call(this, node); + } + + // Перевіряємо, чи це наша нода ActiveModel + if (node.type === NODE_TYPE) { + console.log(`[${NODE_TITLE}] Our node type was added to graph: ID ${node.id}`); + + // Викликаємо обробку ноди для додавання віджетів + const extension = appInstance.extensions.find(ext => ext.name === "MultiModel.ActiveModel.ServiceDriven"); + if (extension) { + // Конфігуруємо ноду + extension.loadedGraphNode(node, appInstance); + + // Оновлюємо віджети з невеликою затримкою + setTimeout(() => { + if (node.refreshWidgets) { + console.log(`[${NODE_TITLE}] Running refreshWidgets for newly added node ID: ${node.id}`); + node.refreshWidgets(); + } + }, 100); + } + } + }; + + appInstance.graph._activemodel_onNodeAdded_attached = true; + console.log(`[${NODE_TITLE}] Attached our onNodeAdded handler to graph`); + } + + // Початкове сканування потрібне, щоб знайти вузли, які вже існують при завантаженні + setTimeout(() => { + console.log("[HubNodesService] Initial node scan after setup."); + // Знаходимо існуючі Hub та Bypasser ноди і реєструємо їх + let initialHubsFound = 0; + let initialBypassersFound = 0; + appInstance.graph._nodes.forEach(node => { + if (node.type === TARGET_NODE_TYPE) { + HubNodesService.notifyHubAdded(node); + initialHubsFound++; + } else if (node.type === NODE_TYPE) { + // Реєстрація bypasser'а відбувається також у loadedGraphNode, + // але продублюємо тут на випадок проблем з порядком + HubNodesService.registerBypasserNode(node); + initialBypassersFound++; + + // Додаємо додаткову ініціалізацію для вже існуючих Bypasser нод + this.loadedGraphNode(node, appInstance); + } + }); + console.log(`[HubNodesService] Initial scan found ${initialHubsFound} hubs and ${initialBypassersFound} bypassers.`); + + // Додаємо окремий виклик для оновлення віджетів для всіх bypassers з більшою затримкою + if (initialBypassersFound > 0) { + setTimeout(() => { + console.log(`[${NODE_TITLE}] Refreshing widgets for ${initialBypassersFound} bypassers after initial scan`); + HubNodesService.bypasserNodes.forEach(node => { + if (node && node.refreshWidgets) { + node.refreshWidgets(); + } + }); + }, 500); + } + + // Оновлення віджетів запланується всередині notifyHubAdded/registerBypasserNode + }, 500); + }, + + // loadedGraphNode тепер відповідає ТІЛЬКИ за конфігурацію САМОГО ActiveModel + loadedGraphNode(node, appInstance) { + if (node.type === NODE_TYPE) { + console.log(`[${NODE_TITLE}] Configuring node instance ID: ${node.id}`); + node.app = appInstance; + node.IS_BYPASSER_NODE = true; + delete node.onAction; // Видаляємо, бо додамо getActions + + // Визначаємо refreshWidgets + node.refreshWidgets = function() { + console.log(`[${NODE_TITLE} ID: ${this.id}] Running refreshWidgets...`); + const targetNodes = findTargetNodes(); // Отримуємо з сервісу + console.log(`[${NODE_TITLE} ID: ${this.id}] Got ${targetNodes.length} target nodes from service.`); + + // Додаємо детальну діагностику + if (targetNodes.length === 0) { + console.log(`[${NODE_TITLE} ID: ${this.id}] No target nodes found. HubNodesService state:`, + {hubNodesCount: HubNodesService.hubNodes.length, + bypassersCount: HubNodesService.bypasserNodes.length}); + } else { + console.log(`[${NODE_TITLE} ID: ${this.id}] Target nodes details:`, + targetNodes.map(n => ({id: n.id, title: n.title, mode: n.mode}))); + } + + // --- Подальша логіка залишається ТАКОЮ Ж САМОЮ, як і раніше --- + // (Порівняння віджетів, додавання, видалення, оновлення) + const currentWidgets = this.widgets ? [...this.widgets] : []; + let widgetsChanged = false; + const activeWidgetNames = new Set(); + + // Add/Update widgets + targetNodes.forEach(targetNode => { + if (!targetNode) { + console.warn(`[${NODE_TITLE} ID: ${this.id}] Found a null/undefined targetNode in the list from service. Skipping.`); + return; // Пропускаємо невалідні ноди + } + const widgetName = `hub_${targetNode.id}`; + // Прибираємо ID ноди з заголовка + const widgetLabel = `${targetNode.title || '(Untitled)'}`; + const isBypassed = targetNode.mode === MODE_BYPASS; + const widgetValue = !isBypassed; + + activeWidgetNames.add(widgetName); + + let existingWidget = this.widgets?.find(w => w.name === widgetName); + + if (existingWidget) { + let labelChanged = false; + if (existingWidget.label !== widgetLabel) { + existingWidget.label = widgetLabel; + labelChanged = true; + } + if (existingWidget.value !== widgetValue) { + existingWidget.value = widgetValue; + widgetsChanged = true; + } + if (labelChanged) widgetsChanged = true; + + if (!existingWidget.callback) { + existingWidget.callback = (value) => { + // Нова логіка: якщо перемикач вмикається, вимикаємо всі інші + // якщо вимикається - просто вимикаємо + const nodeToChange = app.graph.getNodeById(targetNode.id); + if (nodeToChange) setHubMode(nodeToChange, value ? MODE_ALWAYS : MODE_BYPASS); + }; + widgetsChanged = true; + } + } else { + this.addWidget( + "toggle", widgetName, widgetValue, + (value) => { + // Нова логіка: дозволяємо будь-які переключення + const nodeToChange = app.graph.getNodeById(targetNode.id); + if (nodeToChange) setHubMode(nodeToChange, value ? MODE_ALWAYS : MODE_BYPASS); + else this.refreshWidgets(); + }, + { on: "ON", off: "OFF" } + ); + this.widgets[this.widgets.length - 1].label = widgetLabel; + widgetsChanged = true; + } + }); + + // Remove outdated widgets + let removedWidgets = false; + if (this.widgets) { + for (let i = this.widgets.length - 1; i >= 0; i--) { + const widget = this.widgets[i]; + if (widget.name?.startsWith("hub_") && !activeWidgetNames.has(widget.name)) { + this.widgets.splice(i, 1); + widgetsChanged = true; + removedWidgets = true; + } + } + } + + // Resize node only if widgets were added/removed + if (widgetsChanged) { + // ... (логіка зміни розміру залишається такою ж) ... + const baseHeight = LiteGraph.NODE_TITLE_HEIGHT + 5; + const widgetHeight = LiteGraph.NODE_WIDGET_HEIGHT; + const spacing = 4; + const hubWidgets = this.widgets?.filter(w => w.name?.startsWith("hub_")) || []; + const numWidgets = hubWidgets.length; + const requiredHeight = baseHeight + numWidgets * (widgetHeight + spacing) + (numWidgets > 0 ? spacing : 0); + const computedSize = this.computeSize(); + const newHeight = Math.max(computedSize[1], requiredHeight); + if (Math.abs(this.size[1] - newHeight) > 2 || removedWidgets) { + this.size[1] = newHeight; + this.graph.setDirtyCanvas(true, true); + } else if (widgetsChanged) { + this.graph.setDirtyCanvas(true, false); + } + } + + // Перевірка на кількість активних вузлів після оновлення віджетів + setTimeout(() => { + const activeNodes = targetNodes.filter(node => node.mode === MODE_ALWAYS); + console.log(`[${NODE_TITLE} ID: ${this.id}] After refresh: ${activeNodes.length} active nodes`); + + // Якщо більше одного активного вузла, залишаємо тільки перший + // Але не активуємо автоматично вузли, якщо всі вимкнені + if (activeNodes.length > 1) { + console.log(`[${NODE_TITLE} ID: ${this.id}] Multiple active nodes (${activeNodes.length}), keeping only the first one...`); + // Залишаємо перший вузол активним, інші вимикаємо + for (let i = 1; i < activeNodes.length; i++) { + setHubMode(activeNodes[i], MODE_BYPASS); + + // Оновлюємо відповідний віджет + const widgetName = `hub_${activeNodes[i].id}`; + const widget = this.widgets?.find(w => w.name === widgetName); + if (widget) { + widget.value = false; + } + } + this.graph.setDirtyCanvas(true, false); + } + }, 100); + + console.log(`[${NODE_TITLE} ID: ${this.id}] refreshWidgets finished.`); + }; + + // Визначаємо дії для контекстного меню + node.getActions = function() { + const actions = []; + if (this.widgets?.some(w => w.name.startsWith("hub_"))) { + actions.push({ name: "Activate First Hub", callback: () => this.setAllHubsMode(MODE_ALWAYS) }); + actions.push({ name: "Switch To Next Hub", callback: () => this.toggleAllHubsMode() }); + } + actions.push({ name: "Log Hub Names (Console)", callback: () => this.logTargetNodeNames() }); + return actions; + }; + node.logTargetNodeNames = function() { // Додаємо метод до екземпляра + console.log(`[${NODE_TITLE} ID: ${this.id}] Logging target node names...`); + const nodes = HubNodesService.getHubNodes(); + console.log(` Found ${nodes.length} nodes via service:`); + if (nodes.length > 0) { + nodes.forEach(n => console.log(` - Node ID: ${n.id}, Title: ${n.title}, Current mode: ${n.mode}`)); + } else { + console.log(` (No nodes found)`); + } + }; + + // Оновлений метод для встановлення режиму всіх хабів + node.setAllHubsMode = function(mode) { + console.log(`[${NODE_TITLE} ID: ${this.id}] setAllHubsMode called with mode: ${mode}`); + const hubNodes = HubNodesService.getHubNodes(); + + if (hubNodes.length === 0) { + console.log(`[${NODE_TITLE} ID: ${this.id}] No hub nodes found to set mode.`); + return; + } + + if (mode === MODE_ALWAYS) { + // Активуємо тільки перший вузол, інші вимикаємо + console.log(`[${NODE_TITLE} ID: ${this.id}] Enabling only the first hub node, disabling others.`); + + hubNodes.forEach((node, index) => { + const newMode = index === 0 ? MODE_ALWAYS : MODE_BYPASS; + + if (node.mode !== newMode) { + node.mode = newMode; + updateAllBypasserWidgets(node); + } + }); + + app.graph.setDirtyCanvas(true, true); + } else if (mode === MODE_BYPASS) { + // Якщо режим BYPASS, вимикаємо всі вузли + console.log(`[${NODE_TITLE} ID: ${this.id}] Disabling all hub nodes.`); + + let changed = false; + hubNodes.forEach(node => { + if (node.mode !== MODE_BYPASS) { + node.mode = MODE_BYPASS; + updateAllBypasserWidgets(node); + changed = true; + } + }); + + if (changed) { + app.graph.setDirtyCanvas(true, true); + } + } + }; + + // Оновлений метод для перемикання вузлів + node.toggleAllHubsMode = function() { + console.log(`[${NODE_TITLE} ID: ${this.id}] toggleAllHubsMode called`); + const hubNodes = HubNodesService.getHubNodes(); + + if (hubNodes.length === 0) { + console.log(`[${NODE_TITLE} ID: ${this.id}] No hub nodes found to toggle.`); + return; + } + + // Перевіряємо, чи є хоча б один активний вузол + const activeNodes = hubNodes.filter(n => n.mode === MODE_ALWAYS); + + if (activeNodes.length === 0) { + // Якщо немає активних вузлів, активуємо перший + console.log(`[${NODE_TITLE} ID: ${this.id}] No active nodes, activating the first one.`); + if (hubNodes.length > 0) { + const node = hubNodes[0]; + node.mode = MODE_ALWAYS; + updateAllBypasserWidgets(node); + app.graph.setDirtyCanvas(true, true); + } + } else { + // Якщо є активний вузол, знаходимо його індекс і активуємо наступний + const activeNode = activeNodes[0]; + const currentIndex = hubNodes.findIndex(n => n.id === activeNode.id); + + // Вимикаємо поточний активний вузол + activeNode.mode = MODE_BYPASS; + updateAllBypasserWidgets(activeNode); + + // Знаходимо наступний вузол (або переходимо до першого, якщо це останній) + const nextIndex = (currentIndex + 1) % hubNodes.length; + const nextNode = hubNodes[nextIndex]; + + console.log(`[${NODE_TITLE} ID: ${this.id}] Toggling from node ID ${activeNode.id} to node ID ${nextNode.id}`); + + // Активуємо наступний вузол + nextNode.mode = MODE_ALWAYS; + updateAllBypasserWidgets(nextNode); + + app.graph.setDirtyCanvas(true, true); + } + }; + + // Реєстрація/видалення самого bypasser'а в сервісі + node.onAdded = function() { + console.log(`[${NODE_TITLE} ID: ${this.id}] Bypasser node added to graph. Registering with service.`); + if (appInstance.HubNodesService) { // Перевіряємо наявність сервісу + appInstance.HubNodesService.registerBypasserNode(this); + } else { + console.error(`[${NODE_TITLE} ID: ${this.id}] Cannot register bypasser, HubNodesService not found!`); + } + }; + node.onRemoved = function() { + console.log(`[${NODE_TITLE} ID: ${this.id}] Bypasser node removed from graph. Unregistering from service.`); + if (appInstance.HubNodesService) { + appInstance.HubNodesService.unregisterBypasserNode(this); + } else { + console.error(`[${NODE_TITLE} ID: ${this.id}] Cannot unregister bypasser, HubNodesService not found!`); + } + }; + + // Початкова реєстрація, якщо вузол вже існує при завантаженні + if (appInstance.HubNodesService) { + appInstance.HubNodesService.registerBypasserNode(node); + } else { + // Якщо сервіс ще не створено (малоймовірно, але можливо), + // реєстрація відбудеться пізніше через onAdded + console.warn(`[${NODE_TITLE} ID: ${node.id}] Initial registration deferred, HubNodesService not yet available.`); + } + + // Початкове оновлення віджетів для цього конкретного вузла + setTimeout(() => { if (node.refreshWidgets) node.refreshWidgets(); }, 50); + } + }, + + getExtraMenuOptions(_, options) { + options.push({ + content: "Add Active Model", + callback: () => { + const node = LiteGraph.createNode(NODE_TYPE); + // Записуємо текст для коментаря, щоб показати функціональність + node.properties.desc = "Controls the flow of Model Parameters Pipe Hubs"; + app.graph.add(node); + + // Розміщення вузла в центрі видимої області + const canvas = app.canvas; + const visible_rect = canvas.visible_area; + node.pos[0] = visible_rect[0] + visible_rect[2] * 0.5 - node.size[0] * 0.5; + node.pos[1] = visible_rect[1] + visible_rect[3] * 0.5 - node.size[1] * 0.5; + + console.log(`[${NODE_TITLE}] Node created from menu with ID: ${node.id}`); + + // Явно налаштуємо ноду після створення з меню + if (app.HubNodesService) { + // Отримуємо розширення + const extension = app.extensions.find(ext => ext.name === "MultiModel.ActiveModel.ServiceDriven"); + if (extension) { + // Конфігуруємо ноду + console.log(`[${NODE_TITLE}] Manually configuring node created from menu`); + extension.loadedGraphNode(node, app); + + // Оновлюємо віджети з затримкою + setTimeout(() => { + if (node.refreshWidgets) { + console.log(`[${NODE_TITLE}] Refreshing widgets for node created from menu`); + node.refreshWidgets(); + } + }, 100); + } + } + } + }); + }, + + nodeRegistered(type, clazz) { + console.log(`[${NODE_TITLE}] nodeRegistered called for type: ${type}`); + if (type === NODE_TYPE) { + try { + console.log(`[${NODE_TITLE}] Running additional setup for our node type`); + ActiveModel.setUp(clazz); + } catch (e) { + console.error(`[${NODE_TITLE}] Error in additional node setup:`, e); + } + } + }, + + // Додаємо обробники створення ноди для максимального покриття + nodeCreated(node) { + console.log(`[${NODE_TITLE}] nodeCreated called for node type: ${node?.type || 'undefined'}, ID: ${node?.id || 'undefined'}`); + + if (node && node.type === NODE_TYPE) { + console.log(`[${NODE_TITLE}] Our node created, configuring it...`); + this.loadedGraphNode(node, app); + + // Запускаємо оновлення віджетів з затримкою + setTimeout(() => { + if (node.refreshWidgets) { + console.log(`[${NODE_TITLE}] Refreshing widgets after node creation`); + node.refreshWidgets(); + } + }, 100); + } + }, + + onNodeAdded(node) { + console.log(`[${NODE_TITLE}] onNodeAdded callback called for node type: ${node?.type || 'undefined'}, ID: ${node?.id || 'undefined'}`); + + if (node && node.type === NODE_TYPE) { + console.log(`[${NODE_TITLE}] Our node added via onNodeAdded, configuring it...`); + this.loadedGraphNode(node, app); + + // Запускаємо оновлення віджетів з затримкою + setTimeout(() => { + if (node.refreshWidgets) { + console.log(`[${NODE_TITLE}] Refreshing widgets after node was added`); + node.refreshWidgets(); + } + }, 100); + } + } +}); + +console.log(`[${NODE_TITLE}] JS file loaded`); \ No newline at end of file