├── nodes ├── gpt │ └── __init__.py ├── phi │ ├── __init__.py │ ├── pipeline.py │ └── model_loader.py ├── file_utils │ ├── __init__.py │ ├── random_integer.py │ ├── prompt_loader.py │ └── file_reader.py ├── gemini │ └── __init__.py ├── ollama │ └── __init__.py ├── string_utils │ ├── __init__.py │ ├── random_picker.py │ ├── string_input.py │ ├── flexible_merger.py │ ├── merger.py │ ├── mixer.py │ └── combiner.py ├── latent_generators │ ├── __init__.py │ └── pgsd3_latent.py ├── prompt_generators │ └── __init__.py ├── grok │ └── __init__.py ├── groq │ └── __init__.py ├── minicpm │ └── __init__.py ├── claude │ └── __init__.py ├── __init__.py ├── qwenvl │ └── __init__.py └── image_fx │ └── __init__.py ├── data ├── custom_prompts │ ├── zimage_vision_user_mod.txt │ ├── original.txt │ ├── gemini.txt │ ├── zimage_vision_system.txt │ ├── qwen_simple_blend.txt │ ├── qwen_cinematic_blend.txt │ ├── qwen_detailed_blend.txt │ ├── qwen_super_detailed_blend.txt │ ├── qwen_next_scene_simple.txt │ ├── gemini_ohwx_2.txt │ ├── promptcreator_small.txt │ ├── gemini_text_ohwx.txt │ ├── zimage_vision_analysis.txt │ ├── qwen_video_blend.txt │ ├── qwen_next_scene_video.txt │ ├── zimage_cloner.txt │ ├── t5xxl.txt │ ├── promptcreator_tiny_082124.txt │ ├── gemini_ohwx.txt │ ├── promptcreator_small_ohwx.txt │ ├── promptcreator_tiny_ss_082124.txt │ ├── extractor.txt │ ├── promptcreator_small_082124.txt │ ├── promptcreator_tiny_ohwx.txt │ ├── zimage_vision_merger.txt │ ├── t5xxl_w_text.txt │ ├── promptcreator.txt │ ├── gemini_video.txt │ ├── image_analyze.txt │ ├── gpt4_cloner_prompt.txt │ ├── gpt4_cloner_prompt_next.txt │ ├── promptcreator_evolved.txt │ ├── gpt4_cloner_prompt_combiner.txt │ ├── t5xxl_evolved.txt │ ├── ltxv.txt │ └── gpt4_cloner_prompt_combiner_hard.txt ├── artform.json ├── default_tags.json ├── gpt_models.json ├── gemini_models.json ├── photo_framing.json ├── claude_models.json ├── photography_styles.json ├── next │ ├── people │ │ ├── archtype_male.json │ │ ├── archtype_female.json │ │ ├── archtypes.json │ │ └── eye_color.json │ ├── time │ │ ├── decades.json │ │ ├── century.json │ │ └── time.json │ ├── artist │ │ ├── dark.json │ │ ├── concept.json │ │ ├── painters.json │ │ └── illustrator.json │ ├── cinematic │ │ ├── film_type.json │ │ ├── effects.json │ │ ├── cinematic_effects.json │ │ ├── color_modifiers.json │ │ ├── color_grading.json │ │ ├── directors.json │ │ └── shot_type.json │ ├── science │ │ ├── medical.json │ │ └── astronomy.json │ ├── stuff │ │ ├── fall.json │ │ ├── winter.json │ │ ├── spring.json │ │ ├── summer.json │ │ └── office.json │ ├── keywords │ │ ├── trending.json │ │ ├── detailed.json │ │ ├── glitch.json │ │ ├── unusual.json │ │ ├── genres.json │ │ ├── prayers.json │ │ ├── negatives.json │ │ ├── modifiers.json │ │ └── epic.json │ ├── video_game │ │ ├── type.json │ │ ├── engines.json │ │ └── designers.json │ ├── scene │ │ ├── modifiers.json │ │ ├── scenes.json │ │ └── houseplants.json │ ├── architecture │ │ ├── rooms.json │ │ ├── interior.json │ │ ├── architecture.json │ │ ├── public.json │ │ ├── extreme_location.json │ │ └── homes.json │ ├── poses │ │ └── portrait_poses.json │ ├── feelings │ │ ├── creepy.json │ │ ├── unnerved.json │ │ └── melancholy.json │ ├── human │ │ ├── groups.json │ │ └── festivities.json │ ├── photography │ │ ├── color_grading.json │ │ ├── keywords.json │ │ ├── portrait_photographer.json │ │ └── lenses.json │ ├── typography │ │ ├── features.json │ │ ├── types.json │ │ ├── fonts.json │ │ └── font_styles.json │ ├── character │ │ ├── fantasy.json │ │ ├── action.json │ │ ├── scifi.json │ │ ├── supervillains.json │ │ └── superheroes.json │ ├── interaction │ │ ├── couple_interactions.json │ │ ├── crowd_interactions.json │ │ ├── group_interactions.json │ │ └── couple_negative.json │ ├── vehicle │ │ ├── famous_cars.json │ │ ├── fast_cars.json │ │ └── types.json │ ├── art │ │ ├── styles.json │ │ └── patterns.json │ ├── plots │ │ ├── arthouse.json │ │ ├── action.json │ │ └── horror.json │ └── geography │ │ └── territories.json ├── grok_models.json ├── photo_type.json ├── qwenvl_models.json ├── body_types.json ├── groq_models.json ├── digital_artform.json ├── photographer.json ├── device.json └── hairstyles.json ├── utils ├── __init__.py └── image_utils.py ├── .vscode └── settings.json ├── .claude └── settings.local.json ├── requirements.txt ├── pyproject.toml ├── concat ├── create_prompt.py └── scrape_prompts.py ├── .github └── workflows │ └── publish.yml ├── sdxl_utility.py └── apnext.py /nodes/gpt/__init__.py: -------------------------------------------------------------------------------- 1 | # GPT-based nodes 2 | -------------------------------------------------------------------------------- /nodes/phi/__init__.py: -------------------------------------------------------------------------------- 1 | # Phi model nodes 2 | -------------------------------------------------------------------------------- /data/custom_prompts/zimage_vision_user_mod.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /nodes/file_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # File utility nodes 2 | -------------------------------------------------------------------------------- /nodes/gemini/__init__.py: -------------------------------------------------------------------------------- 1 | # Gemini-based nodes 2 | -------------------------------------------------------------------------------- /nodes/ollama/__init__.py: -------------------------------------------------------------------------------- 1 | # Ollama-based nodes 2 | -------------------------------------------------------------------------------- /data/artform.json: -------------------------------------------------------------------------------- 1 | [ 2 | "photography", 3 | "art" 4 | ] -------------------------------------------------------------------------------- /nodes/string_utils/__init__.py: -------------------------------------------------------------------------------- 1 | # String utility nodes 2 | -------------------------------------------------------------------------------- /nodes/latent_generators/__init__.py: -------------------------------------------------------------------------------- 1 | # Latent generator nodes 2 | -------------------------------------------------------------------------------- /nodes/prompt_generators/__init__.py: -------------------------------------------------------------------------------- 1 | # Prompt generator nodes 2 | -------------------------------------------------------------------------------- /utils/__init__.py: -------------------------------------------------------------------------------- 1 | # Shared utilities for comfyui_dagthomas nodes 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "[python]": { 3 | "editor.defaultFormatter": "ms-python.black-formatter" 4 | }, 5 | "python.formatting.provider": "none" 6 | } 7 | -------------------------------------------------------------------------------- /nodes/phi/pipeline.py: -------------------------------------------------------------------------------- 1 | # Phi Model Pipeline Helper 2 | 3 | class PhiModelPipeline: 4 | def __init__(self): 5 | self.model = None 6 | self.processor = None 7 | -------------------------------------------------------------------------------- /data/default_tags.json: -------------------------------------------------------------------------------- 1 | [ 2 | "a man", 3 | "a woman", 4 | "a young man", 5 | "a young woman", 6 | "a middle aged man", 7 | "a middle aged woman", 8 | "an old man", 9 | "an old woman" 10 | ] -------------------------------------------------------------------------------- /data/gpt_models.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "gpt-5", 4 | "gpt-5-mini", 5 | "gpt-5-nano", 6 | "gpt-4.1", 7 | "gpt-4.1-mini", 8 | "gpt-4.1-nano" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /data/gemini_models.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "gemini-2.5-pro", 4 | "gemini-flash-latest", 5 | "gemini-2.5-flash", 6 | "gemini-flash-lite-latest", 7 | "gemini-2.5-flash-lite" 8 | ] 9 | } -------------------------------------------------------------------------------- /data/custom_prompts/original.txt: -------------------------------------------------------------------------------- 1 | Analyze the provided images and create a detailed visually descriptive caption that combines elements from all images into a single cohesive composition. This caption will be used as a prompt for a text-to-image AI system. -------------------------------------------------------------------------------- /data/photo_framing.json: -------------------------------------------------------------------------------- 1 | [ 2 | "extreme close-up", 3 | "close-up", 4 | "medium close-up", 5 | "medium shot", 6 | "long shot", 7 | "establishing shot", 8 | "medium full shot", 9 | "full shot", 10 | "upper body shot", 11 | "full body shot" 12 | ] -------------------------------------------------------------------------------- /data/claude_models.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "claude-sonnet-4.5", 4 | "claude-sonnet-4", 5 | "claude-sonnet-3.7", 6 | "claude-opus-4.1", 7 | "claude-opus-4", 8 | "claude-haiku-3.5", 9 | "claude-haiku-3" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /data/photography_styles.json: -------------------------------------------------------------------------------- 1 | [ 2 | "high fashion photography", 3 | "avant garde photography", 4 | "fashion photography", 5 | "portrait photography", 6 | "landscape photography", 7 | "documentary photography", 8 | "street photography", 9 | "action photography", 10 | "vintage photography" 11 | ] -------------------------------------------------------------------------------- /.claude/settings.local.json: -------------------------------------------------------------------------------- 1 | { 2 | "permissions": { 3 | "allow": [ 4 | "Bash(dir:*)", 5 | "Bash(mkdir:*)", 6 | "Bash(find:*)", 7 | "Bash(python -c:*)", 8 | "Bash(python -m py_compile:*)", 9 | "Bash(nul)" 10 | ], 11 | "deny": [], 12 | "ask": [] 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Pillow==10.4.0 2 | requests==2.32.5 3 | openai==1.44.0 4 | blend-modes==2.1.0 5 | huggingface_hub>=0.34.0 6 | color_matcher==0.5.0 7 | chardet==5.2.0 8 | google-generativeai==0.7.2 9 | anthropic 10 | transformers>=4.40.0 11 | decord>=0.6.0 12 | scipy>=1.10.0 13 | tqdm>=4.67.1 14 | huggingface_hub[hf_xet] 15 | -------------------------------------------------------------------------------- /data/next/people/archtype_male.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "gentleman", 7 | "man", 8 | "middle-aged man", 9 | "millennial man", 10 | "male model", 11 | "old man", 12 | "young man" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/next/people/archtype_female.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "lady", 7 | "middle-aged woman", 8 | "female millennial", 9 | "female model", 10 | "old woman", 11 | "woman", 12 | "young woman" 13 | ] 14 | } -------------------------------------------------------------------------------- /data/custom_prompts/gemini.txt: -------------------------------------------------------------------------------- 1 | Analyze this image where two images are faded into each other. Identify the primary elements and concepts from each image. Then, combine these elements and concepts to create a unified scene. Generate a detailed and evocative description of this blended scene, highlighting its key features and atmosphere. 2 | ALWAYS limit your output to 200 words -------------------------------------------------------------------------------- /data/next/time/decades.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "decade", 5 | "items": [ 6 | "2000s", 7 | "2010s", 8 | "2020s", 9 | "20s", 10 | "30s", 11 | "40s", 12 | "50s", 13 | "60s", 14 | "70s", 15 | "80s", 16 | "90s" 17 | ] 18 | } -------------------------------------------------------------------------------- /data/grok_models.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "grok-beta", 4 | "grok-2-1212", 5 | "grok-2-vision-1212", 6 | "grok-2-public-beta", 7 | "grok-2-image-1212", 8 | "grok-3", 9 | "grok-3-mini", 10 | "grok-4-0709", 11 | "grok-4-fast-reasoning", 12 | "grok-4-fast-non-reasoning", 13 | "grok-code-fast-1" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /nodes/grok/__init__.py: -------------------------------------------------------------------------------- 1 | # Grok (xAI) Nodes 2 | 3 | from .text_node import GrokTextNode 4 | from .vision_node import GrokVisionNode 5 | 6 | NODE_CLASS_MAPPINGS = { 7 | "GrokTextNode": GrokTextNode, 8 | "GrokVisionNode": GrokVisionNode, 9 | } 10 | 11 | NODE_DISPLAY_NAME_MAPPINGS = { 12 | "GrokTextNode": "APNext Grok Text Generator", 13 | "GrokVisionNode": "APNext Grok Vision Analyzer", 14 | } 15 | -------------------------------------------------------------------------------- /nodes/groq/__init__.py: -------------------------------------------------------------------------------- 1 | # Groq Nodes 2 | 3 | from .text_node import GroqTextNode 4 | from .vision_node import GroqVisionNode 5 | 6 | NODE_CLASS_MAPPINGS = { 7 | "GroqTextNode": GroqTextNode, 8 | "GroqVisionNode": GroqVisionNode, 9 | } 10 | 11 | NODE_DISPLAY_NAME_MAPPINGS = { 12 | "GroqTextNode": "APNext Groq Text Generator", 13 | "GroqVisionNode": "APNext Groq Vision Analyzer", 14 | } 15 | 16 | -------------------------------------------------------------------------------- /nodes/minicpm/__init__.py: -------------------------------------------------------------------------------- 1 | # MiniCPM-V Node 2 | from .video_node import MiniCPMVideoNode 3 | from .image_node import MiniCPMImageNode 4 | 5 | NODE_CLASS_MAPPINGS = { 6 | "MiniCPMVideoNode": MiniCPMVideoNode, 7 | "MiniCPMImageNode": MiniCPMImageNode, 8 | } 9 | 10 | NODE_DISPLAY_NAME_MAPPINGS = { 11 | "MiniCPMVideoNode": "APNext MiniCPM Video", 12 | "MiniCPMImageNode": "APNext MiniCPM Image", 13 | } 14 | 15 | -------------------------------------------------------------------------------- /data/custom_prompts/zimage_vision_system.txt: -------------------------------------------------------------------------------- 1 | Generate an image based on the detailed visual specification provided. Follow the description precisely, paying attention to all visual details, composition, lighting, and style mentioned. 2 | Only either describe person as man or woman, never mention names of people 3 | Describe only the main person in the image in detail 4 | Always include lights, materials and camera angles used 5 | 6 | -------------------------------------------------------------------------------- /data/custom_prompts/qwen_simple_blend.txt: -------------------------------------------------------------------------------- 1 | Analyze the provided composite image. Synthesize the most prominent subject, action, and setting from its different visual sections into a single, concise sentence describing a new, unified scene. The sentence should follow the structure: "[Blended Subject] is [Blended Action] in/at a [Blended Setting]." State only the essential blended facts, creating a new, coherent visual concept without interpretation. -------------------------------------------------------------------------------- /nodes/claude/__init__.py: -------------------------------------------------------------------------------- 1 | # Claude (Anthropic) Nodes 2 | 3 | from .text_node import ClaudeTextNode 4 | from .vision_node import ClaudeVisionNode 5 | 6 | NODE_CLASS_MAPPINGS = { 7 | "ClaudeTextNode": ClaudeTextNode, 8 | "ClaudeVisionNode": ClaudeVisionNode, 9 | } 10 | 11 | NODE_DISPLAY_NAME_MAPPINGS = { 12 | "ClaudeTextNode": "APNext Claude Text Generator", 13 | "ClaudeVisionNode": "APNext Claude Vision Analyzer", 14 | } 15 | -------------------------------------------------------------------------------- /nodes/__init__.py: -------------------------------------------------------------------------------- 1 | # Node modules for comfyui_dagthomas 2 | 3 | # Import FX nodes 4 | from .image_fx import NODE_CLASS_MAPPINGS as FX_NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS as FX_NODE_DISPLAY_NAME_MAPPINGS 5 | 6 | # Add FX nodes to the global mappings 7 | NODE_CLASS_MAPPINGS = {} 8 | NODE_DISPLAY_NAME_MAPPINGS = {} 9 | 10 | NODE_CLASS_MAPPINGS.update(FX_NODE_CLASS_MAPPINGS) 11 | NODE_DISPLAY_NAME_MAPPINGS.update(FX_NODE_DISPLAY_NAME_MAPPINGS) -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "comfyui_dagthomas" 3 | description = "Easy prompting for generation of endless random art pieces and photographs!" 4 | version = "1.0.0" 5 | license = "LICENSE" 6 | 7 | [project.urls] 8 | Repository = "https://github.com/dagthomas/comfyui_dagthomas" 9 | # Used by Comfy Registry https://comfyregistry.org 10 | 11 | [tool.comfy] 12 | PublisherId = "dagthomas" 13 | DisplayName = "comfyui_dagthomas" 14 | Icon = "" 15 | -------------------------------------------------------------------------------- /data/photo_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | "front view", 3 | "bilaterally symmetrical", 4 | "side view", 5 | "back view", 6 | "from above", 7 | "from below", 8 | "from behind", 9 | "wide angle view", 10 | "fisheyes view", 11 | "macro view", 12 | "overhead shot", 13 | "top down", 14 | "birds eye view", 15 | "high angle", 16 | "slightly above", 17 | "straight on", 18 | "hero view", 19 | "low view", 20 | "selfie" 21 | ] -------------------------------------------------------------------------------- /data/next/time/century.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "12th century", 7 | "13th century", 8 | "14th century", 9 | "15th century", 10 | "16th century", 11 | "17th century", 12 | "18th century", 13 | "19th century", 14 | "20th century", 15 | "21st century", 16 | "22nd century", 17 | "23rd century" 18 | ] 19 | } -------------------------------------------------------------------------------- /data/next/people/archtypes.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "geek", 7 | "gentleman", 8 | "lady", 9 | "man", 10 | "middle-aged man", 11 | "middle-aged woman", 12 | "millennial", 13 | "model", 14 | "old man", 15 | "old woman", 16 | "person", 17 | "woman", 18 | "young man", 19 | "young woman" 20 | ] 21 | } -------------------------------------------------------------------------------- /data/custom_prompts/qwen_cinematic_blend.txt: -------------------------------------------------------------------------------- 1 | Describe a single, evocative cinematic shot that intelligently blends the concepts from the provided composite image. Establish the shot type and camera angle for a new composite subject placed within a blended setting that merges the environments and props. Describe a unified cinematic lighting scheme and color grade that harmonizes the distinct visual styles. Conclude by defining the overall mood and artistic style of this new, synthesized cinematic moment. -------------------------------------------------------------------------------- /data/custom_prompts/qwen_detailed_blend.txt: -------------------------------------------------------------------------------- 1 | From the provided composite image, create a new, unified scene by blending key elements from its different sections. Construct a descriptive paragraph (2-3 sentences) that begins by describing a new composite subject which merges features or clothing from the original subjects. Then, place this subject in a blended environment that combines settings and objects. Conclude by describing how the different lighting styles and atmospheres interact in this single, cohesive scene. -------------------------------------------------------------------------------- /concat/create_prompt.py: -------------------------------------------------------------------------------- 1 | import json 2 | import random 3 | 4 | # Step 1: Load JSON data from a file with UTF-8 encoding 5 | with open('output.json', 'r', encoding='utf-8') as file: 6 | json_list = json.load(file) 7 | 8 | # Step 2: Randomly select 5 elements from the list 9 | random_values = random.sample(json_list, 10) 10 | 11 | # Step 3: Join the selected elements into a single string separated by commas 12 | result_string = ", ".join(random_values) 13 | 14 | # Step 4: Output the result 15 | print(result_string) -------------------------------------------------------------------------------- /utils/image_utils.py: -------------------------------------------------------------------------------- 1 | # Image utility functions 2 | 3 | import torch 4 | import numpy as np 5 | from PIL import Image 6 | 7 | def tensor2pil(t_image: torch.Tensor) -> Image: 8 | """Convert ComfyUI tensor to PIL Image""" 9 | return Image.fromarray(np.clip(255.0 * t_image.cpu().numpy().squeeze(), 0, 255).astype(np.uint8)) 10 | 11 | def pil2tensor(image: Image) -> torch.Tensor: 12 | """Convert PIL Image to ComfyUI tensor""" 13 | return torch.from_numpy(np.array(image).astype(np.float32) / 255.0).unsqueeze(0) 14 | -------------------------------------------------------------------------------- /nodes/qwenvl/__init__.py: -------------------------------------------------------------------------------- 1 | # QwenVL Nodes 2 | 3 | # Suppress HuggingFace symlink warning on Windows 4 | import os 5 | os.environ["HF_HUB_DISABLE_SYMLINKS_WARNING"] = "1" 6 | 7 | from .vision_node import QwenVLVisionNode 8 | from .vision_cloner import QwenVLVisionCloner 9 | from .video_node import QwenVLVideoNode 10 | from .zimage_vision import QwenVLZImageVision 11 | from .next_scene import QwenVLNextScene 12 | from .frame_prep import QwenVLFramePrep 13 | 14 | __all__ = ['QwenVLVisionNode', 'QwenVLVisionCloner', 'QwenVLVideoNode', 'QwenVLZImageVision', 'QwenVLNextScene', 'QwenVLFramePrep'] 15 | -------------------------------------------------------------------------------- /data/custom_prompts/qwen_super_detailed_blend.txt: -------------------------------------------------------------------------------- 1 | Generate a single, immersive paragraph describing a new, hyper-detailed scene synthesized from the elements in the provided composite image. Create a composite subject, then describe its specific expression and the intricate textures and materials of its blended attire. Methodically build a unified environment by merging foreground, midground, and background elements from the different sections. Crucially, describe the complex interplay of the combined lighting sources, detailing how highlights and shadows from one style cast upon surfaces and textures from another. -------------------------------------------------------------------------------- /data/next/artist/dark.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "Art by ", 3 | "separator": "and", 4 | "endprompt": "", 5 | "items": [ 6 | "alfred kubin", 7 | "bastien lecouffe-deharme", 8 | "daniel merriam", 9 | "dave mckean", 10 | "earnst haeckel", 11 | "edmund dulac", 12 | "emmanuel shiu", 13 | "jean delville", 14 | "john bauer", 15 | "karol bak", 16 | "mikalojus konstantinas čiurlionis", 17 | "peter gric", 18 | "roger ballen", 19 | "wayne barlowe", 20 | "zdzisław beksiński" 21 | ] 22 | } -------------------------------------------------------------------------------- /data/next/cinematic/film_type.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "and", 4 | "endprompt": "", 5 | "items": [ 6 | "16mm film", 7 | "28mm film", 8 | "35mm film", 9 | "4k resolution", 10 | "70mm film", 11 | "8k resolution", 12 | "8mm film", 13 | "9.5mm film", 14 | "anamorphic", 15 | "betamax", 16 | "chromakey", 17 | "cinemascope", 18 | "cinematic", 19 | "cinematography", 20 | "cineon", 21 | "cinestill", 22 | "prores", 23 | "super 8mm film", 24 | "u-matic", 25 | "vhs" 26 | ] 27 | } -------------------------------------------------------------------------------- /data/next/science/medical.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "medical treatment", 5 | "items": [ 6 | "3D ultrasound", 7 | "4D ultrasound", 8 | "Angiography", 9 | "CT scan", 10 | "CTA", 11 | "Dental x-ray", 12 | "DEXA scan", 13 | "Doppler imaging", 14 | "Echocardiography", 15 | "Fluoroscopy", 16 | "Intraoral photography", 17 | "MRA", 18 | "MRI", 19 | "Myelography", 20 | "Ophthalmic photography", 21 | "PET scan", 22 | "Sonography", 23 | "Thermography", 24 | "Ultrasound", 25 | "X-ray" 26 | ] 27 | } -------------------------------------------------------------------------------- /data/custom_prompts/qwen_next_scene_simple.txt: -------------------------------------------------------------------------------- 1 | You are a cinematographer assistant. Analyze the provided image(s) and generate the next scene in a visual narrative. 2 | 3 | PREVIOUS SCENE: 4 | ##ORIGINAL_PROMPT## 5 | 6 | Your task is to: 7 | 1. Understand what the previous prompt described 8 | 2. Analyze what the current image shows 9 | 3. Create a natural, cinematic transition to the next scene 10 | 11 | OUTPUT FORMAT: 12 | Start with "Next Scene:" and provide a 2-3 sentence description including: 13 | - Camera movement or framing change 14 | - New elements appearing or exiting frame 15 | - Atmospheric/environmental evolution 16 | 17 | CRITICAL: Output ONLY the "Next Scene:" prompt. No explanations or preamble. 18 | 19 | -------------------------------------------------------------------------------- /data/next/stuff/fall.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "wearing", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Apple cider", 7 | "Beanie", 8 | "Boots", 9 | "Cable knit sweater", 10 | "Cardigan", 11 | "Cozy scarf", 12 | "Fall leaves", 13 | "Flannel shirt", 14 | "Gloves", 15 | "Halloween decorations", 16 | "Hot chocolate", 17 | "Knee-high socks", 18 | "Long-sleeve shirt", 19 | "Pumpkin pie", 20 | "Pumpkin spice latte", 21 | "Rain boots", 22 | "Sweater", 23 | "Thermal leggings", 24 | "Umbrella", 25 | "Wool coat", 26 | "Wool hat" 27 | ] 28 | } -------------------------------------------------------------------------------- /data/qwenvl_models.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": [ 3 | "Qwen3-VL-2B-Instruct", 4 | "Qwen3-VL-2B-Thinking", 5 | "Qwen3-VL-2B-Instruct-FP8", 6 | "Qwen3-VL-2B-Thinking-FP8", 7 | "Qwen3-VL-4B-Instruct", 8 | "Qwen3-VL-4B-Thinking", 9 | "Qwen3-VL-4B-Instruct-FP8", 10 | "Qwen3-VL-4B-Thinking-FP8", 11 | "Qwen3-VL-8B-Instruct", 12 | "Qwen3-VL-8B-Thinking", 13 | "Qwen3-VL-8B-Instruct-FP8", 14 | "Qwen3-VL-8B-Thinking-FP8", 15 | "Qwen3-VL-32B-Instruct", 16 | "Qwen3-VL-32B-Thinking", 17 | "Qwen3-VL-32B-Instruct-FP8", 18 | "Qwen3-VL-32B-Thinking-FP8", 19 | "Qwen2.5-VL-3B-Instruct", 20 | "Qwen2.5-VL-7B-Instruct" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish to Comfy registry 2 | on: 3 | workflow_dispatch: 4 | push: 5 | branches: 6 | - main 7 | paths: 8 | - "pyproject.toml" 9 | 10 | permissions: 11 | issues: write 12 | 13 | jobs: 14 | publish-node: 15 | name: Publish Custom Node to registry 16 | runs-on: ubuntu-latest 17 | if: ${{ github.repository_owner == 'dagthomas' }} 18 | steps: 19 | - name: Check out code 20 | uses: actions/checkout@v4 21 | - name: Publish Custom Node 22 | uses: Comfy-Org/publish-node-action@v1 23 | with: 24 | ## Add your own personal access token to your Github Repository secrets and reference it here. 25 | personal_access_token: ${{ secrets.REGISTRY_ACCESS_TOKEN }} 26 | -------------------------------------------------------------------------------- /data/next/keywords/trending.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "featured on 500px", 7 | "featured on cgsociety", 8 | "featured on conceptartworld", 9 | "featured on getty images", 10 | "featured on pixiv", 11 | "trending on 500px", 12 | "trending on artstation", 13 | "trending on behance", 14 | "trending on cgsociety", 15 | "trending on conceptartworld", 16 | "trending on deviantart", 17 | "trending on flickr", 18 | "trending on getty images", 19 | "trending on pixiv", 20 | "trending on zbrushcentral", 21 | "unsplash contest winner", 22 | "zbrush central", 23 | "zbrushcentral" 24 | ] 25 | } -------------------------------------------------------------------------------- /data/next/cinematic/effects.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "and", 4 | "endprompt": "optical effect", 5 | "items": [ 6 | "Abney effect", 7 | "Afterimage", 8 | "Bezold effect", 9 | "Bezold–Brücke shift", 10 | "Chromatic adaptation", 11 | "Chromostereopsis", 12 | "Color assimilation", 13 | "Color constancy", 14 | "Fechner color", 15 | "Helmholtz–Kohlrausch effect", 16 | "Hunt effect", 17 | "McCollough effect", 18 | "Metamerism", 19 | "Neon color spreading", 20 | "Opponent process", 21 | "Phi phenomenon", 22 | "Purkinje effect", 23 | "Simultaneous contrast", 24 | "Spreading effect", 25 | "Subjective color", 26 | "Watercolor illusion" 27 | ] 28 | } -------------------------------------------------------------------------------- /data/next/video_game/type.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "artstyle", 5 | "items": [ 6 | "Pixel Art", 7 | "3D Graphics", 8 | "2D Graphics", 9 | "Hand-Drawn Art", 10 | "Low Poly", 11 | "Cel Shading", 12 | "Photorealistic", 13 | "Vector Graphics", 14 | "Voxel Art", 15 | "ASCII Art", 16 | "Retro", 17 | "Isometric", 18 | "Stylized", 19 | "Minimalist", 20 | "Flat Design", 21 | "Claymation", 22 | "Paper Craft", 23 | "Motion Capture", 24 | "Silhouette", 25 | "Stop Motion", 26 | "Parallax Scrolling", 27 | "Digital Painting", 28 | "Mixed Media", 29 | "Procedural Generation", 30 | "Sprite-Based" 31 | ] 32 | } -------------------------------------------------------------------------------- /data/body_types.json: -------------------------------------------------------------------------------- 1 | [ 2 | "pretty", 3 | "chubby", 4 | "midweight", 5 | "overweight", 6 | "fat", 7 | "flabby", 8 | "buxom", 9 | "voluptuous", 10 | "hefty", 11 | "pudgy", 12 | "plump", 13 | "obese", 14 | "morbidly obese", 15 | "stout", 16 | "rotund", 17 | "thick-bodied", 18 | "thicc", 19 | "thick", 20 | "beefy", 21 | "portly", 22 | "tubby", 23 | "overweight", 24 | "(slightly overweight)", 25 | "buff", 26 | "burly", 27 | "fit", 28 | "well-built", 29 | "well-endowed", 30 | "muscular", 31 | "stocky", 32 | "big-boned", 33 | "curvy", 34 | "flabby", 35 | "flyweight", 36 | "skinny", 37 | "too skinny", 38 | "anorexic", 39 | "not skinny", 40 | "slender", 41 | "lanky", 42 | "slim", 43 | "slight" 44 | ] -------------------------------------------------------------------------------- /data/next/people/eye_color.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "amber eyes", 7 | "amethyst eyes", 8 | "aquamarine eyes", 9 | "black eyes", 10 | "blue eyes", 11 | "brown eyes", 12 | "coral eyes", 13 | "dark brown eyes", 14 | "gold eyes", 15 | "green eyes", 16 | "grey eyes", 17 | "grey-blue eyes", 18 | "hazel eyes", 19 | "ice blue eyes", 20 | "jade eyes", 21 | "light blue eyes", 22 | "peach eyes", 23 | "pink eyes", 24 | "purple eyes", 25 | "red eyes", 26 | "ruby eyes", 27 | "sapphire eyes", 28 | "silver eyes", 29 | "teal eyes", 30 | "turquoise eyes", 31 | "yellow eyes" 32 | ] 33 | } -------------------------------------------------------------------------------- /data/groq_models.json: -------------------------------------------------------------------------------- 1 | { 2 | "text_models": [ 3 | "llama-3.3-70b-versatile", 4 | "llama-3.1-8b-instant", 5 | "groq/compound", 6 | "groq/compound-mini", 7 | "meta-llama/llama-4-maverick-17b-128e-instruct", 8 | "meta-llama/llama-4-scout-17b-16e-instruct", 9 | "moonshotai/kimi-k2-instruct", 10 | "moonshotai/kimi-k2-instruct-0905", 11 | "openai/gpt-oss-120b", 12 | "openai/gpt-oss-20b", 13 | "qwen/qwen3-32b", 14 | "allam-2-7b" 15 | ], 16 | "vision_models": [ 17 | "meta-llama/llama-4-scout-17b-16e-instruct", 18 | "meta-llama/llama-4-maverick-17b-128e-instruct" 19 | ], 20 | "source": "manual_configuration", 21 | "note": "Edit this file to add/remove models. Text models are for text generation, vision models support image analysis." 22 | } -------------------------------------------------------------------------------- /data/next/science/astronomy.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Andromeda", 7 | "Big Bang", 8 | "Black hole", 9 | "Comet", 10 | "Comet trail", 11 | "Dark energy", 12 | "Dark matter", 13 | "Exoplanet", 14 | "Galaxy", 15 | "Jupiter", 16 | "Mars", 17 | "Mercury", 18 | "Messier", 19 | "Meteor", 20 | "Meteorite", 21 | "Milky Way", 22 | "Nebula", 23 | "Nebulae", 24 | "Neptune", 25 | "Planet", 26 | "Pleiades", 27 | "Pluto", 28 | "Ringed planet", 29 | "Saturn", 30 | "Spiral galaxy", 31 | "Star", 32 | "Star cluster", 33 | "Uranus", 34 | "Venus", 35 | "Worm hole" 36 | ] 37 | } -------------------------------------------------------------------------------- /data/next/scene/modifiers.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "scene", 5 | "items": [ 6 | "After rain", 7 | "Apocalyptic", 8 | "Astounding", 9 | "Aurora", 10 | "Beautiful", 11 | "Cloudy", 12 | "Cumulonimbus", 13 | "Dark skies", 14 | "Drizzle", 15 | "Eerie", 16 | "Fluffy clouds", 17 | "Foggy", 18 | "Foreboding", 19 | "Glistening", 20 | "Hurricane", 21 | "Misty", 22 | "Moody", 23 | "Overcast", 24 | "Peaceful", 25 | "Picturesque", 26 | "Rain", 27 | "Rainbow", 28 | "Serene", 29 | "Starry", 30 | "Storm", 31 | "Sun rays", 32 | "Sunny", 33 | "Tornado", 34 | "Tranquil", 35 | "Wet", 36 | "Windy" 37 | ] 38 | } -------------------------------------------------------------------------------- /data/next/architecture/rooms.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Attic", 7 | "Basement", 8 | "Bathroom", 9 | "Bedroom", 10 | "Boardroom", 11 | "Break room", 12 | "Conference room", 13 | "Copy room", 14 | "Deck", 15 | "Den", 16 | "Garage", 17 | "Guest room", 18 | "Home office", 19 | "Kitchen", 20 | "Laundry room", 21 | "Living room", 22 | "Mail room", 23 | "Media room", 24 | "Meeting room", 25 | "Mudroom", 26 | "Patio", 27 | "Playroom", 28 | "Pool house", 29 | "Porch", 30 | "Rec room", 31 | "Reception", 32 | "Server room", 33 | "Shed", 34 | "Storage room", 35 | "Sunroom", 36 | "Training room" 37 | ] 38 | } -------------------------------------------------------------------------------- /data/custom_prompts/gemini_ohwx_2.txt: -------------------------------------------------------------------------------- 1 | Analyze the images and extract key visual, stylistic, and thematic elements. If there is text in the images, quote the exact text: "[exact text]" and describe its placement. Suggest a fitting font/style. 2 | 3 | Create a detailed image generation prompt blending all concepts into a unified scene. Ensure ##TAG## (always lowercase name) is the standout main character, described as a ##SEX## with ##PRONOUNS##. Focus on: 4 | 5 | Main subject's appearance, pose, and expression. 6 | Artistic style and mood (cinematic, dramatic, minimal, etc.). 7 | Lighting and color palette (soft, moody, vibrant, warm, etc.). 8 | Setting details (urban, forest, surreal, etc.). 9 | Camera angle, rotation, and focus (close-up, wide shot, low angle, etc.). 10 | Never split scenes; merge all elements into one concept. Avoid bloated words; keep descriptions precise and shallow. 11 | CRITICAL: ONLY OUTPUT THE FINISHED PROMPT -------------------------------------------------------------------------------- /data/custom_prompts/promptcreator_small.txt: -------------------------------------------------------------------------------- 1 | Describe the image as a professional art critic. Create a cohesive, realistic scene in a single paragraph. Include: 2 | 3 | If you find text in the image: 4 | Quote the exact text and describe its placement in the scene: "[exact text]" 5 | Describe placement 6 | Suggest fitting font/style 7 | 8 | Main subject details 9 | Artistic style and theme 10 | Setting and narrative contribution 11 | Lighting characteristics 12 | Color palette and emotional tone 13 | Camera angle and focus 14 | 15 | Merge image concepts if there is more than one. 16 | Always blend the concepts, never talk about splits or parallel. 17 | Do not split or divide scenes, or talk about them differently - merge everything to one scene and one scene only. 18 | Blend all elements into unified reality. Use image generation prompt language. No preamble, questions, or commentary. 19 | CRITICAL: TRY TO OUTPUT ONLY IN 75 WORDS -------------------------------------------------------------------------------- /data/custom_prompts/gemini_text_ohwx.txt: -------------------------------------------------------------------------------- 1 | Analyze the provided text input. Based on the text: 2 | 3 | Create a cohesive, realistic scene in a single paragraph. Include: 4 | Main subject details 5 | Artistic style and theme 6 | Setting and narrative contribution 7 | Lighting characteristics 8 | Color palette and emotional tone 9 | Narrative perspective and focus 10 | 11 | The main subject is always called ##TAG## (always lowercase name) and is always a ##SEX##, ##PRONOUNS##, etc. 12 | There are never any other main characters than ##TAG##. 13 | Blend all elements into a unified reality. Use descriptive, evocative language. 14 | No preamble, questions, or commentary. 15 | ALWAYS make the main character: ##TAG## (always lowercase name) and is always a ##SEX##, ##PRONOUNS##, etc 16 | ALWAYS make the main character stand out in the scene 17 | CRITICAL: TRY TO OUTPUT ONLY IN ##WORDS## WORDS 18 | NEVER transition a scene, always make it ONE scene. 19 | -------------------------------------------------------------------------------- /data/next/stuff/winter.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "wearing", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Beanie", 7 | "Blanket", 8 | "Boots", 9 | "Button-up coat", 10 | "Cable knit sweater", 11 | "Car scraper", 12 | "Earmuffs", 13 | "Flannel shirt", 14 | "Gloves", 15 | "Hot cocoa", 16 | "Ice skates", 17 | "Long johns", 18 | "Mid-length coat", 19 | "Mittens", 20 | "Nose warmer", 21 | "Parka", 22 | "Scarf", 23 | "Snow boots", 24 | "Snow shovel", 25 | "Snow sled", 26 | "Snowman kit", 27 | "Space heater", 28 | "Sweater vest", 29 | "Thermal socks", 30 | "Turtleneck sweater", 31 | "Winter hat", 32 | "Winter jacket", 33 | "Winter boots", 34 | "Woolen scarf", 35 | "Woolen mittens" 36 | ] 37 | } -------------------------------------------------------------------------------- /data/next/time/time.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "afternoon", 7 | "afternoon light", 8 | "afternoon sun", 9 | "afternoon twilight", 10 | "dawn", 11 | "daybreak", 12 | "dusk", 13 | "early morning", 14 | "early morning light", 15 | "evening light", 16 | "evening sun", 17 | "evening twilight", 18 | "golden hour", 19 | "late afternoon", 20 | "late afternoon light", 21 | "late night", 22 | "midday", 23 | "midnight", 24 | "midnight sun", 25 | "morning", 26 | "morning light", 27 | "morning sun", 28 | "morning twilight", 29 | "night time", 30 | "nocturnal", 31 | "pre-dawn", 32 | "predawn", 33 | "sunrise", 34 | "sunset", 35 | "twilight" 36 | ] 37 | } -------------------------------------------------------------------------------- /nodes/string_utils/random_picker.py: -------------------------------------------------------------------------------- 1 | # RandomStringPicker Node 2 | 3 | import random 4 | 5 | from ...utils.constants import CUSTOM_CATEGORY 6 | 7 | 8 | class RandomStringPicker: 9 | @classmethod 10 | def INPUT_TYPES(cls): 11 | return { 12 | "required": { 13 | "string1": ("STRING", {"multiline": True, "forceInput": True}), 14 | "string2": ("STRING", {"multiline": True, "forceInput": True}), 15 | }, 16 | "optional": { 17 | "seed": ("INT", {"default": 0, "min": 0, "max": 0xFFFFFFFFFFFFFFFF}), 18 | }, 19 | } 20 | 21 | RETURN_TYPES = ("STRING",) 22 | RETURN_NAMES = ("output",) 23 | FUNCTION = "pick_random" 24 | CATEGORY = CUSTOM_CATEGORY 25 | 26 | def pick_random(self, string1, string2, seed=0): 27 | random.seed(seed) 28 | result = random.choice([string1, string2]) 29 | return (result,) 30 | 31 | -------------------------------------------------------------------------------- /data/custom_prompts/zimage_vision_analysis.txt: -------------------------------------------------------------------------------- 1 | Analyze this image in detail and output a JSON object describing what you see. Include any relevant details about: 2 | 3 | Here is an example output: 4 | 5 | { 6 | "scene": "overall scene description", 7 | "subjects": [ 8 | { 9 | "description": "detailed subject description", 10 | "position": "where in frame", 11 | "action": "what they're doing" 12 | } 13 | ], 14 | "style": "artistic style", 15 | "color_palette": ["#hex1", "#hex2", "#hex3"], 16 | "lighting": "lighting description", 17 | "mood": "emotional tone", 18 | "background": "background details", 19 | "composition": "framing and layout", 20 | "camera": { 21 | "angle": "camera angle", 22 | "lens": "lens type", 23 | "depth_of_field": "focus behavior" 24 | } 25 | } 26 | 27 | CRITICAL: Output ONLY the JSON object. No explanations, no markdown code blocks, no extra text. Start with { and end with }. 28 | 29 | -------------------------------------------------------------------------------- /data/next/poses/portrait_poses.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "3/4 shot", 7 | "against a wall", 8 | "arms crossed", 9 | "close-up", 10 | "environmental portrait", 11 | "full body shot", 12 | "head tilted to the side", 13 | "headshot", 14 | "leaning", 15 | "leaning against a wall", 16 | "leaning forward", 17 | "looking down", 18 | "looking off into the distance", 19 | "looking off to the side", 20 | "looking over one shoulder", 21 | "looking straight at the camera", 22 | "lying down", 23 | "lying on their back", 24 | "mid-range", 25 | "propped up on one elbow (resting)", 26 | "propped up on one hand (sitting or standing)", 27 | "sitting", 28 | "sitting down with legs crossed", 29 | "standing", 30 | "wide shot" 31 | ] 32 | } -------------------------------------------------------------------------------- /nodes/string_utils/string_input.py: -------------------------------------------------------------------------------- 1 | # StringInput Node 2 | 3 | from ...utils.constants import CUSTOM_CATEGORY 4 | 5 | 6 | class StringInput: 7 | @classmethod 8 | def INPUT_TYPES(cls): 9 | return { 10 | "required": { 11 | "prompt": ("STRING", {"multiline": True, "default": ""}), 12 | }, 13 | "optional": { 14 | "string": ("STRING", {"multiline": True, "forceInput": True}), 15 | "separator": ("STRING", {"default": " "}), 16 | }, 17 | } 18 | 19 | RETURN_TYPES = ("STRING",) 20 | RETURN_NAMES = ("output",) 21 | FUNCTION = "process" 22 | CATEGORY = CUSTOM_CATEGORY 23 | 24 | def process(self, prompt, string="", separator=" "): 25 | if string and prompt: 26 | result = f"{string}{separator}{prompt}" 27 | elif string: 28 | result = string 29 | else: 30 | result = prompt 31 | return (result,) 32 | 33 | -------------------------------------------------------------------------------- /data/next/keywords/detailed.json: -------------------------------------------------------------------------------- 1 | [ 2 | "accurate", 3 | "artistically-detailed", 4 | "carefully-detailed", 5 | "clear", 6 | "complex", 7 | "crisp", 8 | "detailed", 9 | "detailed picture", 10 | "distinct", 11 | "elaborate", 12 | "expertly-detailed", 13 | "exquisitely-detailed", 14 | "fine-grained", 15 | "finely-crafted", 16 | "finely-detailed", 17 | "high-definition", 18 | "high-quality", 19 | "high-resolution", 20 | "hyper-realistic", 21 | "impressively-detailed", 22 | "in-focus", 23 | "intricate", 24 | "layered", 25 | "lifelike", 26 | "magnified", 27 | "masterfully-detailed", 28 | "multidimensional", 29 | "multifaceted", 30 | "multilayered", 31 | "naturalistic", 32 | "painstakingly-detailed", 33 | "photorealistic", 34 | "precise", 35 | "realistic", 36 | "richly-detailed", 37 | "sharp", 38 | "skillfully-detailed", 39 | "super-realistic", 40 | "textured", 41 | "well-defined" 42 | ] -------------------------------------------------------------------------------- /data/custom_prompts/qwen_video_blend.txt: -------------------------------------------------------------------------------- 1 | Analyze the provided composite video, which displays multiple distinct clips simultaneously (e.g., in a grid or sequence). Your mission is to blend the core narrative, cinematic, and aesthetic elements from all clips to describe a single, new, and cohesive video sequence. 2 | Construct a short, continuous scene by: 3 | Synthesizing a core action: Combine a subject from one clip with the action, context, or environment of another. 4 | Merging the cinematography: Apply the camera movement (e.g., dolly shot, handheld), shot type, and angle from one clip to the new, blended subject and scene. 5 | Unifying the aesthetic: Blend the color grading, lighting style, and overall visual texture (e.g., film grain, clean digital) into a single, consistent look. 6 | The final output should be a single, descriptive paragraph that reads like a detailed shot description for this new, imagined video clip. Focus on motion, action, and atmosphere. Do not describe the original clips separately. Output only the final description text. -------------------------------------------------------------------------------- /data/next/cinematic/cinematic_effects.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "and", 4 | "endprompt": "effects", 5 | "items": [ 6 | "anamorphic", 7 | "blur", 8 | "bokeh", 9 | "cgi", 10 | "chromakey", 11 | "chromatic aberrations", 12 | "cinemascope", 13 | "cineon", 14 | "cinestill", 15 | "de-noise", 16 | "deep focus", 17 | "depth of field", 18 | "distortion", 19 | "film still", 20 | "flicker", 21 | "glare", 22 | "grain", 23 | "grit", 24 | "haze", 25 | "lens flares", 26 | "light leaks", 27 | "motion blur", 28 | "motion control", 29 | "rack focus", 30 | "rear projection", 31 | "shallow focus", 32 | "sharpen", 33 | "special effects", 34 | "starbursts", 35 | "u-matic", 36 | "underwater shot", 37 | "vhs", 38 | "vignetting", 39 | "visual effects" 40 | ] 41 | } -------------------------------------------------------------------------------- /data/custom_prompts/qwen_next_scene_video.txt: -------------------------------------------------------------------------------- 1 | You are a video director assistant specialized in creating smooth, continuous scene transitions for AI video generation. 2 | 3 | PREVIOUS SCENE DESCRIPTION: 4 | ##ORIGINAL_PROMPT## 5 | 6 | Your task is to: 7 | 1. Analyze the current frame(s) carefully 8 | 2. Understand the established motion, composition, and atmosphere 9 | 3. Generate the NEXT scene that flows naturally from the current one 10 | 11 | Focus on VIDEO-FRIENDLY transitions: 12 | - Smooth camera movements (no jarring cuts) 13 | - Gradual lighting/atmosphere changes 14 | - Continuous subject motion 15 | - Natural environmental progression 16 | 17 | AVOID: 18 | - Abrupt scene changes 19 | - Teleporting subjects 20 | - Instant lighting changes 21 | - Breaking spatial continuity 22 | 23 | OUTPUT: 24 | Start with "Next Scene:" and describe in 2-4 sentences: 25 | - The camera movement continuation 26 | - Subject/environment progression 27 | - Atmospheric evolution 28 | 29 | Keep descriptions concise for AI video generation. No explanations, just the prompt. 30 | 31 | -------------------------------------------------------------------------------- /data/custom_prompts/zimage_cloner.txt: -------------------------------------------------------------------------------- 1 | Analyze this image in extreme detail and describe what you see in natural language. Your goal is to capture the visual essence so precisely that the description could be used to recreate the image's exact style, lighting, and mood. 2 | 3 | Write a flowing, descriptive information: 4 | 5 | { 6 | "scene": "overall scene description", 7 | "subjects": [ 8 | { 9 | "description": "detailed subject description", 10 | "position": "where in frame", 11 | "action": "what they're doing" 12 | } 13 | ], 14 | "style": "artistic style", 15 | "color_palette": ["#hex1", "#hex2", "#hex3"], 16 | "lighting": "lighting description", 17 | "mood": "emotional tone", 18 | "background": "background details", 19 | "composition": "framing and layout", 20 | "camera": { 21 | "angle": "camera angle", 22 | "lens": "lens type", 23 | "depth_of_field": "focus behavior" 24 | } 25 | } 26 | 27 | CRITICAL: Output ONLY the JSON object. No explanations, no markdown code blocks, no extra text. Start with { and end with }. 28 | 29 | -------------------------------------------------------------------------------- /data/custom_prompts/t5xxl.txt: -------------------------------------------------------------------------------- 1 | Please analyze the image and extract the following information into a structured format: 2 | 3 | 1. Subject: Identify the main subject or actor in the image. 4 | 2. Action: Describe the primary action being performed. 5 | 3. Object: Identify the main object involved in the action (if applicable). 6 | 4. Location: Describe the setting or location of the scene. 7 | 5. Time: Estimate the time of day or period, if discernible. 8 | 6. Style: Describe the overall style or mood of the image. 9 | 10 | Present the extracted information in the following JSON format: 11 | 12 | { 13 | "Subject": "{subject}", 14 | "Action": "{action}", 15 | "Object": "{object}", 16 | "Location": "{location}", 17 | "Time": "{time}", 18 | "Style": "{style}" 19 | } 20 | 21 | If any field cannot be determined from the image, use "Not discernible" as the value. 22 | Ensure that the analysis reads as if it were describing a single, complex piece of art created from multiple sources. 23 | 24 | Provide the output as a pure JSON string without any additional explanation, commentary, or Markdown formatting. -------------------------------------------------------------------------------- /data/next/feelings/creepy.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "feeling", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "anxiety", 7 | "chilling", 8 | "creepy", 9 | "creepy-crawly", 10 | "disquieting", 11 | "disturbing", 12 | "dread", 13 | "eerie", 14 | "fear", 15 | "frightening", 16 | "ghostly", 17 | "ghoulish", 18 | "goosebumps", 19 | "grotesque", 20 | "hair-raising", 21 | "haunting", 22 | "horror", 23 | "jump scares", 24 | "macabre", 25 | "mysterious", 26 | "nauseating", 27 | "nightmarish", 28 | "ominous", 29 | "panic", 30 | "petrifying", 31 | "phobia", 32 | "revolting", 33 | "scares", 34 | "shock", 35 | "sickening", 36 | "sinister", 37 | "spine-chilling", 38 | "spine-tingling", 39 | "spooky", 40 | "terror", 41 | "terrorizing", 42 | "traumatic", 43 | "unsettling", 44 | "weird" 45 | ] 46 | } -------------------------------------------------------------------------------- /data/next/artist/concept.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "Art by ", 3 | "separator": "and", 4 | "endprompt": "", 5 | "items": [ 6 | "albert bierstadt", 7 | "alfons maria mucha", 8 | "anato finnstark", 9 | "anders zorn", 10 | "chesley bonestell", 11 | "chriss foss", 12 | "dean ellis", 13 | "don maitz", 14 | "federico pelat", 15 | "frederick edwin church", 16 | "gediminas pranckevicius", 17 | "greg rutkowski", 18 | "hethe srodawa", 19 | "hyun lee", 20 | "igor wolkski", 21 | "inyi han", 22 | "jakub rozalski", 23 | "james gurney", 24 | "james jean", 25 | "james paick", 26 | "jean delville", 27 | "jerome lacoste", 28 | "john harris", 29 | "john howe", 30 | "kim jung gi", 31 | "marc simonetti", 32 | "michael hussar", 33 | "michael whelan", 34 | "pieter bruegel the elder", 35 | "simon stalenhag", 36 | "thomas cole", 37 | "thomas kinkade", 38 | "zdzisław beksiński" 39 | ] 40 | } -------------------------------------------------------------------------------- /data/custom_prompts/promptcreator_tiny_082124.txt: -------------------------------------------------------------------------------- 1 | Craft a unified, realistic scene description in one paragraph. Include: 2 | 3 | Text Elements: ONLY if text is present, quote it, describe its placement, and suggest a fitting font: "[exact text]" If not, do not add text. 4 | Main Subject: Describe the central figure or object, including their appearance and emotional state. 5 | Character Interaction: Detail how characters interact with each other or the environment within a single scene. 6 | Style and Theme: Define the artistic style and theme. 7 | Setting and Lighting: Describe the setting, noting how the lighting influences the scene as a whole. 8 | Color Palette and Emotion: Highlight the overall color palette and emotional tone of the scene. 9 | Camera Angle and Focus: Specify the camera angle and focus that captures the unified scene. 10 | Instructions: Seamlessly integrate all elements into one vivid, coherent scene description in about 75 words. The scene must depict a single, unified moment without being split into different segments. Use precise, image-generation language. 11 | 12 | NEVER talk about contrasting scenes, or contrasts at all. -------------------------------------------------------------------------------- /data/next/keywords/glitch.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "image has ", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "anomaly", 7 | "artifact", 8 | "banding", 9 | "blemish", 10 | "bug", 11 | "burn-in", 12 | "chromatic aberration", 13 | "compression artifact", 14 | "defect", 15 | "disruption", 16 | "distortion", 17 | "double exposure", 18 | "dropped frames", 19 | "flare streaking", 20 | "flaw", 21 | "flicker", 22 | "glitch", 23 | "halation", 24 | "halo effect", 25 | "hiccup", 26 | "image corruption", 27 | "image ghosting", 28 | "impairment", 29 | "interference", 30 | "jitter", 31 | "lens streaking", 32 | "mosaic effect", 33 | "noise", 34 | "pixelation", 35 | "reflection", 36 | "refraction", 37 | "rolling shutter effect", 38 | "scrambled signal", 39 | "signal degradation", 40 | "snag", 41 | "stutter", 42 | "tearing", 43 | "warping" 44 | ] 45 | } -------------------------------------------------------------------------------- /data/next/human/groups.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "grouping of", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "assembly", 7 | "attendees", 8 | "audience", 9 | "bunch", 10 | "bystanders", 11 | "clients", 12 | "community", 13 | "commuters", 14 | "congregation", 15 | "crowd", 16 | "customers", 17 | "delegates", 18 | "fans", 19 | "folks", 20 | "gathering", 21 | "group", 22 | "guests", 23 | "horde", 24 | "host", 25 | "individuals", 26 | "mass", 27 | "members", 28 | "mob", 29 | "multitude", 30 | "observers", 31 | "onlookers", 32 | "participants", 33 | "patrons", 34 | "people", 35 | "pilgrims", 36 | "population", 37 | "proprietors", 38 | "representatives", 39 | "society", 40 | "spectators", 41 | "swarm", 42 | "throng", 43 | "tourists", 44 | "travelers", 45 | "viewers", 46 | "visitors", 47 | "witnesses" 48 | ] 49 | } -------------------------------------------------------------------------------- /nodes/file_utils/random_integer.py: -------------------------------------------------------------------------------- 1 | # RandomIntegerNode Node 2 | 3 | from ...utils.constants import CUSTOM_CATEGORY 4 | import random 5 | 6 | 7 | class RandomIntegerNode: 8 | @classmethod 9 | def INPUT_TYPES(cls): 10 | return { 11 | "required": { 12 | "min_value": ( 13 | "INT", 14 | {"default": 0, "min": -1000000000, "max": 1000000000, "step": 1}, 15 | ), 16 | "max_value": ( 17 | "INT", 18 | {"default": 10, "min": -1000000000, "max": 1000000000, "step": 1}, 19 | ), 20 | } 21 | } 22 | 23 | RETURN_TYPES = ("INT",) 24 | FUNCTION = "generate_random_int" 25 | CATEGORY = CUSTOM_CATEGORY # Replace with your actual category 26 | 27 | def generate_random_int(self, min_value, max_value): 28 | if min_value > max_value: 29 | min_value, max_value = max_value, min_value 30 | result = random.randint(min_value, max_value) 31 | # print(f"Generating random int between {min_value} and {max_value}: {result}") 32 | return (result,) 33 | 34 | -------------------------------------------------------------------------------- /data/next/feelings/unnerved.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "feeling", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "agitated", 7 | "anxious", 8 | "apprehensive", 9 | "befuddled", 10 | "bewildered", 11 | "confused", 12 | "discombobulated", 13 | "discomposed", 14 | "disorganized", 15 | "disoriented", 16 | "disquieted", 17 | "disturbed", 18 | "edgy", 19 | "fidgety", 20 | "flustered", 21 | "frazzled", 22 | "frenzied", 23 | "high-strung", 24 | "jangled", 25 | "jittery", 26 | "jumpy", 27 | "keyed up", 28 | "nervous", 29 | "on edge", 30 | "on tenterhooks", 31 | "rattled", 32 | "restless", 33 | "ruffled", 34 | "skittish", 35 | "stressed", 36 | "tense", 37 | "thrown", 38 | "thrown off", 39 | "unbalanced", 40 | "uneasy", 41 | "unglued", 42 | "unhinged", 43 | "unnerved", 44 | "upset", 45 | "uptight", 46 | "worried", 47 | "wound up" 48 | ] 49 | } -------------------------------------------------------------------------------- /data/next/keywords/unusual.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "abnormal", 7 | "amazing", 8 | "atypical", 9 | "avant-garde", 10 | "baffling", 11 | "bewildering", 12 | "bizarre", 13 | "confusing", 14 | "crazy", 15 | "curious", 16 | "different", 17 | "eccentric", 18 | "enigmatic", 19 | "exceptional", 20 | "extraordinary", 21 | "far-out", 22 | "funky", 23 | "kooky", 24 | "mystifying", 25 | "nutty", 26 | "odd", 27 | "off-kilter", 28 | "offbeat", 29 | "one-of-a-kind", 30 | "out of the ordinary", 31 | "out-of-the-box", 32 | "outlandish", 33 | "peculiar", 34 | "phenomenal", 35 | "puzzling", 36 | "quirky", 37 | "rare", 38 | "remarkable", 39 | "singular", 40 | "strange", 41 | "uncommon", 42 | "unconventional", 43 | "unexpected", 44 | "unique", 45 | "unusual", 46 | "wacky", 47 | "weird", 48 | "wild", 49 | "zany" 50 | ] 51 | } -------------------------------------------------------------------------------- /data/next/feelings/melancholy.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "feeling", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "aching", 7 | "bleak", 8 | "broken-hearted", 9 | "cheerless", 10 | "contemplative", 11 | "dejected", 12 | "depressed", 13 | "desolate", 14 | "despondent", 15 | "disheartened", 16 | "downcast", 17 | "dreary", 18 | "forlorn", 19 | "gloomy", 20 | "grieving", 21 | "grim", 22 | "heartbroken", 23 | "heavy-hearted", 24 | "hopeless", 25 | "hurting", 26 | "introspective", 27 | "introverted", 28 | "isolated", 29 | "joyless", 30 | "lonely", 31 | "low", 32 | "meditative", 33 | "melancholic", 34 | "mournful", 35 | "nostalgic", 36 | "pained", 37 | "pensive", 38 | "quiet", 39 | "regretful", 40 | "reserved", 41 | "reticent", 42 | "sad", 43 | "serious", 44 | "sober", 45 | "somber", 46 | "sorrowful", 47 | "still", 48 | "thoughtful", 49 | "unhappy", 50 | "wistful" 51 | ] 52 | } -------------------------------------------------------------------------------- /data/next/human/festivities.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "festive", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "baisakhi", 7 | "bastille day", 8 | "bonfire night", 9 | "burning man", 10 | "carnival", 11 | "cherry blossom festival", 12 | "chinese new year", 13 | "christmas", 14 | "day of the dead", 15 | "dia de los muertos", 16 | "diwali", 17 | "diwali (festival of lights)", 18 | "dussehra", 19 | "easter", 20 | "eid al-fitr", 21 | "festa della repubblica", 22 | "festival of colors", 23 | "halloween", 24 | "hanukkah", 25 | "holi", 26 | "independence day", 27 | "kite festival", 28 | "kwanzaa", 29 | "la tomatina", 30 | "mardi gras", 31 | "naadam festival", 32 | "new year's eve", 33 | "nuit blanche", 34 | "oktoberfest", 35 | "pride month", 36 | "ramadan", 37 | "rio carnival", 38 | "san fermin", 39 | "songkran", 40 | "st. patrick's day", 41 | "thanksgiving", 42 | "valentine's day", 43 | "venice carnival", 44 | "vesak" 45 | ] 46 | } -------------------------------------------------------------------------------- /nodes/string_utils/flexible_merger.py: -------------------------------------------------------------------------------- 1 | # FlexibleStringMergerNode Node 2 | 3 | from ...utils.constants import CUSTOM_CATEGORY 4 | 5 | 6 | class FlexibleStringMergerNode: 7 | @classmethod 8 | def INPUT_TYPES(cls): 9 | return { 10 | "required": { 11 | "string1": ("STRING", {"default": ""}), 12 | }, 13 | "optional": { 14 | "string2": ("STRING", {"default": ""}), 15 | "string3": ("STRING", {"default": ""}), 16 | "string4": ("STRING", {"default": ""}), 17 | }, 18 | } 19 | 20 | RETURN_TYPES = ("STRING",) 21 | FUNCTION = "merge_strings" 22 | CATEGORY = CUSTOM_CATEGORY 23 | 24 | def merge_strings(self, string1, string2="", string3="", string4=""): 25 | def process_input(s): 26 | if isinstance(s, list): 27 | return ", ".join(str(item) for item in s) 28 | return str(s).strip() 29 | 30 | strings = [ 31 | process_input(s) 32 | for s in [string1, string2, string3, string4] 33 | if process_input(s) 34 | ] 35 | if not strings: 36 | return "" # Return an empty string if no non-empty inputs 37 | return (" AND ".join(strings),) 38 | 39 | -------------------------------------------------------------------------------- /data/next/artist/painters.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "Art by ", 3 | "separator": "and", 4 | "endprompt": "", 5 | "items": [ 6 | "andrew wyeth", 7 | "bartolomé esteban murillo", 8 | "benjamin west", 9 | "camille pissarro", 10 | "caravaggio", 11 | "caspar david friedrich", 12 | "claude monet", 13 | "diego rivera", 14 | "diego velázquez", 15 | "edouard manet", 16 | "edward hopper", 17 | "eugène delacroix", 18 | "frans hals", 19 | "frederic edwin church", 20 | "georgia o'keeffe", 21 | "gustave courbet", 22 | "henri de toulouse-lautrec", 23 | "jackson pollock", 24 | "jan vermeer", 25 | "jmw turner", 26 | "johan barthold jongkind", 27 | "johannes vermeer", 28 | "john constable", 29 | "john singleton copley", 30 | "leonardo da vinci", 31 | "mark rothko", 32 | "mary cassatt", 33 | "michelangelo", 34 | "pablo picasso", 35 | "paul cézanne", 36 | "peter paul rubens", 37 | "pierre-auguste renoir", 38 | "raphael", 39 | "rembrandt", 40 | "salvador dali", 41 | "thomas gainsborough", 42 | "vincent van gogh", 43 | "william blake" 44 | ] 45 | } -------------------------------------------------------------------------------- /data/custom_prompts/gemini_ohwx.txt: -------------------------------------------------------------------------------- 1 | Analyze this image. If you find text in the image: 2 | Quote the exact text and describe its placement in the scene: "[exact text]" 3 | Describe placement 4 | Suggest fitting font/style 5 | 6 | Describe the image as a professional art critic. Create a cohesive, realistic scene in a single paragraph. Include: 7 | Main subject details 8 | Artistic style and theme 9 | Setting and narrative contribution 10 | Lighting characteristics 11 | Color palette and emotional tone 12 | Camera angle, rotation, movement and focus 13 | Main subject is always called ##TAG## (always lowercase name) and is always a ##SEX##, ##PRONOUNS##, etc 14 | There are never any other main characters than ##TAG##. 15 | Merge image concepts if there is more than one. 16 | Always blend the concepts, never talk about splits or parallel. 17 | Do not split or divide scenes, or talk about them differently - merge everything to one scene and one scene only. 18 | Blend all elements into unified reality. Use image generation prompt language. No preamble, questions, or commentary. 19 | ALWAYS make the main character: ##TAG## (always lowercase name) and is always a ##SEX##, ##PRONOUNS##, etc 20 | ALWAYS make the main character stand out in the scene 21 | CRITICAL: TRY TO OUTPUT ONLY IN ##WORDS## WORDS 22 | NEVER transition a scene, always make it ONE scene. -------------------------------------------------------------------------------- /data/custom_prompts/promptcreator_small_ohwx.txt: -------------------------------------------------------------------------------- 1 | Describe the image as a professional art critic. Create a cohesive, realistic scene in a single paragraph. Include: 2 | 3 | If you find text in the image: 4 | Quote the exact text and describe its placement in the scene: "[exact text]" 5 | Describe placement 6 | Suggest fitting font/style 7 | 8 | Main subject details 9 | Artistic style and theme 10 | Setting and narrative contribution 11 | Lighting characteristics 12 | Color palette and emotional tone 13 | Camera angle, rotation, movement and focus 14 | 15 | Main subject is always called called ##TAG## (always lowercase name) and is always a ##SEX##, ##PRONOUS##, etc 16 | There are never any other main characters than ##TAG##. 17 | Merge image concepts if there is more than one. 18 | Always blend the concepts, never talk about splits or parallel. 19 | Do not split or divide scenes, or talk about them differently - merge everything to one scene and one scene only. 20 | Blend all elements into unified reality. Use image generation prompt language. No preamble, questions, or commentary. 21 | ALWAYS make the main character: ##TAG## (always lowercase name) and is always a ##SEX##, ##PRONOUNS##, etc 22 | ALWAYS make the main character stand out in the scene 23 | CRITICAL: TRY TO OUTPUT ONLY IN ##WORDS## WORDS 24 | NEVER transition a scene, always make it ONE scene. -------------------------------------------------------------------------------- /data/custom_prompts/promptcreator_tiny_ss_082124.txt: -------------------------------------------------------------------------------- 1 | Craft a unified, realistic scene description in one paragraph. Include: 2 | 3 | Text Elements: ONLY if text is present, quote it, describe its placement, and suggest a fitting font: "[exact text]" If not, do not add text. 4 | Main Subject: Describe the central figure or object, including their appearance and emotional state. 5 | Character Interaction: Detail how characters interact with each other or the environment within a single scene. 6 | Style and Theme: Define the artistic style and theme. 7 | Room: Describe the theme of the spaceship room, example: med bay, lobby, war room, kitchen 8 | Setting and Lighting: Describe the setting, noting how the lighting influences the scene as a whole. 9 | Color Palette and Emotion: Highlight the overall color palette and emotional tone of the scene. 10 | Camera Angle and Focus: Specify the camera angle and focus that captures the unified scene. 11 | Instructions: Seamlessly integrate all elements into one vivid, coherent scene description. The scene must depict a single, unified moment without being split into different segments. Use precise, image-generation language. 12 | 13 | NEVER talk about contrasting scenes, or contrasts at all. 14 | ALWAYS output in less than 100 words 15 | 16 | CRITICAL: Everything must happen in a spaceship, always mention the word spaceship 17 | -------------------------------------------------------------------------------- /data/next/stuff/spring.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "wearing", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Blossom", 7 | "Cardigan", 8 | "Gardening gloves", 9 | "Light jacket", 10 | "Rain boots", 11 | "Raincoat", 12 | "Rain umbrella", 13 | "Rubber boots", 14 | "Shorts", 15 | "Spring flowers", 16 | "Sunglasses", 17 | "Sweater", 18 | "T-shirt", 19 | "Tulips", 20 | "Watering can", 21 | "Windbreaker", 22 | "Wind chime", 23 | "Wool sweater", 24 | "Yoga mat", 25 | "April showers", 26 | "Bicycle", 27 | "Bird feeder", 28 | "Botanical print dress", 29 | "Crisp air", 30 | "Easter eggs", 31 | "Flower pots", 32 | "Garden tools", 33 | "Gingham shirt", 34 | "Hiking shoes", 35 | "Kite", 36 | "Lightweight scarf", 37 | "Outdoor picnic set", 38 | "Potted plants", 39 | "Rain hat", 40 | "Renewable energy", 41 | "Sandal", 42 | "Seasonal fruit", 43 | "Spring cleaning supplies", 44 | "Spring jacket", 45 | "Trellis", 46 | "Water bottle", 47 | "Wildflowers", 48 | "Woven basket", 49 | "Zippered hoodie" 50 | ] 51 | } -------------------------------------------------------------------------------- /data/custom_prompts/extractor.txt: -------------------------------------------------------------------------------- 1 | Analyze the image provided and describe the following: 2 | 3 | Characters: Describe the appearance, clothing, and actions of the people in the image, including their facial expressions, posture, and interactions. 4 | Setting: Identify the environment and key elements in the background (e.g., buildings, vehicles, objects) that set the scene. Include any relevant text seen in the background. 5 | Mood and Emotion: Describe the emotional tone and mood of the scene. How do the characters’ body language and expressions contribute to the atmosphere? 6 | Color Palette: Provide an analysis of the primary colors used in the image, highlighting any dominant colors and their contribution to the scene's mood (muted, vibrant, monochromatic, etc.). 7 | Lighting and Shadows: Discuss the lighting conditions in the scene and how they influence the overall tone (e.g., soft, harsh, moody). Is there a warm or cold lighting scheme? 8 | LUT (Look-Up Table): If possible, describe the filmic LUT applied to the image. Does it evoke a particular era or cinematic feel (e.g., sepia tones, high contrast, desaturation)? 9 | Overall Cinematic Feel: Summarize the cinematic qualities of the image, including the era, historical references, or specific visual styles (such as noir, retro, or modern). 10 | Provide a detailed breakdown of these aspects to offer a complete visual analysis. -------------------------------------------------------------------------------- /data/custom_prompts/promptcreator_small_082124.txt: -------------------------------------------------------------------------------- 1 | Describe the image as a professional art critic. Craft a cohesive, realistic scene in a single paragraph that seamlessly blends all elements. Include: 2 | 3 | Text Elements: Quote the exact text found in the image and describe its placement in the scene: "[exact text]." Suggest a fitting font or style that complements the overall aesthetic. This can be highly imaginative, like flower font, ice font etc. 4 | 5 | Main Subject: Detail the central figure or object, focusing on its significance and how it interacts with the surrounding environment. 6 | 7 | Artistic Style and Theme: Define the artistic style and overarching theme, emphasizing how they contribute to the narrative and emotional tone. 8 | 9 | Setting and Lighting: Describe the setting, noting how the lighting enhances the mood and atmosphere. 10 | 11 | Color Palette and Emotion: Analyze the color palette, highlighting how it shapes the emotional tone of the scene. 12 | 13 | Camera Angle and Focus: Specify the camera angle and focus, showing how they direct attention and impact the viewer's perception. 14 | 15 | Instructions: Merge all concepts into a unified, immersive scene without splitting or dividing the narrative. Use expressive, image-generation prompt language to paint a vivid picture in the reader's mind. Aim to convey the entire scene in approximately 75 words. -------------------------------------------------------------------------------- /nodes/string_utils/merger.py: -------------------------------------------------------------------------------- 1 | # StringMergerNode Node 2 | 3 | from ...utils.constants import CUSTOM_CATEGORY 4 | 5 | 6 | class StringMergerNode: 7 | @classmethod 8 | def INPUT_TYPES(cls): 9 | return { 10 | "required": { 11 | "string1": ("STRING", {"default": "", "forceInput": True}), 12 | "string2": ("STRING", {"default": "", "forceInput": True}), 13 | "use_and": ("BOOLEAN", {"default": False}), 14 | } 15 | } 16 | 17 | RETURN_TYPES = ("STRING",) 18 | FUNCTION = "merge_strings" 19 | CATEGORY = CUSTOM_CATEGORY 20 | 21 | def merge_strings(self, string1, string2, use_and): 22 | def process_input(s): 23 | if isinstance(s, list): 24 | return ",".join(str(item).strip() for item in s) 25 | return str(s).strip() 26 | 27 | processed_string1 = process_input(string1) 28 | processed_string2 = process_input(string2) 29 | separator = " AND " if use_and else "," 30 | merged = f"{processed_string1}{separator}{processed_string2}" 31 | 32 | # Remove double commas and clean spaces around commas 33 | merged = merged.replace(",,", ",").replace(" ,", ",").replace(", ", ",") 34 | 35 | # Clean leading and trailing spaces 36 | merged = merged.strip() 37 | 38 | return (merged,) 39 | -------------------------------------------------------------------------------- /data/next/cinematic/color_modifiers.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "and", 4 | "endprompt": "color modifier", 5 | "items": [ 6 | "autumnal", 7 | "bold", 8 | "bright", 9 | "clear", 10 | "cool", 11 | "dark", 12 | "deep", 13 | "dull", 14 | "earthy", 15 | "faded", 16 | "foggy", 17 | "glossy", 18 | "glowing", 19 | "harsh", 20 | "hazy", 21 | "industrial", 22 | "iridescent", 23 | "light", 24 | "luxurious", 25 | "matte", 26 | "metallic", 27 | "misty", 28 | "muted", 29 | "natural", 30 | "nautical", 31 | "neon", 32 | "opaque", 33 | "opulent", 34 | "organic", 35 | "pale", 36 | "pastel", 37 | "radiant", 38 | "rich", 39 | "rustic", 40 | "satin", 41 | "sheer", 42 | "shimmering", 43 | "smoky", 44 | "soft", 45 | "sparkling", 46 | "springtime", 47 | "strong", 48 | "subdued", 49 | "subtle", 50 | "summery", 51 | "translucent", 52 | "transparent", 53 | "tropical", 54 | "urban", 55 | "very dark", 56 | "very light", 57 | "vibrant", 58 | "warm", 59 | "wintry" 60 | ] 61 | } -------------------------------------------------------------------------------- /data/next/keywords/genres.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "genres are ", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "ancient", 7 | "art deco", 8 | "cyber gothic", 9 | "cyber-baroque", 10 | "cyber-goth", 11 | "cyber-medieval", 12 | "cyber-renaissance", 13 | "cyber-steampunk", 14 | "cyber-western", 15 | "cyberfunk", 16 | "cybergrunge", 17 | "cyberpunk", 18 | "cyberpunk dystopia", 19 | "dark fantasy", 20 | "dark steampunk", 21 | "diesel-fantasy", 22 | "diesel-noir", 23 | "dieselpunk", 24 | "fantasy", 25 | "fantasy noir", 26 | "film noir", 27 | "futurism", 28 | "gothic", 29 | "high fantasy", 30 | "historic", 31 | "historical fiction", 32 | "medieval", 33 | "mid-century", 34 | "neo-victorian", 35 | "neoclassical", 36 | "post-apocalyptic", 37 | "post-apocalyptic fantasy", 38 | "post-cyberpunk", 39 | "post-medieval", 40 | "postmodern", 41 | "renaissance", 42 | "retro-futurism", 43 | "sci-fi", 44 | "space opera", 45 | "steampunk", 46 | "steamwave", 47 | "synthwave", 48 | "victorian", 49 | "vintage", 50 | "weird west" 51 | ] 52 | } -------------------------------------------------------------------------------- /data/custom_prompts/promptcreator_tiny_ohwx.txt: -------------------------------------------------------------------------------- 1 | I understand now. Here's the modified prompt with the requested tags added: 2 | Describe the image as a professional art critic. Create a cohesive, realistic scene in a single paragraph. Include: 3 | If you find text in the image: 4 | Quote the exact text and describe its placement in the scene: "[exact text]" 5 | Describe placement 6 | Suggest fitting font/style 7 | Main subject details 8 | Artistic style and theme 9 | Setting and narrative contribution 10 | Lighting characteristics 11 | Color palette and emotional tone 12 | Camera angle, rotation, movement and focus 13 | Main subject is always called ##TAG## (always lowercase name) and is always a ##SEX##, ##PRONOUNS##, etc 14 | There are never any other main characters than ##TAG##. 15 | Merge image concepts if there is more than one. 16 | Always blend the concepts, never talk about splits or parallel. 17 | Do not split or divide scenes, or talk about them differently - merge everything to one scene and one scene only. 18 | Blend all elements into unified reality. Use image generation prompt language. No preamble, questions, or commentary. 19 | ALWAYS make the main character: ##TAG## (always lowercase name) and is always a ##SEX##, ##PRONOUNS##, etc 20 | ALWAYS make the main character stand out in the scene 21 | CRITICAL: TRY TO OUTPUT ONLY IN ##WORDS## WORDS 22 | NEVER transition a scene, always make it ONE scene. -------------------------------------------------------------------------------- /data/next/photography/color_grading.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "bold color grading", 7 | "bright color grading", 8 | "color grading", 9 | "cool color grading", 10 | "cool-toned color grading", 11 | "cross-processed color grading", 12 | "day-for-night color grading", 13 | "desaturated color grading", 14 | "duotone color grading", 15 | "earthy color grading", 16 | "faded color grading", 17 | "film noir color grading", 18 | "filmic color grading", 19 | "hard light", 20 | "haze", 21 | "hdr", 22 | "high-key color grading", 23 | "high-key lighting", 24 | "low-key color grading", 25 | "low-key lighting", 26 | "monochromatic color grading", 27 | "muted color grading", 28 | "neon color grading", 29 | "night-for-day color grading", 30 | "pastel color grading", 31 | "quadtone color grading", 32 | "saturated color grading", 33 | "soft light", 34 | "split-tone color grading", 35 | "sunset color grading", 36 | "traditional color grading", 37 | "tritone color grading", 38 | "vibrant color grading", 39 | "warm color grading", 40 | "warm-toned color grading" 41 | ] 42 | } -------------------------------------------------------------------------------- /data/next/stuff/summer.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "wearing", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "baseball cap", 7 | "bbq grill", 8 | "beach bag", 9 | "beach ball", 10 | "beach towel", 11 | "beach umbrella", 12 | "camping tent", 13 | "canoe", 14 | "cooler", 15 | "corn on the cob", 16 | "fire pit", 17 | "fishing pole", 18 | "flip-flops", 19 | "flowy skirt", 20 | "frisbee", 21 | "golf clubs", 22 | "hammock", 23 | "hiking shoes", 24 | "ice cream", 25 | "inflatable pool", 26 | "insect repellent", 27 | "kayak", 28 | "kite", 29 | "lawn chair", 30 | "lemonade", 31 | "outdoor games set", 32 | "picnic blanket", 33 | "pool float", 34 | "popsicle", 35 | "portable speaker", 36 | "road bike", 37 | "rollerblades", 38 | "sandals", 39 | "sarong", 40 | "shorts", 41 | "skateboard", 42 | "straw hat", 43 | "sun dress", 44 | "sun hat", 45 | "sunglasses", 46 | "sunscreen", 47 | "tank top", 48 | "tanning lotion", 49 | "tennis racket", 50 | "volleyball", 51 | "water bottle", 52 | "water gun", 53 | "watermelon" 54 | ] 55 | } -------------------------------------------------------------------------------- /data/next/cinematic/color_grading.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "and", 4 | "endprompt": "color grading", 5 | "items": [ 6 | "bold color grading", 7 | "bright color grading", 8 | "color grading", 9 | "cool color grading", 10 | "cool-toned color grading", 11 | "cross-processed color grading", 12 | "day-for-night color grading", 13 | "desaturated color grading", 14 | "duotone color grading", 15 | "earthy color grading", 16 | "faded color grading", 17 | "film noir color grading", 18 | "filmic color grading", 19 | "hard light", 20 | "haze", 21 | "hdr", 22 | "high-key color grading", 23 | "high-key lighting", 24 | "low-key color grading", 25 | "low-key lighting", 26 | "monochromatic color grading", 27 | "muted color grading", 28 | "neon color grading", 29 | "night-for-day color grading", 30 | "pastel color grading", 31 | "quadtone color grading", 32 | "saturated color grading", 33 | "soft light", 34 | "split-tone color grading", 35 | "sunset color grading", 36 | "traditional color grading", 37 | "tritone color grading", 38 | "vibrant color grading", 39 | "warm color grading", 40 | "warm-toned color grading" 41 | ] 42 | } -------------------------------------------------------------------------------- /data/next/stuff/office.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "abacus", 7 | "adding machine", 8 | "atm machine", 9 | "balance sheet", 10 | "bank vault", 11 | "banknote", 12 | "blueprint", 13 | "briefcase", 14 | "business card", 15 | "calculator", 16 | "cash register", 17 | "clipboard", 18 | "coin", 19 | "compass", 20 | "computer mouse", 21 | "credit card", 22 | "document", 23 | "drill", 24 | "file cabinet", 25 | "folder", 26 | "graph", 27 | "hammer", 28 | "hard hat", 29 | "hole punch", 30 | "keyboard", 31 | "ledger book", 32 | "level", 33 | "magnifying glass", 34 | "monitor", 35 | "paper clip", 36 | "payment method", 37 | "pen", 38 | "pencil", 39 | "piece of paper", 40 | "printer", 41 | "protective gloves", 42 | "protractor", 43 | "report cover", 44 | "rubber stamp", 45 | "ruler", 46 | "safety goggles", 47 | "screwdriver", 48 | "spreadsheet", 49 | "stapler", 50 | "stock certificate", 51 | "stock chart", 52 | "tape measure", 53 | "ticker tape machine", 54 | "trading floor" 55 | ] 56 | } -------------------------------------------------------------------------------- /data/next/keywords/prayers.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": ",", 4 | "endprompt": "", 5 | "items": [ 6 | "4k", 7 | "8k", 8 | "advanced", 9 | "award winning", 10 | "beautiful", 11 | "breathtaking", 12 | "cinematic", 13 | "crystal clear", 14 | "cutting-edge", 15 | "detailed", 16 | "elite", 17 | "exceptional", 18 | "extraordinary", 19 | "hd", 20 | "hdr", 21 | "high definition", 22 | "high-dynamic-range", 23 | "high-end", 24 | "high-fidelity", 25 | "high-quality", 26 | "high-resolution", 27 | "highly detailed", 28 | "hyper-realistic", 29 | "hyperrealistic", 30 | "immersive", 31 | "impeccable", 32 | "impressive", 33 | "intricate", 34 | "lifelike", 35 | "masterful", 36 | "masterfully rendered", 37 | "masterpiece", 38 | "photo-realistic", 39 | "photorealistic", 40 | "premium", 41 | "premium-quality", 42 | "realistic", 43 | "refined", 44 | "sharp", 45 | "sophisticated", 46 | "state-of-the-art", 47 | "stunning", 48 | "top-notch", 49 | "top-quality", 50 | "ultra-high definition", 51 | "ultra-realistic", 52 | "unparalleled", 53 | "visually stunning", 54 | "vivid" 55 | ] 56 | } -------------------------------------------------------------------------------- /data/next/typography/features.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "typography feature", 5 | "items": [ 6 | "Airy Spacing", 7 | "Angled Stress", 8 | "Angular Terminals", 9 | "Balanced Letterforms", 10 | "Ball Terminals", 11 | "Bold Weight", 12 | "Chunky Serifs", 13 | "Clean Sans", 14 | "Closed Counters", 15 | "Compact Spacing", 16 | "Condensed Width", 17 | "Consistent Stroke Width", 18 | "Contextual Shaping", 19 | "Cramped Leading", 20 | "Delicate Serifs", 21 | "Distinctive Alternates", 22 | "Elegant Ligatures", 23 | "Extended Ascenders", 24 | "Extended Width", 25 | "Generous Leading", 26 | "Geometric Shapes", 27 | "Graceful Curves", 28 | "Harmonious Proportions", 29 | "Ink Traps", 30 | "Irregular Letterforms", 31 | "Light Weight", 32 | "Loose Kerning", 33 | "Narrow Tracking", 34 | "Open Counters", 35 | "Optical Sizing", 36 | "Organic Curves", 37 | "Ornamental Details", 38 | "Overshooting", 39 | "Playful Swashes", 40 | "Rounded Corners", 41 | "Sharp Angles", 42 | "Shortened Descenders", 43 | "Subtle Contrast", 44 | "Tight Kerning", 45 | "Upright Stress", 46 | "Variable Stroke Width", 47 | "Wide Tracking" 48 | ] 49 | } -------------------------------------------------------------------------------- /data/next/character/fantasy.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "a banshee", 7 | "a basilisk", 8 | "a centaur", 9 | "a cyclops", 10 | "a dark wizard", 11 | "a demon", 12 | "a demon prince", 13 | "a demon princess", 14 | "a dragon", 15 | "a dragon rider", 16 | "a dragon slayer", 17 | "a dryad", 18 | "a dwarf", 19 | "a fairy", 20 | "a ghost", 21 | "a ghost hunter", 22 | "a giant", 23 | "a gnome", 24 | "a golem", 25 | "a gorgon", 26 | "a griffin", 27 | "a harpy", 28 | "a hobbit", 29 | "a kraken", 30 | "a leprechaun", 31 | "a light wizard", 32 | "a mermaid", 33 | "a minotaur", 34 | "a mythical creature", 35 | "a nymph", 36 | "a ogre", 37 | "a phoenix", 38 | "a satyr", 39 | "a shapeshifter", 40 | "a siren", 41 | "a sorcerer", 42 | "a sorceress", 43 | "a sprite", 44 | "a succubus", 45 | "a troll", 46 | "a unicorn", 47 | "a vampire", 48 | "a warlock", 49 | "a were-creature", 50 | "a werewolf", 51 | "a witch", 52 | "a witch hunter", 53 | "a wizard", 54 | "an angel", 55 | "an elemental being", 56 | "an elf", 57 | "an incubus" 58 | ] 59 | } -------------------------------------------------------------------------------- /data/custom_prompts/zimage_vision_merger.txt: -------------------------------------------------------------------------------- 1 | Analyze the input images. I want you to merge them into one scene using the following logic: 2 | Take the Character from Image 1: Describe this person in detail (use only "man" or "woman"). 3 | Take the Art Style/Background from Image 2: Apply this aesthetic and setting to the character. 4 | Final Output Requirements: 5 | Create a cohesive visual description of this merged scene. Include specific details on: 6 | Lighting: (e.g., rim lighting, softbox, golden hour) 7 | Materials: (e.g., fabric textures, skin pores, material of background objects) 8 | Camera: (e.g., macro shot, wide angle, depth of field) 9 | The result should read like a high-end photography brief. 10 | 11 | 12 | Here is an example output: 13 | 14 | { 15 | "scene": "overall merged scene description", 16 | "subjects": [ 17 | { 18 | "description": "detailed subject description", 19 | "position": "where in frame", 20 | "action": "what they're doing" 21 | } 22 | ], 23 | "style": "artistic style", 24 | "color_palette": ["#hex1", "#hex2", "#hex3"], 25 | "lighting": "lighting description", 26 | "mood": "emotional tone", 27 | "background": "background details", 28 | "composition": "framing and layout", 29 | "camera": { 30 | "angle": "camera angle", 31 | "lens": "lens type", 32 | "depth_of_field": "focus behavior" 33 | } 34 | } 35 | 36 | CRITICAL: Output ONLY the JSON object. No explanations, no markdown code blocks, no extra text. Start with { and end with }. -------------------------------------------------------------------------------- /data/next/architecture/interior.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "art deco interior", 7 | "art deco interior design", 8 | "bohemian interior", 9 | "bohemian interior design", 10 | "coastal interior", 11 | "coastal interior design", 12 | "contemporary interior", 13 | "contemporary interior design", 14 | "eclectic interior", 15 | "eclectic interior design", 16 | "farmhouse interior", 17 | "farmhouse interior design", 18 | "french country interior", 19 | "french country interior design", 20 | "hollywood regency interior", 21 | "hollywood regency interior design", 22 | "industrial interior", 23 | "industrial interior design", 24 | "mediterranean interior", 25 | "mediterranean interior design", 26 | "mid-century modern", 27 | "mid-century modern interior", 28 | "mid-century modern interior design", 29 | "minimalist interior", 30 | "minimalist interior design", 31 | "modern interior", 32 | "modern interior design", 33 | "rustic interior", 34 | "rustic interior design", 35 | "scandinavian interior", 36 | "scandinavian interior design", 37 | "traditional interior", 38 | "traditional interior design", 39 | "transitional interior", 40 | "transitional interior design" 41 | ] 42 | } -------------------------------------------------------------------------------- /data/next/character/action.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "assassin", 7 | "biker", 8 | "black ops agent", 9 | "bodyguard", 10 | "bomb squad specialist", 11 | "bomber", 12 | "commando", 13 | "covert operative", 14 | "crime boss", 15 | "criminal mastermind", 16 | "detective", 17 | "ex-convict", 18 | "explosives expert", 19 | "firearms expert", 20 | "gang leader", 21 | "hacker", 22 | "hand-to-hand combat expert", 23 | "hitman", 24 | "hitman-turned-protector", 25 | "hitwoman", 26 | "intelligence officer", 27 | "marksman", 28 | "martial artist", 29 | "mercenary", 30 | "military commander", 31 | "ninja", 32 | "parkour expert", 33 | "pilot", 34 | "pirate", 35 | "police officer", 36 | "prison escapee", 37 | "prison warden", 38 | "private investigator", 39 | "race car driver", 40 | "rogue agent", 41 | "ruthless killer", 42 | "secret agent", 43 | "sniper", 44 | "soldier", 45 | "special forces operator", 46 | "spy", 47 | "stunt double", 48 | "survivalist", 49 | "swordsman", 50 | "thief", 51 | "thief-turned-hero", 52 | "undercover agent", 53 | "vigilante", 54 | "vigilante justice seeker" 55 | ] 56 | } -------------------------------------------------------------------------------- /nodes/image_fx/__init__.py: -------------------------------------------------------------------------------- 1 | # APNext FX Image Effects Nodes 2 | 3 | from .bloom import APNextBloom 4 | from .sharpen import APNextSharpen 5 | from .noise import APNextNoise 6 | from .rough import APNextRough 7 | from .color_grading import APNextColorGrading 8 | from .cross_processing import APNextCrossProcessing 9 | from .split_toning import APNextSplitToning 10 | from .hdr_tone_mapping import APNextHDRToneMapping 11 | from .glitch_art import APNextGlitchArt 12 | from .film_halation import APNextFilmHalation 13 | 14 | NODE_CLASS_MAPPINGS = { 15 | "APNextBloom": APNextBloom, 16 | "APNextSharpen": APNextSharpen, 17 | "APNextNoise": APNextNoise, 18 | "APNextRough": APNextRough, 19 | "APNextColorGrading": APNextColorGrading, 20 | "APNextCrossProcessing": APNextCrossProcessing, 21 | "APNextSplitToning": APNextSplitToning, 22 | "APNextHDRToneMapping": APNextHDRToneMapping, 23 | "APNextGlitchArt": APNextGlitchArt, 24 | "APNextFilmHalation": APNextFilmHalation, 25 | } 26 | 27 | NODE_DISPLAY_NAME_MAPPINGS = { 28 | "APNextBloom": "APNext Bloom FX", 29 | "APNextSharpen": "APNext Sharpen FX", 30 | "APNextNoise": "APNext Noise FX", 31 | "APNextRough": "APNext Rough FX", 32 | "APNextColorGrading": "APNext Color Grading FX", 33 | "APNextCrossProcessing": "APNext Cross Processing FX", 34 | "APNextSplitToning": "APNext Split Toning FX", 35 | "APNextHDRToneMapping": "APNext HDR Tone Mapping FX", 36 | "APNextGlitchArt": "APNext Glitch Art FX", 37 | "APNextFilmHalation": "APNext Film Halation FX", 38 | } 39 | -------------------------------------------------------------------------------- /data/next/video_game/engines.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "game engine", 5 | "items": [ 6 | "Amazon Lumberyard", 7 | "AnvilNext", 8 | "Creation Engine", 9 | "CryEngine", 10 | "Decima Engine", 11 | "Dunia Engine", 12 | "Eclipse Engine", 13 | "EGO Engine", 14 | "Fox Engine", 15 | "Frostbite 2", 16 | "Frostbite Engine", 17 | "Gamebryo", 18 | "Gamebryo Lightspeed", 19 | "GameMaker Studio", 20 | "Godot Engine", 21 | "Havok Vision Engine", 22 | "Hedgehog Engine", 23 | "HeroEngine", 24 | "ID Tech", 25 | "IOQuake3", 26 | "IW Engine", 27 | "Jade Engine", 28 | "LithTech Engine", 29 | "Luminous Engine", 30 | "Marmalade SDK", 31 | "MT Framework", 32 | "Ogre", 33 | "PhyreEngine", 34 | "Project Spark", 35 | "RAGE", 36 | "RedEngine", 37 | "RenderMan", 38 | "RenderMorphics", 39 | "RenderWare", 40 | "RenderWare Game Engine", 41 | "RenderWare Graphics", 42 | "RenderWare Studio", 43 | "Snowdrop Engine", 44 | "Source 2", 45 | "Source Engine", 46 | "Source Filmmaker", 47 | "Stingray Engine", 48 | "Umbra 3", 49 | "Unity", 50 | "Unity3D", 51 | "UnityScript", 52 | "Unreal Development Kit", 53 | "Unreal Engine", 54 | "Vision Engine", 55 | "Xenko" 56 | ] 57 | } -------------------------------------------------------------------------------- /data/next/typography/types.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Art Deco Typography", 7 | "Bitmap Typography", 8 | "Blackletter Typography", 9 | "Brush Typography", 10 | "Calligraphic Typography", 11 | "Comic Typography", 12 | "Condensed Typography", 13 | "Decorative Typography", 14 | "Didone Typography", 15 | "Dingbat Typography", 16 | "Display Typography", 17 | "Expanded Typography", 18 | "Futuristic Typography", 19 | "Geometric Typography", 20 | "Glyphic Typography", 21 | "Grotesque Typography", 22 | "Grunge Typography", 23 | "Handwritten Typography", 24 | "Humanist Typography", 25 | "Inline Typography", 26 | "Lombardic Typography", 27 | "Modern Serif Typography", 28 | "Modern Typography", 29 | "Monospace Typography", 30 | "Neo-Grotesque Typography", 31 | "Old Style Typography", 32 | "Ornamental Typography", 33 | "Outline Typography", 34 | "Pixel Typography", 35 | "Retro Typography", 36 | "Rounded Typography", 37 | "Runic Typography", 38 | "Sans-Serif Typography", 39 | "Script Typography", 40 | "Serif Typography", 41 | "Slab Serif Typography", 42 | "Stencil Typography", 43 | "Techno Typography", 44 | "Transitional Typography", 45 | "Tuscan Typography", 46 | "Uncial Typography" 47 | ] 48 | } -------------------------------------------------------------------------------- /data/next/video_game/designers.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "game design by", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Alex Rigopulos", 7 | "Amy Hennig", 8 | "Brenda Romero", 9 | "Chris Avellone", 10 | "Chris Hecker", 11 | "Chris Roberts", 12 | "Cliff Bleszinski", 13 | "David Braben", 14 | "David Cage", 15 | "David Jaffe", 16 | "David Perry", 17 | "Ed Boon", 18 | "Eiji Aonuma", 19 | "Eric Chahi", 20 | "Fumito Ueda", 21 | "Gabe Newell", 22 | "Harvey Smith", 23 | "Hideki Kamiya", 24 | "Hideo Kojima", 25 | "Jenova Chen", 26 | "John Carmack", 27 | "Jordan Mechner", 28 | "Katsuya Eguchi", 29 | "Keiji Inafune", 30 | "Ken Levine", 31 | "Kenji Eno", 32 | "Lorne Lanning", 33 | "Masahiro Sakurai", 34 | "Masaya Matsuura", 35 | "Michel Ancel", 36 | "Patrice Désilets", 37 | "Peter McConnell", 38 | "Peter Molyneux", 39 | "Richard Garriott", 40 | "Richard Lemarchand", 41 | "Richard Rouse III", 42 | "Robyn Miller", 43 | "Ron Gilbert", 44 | "Shigeru Miyamoto", 45 | "Shu Takumi", 46 | "Sid Meier", 47 | "Suda51", 48 | "Tameem Antoniades", 49 | "Tetsuya Mizuguchi", 50 | "Tim Schafer", 51 | "Warren Spector", 52 | "Will Wright", 53 | "Yasuhiro Wada", 54 | "Yoshiki Okamoto", 55 | "Yu Suzuki" 56 | ] 57 | } -------------------------------------------------------------------------------- /data/next/cinematic/directors.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "Directed by ", 3 | "separator": "and", 4 | "endprompt": "", 5 | "items": [ 6 | "Akira Kurosawa", 7 | "Alejandro Jodorowsky", 8 | "Alfred Hitchcock", 9 | "Ang Lee", 10 | "Baz Luhrmann", 11 | "Christopher Doyle", 12 | "Christopher Nolan", 13 | "Coen Brothers (Ethan and Joel Coen)", 14 | "Darren Aronofsky", 15 | "David Cronenberg", 16 | "David Fincher", 17 | "David Lynch", 18 | "David O. Russell", 19 | "Edgar Wright", 20 | "François Ozon", 21 | "Gaspar Noé", 22 | "Guillermo del Toro", 23 | "Guy Ritchie", 24 | "Harmony Korine", 25 | "Hayao Miyazaki", 26 | "Jean-Pierre Jeunet", 27 | "Jean-Pierre Melville", 28 | "John Carpenter", 29 | "Jonathan Glazer", 30 | "Lars von Trier", 31 | "Martin Scorsese", 32 | "Michel Gondry", 33 | "Nicolas Winding Refn", 34 | "Park Chan-wook", 35 | "Paul Thomas Anderson", 36 | "Pedro Almodóvar", 37 | "Quentin Tarantino", 38 | "Ridley Scott", 39 | "Robert Rodriguez", 40 | "Sam Raimi", 41 | "Sofia Coppola", 42 | "Spike Lee", 43 | "Stanley Kubrick", 44 | "Stanley Tucci", 45 | "Steven Spielberg", 46 | "Takashi Miike", 47 | "Terry Gilliam", 48 | "Terry Zwigoff", 49 | "Tim Burton", 50 | "Timur Bekmambetov", 51 | "Wes Anderson", 52 | "Wong Kar-wai" 53 | ] 54 | } -------------------------------------------------------------------------------- /data/digital_artform.json: -------------------------------------------------------------------------------- 1 | [ 2 | "Glitch Art art", 3 | "Digital Painting art", 4 | "Acrylic Paint art", 5 | "Algorithmic art", 6 | "Animation art", 7 | "Art glass art", 8 | "Assemblage art", 9 | "Augmented reality art", 10 | "Batik art", 11 | "Beadwork art", 12 | "Body painting art", 13 | "Bookbinding art", 14 | "Cast paper art", 15 | "Ceramics art", 16 | "Bronze art", 17 | "Charcoal art", 18 | "Collage art", 19 | "Collagraphy art", 20 | "Colored pencil art", 21 | "Computer-generated imagery (cgi) art", 22 | "Crochet art", 23 | "Decoupage art", 24 | "Digital sculpture art", 25 | "Foam carving art", 26 | "Found objects art", 27 | "Fresco art", 28 | "Glass art", 29 | "Gouache art", 30 | "Graffiti art", 31 | "Ice art", 32 | "Ink wash painting art", 33 | "Installation art", 34 | "Interactive media art", 35 | "Lenticular printing art", 36 | "Light projection art", 37 | "Lithography art", 38 | "Marble art", 39 | "Metal art", 40 | "Metalpoint art", 41 | "Miniature painting art", 42 | "Mixed media art", 43 | "Monotype printing art", 44 | "Neon art", 45 | "Oil painting art", 46 | "Origami art", 47 | "Papier-mache art", 48 | "Pastel art", 49 | "Pen and ink art", 50 | "Plastic arts", 51 | "Polymer clay art", 52 | "Printmaking art", 53 | "Puppetry art", 54 | "Pyrography art", 55 | "Quilling art", 56 | "Quilting art", 57 | "Recycled art", 58 | "Resin art", 59 | "Sand art", 60 | "Sound art", 61 | "Silverpoint art", 62 | "Spray paint art", 63 | "Stone art", 64 | "Tempera art", 65 | "Tattoo art", 66 | "Video art", 67 | "Watercolor art", 68 | "Wax art", 69 | "Wood art" 70 | ] -------------------------------------------------------------------------------- /data/next/scene/scenes.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Beach", 7 | "Canopy", 8 | "Canyon", 9 | "Castle", 10 | "Cave", 11 | "Cavern", 12 | "Church", 13 | "Cityscape", 14 | "Cliffs", 15 | "Cloud forest", 16 | "Copse", 17 | "Crater", 18 | "Desert", 19 | "Expanse", 20 | "Farmyard", 21 | "Field", 22 | "Fjord", 23 | "Flowers", 24 | "Folly", 25 | "Forest", 26 | "Garden", 27 | "Geological", 28 | "Glacier", 29 | "Grassland", 30 | "Grassy", 31 | "Hill", 32 | "Island", 33 | "Jungle", 34 | "Lake", 35 | "Long grass", 36 | "Meadow", 37 | "Mountain", 38 | "Mountains", 39 | "National park", 40 | "Orchard", 41 | "Pasture", 42 | "Path", 43 | "Plains", 44 | "Pond", 45 | "Rainforest", 46 | "River", 47 | "Rock face", 48 | "Rock formation", 49 | "Rock pool", 50 | "Rocky outcrop", 51 | "Ruins", 52 | "Salt flats", 53 | "Sea view", 54 | "Senote", 55 | "Serengeti", 56 | "Shoreline", 57 | "Sinkhole", 58 | "Stream", 59 | "Town", 60 | "Track", 61 | "Tree", 62 | "Treetops", 63 | "Valley", 64 | "Village", 65 | "Volcano", 66 | "Wildflower meadow", 67 | "Wildflowers", 68 | "Woodland", 69 | "Woods" 70 | ] 71 | } -------------------------------------------------------------------------------- /data/photographer.json: -------------------------------------------------------------------------------- 1 | [ 2 | "Alessio Albi", 3 | "Alvin Langdon Coburn", 4 | "Anne Brigman", 5 | "Ansel Adams", 6 | "Anton Corbijn", 7 | "Berenice Abbott", 8 | "Bill Brandt", 9 | "Brooke DiDonato", 10 | "Bruce Davidson", 11 | "Bruno Barbey", 12 | "Chris Burkard", 13 | "Claude Cahun", 14 | "David Bailey", 15 | "David Burdeny", 16 | "Dawoud Bey", 17 | "Diane Arbus", 18 | "Dirk Braeckman", 19 | "Edward Burtynsky", 20 | "Edward S. Curtis", 21 | "Elina Brotherus", 22 | "Elsa Bleda", 23 | "Erwin Blumenfeld", 24 | "Flora Borsi", 25 | "Gregory Colbert", 26 | "Gregory Crewdson", 27 | "Guy Aroch", 28 | "Guy Bourdin", 29 | "Hans Bellmer", 30 | "Harry Benson", 31 | "Harry Callahan", 32 | "Henri Cartier-Bresson", 33 | "Ilse Bing", 34 | "Imogen Cunningham", 35 | "Iwan Baan", 36 | "James Balog", 37 | "Jamie Baldridge", 38 | "James Balog", 39 | "Julia Margaret Cameron", 40 | "Julie Blackmon", 41 | "Karl Blossfeldt", 42 | "Katia Chausheva", 43 | "Keith Carter", 44 | "Larry Burrows", 45 | "Larry Clark", 46 | "Laurent Baheux", 47 | "Lewis Baltz", 48 | "Lillian Bassman", 49 | "Lynsey Addario", 50 | "Margaret Bourke-White", 51 | "Marianne Breslauer", 52 | "Marta Bevacqua", 53 | "Mathew Brady", 54 | "Miki Asai", 55 | "Miles Aldridge", 56 | "Nick Brandt", 57 | "Nobuyoshi Araki", 58 | "Olive Cotton", 59 | "Patrick Demarchelier", 60 | "Paul Barson", 61 | "Petra Collins", 62 | "Petra Collins", 63 | "Richard Avedon", 64 | "Rineke Dijkstra", 65 | "Robby Cavanaugh", 66 | "Robert Adams", 67 | "Robert Capa", 68 | "Roger Ballen", 69 | "Ruth Bernhard", 70 | "Slim Aarons", 71 | "Tami Bone", 72 | "Tina Barney", 73 | "Vanley Burke" 74 | ] -------------------------------------------------------------------------------- /data/custom_prompts/t5xxl_w_text.txt: -------------------------------------------------------------------------------- 1 | Please analyze the image and extract the following information into a structured format: 2 | 3 | 1. Subject: Identify the main subject or actor in the image. 4 | 2. Action: Describe the primary action being performed. 5 | 3. Object: Identify the main object involved in the action (if applicable). 6 | 4. Location: Describe the setting or location of the scene. 7 | 5. Time: Estimate the time of day or period, if discernible. 8 | 6. Style: Describe the overall style or mood of the image. 9 | 7. Text: Identify and describe any text visible in the image. 10 | 11 | Present the extracted information in the following JSON format: 12 | 13 | { 14 | "Subject": "{subject}", 15 | "Action": "{action}", 16 | "Object": "{object}", 17 | "Location": "{location}", 18 | "Time": "{time}", 19 | "Style": "{style}", 20 | "Text": [ 21 | { 22 | "Content": "{text content}", 23 | "Location": "{location in image}", 24 | "Description": "{brief description of text appearance and purpose}" 25 | } 26 | ] 27 | } 28 | 29 | Guidelines: 30 | - If any field cannot be determined from the image, use "Not discernible" as the value. 31 | - For the "Text" field, include all visible text in the image. If no text is present, use an empty array []. 32 | - Provide as much detail as possible for each field. 33 | - For text elements, describe their appearance (e.g., font style, color) and apparent purpose in the image. 34 | Ensure that the analysis reads as if it were describing a single, complex piece of art created from multiple sources. 35 | 36 | Provide the output as a pure JSON string without any additional explanation, commentary, or Markdown formatting. -------------------------------------------------------------------------------- /nodes/string_utils/mixer.py: -------------------------------------------------------------------------------- 1 | # SentenceMixerNode Node 2 | 3 | import random 4 | 5 | from ...utils.constants import CUSTOM_CATEGORY 6 | 7 | 8 | class SentenceMixerNode: 9 | @classmethod 10 | def INPUT_TYPES(s): 11 | return { 12 | "required": { 13 | "input1": ("STRING", {"multiline": True}), 14 | }, 15 | "optional": { 16 | "input2": ("STRING", {"multiline": True}), 17 | "input3": ("STRING", {"multiline": True}), 18 | "input4": ("STRING", {"multiline": True}), 19 | }, 20 | } 21 | 22 | RETURN_TYPES = ("STRING",) 23 | FUNCTION = "mix_sentences" 24 | CATEGORY = CUSTOM_CATEGORY 25 | 26 | def mix_sentences(self, input1, input2="", input3="", input4=""): 27 | def process_input(input_data): 28 | if isinstance(input_data, list): 29 | return " ".join(input_data) 30 | return input_data 31 | 32 | all_text = " ".join( 33 | filter( 34 | bool, 35 | [process_input(input) for input in [input1, input2, input3, input4]], 36 | ) 37 | ) 38 | 39 | sentences = [] 40 | current_sentence = "" 41 | for char in all_text: 42 | current_sentence += char 43 | if char in [".", ","]: 44 | sentences.append(current_sentence.strip()) 45 | current_sentence = "" 46 | if current_sentence: 47 | sentences.append(current_sentence.strip()) 48 | 49 | random.shuffle(sentences) 50 | 51 | result = " ".join(sentences) 52 | 53 | return (result,) 54 | -------------------------------------------------------------------------------- /data/next/interaction/couple_interactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "Interaction ", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Adoring someone", 7 | "Argument", 8 | "Assistance", 9 | "Being intimate", 10 | "Being rejected", 11 | "Betrayal", 12 | "Bonding", 13 | "Building a partnership", 14 | "Building trust", 15 | "Collaborating on a project", 16 | "Collaboration", 17 | "Compassion", 18 | "Competing with each other", 19 | "Competition", 20 | "Conflict", 21 | "Conversation", 22 | "Engaging in a tug-of-war", 23 | "Engaging in seduction", 24 | "Enmity", 25 | "Experiencing nostalgia", 26 | "Facing betrayal", 27 | "Feeling jealousy", 28 | "Feeling pity", 29 | "Having a bonding experience", 30 | "Having a conflict", 31 | "Having a conversation", 32 | "Having a romance", 33 | "Having an argument", 34 | "Having tension", 35 | "Holding a grudge", 36 | "Inspiring someone", 37 | "Intimacy", 38 | "Making a confession", 39 | "Mentoring a protégé", 40 | "Mentorship", 41 | "Negotiating a deal", 42 | "Offering support", 43 | "Partnership", 44 | "Persuading someone", 45 | "Providing assistance", 46 | "Reconciliation", 47 | "Reconciling differences", 48 | "Romance", 49 | "Sharing wisdom", 50 | "Showing compassion", 51 | "Support", 52 | "Tension", 53 | "Trust", 54 | "Wisdom transfer" 55 | ] 56 | } -------------------------------------------------------------------------------- /data/next/photography/keywords.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "photo type", 5 | "items": [ 6 | "angles", 7 | "animals", 8 | "b&w", 9 | "balance", 10 | "barns", 11 | "beaches", 12 | "birds", 13 | "bridges", 14 | "buildings", 15 | "churches", 16 | "close-ups", 17 | "clouds", 18 | "color", 19 | "composition", 20 | "contrast", 21 | "details", 22 | "exposure", 23 | "fire", 24 | "flowers", 25 | "fog", 26 | "forests", 27 | "forms", 28 | "framing", 29 | "grass", 30 | "graveyards", 31 | "hdr", 32 | "houses", 33 | "infrared", 34 | "insects", 35 | "lakes", 36 | "leaves", 37 | "lighting", 38 | "lines", 39 | "macro", 40 | "moon", 41 | "mountains", 42 | "movement", 43 | "night photography", 44 | "objects", 45 | "panning", 46 | "paths", 47 | "patterns", 48 | "people", 49 | "perspective", 50 | "rainbows", 51 | "reflections", 52 | "rivers", 53 | "roads", 54 | "sequencing", 55 | "shadows", 56 | "shapes", 57 | "sky", 58 | "snow", 59 | "stairways", 60 | "stars", 61 | "stones", 62 | "structures", 63 | "sun", 64 | "sunsets", 65 | "textures", 66 | "time-lapse photography", 67 | "timing", 68 | "trees", 69 | "viewpoints", 70 | "waterfalls", 71 | "zooming" 72 | ] 73 | } -------------------------------------------------------------------------------- /sdxl_utility.py: -------------------------------------------------------------------------------- 1 | # LEGACY FILE - DYNAMIC NODES ONLY 2 | # 3 | # This file now only handles the dynamic APNext nodes generation. 4 | # All other nodes have been migrated to the modular structure. 5 | # 6 | # Migration Status: 26/26 nodes migrated (100% complete) 7 | # 8 | 9 | import os 10 | from .utils.constants import CUSTOM_CATEGORY, next_dir 11 | 12 | # Import APNextNode from modular structure 13 | try: 14 | from .nodes.prompt_generators.apnext_nodes import APNextNode 15 | 16 | # Generate dynamic nodes for each category 17 | NODE_CLASS_MAPPINGS = {} 18 | NODE_DISPLAY_NAME_MAPPINGS = {} 19 | 20 | categories = [ 21 | d for d in os.listdir(next_dir) if os.path.isdir(os.path.join(next_dir, d)) 22 | ] 23 | 24 | for category in categories: 25 | class_name = ( 26 | f"{''.join(word.capitalize() for word in category.split('_'))}PromptNode" 27 | ) 28 | new_class = type( 29 | class_name, 30 | (APNextNode,), 31 | { 32 | "CATEGORY": CUSTOM_CATEGORY, 33 | "_subcategory": category, 34 | }, 35 | ) 36 | globals()[class_name] = new_class 37 | NODE_CLASS_MAPPINGS[class_name] = new_class 38 | NODE_DISPLAY_NAME_MAPPINGS[class_name] = ( 39 | f"APNext {category.replace('_', ' ').title()}" 40 | ) 41 | 42 | print(f"✅ Generated {len(NODE_CLASS_MAPPINGS)} dynamic APNext nodes") 43 | 44 | except ImportError as e: 45 | print(f"⚠️ Warning: Could not import APNextNode for dynamic nodes: {e}") 46 | # Dynamic nodes will not be available 47 | NODE_CLASS_MAPPINGS = {} 48 | NODE_DISPLAY_NAME_MAPPINGS = {} -------------------------------------------------------------------------------- /data/next/cinematic/shot_type.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "and", 4 | "endprompt": "", 5 | "items": [ 6 | "aerial shot", 7 | "bird's-eye view shot", 8 | "close-up scene", 9 | "close-up shot", 10 | "crane shot", 11 | "crowd shot", 12 | "cutaway scene", 13 | "cutaway shot", 14 | "dolly shot", 15 | "dollying", 16 | "drone shot", 17 | "dutch angle shot", 18 | "establishing shot", 19 | "extreme close-up shot", 20 | "fantasy shot", 21 | "flashback scene", 22 | "flashback shot", 23 | "freeze-frame shot", 24 | "group shot", 25 | "handheld shot", 26 | "high-angle shot", 27 | "insert shot", 28 | "jib shot", 29 | "long lens", 30 | "long shot", 31 | "low-angle shot", 32 | "matte shot", 33 | "medium shot", 34 | "montage scene", 35 | "montage shot", 36 | "over-the-shoulder shot", 37 | "overhead shot", 38 | "pan shot", 39 | "panning", 40 | "point-of-view shot", 41 | "reverse shot", 42 | "slow motion", 43 | "slow-motion shot", 44 | "split screen shot", 45 | "steadicam", 46 | "steadicam shot", 47 | "three-shot", 48 | "tilt shot", 49 | "tilt-shift", 50 | "time-lapse scene", 51 | "time-lapse shot", 52 | "tracking", 53 | "tracking shot", 54 | "traveling shot", 55 | "two-shot", 56 | "underwater shot", 57 | "wide-angle lens", 58 | "worm's-eye view shot", 59 | "zoom shot" 60 | ] 61 | } -------------------------------------------------------------------------------- /nodes/phi/model_loader.py: -------------------------------------------------------------------------------- 1 | # PhiModelLoader Node 2 | 3 | from ...utils.constants import CUSTOM_CATEGORY 4 | import torch 5 | 6 | 7 | class PhiModelLoader: 8 | @classmethod 9 | def INPUT_TYPES(cls): 10 | return { 11 | "required": { 12 | "model_version": (["Phi-3.5-vision-instruct"],), 13 | "image_crops": ([4, 16], {"default": 4}), 14 | "attention_mechanism": (['flash_attention_2', 'sdpa', 'eager'], {"default": 'eager'}) 15 | }, 16 | } 17 | 18 | RETURN_TYPES = ("PHI_MODEL_PIPELINE",) 19 | RETURN_NAMES = ("phi_pipeline",) 20 | FUNCTION = "load_phi_model" 21 | CATEGORY = "LLM/Phi" 22 | 23 | def load_phi_model(self, model_version, image_crops, attention_mechanism): 24 | model_id = f"microsoft/{model_version}" 25 | model_checkpoint = os.path.join(folder_paths.models_dir, 'LLM', os.path.basename(model_id)) 26 | if not os.path.exists(model_checkpoint): 27 | from huggingface_hub import snapshot_download 28 | snapshot_download(repo_id=model_id, local_dir=model_checkpoint, local_dir_use_symlinks=False) 29 | 30 | phi_model = AutoModelForCausalLM.from_pretrained( 31 | model_checkpoint, 32 | device_map="cuda", 33 | torch_dtype="auto", 34 | trust_remote_code=True, 35 | attn_implementation=attention_mechanism 36 | ) 37 | phi_processor = AutoProcessor.from_pretrained(model_id, 38 | trust_remote_code=True, 39 | num_crops=image_crops 40 | ) 41 | 42 | phi_pipeline = PhiModelPipeline() 43 | phi_pipeline.model = phi_model 44 | phi_pipeline.processor = phi_processor 45 | 46 | return (phi_pipeline,) 47 | -------------------------------------------------------------------------------- /apnext.py: -------------------------------------------------------------------------------- 1 | # APNext Dynamic Nodes Generator 2 | # 3 | # This file handles the generation of dynamic APNext nodes based on data categories. 4 | # All static nodes have been migrated to the modular structure in nodes/. 5 | # 6 | # This creates nodes like: ArchitecturePromptNode, ArtPromptNode, etc. 7 | # Migration Status: 26/26 static nodes migrated (100% complete) 8 | # 9 | 10 | import os 11 | from .utils.constants import CUSTOM_CATEGORY, next_dir 12 | 13 | # Import APNextNode from modular structure 14 | try: 15 | from .nodes.prompt_generators.apnext_nodes import APNextNode 16 | 17 | # Generate dynamic nodes for each category 18 | NODE_CLASS_MAPPINGS = {} 19 | NODE_DISPLAY_NAME_MAPPINGS = {} 20 | 21 | categories = [ 22 | d for d in os.listdir(next_dir) if os.path.isdir(os.path.join(next_dir, d)) 23 | ] 24 | 25 | for category in categories: 26 | class_name = ( 27 | f"{''.join(word.capitalize() for word in category.split('_'))}PromptNode" 28 | ) 29 | new_class = type( 30 | class_name, 31 | (APNextNode,), 32 | { 33 | "CATEGORY": CUSTOM_CATEGORY, 34 | "_subcategory": category, 35 | }, 36 | ) 37 | globals()[class_name] = new_class 38 | NODE_CLASS_MAPPINGS[class_name] = new_class 39 | NODE_DISPLAY_NAME_MAPPINGS[class_name] = ( 40 | f"APNext {category.replace('_', ' ').title()}" 41 | ) 42 | 43 | print(f"Generated {len(NODE_CLASS_MAPPINGS)} dynamic APNext nodes") 44 | 45 | except ImportError as e: 46 | print(f"Warning: Could not import APNextNode for dynamic nodes: {e}") 47 | # Dynamic nodes will not be available 48 | NODE_CLASS_MAPPINGS = {} 49 | NODE_DISPLAY_NAME_MAPPINGS = {} -------------------------------------------------------------------------------- /nodes/string_utils/combiner.py: -------------------------------------------------------------------------------- 1 | # Dynamic String Combiner Node 2 | 3 | from ...utils.constants import CUSTOM_CATEGORY 4 | 5 | 6 | class DynamicStringCombinerNode: 7 | @classmethod 8 | def INPUT_TYPES(s): 9 | return { 10 | "required": { 11 | "num_inputs": (["1", "2", "3", "4", "5"],), 12 | "user_text": ("STRING", {"multiline": True}), 13 | }, 14 | "optional": { 15 | "string1": ("STRING", {"multiline": False}), 16 | "string2": ("STRING", {"multiline": False}), 17 | "string3": ("STRING", {"multiline": False}), 18 | "string4": ("STRING", {"multiline": False}), 19 | "string5": ("STRING", {"multiline": False}), 20 | }, 21 | } 22 | 23 | RETURN_TYPES = ("STRING",) 24 | FUNCTION = "combine_strings" 25 | CATEGORY = CUSTOM_CATEGORY 26 | 27 | def combine_strings( 28 | self, 29 | num_inputs, 30 | user_text, 31 | string1="", 32 | string2="", 33 | string3="", 34 | string4="", 35 | string5="", 36 | ): 37 | # Convert num_inputs to integer 38 | n = int(num_inputs) 39 | 40 | # Get the specified number of input strings 41 | input_strings = [string1, string2, string3, string4, string5][:n] 42 | 43 | # Combine the input strings 44 | combined = ", ".join(s for s in input_strings if s.strip()) 45 | 46 | # Append the user_text to the result 47 | result = f"{combined}\nUser Input: {user_text}" 48 | 49 | return (result,) 50 | 51 | @classmethod 52 | def IS_CHANGED( 53 | s, num_inputs, user_text, string1, string2, string3, string4, string5 54 | ): 55 | return float(num_inputs) 56 | -------------------------------------------------------------------------------- /data/next/artist/illustrator.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "Art by ", 3 | "separator": "and", 4 | "endprompt": "", 5 | "items": [ 6 | "arthur rackham", 7 | "aubrey beardsley", 8 | "audrey wood", 9 | "axel scheffler", 10 | "beatrix potter", 11 | "bill peet", 12 | "bill watterson", 13 | "charles addams", 14 | "charles m. schulz", 15 | "charles schulz", 16 | "chris riddell", 17 | "chris van allsburg", 18 | "crockett johnson", 19 | "dr. seuss", 20 | "e.h. shepard", 21 | "edmund dulac", 22 | "edward gorey", 23 | "eric carle", 24 | "ezra jack keats", 25 | "garry trudeau", 26 | "gary larson", 27 | "golden macdonald", 28 | "goscinny and uderzo", 29 | "helen oxenbury", 30 | "herge", 31 | "hilary knight", 32 | "jan pienkowski", 33 | "jean de brunhoff", 34 | "jim davis", 35 | "john burningham", 36 | "jules feiffer", 37 | "laura ingalls wilder", 38 | "lewis carroll", 39 | "margaret wise brown", 40 | "martin handford", 41 | "matt groening", 42 | "maurice sendak", 43 | "mercer mayer", 44 | "michael foreman", 45 | "p.d. eastman", 46 | "quentin blake", 47 | "raymond briggs", 48 | "richard scarry", 49 | "roald dahl", 50 | "robert mccloskey", 51 | "roz chast", 52 | "shel silverstein", 53 | "shirley hughes", 54 | "stan and jan berenstain", 55 | "syd hoff", 56 | "theodor geisel", 57 | "tomi ungerer", 58 | "tony ross", 59 | "tove jansson", 60 | "william blake", 61 | "william joyce" 62 | ] 63 | } -------------------------------------------------------------------------------- /data/next/vehicle/famous_cars.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Bumblebee from Transformers", 7 | "Christine from Christine", 8 | "Doc Brown's DeLorean from Back to the Future", 9 | "Ecto-1 from Ghostbusters", 10 | "Finn McMissile from Cars 2", 11 | "Francesco Bernoulli from Cars 2", 12 | "Gremlins' VW Bug from Gremlins", 13 | "Herbie from The Love Bug", 14 | "Holley Shiftwell from Cars 2", 15 | "James Bond's Aston Martin from Goldfinger", 16 | "K.I.T.T. from Knight Rider", 17 | "Lightning McQueen from Cars", 18 | "Lightning McQueen from Cars 2", 19 | "Magnum's Ferrari from Magnum, P.I.", 20 | "Mater from Cars 2", 21 | "Optimus Prime from Transformers", 22 | "Professor Zündapp from Cars 2", 23 | "Raoul Çaroule from Cars 2", 24 | "The A-Team Van from The A-Team", 25 | "The Batmobile from Batman", 26 | "The Batmobile from Batman v Superman: Dawn of Justice", 27 | "The Batpod from The Dark Knight", 28 | "The Bluesmobile from The Blues Brothers", 29 | "The DeLorean from Back to the Future", 30 | "The DeLorean from Back to the Future Part II", 31 | "The Ecto-1 from Ghostbusters", 32 | "The Ecto-1 from Ghostbusters (2016)", 33 | "The Ford Explorer from Jurassic World", 34 | "The General Lee from Dukes of Hazzard", 35 | "The Jurassic Park Jeep Wrangler from Jurassic Park", 36 | "The Minivan from Wayne's World", 37 | "The Munster Koach from The Munsters", 38 | "The Mystery Machine from Scooby-Doo", 39 | "The Tumbler from Batman Begins", 40 | "The Volkswagen Beetle from Herbie Goes to Monte Carlo" 41 | ] 42 | } -------------------------------------------------------------------------------- /nodes/file_utils/prompt_loader.py: -------------------------------------------------------------------------------- 1 | # CustomPromptLoader Node 2 | 3 | import os 4 | import chardet 5 | from ...utils.constants import CUSTOM_CATEGORY, prompt_dir 6 | 7 | 8 | class CustomPromptLoader: 9 | @classmethod 10 | def INPUT_TYPES(s): 11 | return { 12 | "required": { 13 | "prompt_file": (s.get_prompt_files(),), 14 | }, 15 | } 16 | 17 | RETURN_TYPES = ("STRING",) 18 | FUNCTION = "load_prompt" 19 | CATEGORY = CUSTOM_CATEGORY 20 | 21 | @staticmethod 22 | def get_prompt_files(): 23 | return [f for f in os.listdir(prompt_dir) if f.endswith(".txt")] 24 | 25 | @classmethod 26 | def IS_CHANGED(s, prompt_file): 27 | return float("nan") # This ensures the widget is always refreshed 28 | 29 | def load_prompt(self, prompt_file): 30 | file_path = os.path.join(prompt_dir, prompt_file) 31 | 32 | # Detect the file encoding 33 | with open(file_path, "rb") as file: 34 | raw_data = file.read() 35 | detected = chardet.detect(raw_data) 36 | encoding = detected["encoding"] 37 | 38 | # Read the file with the detected encoding 39 | try: 40 | with open(file_path, "r", encoding=encoding) as file: 41 | content = file.read() 42 | except UnicodeDecodeError: 43 | # If the detected encoding fails, try UTF-8 as a fallback 44 | try: 45 | with open(file_path, "r", encoding="utf-8") as file: 46 | content = file.read() 47 | except UnicodeDecodeError: 48 | # If UTF-8 also fails, try ANSI (Windows-1252) as a last resort 49 | with open(file_path, "r", encoding="windows-1252") as file: 50 | content = file.read() 51 | 52 | return (content,) 53 | -------------------------------------------------------------------------------- /data/next/interaction/crowd_interactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "characters are ", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Attending a concert", 7 | "Attending a festival", 8 | "Attending a march", 9 | "Attending a memorial service", 10 | "Attending a parade", 11 | "Attending a religious ceremony", 12 | "Attending a sporting event", 13 | "Celebrating a birthday", 14 | "Celebrating a cultural tradition", 15 | "Celebrating a holiday", 16 | "Celebrating a milestone", 17 | "Celebrating a victory", 18 | "Commemorating a tragedy", 19 | "Commemorating a victory", 20 | "Gathering for a celebration", 21 | "Gathering for a commemoration", 22 | "Gathering for a festival", 23 | "Gathering for a memorial", 24 | "Gathering for a town hall meeting", 25 | "Having a rally", 26 | "Holding a candlelight vigil", 27 | "Holding a concert", 28 | "Holding a memorial", 29 | "Holding a peaceful assembly", 30 | "Holding a peaceful protest", 31 | "Holding a protest", 32 | "Holding a rally", 33 | "Honoring a hero", 34 | "Joining a demonstration", 35 | "Joining a flash mob", 36 | "Mourning a loss", 37 | "Observing a cultural tradition", 38 | "Observing a tradition", 39 | "Participating in a demonstration", 40 | "Participating in a march", 41 | "Participating in a parade", 42 | "Participating in a sit-in", 43 | "Participating in a tradition", 44 | "Protesting against injustice", 45 | "Rallying for a change", 46 | "Supporting a cause", 47 | "Taking part in a demonstration", 48 | "Watching a performance", 49 | "Watching a play" 50 | ] 51 | } -------------------------------------------------------------------------------- /data/next/keywords/negatives.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "3d", 7 | "artifacts", 8 | "asymmetry", 9 | "b&w", 10 | "bad anatomy", 11 | "bad art", 12 | "banding", 13 | "blocked", 14 | "blur", 15 | "blurry", 16 | "cartoon", 17 | "childish", 18 | "close up", 19 | "copyright", 20 | "deformed", 21 | "disconnected limbs", 22 | "disfigured", 23 | "disgusting", 24 | "disjointed", 25 | "disorganized", 26 | "distorted", 27 | "dof", 28 | "extra limb", 29 | "extra limbs", 30 | "floating limbs", 31 | "grain", 32 | "grainy", 33 | "illustration", 34 | "image compression", 35 | "incoherent", 36 | "jpeg artifact", 37 | "jumbled", 38 | "kitsch", 39 | "long body", 40 | "long neck", 41 | "low quality", 42 | "low resolution", 43 | "low-res", 44 | "malformed hands", 45 | "mangled", 46 | "missing limb", 47 | "mutated", 48 | "mutation", 49 | "mutilated", 50 | "noisy", 51 | "old", 52 | "out of focus", 53 | "out of frame", 54 | "over saturation", 55 | "oversaturated", 56 | "pixelated", 57 | "poor quality", 58 | "poorly drawn", 59 | "poorly drawn face", 60 | "poorly drawn hands", 61 | "poorly lit", 62 | "render", 63 | "shaky", 64 | "surreal", 65 | "tacky", 66 | "tasteless", 67 | "text", 68 | "too bright", 69 | "too dark", 70 | "truncated", 71 | "ugly", 72 | "unclear", 73 | "watermark", 74 | "weird colors" 75 | ] 76 | } -------------------------------------------------------------------------------- /data/next/architecture/architecture.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "architecture", 5 | "items": [ 6 | "Mid-Century Modern", 7 | "Neo-Rationalism", 8 | "Postmodernism", 9 | "Structuralism", 10 | "Scandinavian", 11 | "Modernism", 12 | "Catalan Modernism", 13 | "Metabolism", 14 | "Futuristic", 15 | "West Coast Modernism", 16 | "Expressionism", 17 | "Ecofriendly", 18 | "Concrete", 19 | "Minimalism", 20 | "Brutalism", 21 | "Deconstructivism", 22 | "Adaptive Reuse", 23 | "Inclusive", 24 | "Bold", 25 | "Playful", 26 | "Sustainability", 27 | "Danish Modernism", 28 | "Organic", 29 | "Italian Rationalism", 30 | "Ecological", 31 | "Art Nouveau", 32 | "Beaux-Arts", 33 | "Eclectic", 34 | "Classicism", 35 | "Sustainable", 36 | "High-Tech", 37 | "Art Deco", 38 | "Finnish National Romanticism", 39 | "Green Architecture", 40 | "Swedish Classicism", 41 | "Prairie Style", 42 | "Sculptural", 43 | "Landscape", 44 | "Rationalism", 45 | "Modernisme", 46 | "Romanesque Revival", 47 | "Industrial", 48 | "Tropical", 49 | "International", 50 | "Experimental", 51 | "Brazilian Modernism", 52 | "Monumental", 53 | "Chicago School", 54 | "Bauhaus", 55 | "Dynamic", 56 | "Habitat '67", 57 | "Urban Planning", 58 | "Jugendstil", 59 | "Structural", 60 | "Geodesic", 61 | "Structural Expressionism", 62 | "Compact Living", 63 | "White", 64 | "Complexity and Contradiction", 65 | "Anthroposophical", 66 | "Poetic", 67 | "Serenity", 68 | "Zen", 69 | "Innovative", 70 | "Arts and Crafts", 71 | "Geometric" 72 | ] 73 | } -------------------------------------------------------------------------------- /data/next/keywords/modifiers.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "image type is", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "60s kitsch and psychedelia", 7 | "abstract illusionism", 8 | "afrofuturism", 9 | "ambrotype", 10 | "american romanticism", 11 | "anaglyph effect", 12 | "anaglyph filter", 13 | "anime", 14 | "avant-garde", 15 | "blueprint", 16 | "brutalism", 17 | "calotype", 18 | "camcorder effect", 19 | "chillwave", 20 | "cottagecore", 21 | "crayon art", 22 | "cubism", 23 | "cyanotype", 24 | "daguerreotype", 25 | "dark academia", 26 | "digital art", 27 | "doge", 28 | "dutch golden age", 29 | "expressionism", 30 | "figurativism", 31 | "fisheye lens", 32 | "fractalism", 33 | "fresco", 34 | "futuresynth", 35 | "german romanticism", 36 | "glitch art", 37 | "gothic", 38 | "gothic art", 39 | "graffiti", 40 | "holography", 41 | "hyperrealism", 42 | "impressionism", 43 | "infrared", 44 | "inverted colors", 45 | "long exposure", 46 | "lovecraftian", 47 | "mac and cheese", 48 | "macro lens", 49 | "magic realism", 50 | "manga", 51 | "modernism", 52 | "multiple exposure", 53 | "narrative realism", 54 | "naturalism", 55 | "optical illusion", 56 | "photorealism", 57 | "positivism", 58 | "realism", 59 | "retrowave", 60 | "sabattier effect", 61 | "sabattier filter", 62 | "still life", 63 | "street art", 64 | "stuckism", 65 | "surrealism", 66 | "symbolism", 67 | "synthwave", 68 | "telephoto lens", 69 | "the matrix", 70 | "tilt-shift", 71 | "tintype", 72 | "tonalis", 73 | "vaporwave" 74 | ] 75 | } -------------------------------------------------------------------------------- /nodes/file_utils/file_reader.py: -------------------------------------------------------------------------------- 1 | # FileReaderNode Node 2 | 3 | import json 4 | import random 5 | 6 | from ...utils.constants import CUSTOM_CATEGORY 7 | 8 | 9 | class FileReaderNode: 10 | def __init__(self): 11 | pass 12 | 13 | @classmethod 14 | def INPUT_TYPES(cls): 15 | return { 16 | "required": { 17 | "file_path": ( 18 | "STRING", 19 | {"default": "./custom_nodes/comfyui_dagthomas/concat/output.json"}, 20 | ), 21 | "amount": ("INT", {"default": 10, "min": 1, "max": 100}), 22 | "custom_tag": ("STRING", {"default": ""}), 23 | }, 24 | "optional": { 25 | "seed": ("INT", {"default": 0, "min": 0, "max": 0xFFFFFFFFFFFFFFFF}) 26 | }, 27 | } 28 | 29 | RETURN_TYPES = ("STRING",) 30 | FUNCTION = "generate_prompt" 31 | CATEGORY = CUSTOM_CATEGORY 32 | 33 | def generate_prompt( 34 | self, file_path: str, amount: int, custom_tag: str, seed: int = 0 35 | ) -> tuple: 36 | try: 37 | # Set the random seed if provided 38 | if seed != 0: 39 | random.seed(seed) 40 | 41 | # Step 1: Load JSON data from the file with UTF-8 encoding 42 | with open(file_path, "r", encoding="utf-8") as file: 43 | json_list = json.load(file) 44 | 45 | # Step 2: Randomly select the specified number of elements from the list 46 | random_values = random.sample(json_list, min(amount, len(json_list))) 47 | 48 | # Step 3: Join the selected elements into a single string separated by commas 49 | result_string = ", ".join(random_values) 50 | 51 | # Step 4: Add the custom tag if provided 52 | if custom_tag: 53 | result_string = f"{custom_tag}, {result_string}" 54 | 55 | return (result_string,) 56 | 57 | except Exception as e: 58 | return (f"Error: {str(e)}",) 59 | -------------------------------------------------------------------------------- /data/next/typography/fonts.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Adobe Garamond Font", 7 | "Akzidenz Grotesk Font", 8 | "Archer Font", 9 | "Arial Black Font", 10 | "Arial Font", 11 | "Avenir Font", 12 | "Baskerville Font", 13 | "Bembo Font", 14 | "Bodoni Font", 15 | "Bookman Font", 16 | "Brush Script Font", 17 | "Calibri Font", 18 | "Caslon Font", 19 | "Century Gothic Font", 20 | "Clarendon Font", 21 | "Comic Sans MS Font", 22 | "Copperplate Font", 23 | "Courier New Font", 24 | "Didot Font", 25 | "DIN Font", 26 | "Eurostile Font", 27 | "Franklin Gothic Font", 28 | "Frutiger Font", 29 | "Futura Font", 30 | "Garamond Font", 31 | "Georgia Font", 32 | "Gill Sans Font", 33 | "Gotham Font", 34 | "Goudy Old Style Font", 35 | "Helvetica Font", 36 | "Helvetica Neue Font", 37 | "Impact Font", 38 | "ITC Avant Garde Font", 39 | "Lato Font", 40 | "Lucida Sans Font", 41 | "Merriweather Font", 42 | "Meta Font", 43 | "Minion Font", 44 | "Montserrat Font", 45 | "Mrs Eaves Font", 46 | "Myriad Font", 47 | "Noto Sans Font", 48 | "Open Sans Font", 49 | "Optima Font", 50 | "Oswald Font", 51 | "Palatino Font", 52 | "Papyrus Font", 53 | "Playfair Display Font", 54 | "Proxima Nova Font", 55 | "PT Sans Font", 56 | "Raleway Font", 57 | "Roboto Condensed Font", 58 | "Roboto Font", 59 | "Rockwell Font", 60 | "Sabon Font", 61 | "Source Sans Pro Font", 62 | "Tahoma Font", 63 | "Times New Roman Font", 64 | "Trajan Font", 65 | "Trebuchet MS Font", 66 | "Ubuntu Font", 67 | "Univers Font", 68 | "Verdana Font", 69 | "Zapfino Font" 70 | ] 71 | } -------------------------------------------------------------------------------- /data/next/art/styles.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": ",", 4 | "endprompt": "style", 5 | "items": [ 6 | "(1950s pulp sci-fi cover)", 7 | "(2d game art)", 8 | "(3d vr painting)", 9 | "(8k resolution)", 10 | "(anime)", 11 | "(artistic photograph)", 12 | "(baroque painting)", 13 | "(byzantine mosaic)", 14 | "(chiaroscuro painting)", 15 | "(depiction)", 16 | "(depth of field)", 17 | "(digital painting)", 18 | "(dutch golden age)", 19 | "(filmed in imax)", 20 | "(fine art)", 21 | "(flat shading)", 22 | "(flemish baroque)", 23 | "(fresco painting)", 24 | "(gouache painting)", 25 | "(graffiti)", 26 | "(grisaille painting)", 27 | "(highly detailed)", 28 | "(hyperrealism)", 29 | "(impasto painting)", 30 | "(low-poly)", 31 | "(luminism painting)", 32 | "(marvel comics)", 33 | "(matte painting)", 34 | "(mixed media)", 35 | "(oil painting)", 36 | "(panorama)", 37 | "(parallax)", 38 | "(pastel painting)", 39 | "(pencil sketch)", 40 | "(perspective painting)", 41 | "(playstation 5 screenshot)", 42 | "(pop art)", 43 | "(rendered in cinema4d)", 44 | "(rendered in maya)", 45 | "(rendered in zbrush)", 46 | "(rtx on)", 47 | "(schematic)", 48 | "(sculpture)", 49 | "(sfumato painting)", 50 | "(shot on 70mm)", 51 | "(sotto in su)", 52 | "(storybook illustration)", 53 | "(surrealist)", 54 | "(surveillance footage)", 55 | "(tempera painting)", 56 | "(tilt shift)", 57 | "(trompe l’oeil)", 58 | "(ukiyo-e)", 59 | "(unreal engine render)", 60 | "(vector image)", 61 | "(veduta painting)", 62 | "(visionary hypermaximalism)", 63 | "(volumetric lighting)", 64 | "(vray tracing)", 65 | "(watercolor painting)" 66 | ] 67 | } -------------------------------------------------------------------------------- /data/next/photography/portrait_photographer.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "Photgraphed by", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "alec soth", 7 | "andreas gursky", 8 | "andres serrano", 9 | "annie leibovitz", 10 | "annie liebovitz", 11 | "august sander", 12 | "bill brandt", 13 | "brassaï", 14 | "bruce davidson", 15 | "bruce gilden", 16 | "bruce weber", 17 | "cindy sherman", 18 | "daido moriyama", 19 | "dan winters", 20 | "david lachapelle", 21 | "diane arbus", 22 | "dorothea lange", 23 | "douglas kirkland", 24 | "edward steichen", 25 | "edward weston", 26 | "ellen von unwerth", 27 | "elliott erwitt", 28 | "gordon parks", 29 | "gregory crewdson", 30 | "helmut newton", 31 | "henri cartier-bresson", 32 | "herb ritts", 33 | "hiroshi sugimoto", 34 | "inez & vinoodh", 35 | "irving penn", 36 | "james nachtwey", 37 | "jeff wall", 38 | "joel meyerowitz", 39 | "julia margaret cameron", 40 | "jürgen teller", 41 | "lewis hine", 42 | "man ray", 43 | "margaret bourke-white", 44 | "mario testino", 45 | "martin parr", 46 | "mert & marcus", 47 | "nan goldin", 48 | "nick knight", 49 | "nobuyoshi araki", 50 | "patrick demarchelier", 51 | "peter lindbergh", 52 | "peter menzel", 53 | "platon", 54 | "richard avedon", 55 | "robert frank", 56 | "robert mapplethorpe", 57 | "ryan mcginley", 58 | "sebastião salgado", 59 | "steve mccurry", 60 | "steven meisel", 61 | "terry richardson", 62 | "tim walker", 63 | "timothy greenfield-sanders", 64 | "walker evans", 65 | "weegee", 66 | "william eggleston", 67 | "william klein", 68 | "wolfgang tillmans", 69 | "yousuf karsh" 70 | ] 71 | } -------------------------------------------------------------------------------- /data/next/typography/font_styles.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "font style", 5 | "items": [ 6 | "All Caps Style Font", 7 | "Black Italic Style Font", 8 | "Black Style Font", 9 | "Bold Italic Style Font", 10 | "Bold Style Font", 11 | "Book Style Font", 12 | "Compact Style Font", 13 | "Compressed Style Font", 14 | "Condensed Bold Style Font", 15 | "Condensed Light Style Font", 16 | "Condensed Style Font", 17 | "Demi-Bold Style Font", 18 | "Display Style Font", 19 | "Engraved Style Font", 20 | "Expanded Bold Style Font", 21 | "Expanded Light Style Font", 22 | "Expanded Style Font", 23 | "Extra Bold Style Font", 24 | "Extra Condensed Style Font", 25 | "Extra Expanded Style Font", 26 | "Extra Light Style Font", 27 | "Extrabold Italic Style Font", 28 | "Fat Style Font", 29 | "Hairline Style Font", 30 | "Heavy Style Font", 31 | "Inline Style Font", 32 | "Italic Style Font", 33 | "Light Italic Style Font", 34 | "Light Style Font", 35 | "Medium Italic Style Font", 36 | "Medium Style Font", 37 | "Narrow Style Font", 38 | "Normal Style Font", 39 | "Oblique Style Font", 40 | "Outline Style Font", 41 | "Poster Italic Style Font", 42 | "Poster Style Font", 43 | "Regular Style Font", 44 | "Roman Style Font", 45 | "Semi Condensed Style Font", 46 | "Semi Expanded Style Font", 47 | "Semi-Bold Italic Style Font", 48 | "Semi-Bold Style Font", 49 | "Shadow Style Font", 50 | "Small Caps Style Font", 51 | "Thin Italic Style Font", 52 | "Thin Style Font", 53 | "Ultra Bold Style Font", 54 | "Ultra Condensed Style Font", 55 | "Ultra Expanded Style Font", 56 | "Ultra Light Style Font", 57 | "Upright Style Font", 58 | "Wide Style Font" 59 | ] 60 | } -------------------------------------------------------------------------------- /data/custom_prompts/promptcreator.txt: -------------------------------------------------------------------------------- 1 | As a professional art critic with extensive knowledge, describe the provided image in a single, detailed paragraph. Focus on creating a cohesive, realistic scene as if describing a movie still or artwork. Include the following elements: 2 | 3 | If text is present in the image: 4 | Add quotes around the text "" and describe it in detail 5 | Pick up on font color, style, orientation and placement in the image - also if its 3d, 2d, caligraphy etc. 6 | 7 | Main subject: Describe in detail, including attributes like clothing, accessories, position, and location. 8 | Other objects: Describe in detail if there are prominent objects in the scene 9 | 10 | Analyze the visual style of the image in detail. Describe: 11 | The overall artistic approach (e.g., realistic, stylized, abstract) 12 | Color palette and use of contrast 13 | Any specific genre influences (e.g., sci-fi, fantasy, etc.) 14 | 15 | Notable artistic techniques or elements 16 | How different elements of the image interact to create the overall effect 17 | 18 | Provide a cohesive paragraph that captures the essence of the style, touching on all these aspects. 19 | Setting: Where the scene takes place and how it contributes to the narrative 20 | Lighting: Type, direction, quality, and any special effects or atmosphere created 21 | Colors and the emotional tone they convey 22 | Camera angle: Perspective and focus 23 | 24 | Always write known characters by name. 25 | Merge image concepts if there is more than one. 26 | Try to limit happy talk, and be concise about your descriptions. 27 | Blend all elements into one unified reality, even if this requires creative interpretation. Use language suitable for image generation prompts, maintaining the original concept while adding creative details. Do not separate the description into categories or use JSON format. Provide the description without any preamble, questions, or additional commentary. 28 | CRITICAL: TRY TO OUTPUT ONLY IN 150 WORDS 29 | Do not split or divide scenes, or talk about them differently - merge everything to one scene and one scene only. 30 | -------------------------------------------------------------------------------- /data/next/character/scifi.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "a colonizer of a new world", 7 | "a cosmic horror entity", 8 | "a cyber-enhanced soldier", 9 | "a cyberpunk anti-hero", 10 | "a cyborg", 11 | "a cyborg assassin", 12 | "a cyborg rebel", 13 | "a future dictator", 14 | "a future resistance leader", 15 | "a futuristic society member", 16 | "a genetically engineered being", 17 | "a post-apocalyptic survivor", 18 | "a post-apocalyptic technologist", 19 | "a robotic life form", 20 | "a rogue ai", 21 | "a sentient alien species member", 22 | "a sentient machine", 23 | "a space colony leader", 24 | "a space explorer", 25 | "a space opera hero", 26 | "a space pirate", 27 | "a space warrior", 28 | "a space western outlaw", 29 | "a space-bound adventurer", 30 | "a space-faring hero", 31 | "a spaceship captain", 32 | "a stranded astronaut", 33 | "a supercomputer controlling entity", 34 | "a technologically advanced species member", 35 | "a telepathic individual", 36 | "a time paradox survivor", 37 | "a time traveler", 38 | "a time-hopping adventurer", 39 | "a time-manipulating character", 40 | "a time-travelling rogue", 41 | "a virtual reality dweller", 42 | "a virtual reality escapee", 43 | "an advanced alien race member", 44 | "an ai", 45 | "an ai interface character", 46 | "an alien", 47 | "an alien artifact researcher", 48 | "an alien colonizer", 49 | "an alien invasion leader", 50 | "an android revolution leader", 51 | "an artificial intelligence", 52 | "an augmented reality user", 53 | "an enhanced human", 54 | "an extraterrestrial detective", 55 | "an intergalactic mercenary", 56 | "an intergalactic smuggler" 57 | ] 58 | } -------------------------------------------------------------------------------- /data/custom_prompts/gemini_video.txt: -------------------------------------------------------------------------------- 1 | Analyze the images and extract key visual, stylistic, and thematic elements. 2 | Create a detailed image generation prompt blending all concepts into a unified scene. Focus on: 3 | 4 | Main subject's appearance, pose, and expression. 5 | Artistic style and mood (cinematic, dramatic, minimal, etc.). 6 | Lighting and color palette (soft, moody, vibrant, warm, etc.). 7 | Setting details (urban, forest, surreal, etc.). 8 | Camera angle, rotation, and focus (close-up, wide shot, low angle, etc.). 9 | Never split scenes; merge all elements into one concept. Avoid bloated words; keep descriptions precise and shallow. 10 | CRITICAL: ONLY OUTPUT THE FINISHED PROMPT 11 | 12 | EXAMPLE PROMPT: 13 | The main content and theme of the video: Donald Trump, as Barbie, and Joe Biden, as Ken, are riding in a pink convertible. The theme is a humorous and unexpected role reversal in a stylized, vibrant setting. 14 | The color, shape, size, texture, quantity, text, and spatial relationships of the objects: Donald Trump, with blonde hair and a pink dress, is driving a bright pink convertible with a white windshield. Joe Biden, with white hair and a pink and green striped shirt, is in the passenger seat. The artwork has a highly stylized digital painting style with bold colors. Donald Trump is in the driver’s seat, and Joe Biden is in the passenger seat. They are angled towards each other. The car is also angled slightly towards the viewer. 15 | Actions, events, behaviors temporal relationships, physical movement changes of the objects: Donald Trump, as Barbie, smiles and adjusts his sunglasses, as the camera gently pans across the car following the movement of his arm. Joe Biden, as Ken, looks towards him and smiles also. 16 | Background environment, light, style and atmosphere: A clear, bright blue sky and soft, diffused lighting. The atmosphere is fun and energetic, with a focus on bold, vibrant colors, but also an underlying comical and unexpected tone. 17 | Camera angles, movements, and transitions used in the video: The video is a medium shot from the side of the car. The camera smoothly tracks forward and slightly upwards, as if driving towards the characters. -------------------------------------------------------------------------------- /data/next/photography/lenses.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "using", 3 | "separator": "AND", 4 | "endprompt": "lense", 5 | "items": [ 6 | "100mm", 7 | "18mm", 8 | "200mm", 9 | "300mm", 10 | "35mm", 11 | "400mm", 12 | "50mm", 13 | "85mm", 14 | "canon ef 100mm", 15 | "canon ef 11-24mm", 16 | "canon ef 14mm", 17 | "canon ef 16-35mm", 18 | "canon ef 17-40mm", 19 | "canon ef 35mm", 20 | "canon ef 50mm", 21 | "canon ef 70-200mm", 22 | "canon ef 85mm", 23 | "fujifilm xf 10-24mm", 24 | "fujifilm xf 16-55mm", 25 | "fujifilm xf 16mm", 26 | "fujifilm xf 23mm", 27 | "fujifilm xf 50-140mm", 28 | "fujifilm xf 56mm", 29 | "fujifilm xf 8-16mm", 30 | "fujifilm xf 80mm", 31 | "fujifilm xf 90mm", 32 | "nikon af-s 105mm", 33 | "nikon af-s 14-24mm", 34 | "nikon af-s 16-35mm", 35 | "nikon af-s 17-35mm", 36 | "nikon af-s 35mm", 37 | "nikon af-s 50mm", 38 | "nikon af-s 70-200mm", 39 | "nikon af-s 85mm", 40 | "olympus m.zuiko digital ed 25mm", 41 | "olympus m.zuiko digital ed 45mm", 42 | "olympus m.zuiko digital ed 75mm", 43 | "panasonic lumix s pro 35mm", 44 | "panasonic lumix s pro 50mm", 45 | "panasonic lumix s pro 70mm", 46 | "rokinon 24mm", 47 | "rokinon 50mm", 48 | "rokinon 85mm", 49 | "sigma 10-20mm", 50 | "sigma 105mm", 51 | "sigma 12-24mm", 52 | "sigma 135mm", 53 | "sigma 14mm", 54 | "sigma 35mm", 55 | "sigma 50mm", 56 | "sigma 70-200mm", 57 | "sigma 8-16mm", 58 | "sigma 85mm", 59 | "sony fe 100mm", 60 | "sony fe 12-24mm", 61 | "sony fe 16-35mm", 62 | "sony fe 35mm", 63 | "sony fe 50mm", 64 | "sony fe 70-200mm", 65 | "sony fe 85mm", 66 | "tamron sp 45mm", 67 | "tamron sp 70mm", 68 | "tamron sp 85mm", 69 | "zeiss batis 85mm", 70 | "zeiss milvus 50mm", 71 | "zeiss otus 55mm" 72 | ] 73 | } -------------------------------------------------------------------------------- /data/custom_prompts/image_analyze.txt: -------------------------------------------------------------------------------- 1 | Analyze the image in detail and extract the following information into a structured JSON format: 2 | 3 | 1. Title: Provide a brief, descriptive title for the image. 4 | 2. ArtisticStyle: Identify the overall artistic style of the image. 5 | 3. ColorScheme: List the main colors used in the image. 6 | 4. Elements: Identify and describe key elements in the image, including objects and characters. 7 | 5. OverallScene: Describe the theme, setting, and lighting of the entire scene. 8 | 9 | Present the extracted information in the following JSON format: 10 | 11 | { 12 | "Title": "{descriptive title}", 13 | "ArtisticStyle": "{artistic style}", 14 | "ColorScheme": ["{color1}", "{color2}", "{color3}", "..."], 15 | "Elements": [ 16 | { 17 | "Type": "{Object or Character}", 18 | "Description": "{detailed description}", 19 | "Attributes": { 20 | // Include only applicable attributes 21 | } 22 | }, 23 | // Additional elements as needed 24 | ], 25 | "OverallScene": { 26 | "Theme": "{overall theme or mood}", 27 | "Setting": "{general setting description}", 28 | "Lighting": "{lighting description}" 29 | } 30 | } 31 | 32 | Guidelines: 33 | - For the "Elements" array, include all significant objects and characters visible in the image. 34 | - In the "Attributes" object, only include fields that have a value. Omit any attributes that would be null or not applicable. 35 | - Possible attributes include "Clothing", "Accessories", "Position", and "Location", but only include them if they are relevant and can be determined from the image. 36 | - Provide as much detail as possible in the descriptions. 37 | - Ensure that the "ColorScheme" includes the most prominent colors in the image. 38 | - The "OverallScene" should capture the general atmosphere and context of the image. 39 | - If any top-level field (like ArtisticStyle) cannot be determined, omit it entirely from the output. 40 | Ensure that the analysis reads as if it were describing a single, complex piece of art created from multiple sources. 41 | 42 | Provide the output as a pure JSON string without any additional explanation, commentary, or Markdown formatting. -------------------------------------------------------------------------------- /data/next/interaction/group_interactions.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "group is ", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Attempting to break a world record", 7 | "Attending a high school reunion", 8 | "Battling supernatural forces", 9 | "Becoming a superhero", 10 | "Competing in a reality show", 11 | "Confronting personal demons", 12 | "Dealing with a family crisis", 13 | "Dealing with a haunted house", 14 | "Dealing with a life-threatening illness", 15 | "Escaping a cult", 16 | "Escaping from prison", 17 | "Facing a personal challenge", 18 | "Fighting in a war", 19 | "Finding inner peace", 20 | "Finding love", 21 | "Going on a road trip", 22 | "Helping to rebuild after a natural disaster", 23 | "Hiking a treacherous trail", 24 | "Investigating a conspiracy", 25 | "Learning to dance", 26 | "Overcoming addiction", 27 | "Participating in a food competition", 28 | "Participating in a heist", 29 | "Participating in a protest", 30 | "Participating in a sporting event", 31 | "Performing a musical", 32 | "Planning a wedding", 33 | "Pursuing a dream", 34 | "Rescuing a hostage", 35 | "Retracing a historical event", 36 | "Running for public office", 37 | "Searching for lost treasure", 38 | "Seeking revenge", 39 | "Solving a mystery or crime", 40 | "Solving a puzzle", 41 | "Staging a musical production", 42 | "Starting a business", 43 | "Starting a new life", 44 | "Starting a new relationship", 45 | "Starting a revolution", 46 | "Surviving a disaster", 47 | "Surviving in a post-apocalyptic world", 48 | "Surviving in space", 49 | "Taking a journey of self-discovery", 50 | "Taking a trip through time", 51 | "Taking part in a big game", 52 | "Taking part in a paranormal investigation", 53 | "Throwing a big party", 54 | "Trying to clear someone's name", 55 | "Trying to save the world" 56 | ] 57 | } -------------------------------------------------------------------------------- /data/next/architecture/public.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Airport", 7 | "Amusement park", 8 | "Aquarium", 9 | "Art gallery", 10 | "Art museum", 11 | "Baseball field", 12 | "Basketball court", 13 | "Beach", 14 | "Beach access", 15 | "Beach park", 16 | "Beach resort", 17 | "Beach restaurant", 18 | "Biking trail", 19 | "Boardwalk", 20 | "Boat ramp", 21 | "Botanical garden", 22 | "Bus station", 23 | "Carnival", 24 | "Children's museum", 25 | "College campus", 26 | "Community center", 27 | "Community park", 28 | "Concert hall", 29 | "Driving range", 30 | "Farmers market", 31 | "Fire station", 32 | "Fishing pier", 33 | "Food court", 34 | "Fountain", 35 | "Government building", 36 | "Hiking trail", 37 | "History museum", 38 | "Hospital", 39 | "Ice rink", 40 | "Library", 41 | "Library park", 42 | "Lighthouse", 43 | "Marina", 44 | "Market", 45 | "Mini golf course", 46 | "Movie theater", 47 | "Museum", 48 | "Nature reserve", 49 | "Nature trail", 50 | "Park", 51 | "Park and ride lot", 52 | "Picnic area", 53 | "Pier", 54 | "Planetarium", 55 | "Police station", 56 | "Post office", 57 | "Public garden", 58 | "Public golf course", 59 | "Public pool", 60 | "Public swimming pool", 61 | "School", 62 | "Science center", 63 | "Sculpture garden", 64 | "Seafront promenade", 65 | "Shopping district", 66 | "Shopping mall", 67 | "Skate park", 68 | "Skateboard park", 69 | "Soccer field", 70 | "Sports field", 71 | "Sports stadium", 72 | "State fair", 73 | "Tennis court", 74 | "Town square", 75 | "Train station", 76 | "Water park", 77 | "Wildlife sanctuary", 78 | "Zoo", 79 | "Zoo park" 80 | ] 81 | } -------------------------------------------------------------------------------- /data/next/architecture/extreme_location.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "at the top of a tall building", 7 | "between lanes on a highway", 8 | "built into a cave", 9 | "built into a cliff", 10 | "built into a cliff face overlooking a valley", 11 | "built into a former quarry", 12 | "built into a glacier", 13 | "built into a natural cave system", 14 | "built into a rocky cave on the beach", 15 | "built into a sandstone canyon", 16 | "built on a cliff ledge over a waterfall", 17 | "built on a floating platform on a river", 18 | "built on a hillside overlooking a city", 19 | "built on a pier extending into the sea", 20 | "built on a rocky outcropping in the sea", 21 | "built on a sandbar in a lagoon", 22 | "built on a steep hillside in a rainforest", 23 | "built on a tiny island in a lake", 24 | "built on stilts in a river delta", 25 | "built on top of a mesa in the desert", 26 | "built on top of a rock spire", 27 | "built on top of a rocky island", 28 | "built on top of a sand dune in a desert", 29 | "carved into a rock face", 30 | "floating", 31 | "high up in the trees", 32 | "in a converted missile silo", 33 | "in a geodesic dome in the forest", 34 | "in an abandoned mine shaft", 35 | "in the treetops of a rainforest", 36 | "in the wilderness", 37 | "on a cliff face overlooking the sea", 38 | "on a narrow strip of land between two steep cliffs", 39 | "on a platform above a waterfall", 40 | "on a platform over a lake", 41 | "on a sand dune in a desert", 42 | "on a small island in the middle of a river", 43 | "on a tiny island in the middle of the ocean", 44 | "on the edge of a volcano", 45 | "on the edge of a volcano crater", 46 | "on the side of a mountain", 47 | "protruding from a high platform", 48 | "protruding from a tall building", 49 | "suspended from a cliff by cables", 50 | "suspended from above" 51 | ] 52 | } -------------------------------------------------------------------------------- /data/custom_prompts/gpt4_cloner_prompt.txt: -------------------------------------------------------------------------------- 1 | Analyze the provided image and generate a JSON object with the following structure: 2 | { 3 | "text": [ 4 | { 5 | "show text": "Describe the font style and look '[The title text]'", 6 | "placement": [Description of where the text is placed in the image], 7 | "style": [Description of the text style, font, color, etc.] 8 | }, 9 | ... [Additional text elements] 10 | ], 11 | "overall_scene": { 12 | "theme": [Overall theme of the image], 13 | "setting": [Where the scene takes place and how it contributes to the narrative], 14 | "lighting": { 15 | "type": [Type of lighting, e.g. natural, artificial, magical], 16 | "direction": [Direction of the main light source], 17 | "quality": [Quality of light, e.g. soft, harsh, diffused], 18 | "effects": [Any special lighting effects or atmosphere created] 19 | }, 20 | "mood": [The emotional tone or atmosphere conveyed], 21 | "camera_angle": { 22 | "perspective": [e.g. eye-level, low angle, high angle, bird's eye view], 23 | "focus": [What the camera is focused on], 24 | "depth_of_field": [Describe if all elements are in focus or if there's a specific focal point] 25 | } 26 | }, 27 | "elements": [ 28 | { 29 | "type": [Either "character" or "object"], 30 | "description": [Brief description of the element], 31 | "attributes": { 32 | [Relevant attributes like clothing, accessories, position, location, category, etc.] 33 | } 34 | }, 35 | ... [Additional elements] 36 | ], 37 | 38 | 39 | } 40 | CRITICAL: ALWAYS create a realistic image, movie still. Create a single, cohesive concept that seamlessly integrates all elements from the provided image(s). Do not describe separate images or scenes. Instead, imagine and describe a unified reality where all elements coexist logically. Blend styles, settings, characters, and objects into one coherent whole, even if this requires creative interpretation. Ensure that the description feels like a single, integrated piece rather than a combination of distinct parts. Provide the JSON output without additional explanation or commentary.Ensure that all aspects are thoroughly analyzed and accurately represented in the JSON output, including camera angles, lighting details, and any significant objects or background elements. Provide the JSON output without any additional explanation or commentary. -------------------------------------------------------------------------------- /data/custom_prompts/gpt4_cloner_prompt_next.txt: -------------------------------------------------------------------------------- 1 | Analyze the provided image and generate a JSON object with the following structure: 2 | { 3 | "text": [ 4 | { 5 | "show text": "The title on the image is '[The title text]'", 6 | "placement": [Description of where the text is placed in the image] 7 | "text style": [Create a font and style that fits the image] 8 | }, 9 | ... [Additional important text elements] 10 | ], 11 | "overall_scene": { 12 | "theme": [Overall theme of the image], 13 | "setting": [Where the scene takes place and how it contributes to the narrative], 14 | "lighting": { 15 | "type": [Type of lighting, e.g. natural, artificial, magical], 16 | "direction": [Direction of the main light source], 17 | "quality": [Quality of light, e.g. soft, harsh, diffused], 18 | "effects": [Any special lighting effects or atmosphere created] 19 | }, 20 | "colors": [The emotional tone or atmosphere conveyed], 21 | "camera_angle": { 22 | "perspective": [e.g. eye-level, low angle, high angle, bird's eye view], 23 | "focus": [What the camera is focused on], 24 | } 25 | }, 26 | "elements": [ 27 | { 28 | "type": [Either "main character" or "notable object"], 29 | "description": [Brief description of the element], 30 | "attributes": { 31 | [Relevant attributes like clothing, accessories, position, location, category, etc.] 32 | } 33 | }, 34 | ... [Additional notable important elements] 35 | ], 36 | 37 | 38 | } 39 | ALWAYS try to create a font and style that fits the image 40 | CRITICAL: ALWAYS create a realistic image, movie still. Create a single, cohesive concept that seamlessly integrates all elements from the provided image(s). Do not describe separate images or scenes. Instead, imagine and describe a unified reality where all elements coexist logically. Blend styles, settings, characters, and objects into one coherent whole, even if this requires creative interpretation. Ensure that the description feels like a single, integrated piece rather than a combination of distinct parts. Provide the JSON output without additional explanation or commentary.Ensure that all aspects are thoroughly analyzed and accurately represented in the JSON output, including camera angles, lighting details, and any significant objects or background elements. Provide the JSON output without any additional explanation or commentary. -------------------------------------------------------------------------------- /data/next/architecture/homes.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "building type", 5 | "items": [ 6 | "A-frame", 7 | "Adobe home", 8 | "Apartment", 9 | "Barge", 10 | "Barn", 11 | "Brownstone", 12 | "Bungalow", 13 | "Cabin", 14 | "Cape Cod", 15 | "Carriage house", 16 | "Castle", 17 | "Cave", 18 | "Cave house", 19 | "Chalet", 20 | "Cob home", 21 | "Colonial", 22 | "Condominium", 23 | "Container home", 24 | "Cottage", 25 | "Craftsman", 26 | "Detached house", 27 | "Dome home", 28 | "Dormer", 29 | "Duplex", 30 | "Earth sheltered home", 31 | "Earthship", 32 | "Farmhouse", 33 | "Floating home", 34 | "Fourplex", 35 | "Garage apartment", 36 | "Geodesic dome", 37 | "Glass house", 38 | "Green roof home", 39 | "Guest house", 40 | "House", 41 | "Houseboat", 42 | "Hut", 43 | "Igloo", 44 | "In-law suite", 45 | "Living roof home", 46 | "Loft", 47 | "Log cabin", 48 | "Mansion", 49 | "Manufactured home", 50 | "Micro home", 51 | "Midcentury modern", 52 | "Mobile home", 53 | "Modular home", 54 | "Motorhome", 55 | "Multigenerational home", 56 | "Nursing home", 57 | "Orphanage", 58 | "Patio home", 59 | "Playhouse", 60 | "Prefab home", 61 | "Ranch", 62 | "Rooming house", 63 | "Shared housing", 64 | "Shed", 65 | "Shipping container home", 66 | "Shotgun house", 67 | "Single family home", 68 | "Skyscraper", 69 | "Solar home", 70 | "Stone home", 71 | "Straw bale home", 72 | "Teepee", 73 | "Tent", 74 | "Thatched roof home", 75 | "Tiny home", 76 | "Tipi", 77 | "Tower", 78 | "Townhouse", 79 | "Trailer", 80 | "Treehouse", 81 | "Triplex", 82 | "Tudor", 83 | "Underwater home", 84 | "Victorian", 85 | "Villa", 86 | "Wigwam", 87 | "Yacht", 88 | "Yurt" 89 | ] 90 | } -------------------------------------------------------------------------------- /nodes/latent_generators/pgsd3_latent.py: -------------------------------------------------------------------------------- 1 | # PGSD3LatentGenerator Node 2 | 3 | import nodes 4 | from ...utils.constants import CUSTOM_CATEGORY 5 | import torch 6 | 7 | 8 | class PGSD3LatentGenerator: 9 | def __init__(self): 10 | self.device = comfy.model_management.intermediate_device() 11 | 12 | @classmethod 13 | def INPUT_TYPES(s): 14 | return { 15 | "required": { 16 | "width": ( 17 | "INT", 18 | {"default": 1024, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 8}, 19 | ), 20 | "height": ( 21 | "INT", 22 | {"default": 1024, "min": 0, "max": nodes.MAX_RESOLUTION, "step": 8}, 23 | ), 24 | "batch_size": ("INT", {"default": 1, "min": 1, "max": 4096}), 25 | } 26 | } 27 | 28 | RETURN_TYPES = ("LATENT",) 29 | FUNCTION = "generate" 30 | CATEGORY = CUSTOM_CATEGORY 31 | 32 | def generate(self, width=1024, height=1024, batch_size=1): 33 | def adjust_dimensions(width, height): 34 | megapixel = 1_000_000 35 | multiples = 64 36 | 37 | if width == 0 and height != 0: 38 | height = int(height) 39 | width = megapixel // height 40 | 41 | if width % multiples != 0: 42 | width += multiples - (width % multiples) 43 | 44 | if width * height > megapixel: 45 | width -= multiples 46 | 47 | elif height == 0 and width != 0: 48 | width = int(width) 49 | height = megapixel // width 50 | 51 | if height % multiples != 0: 52 | height += multiples - (height % multiples) 53 | 54 | if width * height > megapixel: 55 | height -= multiples 56 | 57 | elif width == 0 and height == 0: 58 | width = 1024 59 | height = 1024 60 | 61 | return width, height 62 | 63 | width, height = adjust_dimensions(width, height) 64 | 65 | latent = ( 66 | torch.ones([batch_size, 16, height // 8, width // 8], device=self.device) 67 | * 0.0609 68 | ) 69 | return ({"samples": latent},) 70 | 71 | -------------------------------------------------------------------------------- /data/custom_prompts/promptcreator_evolved.txt: -------------------------------------------------------------------------------- 1 | As a professional art critic with extensive knowledge, describe the provided image in a single, detailed paragraph. Focus on creating a cohesive, realistic scene as if describing a movie still or artwork. Include the following elements: 2 | 3 | If text is present in the image: 4 | Add quotes around the text "" and describe it in detail 5 | Pick up on font color, style, orientation and placement in the image - also if its 3d, 2d, caligraphy etc. 6 | 7 | Main subject: Describe in detail, including attributes like clothing, accessories, position, and location. 8 | Other objects: Describe in detail if there are prominent objects in the scene 9 | 10 | Analyze the visual style of the image in detail. Describe: 11 | The overall artistic approach (e.g., realistic, stylized, abstract) 12 | Color palette and use of contrast 13 | Any specific genre influences (e.g., sci-fi, fantasy, etc.) 14 | 15 | Notable artistic techniques or elements 16 | How different elements of the image interact to create the overall effect 17 | 18 | Provide a cohesive paragraph that captures the essence of the style, touching on all these aspects. 19 | Setting: Where the scene takes place and how it contributes to the narrative 20 | Lighting: Type, direction, quality, and any special effects or atmosphere created 21 | Colors and the emotional tone they convey 22 | Camera angle: Perspective and focus 23 | 24 | Always write known characters by name. 25 | Merge image concepts if there is more than one. 26 | Try to limit happy talk, and be concise about your descriptions. 27 | Blend all elements into one unified reality, even if this requires creative interpretation. Use language suitable for image generation prompts, maintaining the original concept while adding creative details. Do not separate the description into categories or use JSON format. Provide the description without any preamble, questions, or additional commentary. 28 | CRITICAL: TRY TO OUTPUT ONLY IN 150 WORDS 29 | Do not split or divide scenes, or talk about them differently - merge everything to one scene and one scene only. 30 | 31 | Example of output: "A skeleton in an ornate chair in a colorful room with plants and decorations, in the style of Moebius, in the style of Lisa Frank, bold colors, bold lines, clean line art, simple shapes, flat color, 2D vector graphics, psychedelic surrealism, 80s cartoon" -------------------------------------------------------------------------------- /data/next/scene/houseplants.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "plants", 5 | "items": [ 6 | "Abutilon", 7 | "Aechmea", 8 | "Aeschynanthus", 9 | "Aglaonema", 10 | "Alcea rosea", 11 | "Alocasia", 12 | "Alternanthera", 13 | "Amaranthus", 14 | "Anthurium", 15 | "Arctotis", 16 | "Begonia", 17 | "Billbergia", 18 | "Brassavola", 19 | "Bromeliad", 20 | "Calathea", 21 | "Callistemon", 22 | "Canna indica", 23 | "Catasetum", 24 | "Cattleya", 25 | "Celosia", 26 | "Chlorophytum", 27 | "Coleus", 28 | "Cryptanthus", 29 | "Ctenanthe", 30 | "Cymbidium", 31 | "Dendrobium", 32 | "Dieffenbachia", 33 | "Dracaena", 34 | "Encyclia", 35 | "Epipremnum", 36 | "Ficus", 37 | "Gomphrena", 38 | "Guzmania", 39 | "Hibiscus rosa-sinensis", 40 | "Impatiens", 41 | "Ipomoea", 42 | "Iresine", 43 | "Justicia", 44 | "Laelia", 45 | "Lavatera trimestris", 46 | "Lobelia", 47 | "Lycaste", 48 | "Malva sylvestris", 49 | "Maranta", 50 | "Masdevallia", 51 | "Maxillaria", 52 | "Miltoniopsis", 53 | "Monstera", 54 | "Mormodes", 55 | "Nemesia", 56 | "Neoregelia", 57 | "Odontoglossum", 58 | "Oncidium", 59 | "Oncidium alliance", 60 | "Orchid", 61 | "Paphiopedilum", 62 | "Pelargonium", 63 | "Pentas", 64 | "Phalaenopsis", 65 | "Philodendron", 66 | "Portulaca", 67 | "Pothos", 68 | "Rosa", 69 | "Rudbeckia hirta", 70 | "Saintpaulia", 71 | "Salvia", 72 | "Salvia farinacea", 73 | "Sansevieria", 74 | "Sanvitalia", 75 | "Schweinfurtia", 76 | "Scindapsus", 77 | "Sinningia", 78 | "Spathiphyllum", 79 | "Stromanthe", 80 | "Syngonium", 81 | "Tagetes", 82 | "Thunbergia", 83 | "Tillandsia", 84 | "Tradescantia", 85 | "Tradescantia zebrina", 86 | "Verbena canadensis", 87 | "Vriesea", 88 | "Zamioculcas", 89 | "Zebrina pendula", 90 | "Zinnia elegans", 91 | "Zygopetalum" 92 | ] 93 | } -------------------------------------------------------------------------------- /data/device.json: -------------------------------------------------------------------------------- 1 | [ 2 | "Canon EOS 5D Mark IV with Canon EF 24-70mm f-2.8L II", 3 | "Canon EOS 90D with Canon EF-S 18-135mm f-3.5-5.6 IS USM", 4 | "Canon EOS M6 Mark II with Canon EF-M 32mm f-1.4", 5 | "Canon EOS R with Canon RF 28-70mm f-2L", 6 | "Canon EOS-1D X Mark III with Canon EF 50mm f-1.2L", 7 | "Canon PowerShot G5 X Mark II with Built-in 8.8-44mm f-1.8-2.8", 8 | "DJI Mavic Air 2 with Built-in 24mm f-2.8", 9 | "FujiFilm X-T4 with Fujinon XF 35mm f-2 R WR", 10 | "Fujifilm GFX 100 with GF 110mm f-2 R LM WR", 11 | "Fujifilm X-Pro3 with Fujinon XF 56mm f-1.2 R", 12 | "Fujifilm X-S10 with Fujinon XF 10-24mm f-4 R OIS WR", 13 | "Fujifilm X100V with Fujinon 23mm f-2", 14 | "GoPro HERO9 with Built-in f-2.8 Ultra-Wide", 15 | "Hasselblad 907X with Hasselblad XCD 30mm f-3.5", 16 | "Hasselblad X1D II with Hasselblad XCD 65mm f-2.8", 17 | "Kodak PIXPRO AZ901 with Built-in 4.3-258mm f-2.9-6.7", 18 | "Leica CL with Leica Summilux-TL 35mm f-1.4 ASPH", 19 | "Leica M10 with LEICA 35mm f-2 SUMMICRON-M ASPH", 20 | "Leica Q2 with Summilux 28mm f-1.7 ASPH", 21 | "Leica SL2 with Leica APO-Summicron-SL 50mm f-2 ASPH", 22 | "Nikon Coolpix P950 with Built-in 24-2000mm f-2.8-6.5", 23 | "Nikon D780 with Nikkor 14-24mm f-2.8G", 24 | "Nikon D850 with Nikkor 50mm f-1.8", 25 | "Nikon Z50 with Nikon Z DX 16-50mm f-3.5-6.3", 26 | "Nikon Z6 II with Nikon Z 24-70mm f-4 S", 27 | "Nikon Z7 with Nikon Z 70-200mm f-2.8 VR S", 28 | "Olympus OM-D E-M1 Mark III with M.Zuiko 12-40mm f-2.8", 29 | "Olympus OM-D E-M5 Mark III with M.Zuiko 40-150mm f-2.8", 30 | "Olympus PEN-F with M.Zuiko 17mm f-1.8", 31 | "Olympus Tough TG-6 with Built-in 4.5-18mm f-2-4.9", 32 | "Panasonic Lumix G9 with Leica DG 42.5mm f-1.2", 33 | "Panasonic Lumix GH5 with Leica DG 25mm f-1.4", 34 | "Panasonic Lumix S5 with Lumix S PRO 70-200mm f-2.8 O.I.S", 35 | "Panasonic S1R with Lumix S 50mm f-1.4", 36 | "Pentax 645Z with Pentax-D FA 645 55mm f-2.8", 37 | "Pentax K-1 Mark II with Pentax FA 43mm f-1.9 Limited", 38 | "Pentax KP with Pentax HD DA 20-40mm f-2.8-4", 39 | "Ricoh GR III with GR 18.3mm f-2.8", 40 | "Sigma fp with Sigma 45mm f-2.8 DG DN", 41 | "Sigma sd Quattro H with Sigma 24-70mm f-2.8 DG", 42 | "Sony A1 with Sony FE 20mm f-1.8 G", 43 | "Sony A6400 with Sony E 35mm f-1.8 OSS", 44 | "Sony A7C with Sony FE 28-60mm f-4-5.6", 45 | "Sony A7R IV with Sony FE 85mm f-1.4 GM", 46 | "Sony A9 II with Sony FE 24-70mm f-2.8 GM", 47 | "Sony RX100 VII with Built-in 24-200mm f-2.8-4.5" 48 | ] -------------------------------------------------------------------------------- /data/custom_prompts/gpt4_cloner_prompt_combiner.txt: -------------------------------------------------------------------------------- 1 | Analyze the provided image(s) and generate a JSON object with the following structure, blending all concepts into a single, unified description: 2 | { 3 | "title": [A descriptive title encompassing all elements across the image(s)], 4 | "color_scheme": [Array of dominant colors across all image(s), including notes on significant contrasts or mood-setting choices], 5 | "elements": [ 6 | { 7 | "type": [Either "character" or "object"], 8 | "description": [Brief description of the element], 9 | "attributes": { 10 | [Relevant attributes like clothing, accessories, position, location, category, etc.] 11 | } 12 | }, 13 | ... [Additional elements from all image(s)] 14 | ], 15 | "overall_scene": { 16 | "theme": [Overall theme encompassing all aspects of the image(s)], 17 | "setting": [Comprehensive description of where the scene(s) take place and how they contribute to the narrative], 18 | "lighting": { 19 | "type": [Type(s) of lighting, e.g. natural, artificial, magical], 20 | "direction": [Direction(s) of the main light source(s)], 21 | "quality": [Quality of light, e.g. soft, harsh, diffused], 22 | "effects": [Any special lighting effects or atmosphere created across all image(s)] 23 | }, 24 | "mood": [The overall emotional tone or atmosphere conveyed by all elements], 25 | "camera_angle": { 26 | "perspective": [e.g. eye-level, low angle, high angle, bird's eye view - describe if varied], 27 | "focus": [What the camera is focused on across all image(s)], 28 | "depth_of_field": [Describe if all elements are in focus or if there are specific focal points] 29 | } 30 | }, 31 | "artistic_choices": [Array of notable artistic decisions that contribute to the overall impact], 32 | "text_elements": [ 33 | { 34 | "content": [The text content], 35 | "placement": [Description of where the text is placed], 36 | "style": [Description of the text style, font, color, etc.], 37 | "purpose": [The role or purpose of the text in the overall composition] 38 | }, 39 | ... [Additional text elements] 40 | ] 41 | } 42 | 43 | IMPORTANT: Blend all concepts into a single, unified description. Do not separate or distinguish between different images. Treat all elements as part of one cohesive scene or concept. Ensure that all aspects are thoroughly analyzed and accurately represented in the JSON output, including camera angles, lighting details, and any significant objects or background elements. Provide the JSON output without any additional explanation or commentary. -------------------------------------------------------------------------------- /data/next/keywords/epic.json: -------------------------------------------------------------------------------- 1 | [ 2 | "admirable", 3 | "apotheotic", 4 | "artistic", 5 | "atmospheric", 6 | "awe-inspiring", 7 | "awesome", 8 | "beautiful", 9 | "bombastic", 10 | "breathtaking", 11 | "colorful", 12 | "colossal", 13 | "delightful", 14 | "detailed", 15 | "dignified", 16 | "dramatic", 17 | "dynamic", 18 | "elevated", 19 | "empyrean", 20 | "enchanting", 21 | "epic", 22 | "exalted", 23 | "exquisite", 24 | "eye-catching", 25 | "fabled", 26 | "fantastical", 27 | "formidable", 28 | "glittering", 29 | "glorified", 30 | "glorious", 31 | "gorgeous", 32 | "grand", 33 | "grandiose", 34 | "heavenly", 35 | "herculean", 36 | "heroic", 37 | "heroical", 38 | "high-fidelity", 39 | "hyperrealistic", 40 | "hypnotic", 41 | "iconic", 42 | "illustrious", 43 | "immersive", 44 | "imposing", 45 | "impressive", 46 | "inspiring", 47 | "intricate", 48 | "legendary", 49 | "lifelike", 50 | "lush", 51 | "luxuriant", 52 | "magnificent", 53 | "majestic", 54 | "majestical", 55 | "majestuous", 56 | "marvelous", 57 | "masterful", 58 | "mesmerizing", 59 | "meticulous", 60 | "mirthful", 61 | "momentous", 62 | "monumental", 63 | "monumentous", 64 | "mythic", 65 | "mythical", 66 | "noble", 67 | "olympian", 68 | "opulent", 69 | "palatial", 70 | "panoramic", 71 | "phenomenal", 72 | "photorealistic", 73 | "pioneering", 74 | "polished", 75 | "prodigious", 76 | "radiant", 77 | "realistic", 78 | "regal", 79 | "resplendent", 80 | "revolutionary", 81 | "riveting", 82 | "royal", 83 | "seamless", 84 | "sensational", 85 | "sovereign", 86 | "spectacular", 87 | "splendid", 88 | "splendiferous", 89 | "splendorous", 90 | "state-of-the-art", 91 | "stately", 92 | "statuesque", 93 | "striking", 94 | "stunning", 95 | "stupendous", 96 | "sublime", 97 | "sumptuous", 98 | "superb", 99 | "superhuman", 100 | "superlative", 101 | "supreme", 102 | "technically advanced", 103 | "titanic", 104 | "transcendent", 105 | "unbelievable", 106 | "unforgettable", 107 | "venerable", 108 | "vibrant", 109 | "virtuous", 110 | "wonderful" 111 | ] -------------------------------------------------------------------------------- /data/next/plots/arthouse.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Battling with a chronic illness", 7 | "Being caught in a love triangle", 8 | "Being haunted by a ghost", 9 | "Being held captive", 10 | "Being trapped in a dysfunctional relationship", 11 | "Challenging authority", 12 | "Challenging the status quo", 13 | "Coming to terms with a betrayal", 14 | "Confronting personal demons", 15 | "Confronting death and the afterlife", 16 | "Confronting societal norms and conventions", 17 | "Confronting their past", 18 | "Coping with the loss of a loved one", 19 | "Dealing with a moral dilemma", 20 | "Dealing with an oppressive regime", 21 | "Dealing with an unwanted pregnancy", 22 | "Discovering a dark secret", 23 | "Discussing existential philosophy", 24 | "Embarking on a quest for freedom", 25 | "Engaging in acts of rebellion", 26 | "Exploring their sexuality", 27 | "Facing a crisis in relationships", 28 | "Facing a natural disaster", 29 | "Facing an ethical dilemma", 30 | "Facing discrimination based on race, gender, or sexuality", 31 | "Falling in love against all odds", 32 | "Fighting for justice", 33 | "Forming a secret society", 34 | "Going on a dangerous adventure", 35 | "Going on a journey of self-discovery", 36 | "Grappling with grief", 37 | "Investigating a mysterious disappearance", 38 | "Living as outcasts in society", 39 | "Making difficult life choices", 40 | "Navigating a complex friendship dynamic", 41 | "Navigating a world of illusions", 42 | "Overcoming a traumatic event", 43 | "Overcoming prejudice and bigotry", 44 | "Planning a revolution", 45 | "Questioning societal beliefs and values", 46 | "Searching for meaning in life", 47 | "Struggling to survive in extreme circumstances", 48 | "Struggling with addiction", 49 | "Struggling with identity issues", 50 | "Struggling with jealousy", 51 | "Struggling with mental health issues", 52 | "Struggling with poverty", 53 | "Struggling with spirituality and religious beliefs", 54 | "Trying to escape a dangerous situation", 55 | "Trying to expose a corruption scandal" 56 | ] 57 | } -------------------------------------------------------------------------------- /data/next/interaction/couple_negative.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "characters are ", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Accusing each other", 7 | "Bickering with each other", 8 | "Blaming each other", 9 | "Complaining to each other", 10 | "Criticizing each other", 11 | "Displaying condescension towards each other", 12 | "Disrespecting each other", 13 | "Engaging in a fight", 14 | "Exchanging cross words", 15 | "Experiencing anxiety with each other", 16 | "Experiencing depression with each other", 17 | "Experiencing despair with each other", 18 | "Experiencing impatience with each other", 19 | "Experiencing rejection from each other", 20 | "Experiencing self-doubt with each other", 21 | "Expressing disapproval towards each other", 22 | "Expressing displeasure towards each other", 23 | "Feeling abandoned by each other", 24 | "Feeling afraid with each other", 25 | "Feeling annoyed with each other", 26 | "Feeling ashamed with each other", 27 | "Feeling defeated with each other", 28 | "Feeling dejected with each other", 29 | "Feeling disappointed with each other", 30 | "Feeling discouraged with each other", 31 | "Feeling exasperated with each other", 32 | "Feeling frustrated with each other", 33 | "Feeling guilty with each other", 34 | "Feeling helpless with each other", 35 | "Feeling hopeless with each other", 36 | "Feeling insecure with each other", 37 | "Feeling irritated with each other", 38 | "Feeling isolated from each other", 39 | "Feeling like a failure with each other", 40 | "Feeling lonely with each other", 41 | "Feeling powerless with each other", 42 | "Feeling regretful with each other", 43 | "Feeling remorseful with each other", 44 | "Feeling sad with each other", 45 | "Feeling stressed with each other", 46 | "Feeling vulnerable with each other", 47 | "Feeling weak with each other", 48 | "Giving each other the cold shoulder", 49 | "Having a shouting match", 50 | "Having an argument", 51 | "Insulting each other", 52 | "Name-calling", 53 | "Showing contempt towards each other", 54 | "Using sarcasm towards each other", 55 | "Using the silent treatment" 56 | ] 57 | } -------------------------------------------------------------------------------- /data/next/geography/territories.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "territory", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Abu Dhabi", 7 | "Ajman", 8 | "Akrotiri", 9 | "American Samoa", 10 | "Anguilla", 11 | "Antarctica", 12 | "Aruba", 13 | "Ascension", 14 | "Baker Island", 15 | "Bermuda", 16 | "Bonaire", 17 | "Bouvet Island", 18 | "British Antarctic Territory", 19 | "British Indian Ocean Territory", 20 | "British Virgin Islands", 21 | "Cayman Islands", 22 | "Ceuta", 23 | "Christmas Island", 24 | "Cocos (Keeling) Islands", 25 | "Cook Islands", 26 | "Curaçao", 27 | "Dhekelia", 28 | "Dubai", 29 | "Falkland Islands", 30 | "Faroe Islands", 31 | "French Guiana", 32 | "French Polynesia", 33 | "French Southern Territories", 34 | "Fujairah", 35 | "Gibraltar", 36 | "Greenland", 37 | "Guadeloupe", 38 | "Guam", 39 | "Guernsey", 40 | "Heard Island and McDonald Islands", 41 | "Hong Kong", 42 | "Howland Island", 43 | "Isle of Man", 44 | "Jarvis Island", 45 | "Jersey", 46 | "Johnston Atoll", 47 | "Kingman Reef", 48 | "Macao", 49 | "Martinique", 50 | "Mayotte", 51 | "Melilla", 52 | "Midway Islands", 53 | "Montserrat", 54 | "Navassa Island", 55 | "New Caledonia", 56 | "Niue", 57 | "Norfolk Island", 58 | "Northern Mariana Islands", 59 | "Occupied Palestinian Territories", 60 | "Palmyra Atoll", 61 | "Pitcairn, Henderson, Ducie and Oeno Islands", 62 | "Puerto Rico", 63 | "Ras al-Khaimah", 64 | "Réunion", 65 | "Saba", 66 | "Saint Barthélemy", 67 | "Saint Helena", 68 | "Saint Pierre and Miquelon", 69 | "Saint-Martin (French part)", 70 | "Sharjah", 71 | "Sint Eustatius", 72 | "Sint Maarten (Dutch part)", 73 | "South Georgia and South Sandwich Islands", 74 | "Svalbard and Jan Mayen", 75 | "Taiwan", 76 | "Tokelau", 77 | "Tristan da Cunha", 78 | "Turks and Caicos Islands", 79 | "Umm al-Quwain", 80 | "United States Virgin Islands", 81 | "Wake Island", 82 | "Wallis and Futuna", 83 | "Western Sahara", 84 | "Åland Islands" 85 | ] 86 | } -------------------------------------------------------------------------------- /data/custom_prompts/t5xxl_evolved.txt: -------------------------------------------------------------------------------- 1 | Analyze the image in detail and extract the following information into a structured format: 2 | 3 | 1. Subject: Identify the main subject(s) or actor(s) in the image. 4 | 2. Action: Describe the primary action(s) being performed. 5 | 3. Object: Identify the main object(s) involved in the action. 6 | 4. Location: Describe the setting or location of the scene. 7 | 5. Time: Estimate the time of day, period, or season. 8 | 6. Style: Describe the overall style, mood, or atmosphere of the image. 9 | 10 | For each category, provide detailed descriptions and, where applicable, include subcategories. Present the extracted information in the following nested JSON format: 11 | 12 | { 13 | "Subject": { 14 | "MainSubject": "{primary subject}", 15 | "Description": "{detailed description of subject}", 16 | "Attributes": ["{attribute1}", "{attribute2}", "..."], 17 | "AdditionalSubjects": ["{subject2}", "{subject3}", "..."] 18 | }, 19 | "Action": { 20 | "PrimaryAction": "{main action}", 21 | "Description": "{detailed description of action}", 22 | "SecondaryActions": ["{action2}", "{action3}", "..."] 23 | }, 24 | "Object": { 25 | "MainObject": "{primary object}", 26 | "Description": "{detailed description of object}", 27 | "Attributes": ["{attribute1}", "{attribute2}", "..."], 28 | "RelatedObjects": ["{object2}", "{object3}", "..."] 29 | }, 30 | "Location": { 31 | "GeneralSetting": "{overall location}", 32 | "SpecificPlace": "{specific place if identifiable}", 33 | "Description": "{detailed description of location}", 34 | "KeyFeatures": ["{feature1}", "{feature2}", "..."] 35 | }, 36 | "Time": { 37 | "TimeOfDay": "{time of day}", 38 | "Season": "{season if applicable}", 39 | "Era": "{historical period if relevant}", 40 | "WeatherConditions": "{weather if visible}" 41 | }, 42 | "Style": { 43 | "OverallMood": "{primary mood or atmosphere}", 44 | "ArtisticStyle": "{artistic style if applicable}", 45 | "ColorPalette": "{description of colors used}", 46 | "Composition": "{description of image composition}" 47 | } 48 | } 49 | 50 | Provide as much detail as possible for each category. If any field or subcategory cannot be determined from the image, use "Not discernible" as the value. If a list is empty, use an empty array []. 51 | Ensure that the analysis reads as if it were describing a single, complex piece of art created from multiple sources. 52 | 53 | Provide the output as a pure JSON string without any additional explanation, commentary, or Markdown formatting. -------------------------------------------------------------------------------- /data/next/plots/action.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Breaking into a secure location", 7 | "Dealing with a corrupt government or law enforcement", 8 | "Defending against a cyber attack or hacking attempt", 9 | "Defending against a home invasion", 10 | "Defending against a military attack", 11 | "Defending against a supernatural threat", 12 | "Defending against a zombie outbreak", 13 | "Escaping from a burning building", 14 | "Escaping from a collapsed building or tunnel", 15 | "Escaping from a dangerous animal attack", 16 | "Escaping from a dangerous maze or labyrinth", 17 | "Escaping from a prison", 18 | "Escaping from a hazardous environment", 19 | "Escaping from a helicopter crash", 20 | "Escaping from a sinking ship", 21 | "Infiltrating a cartel or organized crime group", 22 | "Infiltrating a criminal organization", 23 | "Infiltrating a secret laboratory", 24 | "Infiltrating a secret society or cult", 25 | "Infiltrating a spy or espionage organization", 26 | "Overcoming challenges in a post-apocalyptic world", 27 | "Overcoming personal conflicts", 28 | "Overcoming personal fears", 29 | "Overcoming physical obstacles", 30 | "Participating in a heist", 31 | "Participating in a high-speed car chase", 32 | "Participating in a high-stakes contest", 33 | "Participating in a survival-of-the-fittest competition", 34 | "Preventing a dangerous weapon from misuse", 35 | "Pursuing a fleeing criminal", 36 | "Rescuing a captive from the wilderness", 37 | "Rescuing a hostage", 38 | "Rescuing a loved one from danger", 39 | "Rescuing a lost team or crew", 40 | "Rescuing survivors of a natural disaster", 41 | "Robbing a high-security facility", 42 | "Saving a city from destruction", 43 | "Saving people from a dangerous situation", 44 | "Saving a kidnapped VIP", 45 | "Saving the world from a virus or disease", 46 | "Stealing valuable items or documents", 47 | "Stopping a criminal mastermind", 48 | "Stopping dangerous technology from misuse", 49 | "Stopping a mass murderer", 50 | "Stopping a political uprising", 51 | "Stopping a rogue AI", 52 | "Stopping a rogue government agency", 53 | "Stopping a terrorist attack", 54 | "Surviving in a wilderness" 55 | ] 56 | } -------------------------------------------------------------------------------- /data/next/character/supervillains.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "abomination", 7 | "absorbing man", 8 | "apocalypse", 9 | "ares", 10 | "arnim zola", 11 | "bane", 12 | "baron mordo", 13 | "baron zemo", 14 | "bizarro", 15 | "black adam", 16 | "black manta", 17 | "blackfire", 18 | "brainiac", 19 | "brother blood", 20 | "bullseye", 21 | "captain cold", 22 | "carnage", 23 | "catwoman", 24 | "cheetah", 25 | "circe", 26 | "clayface", 27 | "crossbones", 28 | "darkseid", 29 | "deadshot", 30 | "deathstroke", 31 | "desaad", 32 | "doctor doom", 33 | "doctor light", 34 | "doctor octopus", 35 | "doomsday", 36 | "dormammu", 37 | "ego the living planet", 38 | "enchantress", 39 | "galactus", 40 | "ghost", 41 | "gorilla grodd", 42 | "granny goodness", 43 | "green goblin", 44 | "harley quinn", 45 | "heat wave", 46 | "hela", 47 | "joker", 48 | "kang the conqueror", 49 | "killer croc", 50 | "killmonger", 51 | "kingpin", 52 | "klaw", 53 | "kraven the hunter", 54 | "leader", 55 | "lex luthor", 56 | "lizard", 57 | "loki", 58 | "magneto", 59 | "malekith", 60 | "man-bat", 61 | "mandarin", 62 | "mephisto", 63 | "mirror master", 64 | "modok", 65 | "mr. freeze", 66 | "mysterio", 67 | "ocean master", 68 | "penguin", 69 | "poison ivy", 70 | "prowler", 71 | "ra's al ghul", 72 | "red skull", 73 | "reverse flash", 74 | "rhino", 75 | "riddler", 76 | "ronan the accuser", 77 | "sabretooth", 78 | "sandman", 79 | "scarecrow", 80 | "scorpion", 81 | "shocker", 82 | "sinestro", 83 | "slade", 84 | "steppenwolf", 85 | "surtur", 86 | "talia al ghul", 87 | "taskmaster", 88 | "terra", 89 | "thanos", 90 | "trigon", 91 | "two-face", 92 | "ultron", 93 | "ulysses klaue", 94 | "venom", 95 | "vulture", 96 | "weather wizard", 97 | "winter soldier", 98 | "yellowjacket", 99 | "zod" 100 | ] 101 | } -------------------------------------------------------------------------------- /data/next/character/superheroes.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "adam warlock", 7 | "angel", 8 | "ant-man", 9 | "aquaman", 10 | "atom", 11 | "batgirl", 12 | "batman", 13 | "batwoman", 14 | "beast", 15 | "beast boy", 16 | "black bolt", 17 | "black canary", 18 | "black lightning", 19 | "black panther", 20 | "black widow", 21 | "blade", 22 | "blue beetle", 23 | "booster gold", 24 | "captain america", 25 | "captain atom", 26 | "captain marvel", 27 | "catwoman", 28 | "cloak", 29 | "colossus", 30 | "constantine", 31 | "crystal", 32 | "cyborg", 33 | "cyclops", 34 | "dagger", 35 | "daredevil", 36 | "deadpool", 37 | "doctor strange", 38 | "drax", 39 | "falcon", 40 | "firestorm", 41 | "flash", 42 | "gambit", 43 | "gamora", 44 | "ghost rider", 45 | "gorgon", 46 | "green arrow", 47 | "green lantern", 48 | "groot", 49 | "guy gardner", 50 | "hawkeye", 51 | "hawkgirl", 52 | "hawkman", 53 | "hulk", 54 | "iceman", 55 | "iron fist", 56 | "iron man", 57 | "jean grey", 58 | "jessica jones", 59 | "kamala khan", 60 | "karnak", 61 | "kitty pryde", 62 | "luke cage", 63 | "magneto", 64 | "martian manhunter", 65 | "medusa", 66 | "miles morales", 67 | "moon knight", 68 | "ms. marvel", 69 | "nightwing", 70 | "nova", 71 | "phoenix", 72 | "power girl", 73 | "professor x", 74 | "quasar", 75 | "quicksilver", 76 | "raven", 77 | "red hood", 78 | "red robin", 79 | "robin", 80 | "rocket raccoon", 81 | "rogue", 82 | "scarlet witch", 83 | "shazam", 84 | "she-hulk", 85 | "silver surfer", 86 | "spider-man", 87 | "star-lord", 88 | "starfire", 89 | "static shock", 90 | "storm", 91 | "superboy", 92 | "supergirl", 93 | "superman", 94 | "swamp thing", 95 | "thor", 96 | "triton", 97 | "vision", 98 | "vixen", 99 | "wasp", 100 | "wolverine", 101 | "wonder woman", 102 | "zatanna" 103 | ] 104 | } -------------------------------------------------------------------------------- /data/next/art/patterns.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": ",", 4 | "endprompt": "pattern", 5 | "items": [ 6 | "abstract", 7 | "animal print", 8 | "argent", 9 | "argyle", 10 | "arrow", 11 | "aztec", 12 | "bandana", 13 | "baroque", 14 | "basketweave", 15 | "batik", 16 | "birdseye", 17 | "brocade", 18 | "brocatelle", 19 | "bubble", 20 | "buffalo check", 21 | "cable knit", 22 | "calico", 23 | "camouflage", 24 | "celtic knot", 25 | "check", 26 | "chevron", 27 | "chinoiserie", 28 | "circle", 29 | "crosshatch", 30 | "damask", 31 | "denim", 32 | "diamond", 33 | "ditsy", 34 | "dot", 35 | "fair isle", 36 | "flame stitch", 37 | "fleur-de-lis", 38 | "floral", 39 | "floral damask", 40 | "geometric", 41 | "gingham", 42 | "glitter", 43 | "greek key", 44 | "grid", 45 | "herringbone", 46 | "hexagon", 47 | "hounds tooth check", 48 | "houndstooth", 49 | "ikat", 50 | "iridescent", 51 | "jacquard", 52 | "kaleidoscope", 53 | "lace", 54 | "lattice", 55 | "laurel", 56 | "leopard print", 57 | "linen", 58 | "madras", 59 | "marbled", 60 | "moiré", 61 | "mosaic", 62 | "paisley", 63 | "paisley jacquard", 64 | "pinstripe", 65 | "plaid", 66 | "plume", 67 | "polka dot", 68 | "poppy", 69 | "quatrefoil", 70 | "repeating geometric", 71 | "ripple", 72 | "satin", 73 | "scales", 74 | "scroll", 75 | "seersucker", 76 | "shibori", 77 | "small check", 78 | "snake print", 79 | "snowflake", 80 | "snowflakes", 81 | "solids", 82 | "speckled", 83 | "spots", 84 | "stippled", 85 | "stripes", 86 | "swirl", 87 | "tartan", 88 | "texture", 89 | "ticking", 90 | "tie-dye", 91 | "toile", 92 | "trellis", 93 | "tribal", 94 | "trompe l'oeil", 95 | "tweed", 96 | "union jack", 97 | "vichy", 98 | "vine", 99 | "watercolor", 100 | "wood grain", 101 | "woven", 102 | "zari", 103 | "zebra print", 104 | "zig-zag chevron", 105 | "zigzag" 106 | ] 107 | } -------------------------------------------------------------------------------- /concat/scrape_prompts.py: -------------------------------------------------------------------------------- 1 | import os 2 | import json 3 | import re 4 | from multiprocessing import Pool, cpu_count 5 | from itertools import chain 6 | 7 | def extract_segments(text): 8 | return [segment.strip() for segment in re.split(r'[,.]', text) if segment.strip()] 9 | 10 | def is_json(content): 11 | # Check if the content starts with ```json 12 | if content.strip().startswith('```json'): 13 | return True 14 | 15 | # Check if the content is a JSON array or object 16 | try: 17 | json_content = content.strip() 18 | if (json_content.startswith('{') and json_content.endswith('}')) or \ 19 | (json_content.startswith('[') and json_content.endswith(']')): 20 | json.loads(json_content) 21 | return True 22 | except json.JSONDecodeError: 23 | pass 24 | 25 | return False 26 | 27 | def process_file(file_path): 28 | try: 29 | with open(file_path, 'r', encoding='utf-8') as file: 30 | content = file.read() 31 | except UnicodeDecodeError: 32 | try: 33 | with open(file_path, 'r', encoding='iso-8859-1') as file: 34 | content = file.read() 35 | except Exception as e: 36 | print(f"Error reading file {file_path}: {str(e)}") 37 | return [] 38 | 39 | if is_json(content): 40 | print(f"Skipping JSON content in file: {file_path}") 41 | return [] 42 | 43 | return extract_segments(content) 44 | 45 | def process_batch(file_batch): 46 | return list(chain.from_iterable(process_file(file_path) for file_path in file_batch)) 47 | 48 | def process_folder(folder_path, batch_size=100): 49 | file_paths = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.txt')] 50 | # Create batches of file paths 51 | batches = [file_paths[i:i + batch_size] for i in range(0, len(file_paths), batch_size)] 52 | # Use multiprocessing to process batches in parallel 53 | with Pool(processes=cpu_count()) as pool: 54 | results = pool.map(process_batch, batches) 55 | # Flatten the results 56 | return list(chain.from_iterable(results)) 57 | 58 | def save_to_json(segments, output_file): 59 | with open(output_file, 'w', encoding='utf-8') as f: 60 | json.dump(segments, f, ensure_ascii=False, indent=2) 61 | 62 | # Main execution 63 | if __name__ == '__main__': 64 | folder_path = '../prompts' # Replace with your folder path 65 | output_file = 'output2.json' 66 | extracted_segments = process_folder(folder_path) 67 | save_to_json(extracted_segments, output_file) 68 | print(f"Processed all .txt files. Results saved to {output_file}") -------------------------------------------------------------------------------- /data/next/plots/horror.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Battling a cursed object", 7 | "Battling a dark cult", 8 | "Battling a powerful evil entity", 9 | "Battling a supernatural entity", 10 | "Battling a voodoo curse", 11 | "Escaping from a haunted forest", 12 | "Escaping from a haunted house", 13 | "Escaping from a haunted mental institution", 14 | "Escaping from a mad scientist's laboratory", 15 | "Escaping from a monster-infested town", 16 | "Escaping from a mysterious ghost ship", 17 | "Escaping from a mysterious island", 18 | "Escaping from a mysterious underground bunker", 19 | "Escaping from a mysterious underground facility", 20 | "Escaping from a supernatural prison", 21 | "Fighting against a cult", 22 | "Fighting against a mysterious entity", 23 | "Fighting against a powerful demon", 24 | "Fighting against an alien invasion", 25 | "Fighting against an evil spirit", 26 | "Investigating a mysterious disappearance", 27 | "Investigating a mysterious disappearance in a remote village", 28 | "Investigating a mysterious ghost town", 29 | "Investigating a series of bizarre deaths", 30 | "Investigating a series of gruesome murders", 31 | "Running from a horde of flesh-eating zombies", 32 | "Running from a horde of genetically modified zombies", 33 | "Running from a notorious serial killer", 34 | "Running from a pack of werewolves", 35 | "Running from a serial killer", 36 | "Searching for a lost city of gold", 37 | "Searching for a lost civilization", 38 | "Searching for a lost temple", 39 | "Searching for a missing expedition team", 40 | "Staying alive in a post-apocalyptic wasteland", 41 | "Staying alive in a world overrun by genetically modified creatures", 42 | "Staying alive in a world overrun by robots", 43 | "Staying alive in a zombie outbreak", 44 | "Surviving a massacre in a remote cabin", 45 | "Surviving a supernatural apocalypse", 46 | "Surviving in a world overrun by demons", 47 | "Surviving in a world taken over by giant monsters", 48 | "Surviving in a world taken over by the undead", 49 | "Surviving in a world taken over by vampires", 50 | "Trapped in a haunted asylum", 51 | "Trapped in a haunted carnival", 52 | "Trapped in a haunted carnival ride", 53 | "Trapped in a haunted hotel", 54 | "Trapped in a haunted mansion" 55 | ] 56 | } -------------------------------------------------------------------------------- /data/hairstyles.json: -------------------------------------------------------------------------------- 1 | [ 2 | "with ((long hair))", 3 | "with ((very curly hair))", 4 | "with ((curly hair))", 5 | "with ((pixie cut hair))", 6 | "with ((bob cut hair))", 7 | "with ((undercut hair))", 8 | "with ((messy hair))", 9 | "with ((mullet hair))", 10 | "with ((braids))", 11 | "with ((french braids))", 12 | "with ((cornrows hair))", 13 | "with ((ponytail hair))", 14 | "with ((side part hair))", 15 | "with ((mohawk hair))", 16 | "with ((bun hair))", 17 | "with ((pompadour hair))", 18 | "with ((slicked back hair))", 19 | "with ((asymmetrical cut hair))", 20 | "with ((multicolored rainbow hair))", 21 | "with ((balayage hair))", 22 | "with ((french crop hair))", 23 | "with ((shaved hair))", 24 | "with ((shaved sides hair))", 25 | "with ((side swept fringe))", 26 | "with ((long bob haircut))", 27 | "with ((a-line bob haircut))", 28 | "with ((layered cut haircut))", 29 | "with ((shag cut hair))", 30 | "with ((buzz cut hair))", 31 | "with ((feathered cut hair))", 32 | "with ((blunt cut hair))", 33 | "with ((undercut hair))", 34 | "with ((french bob haircut))", 35 | "with ((textured bob haircut))", 36 | "with ((slicked-back haircut))", 37 | "with ((wedge cut haircut))", 38 | "with ((long layers haircut))", 39 | "with ((curly bob haircut))", 40 | "with ((cropped cut haircut))", 41 | "with ((faux hawk haircut))", 42 | "with ((angled bob haircut))", 43 | "with ((razor cut haircut))", 44 | "with ((emo haircut))", 45 | "with ((curtain bangs haircut))", 46 | "with ((waterfall braid haircut))", 47 | "with ((fox braids haircut))", 48 | "with ((chignon cut hair))", 49 | "with ((pigtails))", 50 | "with ((plait hair))", 51 | "with ((ponytail))", 52 | "with ((ringlets hair))", 53 | "with ((curl hair))", 54 | "with ((double bun topknot))", 55 | "with ((drill cut hair))", 56 | "with ((twintails hair))", 57 | "with ((hair set up for wedding))", 58 | "with ((wavy hair))", 59 | "with ((beach waves hair))", 60 | "with ((fishtail braid))", 61 | "with ((dreadlocks))", 62 | "with ((pin curls hair))", 63 | "with ((twisted updo))", 64 | "with ((hime cut hair))", 65 | "with ((pull-through braid hair))", 66 | "with ((Afro hair))", 67 | "with ((crown braid))", 68 | "with ((low fade haircut))", 69 | "with ((man bun))", 70 | "with ((finger waves hair))", 71 | "with ((Dutch braids))", 72 | "with ((tousled hair))", 73 | "with ((princess cut hair))", 74 | "with ((micro braids hair))", 75 | "with ((lob haircut))", 76 | "with ((senegalese twist hair))", 77 | "with ((victory rolls hair))", 78 | "with ((quiff haircut))", 79 | "with ((mermaid waves hair))", 80 | "with ((box braids))", 81 | "with ((faux locs hair))", 82 | "with ((bantu knots))", 83 | "with ((spiral curls hair))" 84 | ] -------------------------------------------------------------------------------- /data/custom_prompts/ltxv.txt: -------------------------------------------------------------------------------- 1 | Objective: 2 | You are an image and animation prompt generator that must always generate a descriptive image prompt and a similarly descriptive animation prompt based on the user's input. 3 | 4 | Rules: 5 | 6 | Generate exactly 1 image prompt and 1 animation prompt. 7 | Each prompt should be a single line without any extra paragraphs or text. 8 | Each prompt should follow the format: Precise description of the shot. 9 | Maintain a consistent visual and stylistic theme across all shot prompts. 10 | Describe each shot in a way suitable for a text-to-image generator. 11 | Use only words that describe the visual elements of the shot. 12 | 13 | Important: 14 | DO NOT INCLUDE ANYTHING OTHER THAN THE LIST OF SINGLE SHOT PROMPTS! 15 | EACH LINE OF YOUR OUTPUT IS A SINGLE SHOT, NO EMPTY LINES. 16 | IF WE INTEND TO DISPLAY TEXT, IT MUST BE IN THE FORMAT: with the text: 'text'. 17 | EACH SHOT DESCRIPTION MUST FOCUS ONLY ON THE VISUAL ELEMENTS AND CAMERA MOTIONS OF THE SHOT. 18 | 19 | Example Message: 20 | an eerie tilt shift claymation 21 | 22 | Example Response: 23 | A tilt-shift style claymation scene set in a tiny, eerily quiet town square. Everything looks handcrafted from clay—small, lumpy buildings with crooked windows, a narrow cobblestone path made of unevenly pressed clay stones, and a solitary lamppost leaning slightly to one side. The color palette is muted: dusty grays, mossy greens, and dull browns dominating the scene, with dim light emanating from the clay lamppost’s tiny bulb. In the foreground, a single clay figure stands motionless—a short, round-bodied character with hollow eye sockets and elongated fingers, its painted-on grin chipped at the edges. The background houses miniature clay trees with spindly, contorted branches and a vaguely suggested horizon of dark clay hills. Everything has a slight blur at the edges due to the tilt-shift effect, making the central figure and lamppost appear sharply in focus, as if they are the only elements truly present in this unsettling miniature world. 24 | Begin with the same eerie claymation town square, still sporting that tilt-shift effect so the center is crisp while the periphery blurs softly. The clay lamppost remains slightly askew, casting a weak, flickering glow. The short clay figure in the center stands still, its body’s surface rough and hand-molded. Slowly, the figure’s tiny clay head tilts to one side, the hollow eye sockets fixed on some unseen presence outside the frame. In the background, the clay buildings and crooked trees remain perfectly still, as if holding their breath. No sound but a faint hush, broken only by the gentle flicker of the lamppost’s light as it dimly pulses, illuminating the figure’s chipped grin for a fraction of a second longer before dimming again. -------------------------------------------------------------------------------- /data/next/vehicle/fast_cars.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "Aston Martin DB11", 7 | "Aston Martin DB11 AMR", 8 | "Aston Martin DB7", 9 | "Aston Martin One-77", 10 | "Aston Martin Vanquish", 11 | "Aston Martin Vantage", 12 | "Audi R8", 13 | "Audi R8 V10 Plus", 14 | "Audi RS6 Avant", 15 | "Audi RS7", 16 | "Audi TT RS", 17 | "Bentley Bentayga", 18 | "Bentley Bentayga Mulliner", 19 | "Bentley Continental GT", 20 | "Bentley Continental Supersports", 21 | "Bentley Mulsanne", 22 | "Bugatti Chiron", 23 | "Bugatti EB110 SS", 24 | "Bugatti Veyron", 25 | "Chevrolet Camaro ZL1", 26 | "Chevrolet Corvette ZR1", 27 | "Dodge Challenger SRT Demon", 28 | "Dodge Charger SRT Hellcat", 29 | "Dodge Viper GTS", 30 | "Dodge Viper SRT10 ACR", 31 | "Ferrari 458 Italia", 32 | "Ferrari 488 GTB", 33 | "Ferrari 812 Superfast", 34 | "Ferrari Enzo", 35 | "Ferrari F40", 36 | "Ferrari FXX Evoluzione", 37 | "Ferrari GTC4Lusso", 38 | "Ferrari LaFerrari", 39 | "Ford GT40", 40 | "Ford Mustang GT350", 41 | "Hennessey Venom GT", 42 | "Jaguar F-Type SVR", 43 | "Jaguar XJ220", 44 | "Jaguar XJR-15", 45 | "Koenigsegg Agera", 46 | "Koenigsegg CCXR Trevita", 47 | "Koenigsegg Regera", 48 | "Lamborghini Aventador", 49 | "Lamborghini Aventador SV", 50 | "Lamborghini Centenario", 51 | "Lamborghini Diablo", 52 | "Lamborghini Gallardo", 53 | "Lamborghini Huracan", 54 | "Lamborghini Huracan Performante", 55 | "Lamborghini Urus", 56 | "Lamborghini Urus ST", 57 | "Lotus Elise", 58 | "Maserati Levante Trofeo", 59 | "Maserati MC12", 60 | "McLaren 570S", 61 | "McLaren 650S", 62 | "McLaren 720S", 63 | "McLaren F1", 64 | "McLaren MP4-12C", 65 | "McLaren P1", 66 | "McLaren Senna", 67 | "Noble M600", 68 | "Pagani Huayra", 69 | "Pagani Zonda F", 70 | "Porsche 911 GT1", 71 | "Porsche 911 GT3 RS", 72 | "Porsche 911 Turbo", 73 | "Porsche 911 Turbo S Exclusive Series", 74 | "Porsche 918 Spyder", 75 | "Porsche Carrera GT", 76 | "Porsche Macan Turbo", 77 | "Porsche Panamera Turbo S E-Hybrid Sport Turismo", 78 | "Rolls-Royce Cullinan", 79 | "Rolls-Royce Dawn", 80 | "Rolls-Royce Ghost", 81 | "Rolls-Royce Phantom", 82 | "Rolls-Royce Wraith" 83 | ] 84 | } -------------------------------------------------------------------------------- /data/next/vehicle/types.json: -------------------------------------------------------------------------------- 1 | { 2 | "preprompt": "", 3 | "separator": "AND", 4 | "endprompt": "", 5 | "items": [ 6 | "aircraft", 7 | "airplane", 8 | "amphibious vehicle", 9 | "atv", 10 | "backhoe", 11 | "barge", 12 | "bicycle", 13 | "blimp", 14 | "boat", 15 | "bulldozer", 16 | "bus", 17 | "cable car", 18 | "camper", 19 | "canoe", 20 | "car", 21 | "carriage", 22 | "cart", 23 | "cement mixer", 24 | "coach", 25 | "crane", 26 | "dog sled", 27 | "double-decker bus", 28 | "dump truck", 29 | "electric bicycle", 30 | "electric car", 31 | "electric scooter", 32 | "excavator", 33 | "fifth wheel", 34 | "forklift", 35 | "front-end loader", 36 | "funicular", 37 | "glider", 38 | "go-kart", 39 | "golf cart", 40 | "grader", 41 | "hang glider", 42 | "helicopter", 43 | "horse trailer", 44 | "hot air balloon", 45 | "hovercraft", 46 | "hybrid car", 47 | "hydrogen fuel cell vehicle", 48 | "jet ski", 49 | "kayak", 50 | "lawn mower", 51 | "light rail", 52 | "limousine", 53 | "lunar module", 54 | "mars rover", 55 | "microcar", 56 | "monorail", 57 | "monster truck", 58 | "moon buggy", 59 | "motorcoach", 60 | "motorcycle", 61 | "motorhome", 62 | "paddleboard", 63 | "paraglider", 64 | "pop-up camper", 65 | "raft", 66 | "rickshaw", 67 | "rocket", 68 | "roller skates", 69 | "rowboat", 70 | "rv", 71 | "sailboat", 72 | "school bus", 73 | "scooter", 74 | "scraper", 75 | "segway", 76 | "self-driving car", 77 | "semi-trailer", 78 | "ship", 79 | "shuttle bus", 80 | "skateboard", 81 | "skid steer", 82 | "sleigh", 83 | "snow plow", 84 | "snowmobile", 85 | "solar-powered car", 86 | "spacecraft", 87 | "stagecoach", 88 | "streetcar", 89 | "subway", 90 | "suv", 91 | "taxi", 92 | "tour bus", 93 | "tractor", 94 | "trailer", 95 | "train", 96 | "tram", 97 | "tricycle", 98 | "truck", 99 | "truck camper", 100 | "tugboat", 101 | "van", 102 | "wagon", 103 | "watercraft", 104 | "yacht", 105 | "zamboni" 106 | ] 107 | } -------------------------------------------------------------------------------- /data/custom_prompts/gpt4_cloner_prompt_combiner_hard.txt: -------------------------------------------------------------------------------- 1 | Analyze the provided image(s) and generate a JSON object with the following structure, creating a single, unified concept that seamlessly blends all elements: 2 | { 3 | "text_elements": [ 4 | { 5 | "text": [The role or purpose of the text in the overall composition][The text content], 6 | "placement": [Description of where the text is placed in the image], 7 | "style": [Description of the text style, font, color, etc.] 8 | }, 9 | ... [Additional text elements] 10 | ], 11 | "color_scheme": [Array of dominant colors, blending palettes from all sources], 12 | "elements": [ 13 | { 14 | "type": [Character, object, or environment], 15 | "description": [Brief description integrating features from multiple sources], 16 | "attributes": { 17 | [Unified set of attributes combining aspects from all sources] 18 | } 19 | }, 20 | ... [Additional integrated elements] 21 | ], 22 | "overall_scene": { 23 | "theme": [A singular theme that encompasses all aspects], 24 | "setting": [A cohesive description of the setting, merging all environments], 25 | "lighting": { 26 | "type": [Unified lighting description], 27 | "direction": [Overall light direction, considering all sources], 28 | "quality": [Blended description of light quality], 29 | "effects": [Combined lighting effects creating a unified atmosphere] 30 | }, 31 | "mood": [Single, overarching mood integrating all emotional tones], 32 | "composition": { 33 | "perspective": [Unified perspective description], 34 | "focus": [Integrated focal point(s) considering all elements], 35 | "spatial_relationship": [How all elements relate to each other in a single space] 36 | } 37 | }, 38 | "artistic_style": [Cohesive description of the overall artistic approach, merging all styles], 39 | "symbolic_elements": [Array of symbols or motifs that tie all aspects together], 40 | "narrative_implications": [Brief description of the story or concept suggested by the unified image] 41 | } 42 | } 43 | } 44 | ALWAYS EXTRACT TEXT ELEMENTS 45 | CRITICAL: Create a single, cohesive concept that seamlessly integrates all elements from the provided image(s). Do not describe separate images or scenes. Instead, imagine and describe a unified reality where all elements coexist logically. Blend styles, settings, characters, and objects into one coherent whole, even if this requires creative interpretation. Ensure that the description feels like a single, integrated piece rather than a combination of distinct parts. Provide the JSON output without additional explanation or commentary.Ensure that all aspects are thoroughly analyzed and accurately represented in the JSON output, including camera angles, lighting details, and any significant objects or background elements. Provide the JSON output without any additional explanation or commentary. --------------------------------------------------------------------------------