New node : IsulionMultiplePromptGenerator
This commit is contained in:
@@ -35,6 +35,7 @@ from .enhancement_nodes.isulion_prompt_enhancer import IsulionPromptEnhancer
|
||||
from .enhancement_nodes.isulion_negative_prompt_generator import IsulionNegativePromptGenerator
|
||||
from .Core_Nodes.mega_prompt_generator import IsulionMegaPromptGenerator
|
||||
from .Core_Nodes.video_prompt_generator import NODE_CLASS_MAPPINGS as VIDEO_PROMPT_NODES
|
||||
from .mega_prompt_all_themes import IsulionMultiplePromptGenerator
|
||||
from .isucollage_node import IsuCollageNode
|
||||
from .load_images_node import IsulionLoadImagesNode
|
||||
from .shutdown_node import NODE_CLASS_MAPPINGS as SHUTDOWN_NODES
|
||||
@@ -68,6 +69,7 @@ NODE_CLASS_MAPPINGS = {
|
||||
"IsulionNegativePromptGenerator": IsulionNegativePromptGenerator,
|
||||
"IsulionMegaPromptGenerator": IsulionMegaPromptGenerator,
|
||||
"MegaPromptV3": MegaPromptV3,
|
||||
"IsulionMultiplePromptGenerator": IsulionMultiplePromptGenerator,
|
||||
"IsuCollage_Node": IsuCollageNode,
|
||||
"IsulionLoadImagesNode": IsulionLoadImagesNode,
|
||||
"IsulionEpochGenerator": IsulionEpochGenerator
|
||||
@@ -77,6 +79,7 @@ NODE_CLASS_MAPPINGS = {
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"IsulionPromptGenerator": "Isulion Prompt Generator",
|
||||
"MegaPromptV3": "Isulion Mega Prompt V3",
|
||||
"IsulionMultiplePromptGenerator": "Isulion Multiple Prompt Generator",
|
||||
"IsulionAnimalRandom": "Isulion Animal Selector",
|
||||
"IsulionCuteAnimalRandom": "Isulion Cute Animal Selector",
|
||||
"IsulionAnimalBehaviorGenerator": "Isulion Animal Behavior Generator",
|
||||
|
||||
@@ -20,7 +20,17 @@
|
||||
"chef",
|
||||
"athlete",
|
||||
"author",
|
||||
"historical figure"
|
||||
"historical figure",
|
||||
"news anchor",
|
||||
"royal family member",
|
||||
"pop culture icon",
|
||||
"viral internet sensation",
|
||||
"game show host",
|
||||
"radio personality",
|
||||
"standup comedian",
|
||||
"political commentator",
|
||||
"TV series character",
|
||||
"YouTube creator"
|
||||
],
|
||||
"expressions": [
|
||||
"exaggerated smile",
|
||||
|
||||
@@ -80,6 +80,16 @@
|
||||
"showing complex shadow interplay",
|
||||
"with elaborate background elements"
|
||||
],
|
||||
"locations": [
|
||||
"haunted castle on a stormy night",
|
||||
"ancient battlefield shrouded in mist",
|
||||
"dark forest under a full moon",
|
||||
"demon-infested ruins of a lost city",
|
||||
"twilight realm between worlds",
|
||||
"cursed village lost to time",
|
||||
"shadowy cavern filled with echoes",
|
||||
"ethereal plane of forgotten souls"
|
||||
],
|
||||
"atmospheres": [
|
||||
"shrouded in darkness with visible depth",
|
||||
"illuminated by detailed moonlight rays",
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
from typing import Dict, List, Tuple, Optional
|
||||
from .mega_prompt_V3 import MegaPromptV3
|
||||
|
||||
class IsulionMultiplePromptGenerator:
|
||||
"""Node that generates prompts for all available themes using a custom subject and location. 🎉"""
|
||||
|
||||
def __init__(self):
|
||||
self.mega_prompt = MegaPromptV3()
|
||||
# Define theme categories
|
||||
self.theme_categories = {
|
||||
"Art Styles": [
|
||||
" Abstract", " Watercolor", " Impressionist", " Crayon Art",
|
||||
" Clay Art", " Concept Art", " Experimental Art"
|
||||
],
|
||||
"Animation & Comics": [
|
||||
" Animation Cartoon", " Anime", " Comic Book", " Ghibli",
|
||||
" Pixar", " Dreamworks", " Manga Panel", " School Manga"
|
||||
],
|
||||
"Sci-Fi & Future": [
|
||||
" Cyberpunk", " Sci-Fi", " Futuristic City", " Futuristic Battlefield",
|
||||
" Futuristic City Metropolis", " Futuristic Sci-Fi", " Bio-Organic Technology",
|
||||
" Crystalpunk"
|
||||
],
|
||||
"Fantasy & Magic": [
|
||||
" Fantasy", " Enchanted Fantasy", " Ethereal Dreams", " Miura Dark Fantasy"
|
||||
],
|
||||
"Horror & Spooky": [
|
||||
" Horror", " Halloween", " Halloween Ethereal"
|
||||
],
|
||||
"Holidays": [
|
||||
" Christmas", " Easter", " New Year's Eve", " Valentine's Day",
|
||||
" Chinese New Year", " Dia de los Muertos", " St. Patrick's Day",
|
||||
" Thanksgiving"
|
||||
],
|
||||
"Modern & Lifestyle": [
|
||||
" Instagram", " Instagram Lifestyle", " Selfie", " Curvy Fashion",
|
||||
" Interior Spaces", " Urban Tag"
|
||||
],
|
||||
"Character & Design": [
|
||||
" Caricature", " Character Designer", " Chimera Animals",
|
||||
" Chimera Cute Animals", " Minimalist", " Logo"
|
||||
],
|
||||
"Movies & Media": [
|
||||
" Cinema Studio", " Disney", " Marvel", " Star Wars",
|
||||
" Nolan Epic", " Peaky Blinders", " Stop Motion"
|
||||
],
|
||||
"Vintage & Historical": [
|
||||
" 50s Commercial", " Essential Vintage", " Vintage Anthropomorphic"
|
||||
],
|
||||
"Special Effects": [
|
||||
" Dimension 3D", " Digital Art", " Puzzle Dimension",
|
||||
" Underwater Civilization"
|
||||
]
|
||||
}
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
"theme_selection_mode": (["All Themes", "Selected Themes", "Theme Category"], {"default": "All Themes"}),
|
||||
"custom_subject": ("STRING", {"default": "", "multiline": True}),
|
||||
"custom_location": ("STRING", {"default": "", "multiline": True}),
|
||||
},
|
||||
"optional": {
|
||||
"selected_themes": ("STRING", {
|
||||
"multiline": True,
|
||||
"default": " Abstract\n Anime\n Cyberpunk"
|
||||
}),
|
||||
"theme_category": (["Art Styles", "Animation & Comics", "Sci-Fi & Future",
|
||||
"Fantasy & Magic", "Horror & Spooky", "Holidays",
|
||||
"Modern & Lifestyle", "Character & Design", "Movies & Media",
|
||||
"Vintage & Historical", "Special Effects"],
|
||||
{"default": "Art Styles"})
|
||||
}
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("STRING", "STRING")
|
||||
RETURN_NAMES = ("positive", "name")
|
||||
FUNCTION = "generate_all"
|
||||
CATEGORY = "Isulion - Multiple Prompt Generator"
|
||||
OUTPUT_IS_LIST = (True, True) # Indicates that each output is a list
|
||||
|
||||
def generate_all(
|
||||
self,
|
||||
theme_selection_mode: str,
|
||||
custom_subject: str = "",
|
||||
custom_location: str = "",
|
||||
selected_themes: str = "",
|
||||
theme_category: str = "Art Styles"
|
||||
) -> Tuple[List[str], List[str]]:
|
||||
"""Generate prompts for selected themes.
|
||||
Returns lists of (positive_prompts, theme_names)"""
|
||||
|
||||
# Determine which themes to process based on selection mode
|
||||
if theme_selection_mode == "All Themes":
|
||||
themes = [theme for theme, internal in self.mega_prompt.theme_mappings.items()
|
||||
if internal != "random"]
|
||||
elif theme_selection_mode == "Selected Themes":
|
||||
themes = [theme.strip() for theme in selected_themes.split('\n') if theme.strip()]
|
||||
else: # Theme Category
|
||||
themes = self.theme_categories.get(theme_category, [])
|
||||
|
||||
# Store results for each theme
|
||||
positives = []
|
||||
names = []
|
||||
|
||||
for theme in sorted(themes):
|
||||
try:
|
||||
# Generate prompt for this theme
|
||||
prompt, subject, env, style, effects, _ = self.mega_prompt.generate(
|
||||
theme=theme,
|
||||
complexity="very detailed", # Always set to very detailed
|
||||
randomize="disable", # Disable randomization for consistency
|
||||
seed=0, # Fixed seed for consistency
|
||||
custom_subject=custom_subject,
|
||||
custom_location=custom_location,
|
||||
include_environment="yes", # Always yes
|
||||
include_style="yes", # Always yes
|
||||
include_effects="yes", # Always yes
|
||||
)
|
||||
|
||||
positives.append(prompt)
|
||||
names.append(theme)
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error with theme {theme}: {str(e)}")
|
||||
positives.append(f"Error with theme {theme}: {str(e)}")
|
||||
names.append(theme)
|
||||
|
||||
return (positives, names)
|
||||
@@ -0,0 +1,189 @@
|
||||
### Summary
|
||||
|
||||
The `MegaPromptV3` system is a sophisticated and flexible prompt generator designed for the ComfyUI platform. It leverages a modular architecture with various theme handlers to create diverse and customizable prompts. Key features include extensive theme mappings, robust error handling, and support for custom subjects and locations. The system integrates seamlessly with other components of ComfyUI, offering a user-friendly interface for prompt customization. This document provides a detailed analysis of the system's components, including theme handlers, configuration management, and additional context elements such as randomization logic and user feedback mechanisms.
|
||||
|
||||
### File Locations
|
||||
|
||||
The system's key files are located in the ComfyUI custom nodes directory:
|
||||
|
||||
Core Files:
|
||||
- Main Implementation: `custom_nodes/ComfyUI_Isulion/mega_prompt_V3.py`
|
||||
- Analysis Document: `custom_nodes/ComfyUI_Isulion/mega_prompt_analysis.txt`
|
||||
|
||||
Component Directories:
|
||||
- Theme Handlers: `custom_nodes/ComfyUI_Isulion/theme_handlers/`
|
||||
- Configuration Files: `custom_nodes/ComfyUI_Isulion/configs/`
|
||||
|
||||
Theme handlers contain individual implementations for each theme type, while the configs directory stores theme-specific configuration files and settings.
|
||||
|
||||
### Theme Implementation Checklist
|
||||
|
||||
To ensure a theme is properly implemented in the `MegaPromptV3` system, verify the following:
|
||||
|
||||
1. **Handler Initialization**:
|
||||
- Confirm that the theme handler class is correctly initialized with the `ConfigManager`.
|
||||
- Ensure the handler is added to the `_init_theme_handlers()` method in `MegaPromptV3`.
|
||||
|
||||
2. **Configuration Access**:
|
||||
- Check that the handler accesses the correct configuration keys for its theme.
|
||||
- Verify that default values are provided for any missing configurations.
|
||||
|
||||
3. **Method Implementation**:
|
||||
- Ensure the `generate()` method is implemented, producing the required components (subject, environment, style, effects).
|
||||
- Validate that the handler's logic aligns with the theme's intended style and content.
|
||||
|
||||
4. **Debugging and Error Handling**:
|
||||
- Confirm that debug mode is supported and provides meaningful output.
|
||||
- Ensure error handling is robust, with appropriate logging and fallback mechanisms.
|
||||
|
||||
5. **Testing and Validation**:
|
||||
- Conduct tests to verify that the theme generates expected outputs under various conditions.
|
||||
- Validate that the theme integrates seamlessly with the rest of the system.
|
||||
|
||||
6. **Custom Subject and Location Support**:
|
||||
- Verify that the theme handler correctly processes the `custom_subject` and `custom_location` parameters.
|
||||
- Ensure these parameters are integrated into the prompt generation logic to allow for personalized content.
|
||||
|
||||
This checklist ensures that each theme is fully functional and meets the system's standards for prompt generation.
|
||||
|
||||
### Mega Prompt V3 Analysis
|
||||
|
||||
The `mega_prompt_V3.py` file is designed to generate creative prompts based on various themes and parameters. Here's a step-by-step explanation of how it works:
|
||||
|
||||
### Imports and Initialization
|
||||
1. **Imports**: The file imports several modules, including `random`, `os`, and various theme handler classes. These handlers are responsible for generating specific themed content.
|
||||
2. **Class Definition**: The main class in this file is `MegaPromptV3`. It initializes a configuration manager and theme handlers.
|
||||
|
||||
### Class `MegaPromptV3`
|
||||
- **Initialization (`__init__`)**:
|
||||
- Initializes a `ConfigManager` to manage configurations.
|
||||
- Calls `_init_theme_handlers()` to set up the theme handlers.
|
||||
- Sets up a dictionary `theme_mappings` to map user-friendly theme names to internal identifiers.
|
||||
|
||||
- **Theme Handlers (`_init_theme_handlers`)**:
|
||||
- This method initializes a dictionary of theme handlers. Each handler corresponds to a specific theme and is initialized with the `ConfigManager`.
|
||||
- Handlers are responsible for generating content related to their theme.
|
||||
|
||||
- **Input Types (`INPUT_TYPES`)**:
|
||||
- Defines the input parameters for the class, including required and optional inputs.
|
||||
- Required inputs include `theme`, `complexity`, `randomize`, and `debug_mode`.
|
||||
- Optional inputs include `seed`, `custom_subject`, `custom_location`, `include_environment`, `include_style`, and `include_effects`.
|
||||
|
||||
### Theme Handler Functionality
|
||||
|
||||
Theme handlers in the `MegaPromptV3` system are specialized classes that generate themed content based on configurations. Each theme handler inherits from the `BaseThemeHandler` class, which provides a common interface and utility methods for theme management.
|
||||
|
||||
#### Key Components of Theme Handlers:
|
||||
1. **Initialization**:
|
||||
- Each theme handler is initialized with a `ConfigManager` instance, allowing it to access and utilize configuration data specific to its theme.
|
||||
- Handlers maintain a local configuration dictionary (`theme_config`) and a debug mode flag.
|
||||
|
||||
2. **Configuration Access**:
|
||||
- Handlers use the `ConfigManager` to retrieve configuration values, which dictate the elements and styles specific to the theme.
|
||||
- The `_get_random_choice()` method is employed to select random elements from the configuration, ensuring variability in generated content.
|
||||
|
||||
3. **Debugging Support**:
|
||||
- The `set_debug()` method allows enabling or disabling debug mode, which can be useful for development and troubleshooting.
|
||||
- The `debug_print()` method outputs debug information when debug mode is active, aiding in monitoring the handler's operations.
|
||||
|
||||
4. **Content Generation**:
|
||||
- Each handler implements its own logic to generate themed content, typically through a `generate()` method.
|
||||
- The generated content includes various components like subjects, environments, styles, and effects, depending on the theme.
|
||||
|
||||
5. **Error Handling**:
|
||||
- Handlers are designed to manage errors internally, ensuring that any issues during content generation do not disrupt the overall process.
|
||||
|
||||
Theme handlers are crucial for the modularity and extensibility of the `MegaPromptV3` system, allowing for easy addition of new themes and customization of existing ones.
|
||||
|
||||
### Custom Subject and Custom Location
|
||||
|
||||
In the `MegaPromptV3` system, the parameters `custom_subject` and `custom_location` allow users to inject specific elements into the generated prompts, providing a higher degree of personalization and control over the output.
|
||||
|
||||
#### Custom Subject:
|
||||
- **Purpose**: Allows users to specify a particular subject or focus for the generated prompt.
|
||||
- **Usage**: This parameter can be used to ensure that the prompt revolves around a specific character, object, or theme that the user wants to highlight.
|
||||
- **Flexibility**: Supports multiline input, enabling detailed descriptions or complex subjects to be integrated into the prompt.
|
||||
|
||||
#### Custom Location:
|
||||
- **Purpose**: Enables users to define a specific setting or environment for the prompt.
|
||||
- **Usage**: Useful for setting the scene or context in which the subject operates, enhancing the thematic depth and immersion of the prompt.
|
||||
- **Flexibility**: Like `custom_subject`, this parameter also supports multiline input, allowing for elaborate or nuanced location descriptions.
|
||||
|
||||
These features are particularly beneficial for users seeking to tailor their prompts to specific narratives or creative visions, ensuring that the generated content aligns with their intended themes and settings.
|
||||
|
||||
### Debug Mode
|
||||
|
||||
Debug mode in the `MegaPromptV3` system is a feature designed to assist developers in monitoring and troubleshooting the prompt generation process. When enabled, debug mode provides detailed logging and insights into the internal operations of theme handlers.
|
||||
|
||||
#### Key Features of Debug Mode:
|
||||
1. **Detailed Logging**:
|
||||
- Outputs comprehensive logs that include information about the choices made during prompt generation, configuration values accessed, and any defaults used.
|
||||
- Helps in tracing the flow of data and understanding how different components interact.
|
||||
|
||||
2. **Error Tracking**:
|
||||
- Captures and logs errors or exceptions that occur during the generation process, providing context for debugging.
|
||||
- Ensures that any issues are visible and can be addressed promptly.
|
||||
|
||||
3. **Performance Monitoring**:
|
||||
- Allows developers to assess the performance of the generation process by logging the time taken for various operations.
|
||||
- Useful for identifying bottlenecks or inefficiencies in the code.
|
||||
|
||||
4. **Configuration Insights**:
|
||||
- Provides visibility into the configuration values being used, including any random selections or default fallbacks.
|
||||
- Aids in verifying that the correct configurations are applied for each theme.
|
||||
|
||||
Debug mode is an invaluable tool for developers working with the `MegaPromptV3` system, offering a window into the inner workings of the prompt generation process and facilitating effective debugging and optimization.
|
||||
|
||||
### Method `generate`
|
||||
- **Purpose**: Generates a creative prompt based on the specified parameters.
|
||||
- **Parameters**:
|
||||
- `theme`: The theme for the prompt.
|
||||
- `complexity`, `randomize`, `seed`: Control the complexity, randomization, and seed for generation.
|
||||
- `custom_subject`, `custom_location`: Custom elements to include in the prompt.
|
||||
- `include_environment`, `include_style`, `include_effects`: Flags to include various components in the prompt.
|
||||
- `debug_mode`: Enables or disables debug mode.
|
||||
|
||||
- **Process**:
|
||||
1. **Seed Setting**: If randomization is disabled, a specific seed is set for reproducibility.
|
||||
2. **Theme Mapping**: Maps the user-selected theme to an internal theme identifier.
|
||||
3. **Handler Selection**: Chooses the appropriate handler for the theme. If "random" is selected, it randomly chooses from available themes.
|
||||
4. **Debug Mode**: Sets the debug mode for the handler.
|
||||
5. **Component Generation**: Calls the handler's `generate` method to create components like subject, environment, style, and effects.
|
||||
6. **Prompt Construction**: Constructs the final prompt by combining the generated components.
|
||||
7. **Error Handling**: Catches exceptions and returns error messages if something goes wrong during generation.
|
||||
|
||||
- **Return Values**: Returns a tuple containing the generated prompt, its components, and the seed used.
|
||||
|
||||
This file is a sophisticated prompt generator that leverages various theme handlers to create diverse and customizable prompts. It is designed to be flexible, allowing users to specify detailed parameters and handle errors gracefully.
|
||||
|
||||
### Additional Context Elements
|
||||
|
||||
#### Theme Mappings
|
||||
- **Purpose**: Theme mappings in the `MegaPromptV3` system connect user-friendly theme names to internal identifiers used by the system.
|
||||
- **Functionality**: This mapping ensures that when a user selects a theme, the correct handler and configurations are applied.
|
||||
- **Example**: A user selects "🎌 Anime", which maps to the internal identifier "anime".
|
||||
|
||||
#### Error Handling
|
||||
- **Overview**: Error handling is integrated throughout the `MegaPromptV3` system to ensure robustness and reliability.
|
||||
- **Implementation**: Errors are caught and logged, and meaningful messages are returned to users, especially during prompt generation.
|
||||
- **Importance**: This prevents the system from crashing and provides users with feedback to correct input or configuration issues.
|
||||
|
||||
#### Return Types and Names
|
||||
- **Purpose**: Define the structure and components of the output generated by the `generate` method.
|
||||
- **Components**: Includes `prompt`, `subject`, `environment`, `style`, `effects`, and `seed`.
|
||||
- **Significance**: Helps users understand what to expect from the prompt generation process and how to utilize the output.
|
||||
|
||||
#### Randomization Logic
|
||||
- **Overview**: Randomization is a key feature in generating diverse and creative prompts.
|
||||
- **Seed Management**: Seeds are used to control randomization, allowing for reproducible results when desired.
|
||||
- **Configuration**: Users can enable or disable randomization, influencing the variability of generated content.
|
||||
|
||||
#### Integration Points
|
||||
- **System Interaction**: The `MegaPromptV3` system integrates with other components of ComfyUI, leveraging shared configurations and handlers.
|
||||
- **External APIs**: While primarily internal, the system can be extended to interact with external APIs for enhanced functionality.
|
||||
|
||||
#### User Interface Elements
|
||||
- **User Parameters**: The system allows users to input parameters like theme, complexity, and custom elements directly.
|
||||
- **Feedback Mechanism**: Provides users with immediate feedback on their selections and the resulting prompt characteristics.
|
||||
|
||||
These additional elements provide a comprehensive understanding of the `MegaPromptV3` system, highlighting its modularity, flexibility, and user-centric design.
|
||||
@@ -19,6 +19,9 @@ class MiuraThemeHandler(BaseThemeHandler):
|
||||
return []
|
||||
return [self.config.random.choice(choices) for _ in range(count)]
|
||||
|
||||
def debug_print(self, message: str) -> None:
|
||||
print(f"MiuraThemeHandler: {message}")
|
||||
|
||||
def generate(self, custom_subject: str = "",
|
||||
custom_location: str = "",
|
||||
include_environment: str = "yes",
|
||||
@@ -30,14 +33,17 @@ class MiuraThemeHandler(BaseThemeHandler):
|
||||
# Generate subject with Miura's characteristic style
|
||||
if custom_subject:
|
||||
base_subject = custom_subject
|
||||
self.debug_print(f"Using custom subject: {base_subject}")
|
||||
else:
|
||||
character = self._get_random_choice(f"{self.theme_name}.subjects")
|
||||
traits = self._get_multiple_random_choices(f"{self.theme_name}.character_traits", 2)
|
||||
details = self._get_multiple_random_choices(f"{self.theme_name}.detail_elements", 2)
|
||||
base_subject = f"{character}, {', '.join(traits)}, {', '.join(details)}"
|
||||
|
||||
self.debug_print(f"Generated subject: {base_subject}")
|
||||
|
||||
# Add Miura's signature detailed styling
|
||||
components["subject"] = f"((masterfully detailed {base_subject})), (intricate pen work:1.3), (meticulous cross-hatching:1.2), (high detail illustration), (dramatic chiaroscuro), (extreme attention to texture:1.2), (masterful line weight variation)"
|
||||
self.debug_print(f"Subject generated: {components['subject']}")
|
||||
|
||||
# Generate environment if included
|
||||
if include_environment == "yes":
|
||||
@@ -46,14 +52,17 @@ class MiuraThemeHandler(BaseThemeHandler):
|
||||
time = self._get_random_choice(f"{self.theme_name}.times")
|
||||
details = self._get_random_choice(f"{self.theme_name}.environment_details")
|
||||
base_environment = f"{custom_location}, {atmosphere}, {time}, {details}"
|
||||
self.debug_print(f"Using custom location: {custom_location}")
|
||||
else:
|
||||
location = self._get_random_choice(f"{self.theme_name}.environments")
|
||||
location = self._get_random_choice(f"{self.theme_name}.locations")
|
||||
atmosphere = self._get_random_choice(f"{self.theme_name}.atmospheres")
|
||||
time = self._get_random_choice(f"{self.theme_name}.times")
|
||||
details = self._get_random_choice(f"{self.theme_name}.environment_details")
|
||||
base_environment = f"{location}, {atmosphere}, {time}, {details}"
|
||||
|
||||
self.debug_print(f"Generated environment: {base_environment}")
|
||||
|
||||
components["environment"] = f"((hyper-detailed environment)), {base_environment}, (intricate architectural details:1.2), (dramatic perspective), (meticulous background detail:1.3)"
|
||||
self.debug_print(f"Environment generated: {components['environment']}")
|
||||
|
||||
# Add style elements if included
|
||||
if include_style == "yes":
|
||||
@@ -68,6 +77,8 @@ class MiuraThemeHandler(BaseThemeHandler):
|
||||
"(textural complexity:1.2)"
|
||||
]
|
||||
components["style"] = ", ".join(style_elements)
|
||||
self.debug_print(f"Style elements added: {', '.join(style_elements)}")
|
||||
self.debug_print(f"Style generated: {components['style']}")
|
||||
|
||||
# Add effects if included
|
||||
if include_effects == "yes":
|
||||
@@ -81,5 +92,7 @@ class MiuraThemeHandler(BaseThemeHandler):
|
||||
"(complex material textures)"
|
||||
]
|
||||
components["effects"] = ", ".join(effects)
|
||||
self.debug_print(f"Effects added: {', '.join(effects)}")
|
||||
self.debug_print(f"Effects generated: {components['effects']}")
|
||||
|
||||
return components
|
||||
|
||||
Reference in New Issue
Block a user