53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
class OOPViewNode:
|
|
ANGLE_DESCRIPTIONS = [
|
|
"Normal", "High", "Low", "Upward", "Downward", "Side", "Tilted",
|
|
"Diagonal", "EyeLevel", "Bird's Eye", "Worm's Eye", "Dutch Angle", "Overhead"
|
|
]
|
|
# Predefined view types for consistency
|
|
VIEW_TYPES = [
|
|
"Closeup", "Portrait", "FullBody", "Landscape", "Panorama", "WideAngle",
|
|
"Macro", "MediumShot", "LongShot", "Establishing", "Aerial", "Profile",
|
|
"ActionShot", "Over-the-Shoulder", "Extreme Closeup"
|
|
]
|
|
|
|
def __init__(self):
|
|
self.name = "View"
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"angle": (cls.ANGLE_DESCRIPTIONS, {"default": "Normal"}),
|
|
"viewType": (cls.VIEW_TYPES, {"default": "Portrait"}),
|
|
"backgroundBlur": ("BOOLEAN", {"default": False}),
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ("OOP_VIEW",)
|
|
FUNCTION = "generate_view"
|
|
CATEGORY = "Object-Oriented Prompting"
|
|
|
|
def generate_view(self, angle, viewType, backgroundBlur):
|
|
# Determine background color based on the boolean flag
|
|
background = "NoBlur"
|
|
if backgroundBlur:
|
|
background = "Blur"
|
|
# Return a formatted string summarizing the view properties
|
|
return (f"shot:{viewType}, angle:{angle}, background:{background}",)
|
|
|
|
@classmethod
|
|
def IS_CHANGED(cls, angle, viewType, backgroundBlur):
|
|
# Simple hash function to signal a change when any parameter changes
|
|
return hash((angle, viewType, backgroundBlur))
|
|
|
|
|
|
# Mapping the node class to a name key
|
|
NODE_CLASS_MAPPINGS = {
|
|
"OOPViewNode": OOPViewNode
|
|
}
|
|
|
|
# A friendly display name for the node
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"OOPViewNode": "OOP View 📐"
|
|
}
|