Add files via upload
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
||||
"""
|
||||
Camera Control Prompt Node - ComfyUI Custom Node
|
||||
Optimized for dx8152's MultiAngle LoRA
|
||||
|
||||
Author: Lorenzo Mercu
|
||||
Optimized for: dx8152's MultiAngle LoRA
|
||||
License: MIT
|
||||
"""
|
||||
|
||||
from .camera_control_prompt_node import CameraControlPromptNode
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"CameraControlPromptNode": CameraControlPromptNode
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"CameraControlPromptNode": "Camera Control Prompt Generator"
|
||||
}
|
||||
|
||||
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS']
|
||||
@@ -0,0 +1,121 @@
|
||||
"""
|
||||
Camera Control Prompt Node for ComfyUI
|
||||
Optimized for dx8152's MultiAngle LoRA
|
||||
|
||||
Author: Lorenzo Mercu
|
||||
Description: Advanced camera control prompt generator
|
||||
Features: Multi-directional camera movements, rotations, and special views
|
||||
Optimized for: dx8152's MultiAngle LoRA
|
||||
"""
|
||||
|
||||
|
||||
class CameraControlPromptNode:
|
||||
"""
|
||||
Advanced camera control prompt generator for ComfyUI.
|
||||
Converts camera parameters into bilingual prompts (Chinese + English).
|
||||
Optimized for dx8152's MultiAngle LoRA workflow.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def INPUT_TYPES(cls):
|
||||
return {
|
||||
"required": {
|
||||
# MOVIMENTO ORIZZONTALE (left/right) - Dropdown
|
||||
"move_horizontal": ("COMBO", {
|
||||
"default": "none",
|
||||
"options": ["none", "left", "right"]
|
||||
}),
|
||||
|
||||
# MOVIMENTO VERTICALE (up/down) - Dropdown
|
||||
"move_vertical": ("COMBO", {
|
||||
"default": "none",
|
||||
"options": ["none", "up", "down"]
|
||||
}),
|
||||
|
||||
# MOVIMENTO FORWARD - Dropdown
|
||||
"move_forward": ("COMBO", {
|
||||
"default": "no",
|
||||
"options": ["no", "yes"]
|
||||
}),
|
||||
|
||||
# ROTATE SLIDER (-90 a 90, step 45)
|
||||
"rotate": ("INT", {
|
||||
"default": 0,
|
||||
"min": -90,
|
||||
"max": 90,
|
||||
"step": 45,
|
||||
"display": "slider"
|
||||
}),
|
||||
|
||||
# VISTE SPECIALI - Bottoni On/Off
|
||||
"view_top_down": ("BOOLEAN", {
|
||||
"default": False
|
||||
}),
|
||||
"view_wide_angle": ("BOOLEAN", {
|
||||
"default": False
|
||||
}),
|
||||
"view_close_up": ("BOOLEAN", {
|
||||
"default": False
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
RETURN_TYPES = ("STRING",)
|
||||
RETURN_NAMES = ("prompt",)
|
||||
FUNCTION = "generate_prompt"
|
||||
CATEGORY = "prompt/camera"
|
||||
|
||||
def generate_prompt(self, move_horizontal, move_vertical, move_forward, rotate, view_top_down, view_wide_angle, view_close_up):
|
||||
"""Genera il prompt basato sui parametri camera"""
|
||||
|
||||
prompt_parts = []
|
||||
|
||||
# MOVIMENTO ORIZZONTALE (Dropdown: none, left, right)
|
||||
if move_horizontal == "left":
|
||||
prompt_parts.append("将镜头向左移动 Move the camera left.")
|
||||
elif move_horizontal == "right":
|
||||
prompt_parts.append("将镜头向右移动 Move the camera right.")
|
||||
|
||||
# MOVIMENTO VERTICALE (Dropdown: none, up, down)
|
||||
if move_vertical == "up":
|
||||
prompt_parts.append("将镜头向上移动 Move the camera up.")
|
||||
elif move_vertical == "down":
|
||||
prompt_parts.append("将镜头向下移动 Move the camera down.")
|
||||
|
||||
# MOVIMENTO FORWARD (Dropdown: no, yes)
|
||||
if move_forward == "yes":
|
||||
prompt_parts.append("将镜头向前移动 Move the camera forward.")
|
||||
|
||||
# ROTATE SLIDER (dynamic label based on value)
|
||||
if rotate < 0:
|
||||
degrees = abs(rotate)
|
||||
prompt_parts.append(f"将镜头向左旋转{degrees}度 Rotate the camera {degrees} degrees to the left.")
|
||||
elif rotate > 0:
|
||||
degrees = rotate
|
||||
prompt_parts.append(f"将镜头向右旋转{degrees}度 Rotate the camera {degrees} degrees to the right.")
|
||||
# Se rotate == 0, non aggiunge niente
|
||||
|
||||
# VISTE SPECIALI (Bottoni On/Off)
|
||||
if view_top_down:
|
||||
prompt_parts.append("将镜头转为俯视 Turn the camera to a top-down view.")
|
||||
|
||||
if view_wide_angle:
|
||||
prompt_parts.append("将镜头转为广角镜头 Turn the camera to a wide-angle lens.")
|
||||
|
||||
if view_close_up:
|
||||
prompt_parts.append("将镜头转为特写镜头 Turn the camera to a close-up.")
|
||||
|
||||
# Concatena tutte le parti con spazio
|
||||
final_prompt = " ".join(prompt_parts)
|
||||
|
||||
return (final_prompt,)
|
||||
|
||||
|
||||
# Mappings per ComfyUI
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
"CameraControlPromptNode": CameraControlPromptNode
|
||||
}
|
||||
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {
|
||||
"CameraControlPromptNode": "Camera Control Prompt Generator"
|
||||
}
|
||||
Reference in New Issue
Block a user