mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2025-12-23 04:50:49 +08:00
Merge branch 'master' into dr-support-pip-cm
This commit is contained in:
commit
05cd5348b6
@ -21,17 +21,23 @@ def rescale_zero_terminal_snr_sigmas(sigmas):
|
|||||||
alphas_bar[-1] = 4.8973451890853435e-08
|
alphas_bar[-1] = 4.8973451890853435e-08
|
||||||
return ((1 - alphas_bar) / alphas_bar) ** 0.5
|
return ((1 - alphas_bar) / alphas_bar) ** 0.5
|
||||||
|
|
||||||
|
def reshape_sigma(sigma, noise_dim):
|
||||||
|
if sigma.nelement() == 1:
|
||||||
|
return sigma.view(())
|
||||||
|
else:
|
||||||
|
return sigma.view(sigma.shape[:1] + (1,) * (noise_dim - 1))
|
||||||
|
|
||||||
class EPS:
|
class EPS:
|
||||||
def calculate_input(self, sigma, noise):
|
def calculate_input(self, sigma, noise):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (noise.ndim - 1))
|
sigma = reshape_sigma(sigma, noise.ndim)
|
||||||
return noise / (sigma ** 2 + self.sigma_data ** 2) ** 0.5
|
return noise / (sigma ** 2 + self.sigma_data ** 2) ** 0.5
|
||||||
|
|
||||||
def calculate_denoised(self, sigma, model_output, model_input):
|
def calculate_denoised(self, sigma, model_output, model_input):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (model_output.ndim - 1))
|
sigma = reshape_sigma(sigma, model_output.ndim)
|
||||||
return model_input - model_output * sigma
|
return model_input - model_output * sigma
|
||||||
|
|
||||||
def noise_scaling(self, sigma, noise, latent_image, max_denoise=False):
|
def noise_scaling(self, sigma, noise, latent_image, max_denoise=False):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (noise.ndim - 1))
|
sigma = reshape_sigma(sigma, noise.ndim)
|
||||||
if max_denoise:
|
if max_denoise:
|
||||||
noise = noise * torch.sqrt(1.0 + sigma ** 2.0)
|
noise = noise * torch.sqrt(1.0 + sigma ** 2.0)
|
||||||
else:
|
else:
|
||||||
@ -45,12 +51,12 @@ class EPS:
|
|||||||
|
|
||||||
class V_PREDICTION(EPS):
|
class V_PREDICTION(EPS):
|
||||||
def calculate_denoised(self, sigma, model_output, model_input):
|
def calculate_denoised(self, sigma, model_output, model_input):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (model_output.ndim - 1))
|
sigma = reshape_sigma(sigma, model_output.ndim)
|
||||||
return model_input * self.sigma_data ** 2 / (sigma ** 2 + self.sigma_data ** 2) - model_output * sigma * self.sigma_data / (sigma ** 2 + self.sigma_data ** 2) ** 0.5
|
return model_input * self.sigma_data ** 2 / (sigma ** 2 + self.sigma_data ** 2) - model_output * sigma * self.sigma_data / (sigma ** 2 + self.sigma_data ** 2) ** 0.5
|
||||||
|
|
||||||
class EDM(V_PREDICTION):
|
class EDM(V_PREDICTION):
|
||||||
def calculate_denoised(self, sigma, model_output, model_input):
|
def calculate_denoised(self, sigma, model_output, model_input):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (model_output.ndim - 1))
|
sigma = reshape_sigma(sigma, model_output.ndim)
|
||||||
return model_input * self.sigma_data ** 2 / (sigma ** 2 + self.sigma_data ** 2) + model_output * sigma * self.sigma_data / (sigma ** 2 + self.sigma_data ** 2) ** 0.5
|
return model_input * self.sigma_data ** 2 / (sigma ** 2 + self.sigma_data ** 2) + model_output * sigma * self.sigma_data / (sigma ** 2 + self.sigma_data ** 2) ** 0.5
|
||||||
|
|
||||||
class CONST:
|
class CONST:
|
||||||
@ -58,15 +64,15 @@ class CONST:
|
|||||||
return noise
|
return noise
|
||||||
|
|
||||||
def calculate_denoised(self, sigma, model_output, model_input):
|
def calculate_denoised(self, sigma, model_output, model_input):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (model_output.ndim - 1))
|
sigma = reshape_sigma(sigma, model_output.ndim)
|
||||||
return model_input - model_output * sigma
|
return model_input - model_output * sigma
|
||||||
|
|
||||||
def noise_scaling(self, sigma, noise, latent_image, max_denoise=False):
|
def noise_scaling(self, sigma, noise, latent_image, max_denoise=False):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (noise.ndim - 1))
|
sigma = reshape_sigma(sigma, noise.ndim)
|
||||||
return sigma * noise + (1.0 - sigma) * latent_image
|
return sigma * noise + (1.0 - sigma) * latent_image
|
||||||
|
|
||||||
def inverse_noise_scaling(self, sigma, latent):
|
def inverse_noise_scaling(self, sigma, latent):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (latent.ndim - 1))
|
sigma = reshape_sigma(sigma, latent.ndim)
|
||||||
return latent / (1.0 - sigma)
|
return latent / (1.0 - sigma)
|
||||||
|
|
||||||
class X0(EPS):
|
class X0(EPS):
|
||||||
@ -80,16 +86,16 @@ class IMG_TO_IMG(X0):
|
|||||||
class COSMOS_RFLOW:
|
class COSMOS_RFLOW:
|
||||||
def calculate_input(self, sigma, noise):
|
def calculate_input(self, sigma, noise):
|
||||||
sigma = (sigma / (sigma + 1))
|
sigma = (sigma / (sigma + 1))
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (noise.ndim - 1))
|
sigma = reshape_sigma(sigma, noise.ndim)
|
||||||
return noise * (1.0 - sigma)
|
return noise * (1.0 - sigma)
|
||||||
|
|
||||||
def calculate_denoised(self, sigma, model_output, model_input):
|
def calculate_denoised(self, sigma, model_output, model_input):
|
||||||
sigma = (sigma / (sigma + 1))
|
sigma = (sigma / (sigma + 1))
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (model_output.ndim - 1))
|
sigma = reshape_sigma(sigma, model_output.ndim)
|
||||||
return model_input * (1.0 - sigma) - model_output * sigma
|
return model_input * (1.0 - sigma) - model_output * sigma
|
||||||
|
|
||||||
def noise_scaling(self, sigma, noise, latent_image, max_denoise=False):
|
def noise_scaling(self, sigma, noise, latent_image, max_denoise=False):
|
||||||
sigma = sigma.view(sigma.shape[:1] + (1,) * (noise.ndim - 1))
|
sigma = reshape_sigma(sigma, noise.ndim)
|
||||||
noise = noise * sigma
|
noise = noise * sigma
|
||||||
noise += latent_image
|
noise += latent_image
|
||||||
return noise
|
return noise
|
||||||
|
|||||||
@ -336,11 +336,25 @@ class Combo(ComfyTypeIO):
|
|||||||
class Input(WidgetInput):
|
class Input(WidgetInput):
|
||||||
"""Combo input (dropdown)."""
|
"""Combo input (dropdown)."""
|
||||||
Type = str
|
Type = str
|
||||||
def __init__(self, id: str, options: list[str]=None, display_name: str=None, optional=False, tooltip: str=None, lazy: bool=None,
|
def __init__(
|
||||||
default: str=None, control_after_generate: bool=None,
|
self,
|
||||||
upload: UploadType=None, image_folder: FolderType=None,
|
id: str,
|
||||||
remote: RemoteOptions=None,
|
options: list[str] | list[int] | type[Enum] = None,
|
||||||
socketless: bool=None):
|
display_name: str=None,
|
||||||
|
optional=False,
|
||||||
|
tooltip: str=None,
|
||||||
|
lazy: bool=None,
|
||||||
|
default: str | int | Enum = None,
|
||||||
|
control_after_generate: bool=None,
|
||||||
|
upload: UploadType=None,
|
||||||
|
image_folder: FolderType=None,
|
||||||
|
remote: RemoteOptions=None,
|
||||||
|
socketless: bool=None,
|
||||||
|
):
|
||||||
|
if isinstance(options, type) and issubclass(options, Enum):
|
||||||
|
options = [v.value for v in options]
|
||||||
|
if isinstance(default, Enum):
|
||||||
|
default = default.value
|
||||||
super().__init__(id, display_name, optional, tooltip, lazy, default, socketless)
|
super().__init__(id, display_name, optional, tooltip, lazy, default, socketless)
|
||||||
self.multiselect = False
|
self.multiselect = False
|
||||||
self.options = options
|
self.options = options
|
||||||
|
|||||||
@ -249,8 +249,8 @@ class ByteDanceImageNode(comfy_io.ComfyNode):
|
|||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in Text2ImageModelName],
|
options=Text2ImageModelName,
|
||||||
default=Text2ImageModelName.seedream_3.value,
|
default=Text2ImageModelName.seedream_3,
|
||||||
tooltip="Model name",
|
tooltip="Model name",
|
||||||
),
|
),
|
||||||
comfy_io.String.Input(
|
comfy_io.String.Input(
|
||||||
@ -382,8 +382,8 @@ class ByteDanceImageEditNode(comfy_io.ComfyNode):
|
|||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in Image2ImageModelName],
|
options=Image2ImageModelName,
|
||||||
default=Image2ImageModelName.seededit_3.value,
|
default=Image2ImageModelName.seededit_3,
|
||||||
tooltip="Model name",
|
tooltip="Model name",
|
||||||
),
|
),
|
||||||
comfy_io.Image.Input(
|
comfy_io.Image.Input(
|
||||||
@ -676,8 +676,8 @@ class ByteDanceTextToVideoNode(comfy_io.ComfyNode):
|
|||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in Text2VideoModelName],
|
options=Text2VideoModelName,
|
||||||
default=Text2VideoModelName.seedance_1_pro.value,
|
default=Text2VideoModelName.seedance_1_pro,
|
||||||
tooltip="Model name",
|
tooltip="Model name",
|
||||||
),
|
),
|
||||||
comfy_io.String.Input(
|
comfy_io.String.Input(
|
||||||
@ -793,8 +793,8 @@ class ByteDanceImageToVideoNode(comfy_io.ComfyNode):
|
|||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in Image2VideoModelName],
|
options=Image2VideoModelName,
|
||||||
default=Image2VideoModelName.seedance_1_pro.value,
|
default=Image2VideoModelName.seedance_1_pro,
|
||||||
tooltip="Model name",
|
tooltip="Model name",
|
||||||
),
|
),
|
||||||
comfy_io.String.Input(
|
comfy_io.String.Input(
|
||||||
|
|||||||
@ -647,7 +647,7 @@ class KlingCameraControls(comfy_io.ComfyNode):
|
|||||||
category="api node/video/Kling",
|
category="api node/video/Kling",
|
||||||
description="Allows specifying configuration options for Kling Camera Controls and motion control effects.",
|
description="Allows specifying configuration options for Kling Camera Controls and motion control effects.",
|
||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input("camera_control_type", options=[i.value for i in KlingCameraControlType]),
|
comfy_io.Combo.Input("camera_control_type", options=KlingCameraControlType),
|
||||||
comfy_io.Float.Input(
|
comfy_io.Float.Input(
|
||||||
"horizontal_movement",
|
"horizontal_movement",
|
||||||
default=0.0,
|
default=0.0,
|
||||||
@ -772,7 +772,7 @@ class KlingTextToVideoNode(comfy_io.ComfyNode):
|
|||||||
comfy_io.Float.Input("cfg_scale", default=1.0, min=0.0, max=1.0),
|
comfy_io.Float.Input("cfg_scale", default=1.0, min=0.0, max=1.0),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[i.value for i in KlingVideoGenAspectRatio],
|
options=KlingVideoGenAspectRatio,
|
||||||
default="16:9",
|
default="16:9",
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
@ -840,7 +840,7 @@ class KlingCameraControlT2VNode(comfy_io.ComfyNode):
|
|||||||
comfy_io.Float.Input("cfg_scale", default=0.75, min=0.0, max=1.0),
|
comfy_io.Float.Input("cfg_scale", default=0.75, min=0.0, max=1.0),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[i.value for i in KlingVideoGenAspectRatio],
|
options=KlingVideoGenAspectRatio,
|
||||||
default="16:9",
|
default="16:9",
|
||||||
),
|
),
|
||||||
comfy_io.Custom("CAMERA_CONTROL").Input(
|
comfy_io.Custom("CAMERA_CONTROL").Input(
|
||||||
@ -903,17 +903,17 @@ class KlingImage2VideoNode(comfy_io.ComfyNode):
|
|||||||
comfy_io.String.Input("negative_prompt", multiline=True, tooltip="Negative text prompt"),
|
comfy_io.String.Input("negative_prompt", multiline=True, tooltip="Negative text prompt"),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model_name",
|
"model_name",
|
||||||
options=[i.value for i in KlingVideoGenModelName],
|
options=KlingVideoGenModelName,
|
||||||
default="kling-v2-master",
|
default="kling-v2-master",
|
||||||
),
|
),
|
||||||
comfy_io.Float.Input("cfg_scale", default=0.8, min=0.0, max=1.0),
|
comfy_io.Float.Input("cfg_scale", default=0.8, min=0.0, max=1.0),
|
||||||
comfy_io.Combo.Input("mode", options=[i.value for i in KlingVideoGenMode], default="std"),
|
comfy_io.Combo.Input("mode", options=KlingVideoGenMode, default=KlingVideoGenMode.std),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[i.value for i in KlingVideoGenAspectRatio],
|
options=KlingVideoGenAspectRatio,
|
||||||
default="16:9",
|
default=KlingVideoGenAspectRatio.field_16_9,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input("duration", options=[i.value for i in KlingVideoGenDuration], default="5"),
|
comfy_io.Combo.Input("duration", options=KlingVideoGenDuration, default=KlingVideoGenDuration.field_5),
|
||||||
],
|
],
|
||||||
outputs=[
|
outputs=[
|
||||||
comfy_io.Video.Output(),
|
comfy_io.Video.Output(),
|
||||||
@ -984,8 +984,8 @@ class KlingCameraControlI2VNode(comfy_io.ComfyNode):
|
|||||||
comfy_io.Float.Input("cfg_scale", default=0.75, min=0.0, max=1.0),
|
comfy_io.Float.Input("cfg_scale", default=0.75, min=0.0, max=1.0),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[i.value for i in KlingVideoGenAspectRatio],
|
options=KlingVideoGenAspectRatio,
|
||||||
default="16:9",
|
default=KlingVideoGenAspectRatio.field_16_9,
|
||||||
),
|
),
|
||||||
comfy_io.Custom("CAMERA_CONTROL").Input(
|
comfy_io.Custom("CAMERA_CONTROL").Input(
|
||||||
"camera_control",
|
"camera_control",
|
||||||
|
|||||||
@ -181,11 +181,11 @@ class LumaImageGenerationNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in LumaImageModel],
|
options=LumaImageModel,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[ratio.value for ratio in LumaAspectRatio],
|
options=LumaAspectRatio,
|
||||||
default=LumaAspectRatio.ratio_16_9,
|
default=LumaAspectRatio.ratio_16_9,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
@ -366,7 +366,7 @@ class LumaImageModifyNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in LumaImageModel],
|
options=LumaImageModel,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"seed",
|
"seed",
|
||||||
@ -466,21 +466,21 @@ class LumaTextToVideoGenerationNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in LumaVideoModel],
|
options=LumaVideoModel,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[ratio.value for ratio in LumaAspectRatio],
|
options=LumaAspectRatio,
|
||||||
default=LumaAspectRatio.ratio_16_9,
|
default=LumaAspectRatio.ratio_16_9,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"resolution",
|
"resolution",
|
||||||
options=[resolution.value for resolution in LumaVideoOutputResolution],
|
options=LumaVideoOutputResolution,
|
||||||
default=LumaVideoOutputResolution.res_540p,
|
default=LumaVideoOutputResolution.res_540p,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"duration",
|
"duration",
|
||||||
options=[dur.value for dur in LumaVideoModelOutputDuration],
|
options=LumaVideoModelOutputDuration,
|
||||||
),
|
),
|
||||||
comfy_io.Boolean.Input(
|
comfy_io.Boolean.Input(
|
||||||
"loop",
|
"loop",
|
||||||
@ -595,7 +595,7 @@ class LumaImageToVideoGenerationNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in LumaVideoModel],
|
options=LumaVideoModel,
|
||||||
),
|
),
|
||||||
# comfy_io.Combo.Input(
|
# comfy_io.Combo.Input(
|
||||||
# "aspect_ratio",
|
# "aspect_ratio",
|
||||||
@ -604,7 +604,7 @@ class LumaImageToVideoGenerationNode(comfy_io.ComfyNode):
|
|||||||
# ),
|
# ),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"resolution",
|
"resolution",
|
||||||
options=[resolution.value for resolution in LumaVideoOutputResolution],
|
options=LumaVideoOutputResolution,
|
||||||
default=LumaVideoOutputResolution.res_540p,
|
default=LumaVideoOutputResolution.res_540p,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
|
|||||||
@ -335,7 +335,7 @@ def parse_width_height_from_res(resolution: str):
|
|||||||
"1:1 (1152 x 1152)": {"width": 1152, "height": 1152},
|
"1:1 (1152 x 1152)": {"width": 1152, "height": 1152},
|
||||||
"4:3 (1536 x 1152)": {"width": 1536, "height": 1152},
|
"4:3 (1536 x 1152)": {"width": 1536, "height": 1152},
|
||||||
"3:4 (1152 x 1536)": {"width": 1152, "height": 1536},
|
"3:4 (1152 x 1536)": {"width": 1152, "height": 1536},
|
||||||
"21:9 (2560 x 1080)": {"width": 2560, "height": 1080},
|
# "21:9 (2560 x 1080)": {"width": 2560, "height": 1080},
|
||||||
}
|
}
|
||||||
return res_map.get(resolution, {"width": 1920, "height": 1080})
|
return res_map.get(resolution, {"width": 1920, "height": 1080})
|
||||||
|
|
||||||
@ -388,11 +388,11 @@ class MoonvalleyImg2VideoNode(comfy_io.ComfyNode):
|
|||||||
"negative_prompt",
|
"negative_prompt",
|
||||||
multiline=True,
|
multiline=True,
|
||||||
default="<synthetic> <scene cut> gopro, bright, contrast, static, overexposed, vignette, "
|
default="<synthetic> <scene cut> gopro, bright, contrast, static, overexposed, vignette, "
|
||||||
"artifacts, still, noise, texture, scanlines, videogame, 360 camera, VR, transition, "
|
"artifacts, still, noise, texture, scanlines, videogame, 360 camera, VR, transition, "
|
||||||
"flare, saturation, distorted, warped, wide angle, saturated, vibrant, glowing, "
|
"flare, saturation, distorted, warped, wide angle, saturated, vibrant, glowing, "
|
||||||
"cross dissolve, cheesy, ugly hands, mutated hands, mutant, disfigured, extra fingers, "
|
"cross dissolve, cheesy, ugly hands, mutated hands, mutant, disfigured, extra fingers, "
|
||||||
"blown out, horrible, blurry, worst quality, bad, dissolve, melt, fade in, fade out, "
|
"blown out, horrible, blurry, worst quality, bad, dissolve, melt, fade in, fade out, "
|
||||||
"wobbly, weird, low quality, plastic, stock footage, video camera, boring",
|
"wobbly, weird, low quality, plastic, stock footage, video camera, boring",
|
||||||
tooltip="Negative prompt text",
|
tooltip="Negative prompt text",
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
@ -403,14 +403,14 @@ class MoonvalleyImg2VideoNode(comfy_io.ComfyNode):
|
|||||||
"1:1 (1152 x 1152)",
|
"1:1 (1152 x 1152)",
|
||||||
"4:3 (1536 x 1152)",
|
"4:3 (1536 x 1152)",
|
||||||
"3:4 (1152 x 1536)",
|
"3:4 (1152 x 1536)",
|
||||||
"21:9 (2560 x 1080)",
|
# "21:9 (2560 x 1080)",
|
||||||
],
|
],
|
||||||
default="16:9 (1920 x 1080)",
|
default="16:9 (1920 x 1080)",
|
||||||
tooltip="Resolution of the output video",
|
tooltip="Resolution of the output video",
|
||||||
),
|
),
|
||||||
comfy_io.Float.Input(
|
comfy_io.Float.Input(
|
||||||
"prompt_adherence",
|
"prompt_adherence",
|
||||||
default=10.0,
|
default=4.5,
|
||||||
min=1.0,
|
min=1.0,
|
||||||
max=20.0,
|
max=20.0,
|
||||||
step=1.0,
|
step=1.0,
|
||||||
@ -424,10 +424,11 @@ class MoonvalleyImg2VideoNode(comfy_io.ComfyNode):
|
|||||||
step=1,
|
step=1,
|
||||||
display_mode=comfy_io.NumberDisplay.number,
|
display_mode=comfy_io.NumberDisplay.number,
|
||||||
tooltip="Random seed value",
|
tooltip="Random seed value",
|
||||||
|
control_after_generate=True,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"steps",
|
"steps",
|
||||||
default=100,
|
default=33,
|
||||||
min=1,
|
min=1,
|
||||||
max=100,
|
max=100,
|
||||||
step=1,
|
step=1,
|
||||||
@ -468,7 +469,6 @@ class MoonvalleyImg2VideoNode(comfy_io.ComfyNode):
|
|||||||
steps=steps,
|
steps=steps,
|
||||||
seed=seed,
|
seed=seed,
|
||||||
guidance_scale=prompt_adherence,
|
guidance_scale=prompt_adherence,
|
||||||
num_frames=128,
|
|
||||||
width=width_height["width"],
|
width=width_height["width"],
|
||||||
height=width_height["height"],
|
height=width_height["height"],
|
||||||
use_negative_prompts=True,
|
use_negative_prompts=True,
|
||||||
@ -526,11 +526,11 @@ class MoonvalleyVideo2VideoNode(comfy_io.ComfyNode):
|
|||||||
"negative_prompt",
|
"negative_prompt",
|
||||||
multiline=True,
|
multiline=True,
|
||||||
default="<synthetic> <scene cut> gopro, bright, contrast, static, overexposed, vignette, "
|
default="<synthetic> <scene cut> gopro, bright, contrast, static, overexposed, vignette, "
|
||||||
"artifacts, still, noise, texture, scanlines, videogame, 360 camera, VR, transition, "
|
"artifacts, still, noise, texture, scanlines, videogame, 360 camera, VR, transition, "
|
||||||
"flare, saturation, distorted, warped, wide angle, saturated, vibrant, glowing, "
|
"flare, saturation, distorted, warped, wide angle, saturated, vibrant, glowing, "
|
||||||
"cross dissolve, cheesy, ugly hands, mutated hands, mutant, disfigured, extra fingers, "
|
"cross dissolve, cheesy, ugly hands, mutated hands, mutant, disfigured, extra fingers, "
|
||||||
"blown out, horrible, blurry, worst quality, bad, dissolve, melt, fade in, fade out, "
|
"blown out, horrible, blurry, worst quality, bad, dissolve, melt, fade in, fade out, "
|
||||||
"wobbly, weird, low quality, plastic, stock footage, video camera, boring",
|
"wobbly, weird, low quality, plastic, stock footage, video camera, boring",
|
||||||
tooltip="Negative prompt text",
|
tooltip="Negative prompt text",
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
@ -546,7 +546,7 @@ class MoonvalleyVideo2VideoNode(comfy_io.ComfyNode):
|
|||||||
comfy_io.Video.Input(
|
comfy_io.Video.Input(
|
||||||
"video",
|
"video",
|
||||||
tooltip="The reference video used to generate the output video. Must be at least 5 seconds long. "
|
tooltip="The reference video used to generate the output video. Must be at least 5 seconds long. "
|
||||||
"Videos longer than 5s will be automatically trimmed. Only MP4 format supported.",
|
"Videos longer than 5s will be automatically trimmed. Only MP4 format supported.",
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"control_type",
|
"control_type",
|
||||||
@ -563,6 +563,15 @@ class MoonvalleyVideo2VideoNode(comfy_io.ComfyNode):
|
|||||||
tooltip="Only used if control_type is 'Motion Transfer'",
|
tooltip="Only used if control_type is 'Motion Transfer'",
|
||||||
optional=True,
|
optional=True,
|
||||||
),
|
),
|
||||||
|
comfy_io.Int.Input(
|
||||||
|
"steps",
|
||||||
|
default=33,
|
||||||
|
min=1,
|
||||||
|
max=100,
|
||||||
|
step=1,
|
||||||
|
display_mode=comfy_io.NumberDisplay.number,
|
||||||
|
tooltip="Number of inference steps",
|
||||||
|
),
|
||||||
],
|
],
|
||||||
outputs=[comfy_io.Video.Output()],
|
outputs=[comfy_io.Video.Output()],
|
||||||
hidden=[
|
hidden=[
|
||||||
@ -582,6 +591,8 @@ class MoonvalleyVideo2VideoNode(comfy_io.ComfyNode):
|
|||||||
video: Optional[VideoInput] = None,
|
video: Optional[VideoInput] = None,
|
||||||
control_type: str = "Motion Transfer",
|
control_type: str = "Motion Transfer",
|
||||||
motion_intensity: Optional[int] = 100,
|
motion_intensity: Optional[int] = 100,
|
||||||
|
steps=33,
|
||||||
|
prompt_adherence=4.5,
|
||||||
) -> comfy_io.NodeOutput:
|
) -> comfy_io.NodeOutput:
|
||||||
auth = {
|
auth = {
|
||||||
"auth_token": cls.hidden.auth_token_comfy_org,
|
"auth_token": cls.hidden.auth_token_comfy_org,
|
||||||
@ -602,6 +613,8 @@ class MoonvalleyVideo2VideoNode(comfy_io.ComfyNode):
|
|||||||
negative_prompt=negative_prompt,
|
negative_prompt=negative_prompt,
|
||||||
seed=seed,
|
seed=seed,
|
||||||
control_params=control_params,
|
control_params=control_params,
|
||||||
|
steps=steps,
|
||||||
|
guidance_scale=prompt_adherence,
|
||||||
)
|
)
|
||||||
|
|
||||||
control = parse_control_parameter(control_type)
|
control = parse_control_parameter(control_type)
|
||||||
@ -653,11 +666,11 @@ class MoonvalleyTxt2VideoNode(comfy_io.ComfyNode):
|
|||||||
"negative_prompt",
|
"negative_prompt",
|
||||||
multiline=True,
|
multiline=True,
|
||||||
default="<synthetic> <scene cut> gopro, bright, contrast, static, overexposed, vignette, "
|
default="<synthetic> <scene cut> gopro, bright, contrast, static, overexposed, vignette, "
|
||||||
"artifacts, still, noise, texture, scanlines, videogame, 360 camera, VR, transition, "
|
"artifacts, still, noise, texture, scanlines, videogame, 360 camera, VR, transition, "
|
||||||
"flare, saturation, distorted, warped, wide angle, saturated, vibrant, glowing, "
|
"flare, saturation, distorted, warped, wide angle, saturated, vibrant, glowing, "
|
||||||
"cross dissolve, cheesy, ugly hands, mutated hands, mutant, disfigured, extra fingers, "
|
"cross dissolve, cheesy, ugly hands, mutated hands, mutant, disfigured, extra fingers, "
|
||||||
"blown out, horrible, blurry, worst quality, bad, dissolve, melt, fade in, fade out, "
|
"blown out, horrible, blurry, worst quality, bad, dissolve, melt, fade in, fade out, "
|
||||||
"wobbly, weird, low quality, plastic, stock footage, video camera, boring",
|
"wobbly, weird, low quality, plastic, stock footage, video camera, boring",
|
||||||
tooltip="Negative prompt text",
|
tooltip="Negative prompt text",
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
@ -675,7 +688,7 @@ class MoonvalleyTxt2VideoNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Float.Input(
|
comfy_io.Float.Input(
|
||||||
"prompt_adherence",
|
"prompt_adherence",
|
||||||
default=10.0,
|
default=4.0,
|
||||||
min=1.0,
|
min=1.0,
|
||||||
max=20.0,
|
max=20.0,
|
||||||
step=1.0,
|
step=1.0,
|
||||||
@ -688,11 +701,12 @@ class MoonvalleyTxt2VideoNode(comfy_io.ComfyNode):
|
|||||||
max=4294967295,
|
max=4294967295,
|
||||||
step=1,
|
step=1,
|
||||||
display_mode=comfy_io.NumberDisplay.number,
|
display_mode=comfy_io.NumberDisplay.number,
|
||||||
|
control_after_generate=True,
|
||||||
tooltip="Random seed value",
|
tooltip="Random seed value",
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"steps",
|
"steps",
|
||||||
default=100,
|
default=33,
|
||||||
min=1,
|
min=1,
|
||||||
max=100,
|
max=100,
|
||||||
step=1,
|
step=1,
|
||||||
|
|||||||
@ -174,10 +174,10 @@ def get_base_inputs_types() -> list[comfy_io.Input]:
|
|||||||
comfy_io.String.Input("negative_prompt", multiline=True),
|
comfy_io.String.Input("negative_prompt", multiline=True),
|
||||||
comfy_io.Int.Input("seed", min=0, max=0xFFFFFFFF, control_after_generate=True),
|
comfy_io.Int.Input("seed", min=0, max=0xFFFFFFFF, control_after_generate=True),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"resolution", options=[resolution.value for resolution in PikaResolutionEnum], default="1080p"
|
"resolution", options=PikaResolutionEnum, default=PikaResolutionEnum.field_1080p
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"duration", options=[duration.value for duration in PikaDurationEnum], default=5
|
"duration", options=PikaDurationEnum, default=PikaDurationEnum.integer_5
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -616,7 +616,7 @@ class PikaffectsNode(comfy_io.ComfyNode):
|
|||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Image.Input("image", tooltip="The reference image to apply the Pikaffect to."),
|
comfy_io.Image.Input("image", tooltip="The reference image to apply the Pikaffect to."),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"pikaffect", options=[pikaffect.value for pikaffect in Pikaffect], default="Cake-ify"
|
"pikaffect", options=Pikaffect, default="Cake-ify"
|
||||||
),
|
),
|
||||||
comfy_io.String.Input("prompt_text", multiline=True),
|
comfy_io.String.Input("prompt_text", multiline=True),
|
||||||
comfy_io.String.Input("negative_prompt", multiline=True),
|
comfy_io.String.Input("negative_prompt", multiline=True),
|
||||||
|
|||||||
@ -85,7 +85,7 @@ class PixverseTemplateNode(comfy_io.ComfyNode):
|
|||||||
display_name="PixVerse Template",
|
display_name="PixVerse Template",
|
||||||
category="api node/video/PixVerse",
|
category="api node/video/PixVerse",
|
||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input("template", options=[list(pixverse_templates.keys())]),
|
comfy_io.Combo.Input("template", options=list(pixverse_templates.keys())),
|
||||||
],
|
],
|
||||||
outputs=[comfy_io.Custom(PixverseIO.TEMPLATE).Output(display_name="pixverse_template")],
|
outputs=[comfy_io.Custom(PixverseIO.TEMPLATE).Output(display_name="pixverse_template")],
|
||||||
)
|
)
|
||||||
@ -120,20 +120,20 @@ class PixverseTextToVideoNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[ratio.value for ratio in PixverseAspectRatio],
|
options=PixverseAspectRatio,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"quality",
|
"quality",
|
||||||
options=[resolution.value for resolution in PixverseQuality],
|
options=PixverseQuality,
|
||||||
default=PixverseQuality.res_540p,
|
default=PixverseQuality.res_540p,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"duration_seconds",
|
"duration_seconds",
|
||||||
options=[dur.value for dur in PixverseDuration],
|
options=PixverseDuration,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"motion_mode",
|
"motion_mode",
|
||||||
options=[mode.value for mode in PixverseMotionMode],
|
options=PixverseMotionMode,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"seed",
|
"seed",
|
||||||
@ -262,16 +262,16 @@ class PixverseImageToVideoNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"quality",
|
"quality",
|
||||||
options=[resolution.value for resolution in PixverseQuality],
|
options=PixverseQuality,
|
||||||
default=PixverseQuality.res_540p,
|
default=PixverseQuality.res_540p,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"duration_seconds",
|
"duration_seconds",
|
||||||
options=[dur.value for dur in PixverseDuration],
|
options=PixverseDuration,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"motion_mode",
|
"motion_mode",
|
||||||
options=[mode.value for mode in PixverseMotionMode],
|
options=PixverseMotionMode,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"seed",
|
"seed",
|
||||||
@ -403,16 +403,16 @@ class PixverseTransitionVideoNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"quality",
|
"quality",
|
||||||
options=[resolution.value for resolution in PixverseQuality],
|
options=PixverseQuality,
|
||||||
default=PixverseQuality.res_540p,
|
default=PixverseQuality.res_540p,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"duration_seconds",
|
"duration_seconds",
|
||||||
options=[dur.value for dur in PixverseDuration],
|
options=PixverseDuration,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"motion_mode",
|
"motion_mode",
|
||||||
options=[mode.value for mode in PixverseMotionMode],
|
options=PixverseMotionMode,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"seed",
|
"seed",
|
||||||
|
|||||||
@ -200,11 +200,11 @@ class RunwayImageToVideoNodeGen3a(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"duration",
|
"duration",
|
||||||
options=[model.value for model in Duration],
|
options=Duration,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"ratio",
|
"ratio",
|
||||||
options=[model.value for model in RunwayGen3aAspectRatio],
|
options=RunwayGen3aAspectRatio,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"seed",
|
"seed",
|
||||||
@ -300,11 +300,11 @@ class RunwayImageToVideoNodeGen4(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"duration",
|
"duration",
|
||||||
options=[model.value for model in Duration],
|
options=Duration,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"ratio",
|
"ratio",
|
||||||
options=[model.value for model in RunwayGen4TurboAspectRatio],
|
options=RunwayGen4TurboAspectRatio,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"seed",
|
"seed",
|
||||||
@ -408,11 +408,11 @@ class RunwayFirstLastFrameNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"duration",
|
"duration",
|
||||||
options=[model.value for model in Duration],
|
options=Duration,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"ratio",
|
"ratio",
|
||||||
options=[model.value for model in RunwayGen3aAspectRatio],
|
options=RunwayGen3aAspectRatio,
|
||||||
),
|
),
|
||||||
comfy_io.Int.Input(
|
comfy_io.Int.Input(
|
||||||
"seed",
|
"seed",
|
||||||
|
|||||||
@ -82,8 +82,8 @@ class StabilityStableImageUltraNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[x.value for x in StabilityAspectRatio],
|
options=StabilityAspectRatio,
|
||||||
default=StabilityAspectRatio.ratio_1_1.value,
|
default=StabilityAspectRatio.ratio_1_1,
|
||||||
tooltip="Aspect ratio of generated image.",
|
tooltip="Aspect ratio of generated image.",
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
@ -217,12 +217,12 @@ class StabilityStableImageSD_3_5Node(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[x.value for x in Stability_SD3_5_Model],
|
options=Stability_SD3_5_Model,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[x.value for x in StabilityAspectRatio],
|
options=StabilityAspectRatio,
|
||||||
default=StabilityAspectRatio.ratio_1_1.value,
|
default=StabilityAspectRatio.ratio_1_1,
|
||||||
tooltip="Aspect ratio of generated image.",
|
tooltip="Aspect ratio of generated image.",
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
|
|||||||
@ -173,8 +173,8 @@ class ViduTextToVideoNode(comfy_io.ComfyNode):
|
|||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in VideoModelName],
|
options=VideoModelName,
|
||||||
default=VideoModelName.vidu_q1.value,
|
default=VideoModelName.vidu_q1,
|
||||||
tooltip="Model name",
|
tooltip="Model name",
|
||||||
),
|
),
|
||||||
comfy_io.String.Input(
|
comfy_io.String.Input(
|
||||||
@ -205,22 +205,22 @@ class ViduTextToVideoNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[model.value for model in AspectRatio],
|
options=AspectRatio,
|
||||||
default=AspectRatio.r_16_9.value,
|
default=AspectRatio.r_16_9,
|
||||||
tooltip="The aspect ratio of the output video",
|
tooltip="The aspect ratio of the output video",
|
||||||
optional=True,
|
optional=True,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"resolution",
|
"resolution",
|
||||||
options=[model.value for model in Resolution],
|
options=Resolution,
|
||||||
default=Resolution.r_1080p.value,
|
default=Resolution.r_1080p,
|
||||||
tooltip="Supported values may vary by model & duration",
|
tooltip="Supported values may vary by model & duration",
|
||||||
optional=True,
|
optional=True,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"movement_amplitude",
|
"movement_amplitude",
|
||||||
options=[model.value for model in MovementAmplitude],
|
options=MovementAmplitude,
|
||||||
default=MovementAmplitude.auto.value,
|
default=MovementAmplitude.auto,
|
||||||
tooltip="The movement amplitude of objects in the frame",
|
tooltip="The movement amplitude of objects in the frame",
|
||||||
optional=True,
|
optional=True,
|
||||||
),
|
),
|
||||||
@ -278,8 +278,8 @@ class ViduImageToVideoNode(comfy_io.ComfyNode):
|
|||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in VideoModelName],
|
options=VideoModelName,
|
||||||
default=VideoModelName.vidu_q1.value,
|
default=VideoModelName.vidu_q1,
|
||||||
tooltip="Model name",
|
tooltip="Model name",
|
||||||
),
|
),
|
||||||
comfy_io.Image.Input(
|
comfy_io.Image.Input(
|
||||||
@ -316,14 +316,14 @@ class ViduImageToVideoNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"resolution",
|
"resolution",
|
||||||
options=[model.value for model in Resolution],
|
options=Resolution,
|
||||||
default=Resolution.r_1080p.value,
|
default=Resolution.r_1080p,
|
||||||
tooltip="Supported values may vary by model & duration",
|
tooltip="Supported values may vary by model & duration",
|
||||||
optional=True,
|
optional=True,
|
||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"movement_amplitude",
|
"movement_amplitude",
|
||||||
options=[model.value for model in MovementAmplitude],
|
options=MovementAmplitude,
|
||||||
default=MovementAmplitude.auto.value,
|
default=MovementAmplitude.auto.value,
|
||||||
tooltip="The movement amplitude of objects in the frame",
|
tooltip="The movement amplitude of objects in the frame",
|
||||||
optional=True,
|
optional=True,
|
||||||
@ -388,8 +388,8 @@ class ViduReferenceVideoNode(comfy_io.ComfyNode):
|
|||||||
inputs=[
|
inputs=[
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"model",
|
"model",
|
||||||
options=[model.value for model in VideoModelName],
|
options=VideoModelName,
|
||||||
default=VideoModelName.vidu_q1.value,
|
default=VideoModelName.vidu_q1,
|
||||||
tooltip="Model name",
|
tooltip="Model name",
|
||||||
),
|
),
|
||||||
comfy_io.Image.Input(
|
comfy_io.Image.Input(
|
||||||
@ -424,8 +424,8 @@ class ViduReferenceVideoNode(comfy_io.ComfyNode):
|
|||||||
),
|
),
|
||||||
comfy_io.Combo.Input(
|
comfy_io.Combo.Input(
|
||||||
"aspect_ratio",
|
"aspect_ratio",
|
||||||
options=[model.value for model in AspectRatio],
|
options=AspectRatio,
|
||||||
default=AspectRatio.r_16_9.value,
|
default=AspectRatio.r_16_9,
|
||||||
tooltip="The aspect ratio of the output video",
|
tooltip="The aspect ratio of the output video",
|
||||||
optional=True,
|
optional=True,
|
||||||
),
|
),
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
# This file is automatically generated by the build process when version is
|
# This file is automatically generated by the build process when version is
|
||||||
# updated in pyproject.toml.
|
# updated in pyproject.toml.
|
||||||
__version__ = "0.3.63"
|
__version__ = "0.3.64"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "ComfyUI"
|
name = "ComfyUI"
|
||||||
version = "0.3.63"
|
version = "0.3.64"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = { file = "LICENSE" }
|
license = { file = "LICENSE" }
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
comfyui-frontend-package==1.27.10
|
comfyui-frontend-package==1.27.10
|
||||||
comfyui-workflow-templates==0.1.93
|
comfyui-workflow-templates==0.1.94
|
||||||
comfyui-embedded-docs==0.2.6
|
comfyui-embedded-docs==0.2.6
|
||||||
comfyui_manager==4.0.2
|
comfyui_manager==4.0.2
|
||||||
torch
|
torch
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user