Added support for P-Video Avatar

This commit is contained in:
Sirshendu Ganguly
2026-05-04 20:06:04 +05:30
parent ed8f04495b
commit 3284cdca65
5 changed files with 43 additions and 3 deletions
+9
View File
@@ -1392,6 +1392,10 @@ function videoSettingsToggleHandler(settingsNode) {
const draftWidget = settingsNode.widgets.find(w => w && w.name === "draft");
const useAudioWidget = settingsNode.widgets.find(w => w && w.name === "useAudio");
const audioWidget = settingsNode.widgets.find(w => w && w.name === "audio");
const useVoicePromptWidget = settingsNode.widgets.find(w => w && w.name === "useVoicePrompt");
const voicePromptWidget = settingsNode.widgets.find(w => w && w.name === "voicePrompt");
const useSafetyFilterWidget = settingsNode.widgets.find(w => w && w.name === "useSafetyFilter");
const safetyFilterWidget = settingsNode.widgets.find(w => w && w.name === "safetyFilter");
const usePromptUpsamplingWidget = settingsNode.widgets.find(w => w && w.name === "usePromptUpsampling");
const promptUpsamplingWidget = settingsNode.widgets.find(w => w && w.name === "promptUpsampling");
const useBackgroundColorWidget = settingsNode.widgets.find(w => w && w.name === "useBackgroundColor");
@@ -1443,6 +1447,8 @@ function videoSettingsToggleHandler(settingsNode) {
if (useDraftWidget && draftWidget) toggleWidgetState(useDraftWidget, draftWidget, "draft");
if (useAudioWidget && audioWidget) toggleWidgetState(useAudioWidget, audioWidget, "audio");
if (useVoicePromptWidget && voicePromptWidget) toggleWidgetState(useVoicePromptWidget, voicePromptWidget, "voicePrompt");
if (useSafetyFilterWidget && safetyFilterWidget) toggleWidgetState(useSafetyFilterWidget, safetyFilterWidget, "safetyFilter");
if (usePromptUpsamplingWidget && promptUpsamplingWidget) toggleWidgetState(usePromptUpsamplingWidget, promptUpsamplingWidget, "promptUpsampling");
if (useBackgroundColorWidget && backgroundColorWidget) toggleWidgetState(useBackgroundColorWidget, backgroundColorWidget, "backgroundColor");
if (useRemoveBackgroundWidget && removeBackgroundWidget) toggleWidgetState(useRemoveBackgroundWidget, removeBackgroundWidget, "removeBackground");
@@ -2854,6 +2860,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) {
],
"Pruna": [
"prunaai:p-video@0 (P-Video)",
"prunaai:p-video@avatar (P-Video Avatar)",
],
"SkyReels": [
"skywork:skyreels@v4 (SkyReels V4)",
@@ -2952,6 +2959,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) {
"xai:grok-imagine@video": {"width": 480, "height": 480},
"veed:fabric@1.0": {"width": 1280, "height": 720},
"prunaai:p-video@0": {"width": 1280, "height": 720},
"prunaai:p-video@avatar": {"width": 1280, "height": 720},
"heygen:avatar@4": {"width": 1280, "height": 720},
"heygen:video-agent@0": {"width": 1280, "height": 720},
"skywork:skyreels@v4": {"width": 1280, "height": 720},
@@ -3049,6 +3057,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) {
"xai:grok-imagine@video": "480p",
"veed:fabric@1.0": "720p",
"prunaai:p-video@0": "720p",
"prunaai:p-video@avatar": "720p",
"heygen:avatar@4": "720p",
"heygen:video-agent@0": "720p",
"skywork:skyreels@v4": "720p",
+1 -1
View File
@@ -224,7 +224,7 @@ class txt2vid:
"tooltip": "Connect a Runware Accelerator Options Node to configure caching and acceleration settings.",
}),
"settings": ("RUNWAREVIDEOSETTINGS", {
"tooltip": "Connect a Runware Video Inference Settings node to configure draft, audio, promptUpsampling, voiceDescription, style, thinking, multiClip, shotType, promptExtend, syncMode, mode, emotion, temperature, occlusionDetection, tts, activeSpeakerDetection, segments, etc.",
"tooltip": "Connect a Runware Video Inference Settings node to configure draft, audio, voicePrompt, safetyFilter, promptUpsampling, voiceDescription, style, thinking, multiClip, shotType, promptExtend, syncMode, mode, emotion, temperature, occlusionDetection, tts, activeSpeakerDetection, segments, etc.",
}),
}
}
+3
View File
@@ -137,6 +137,7 @@ class videoModelSearch:
],
"Pruna": [
"prunaai:p-video@0 (P-Video)",
"prunaai:p-video@avatar (P-Video Avatar)",
],
"SkyReels": [
"skywork:skyreels@v4 (SkyReels V4)",
@@ -275,6 +276,7 @@ class videoModelSearch:
# Pruna Models (720p)
"prunaai:p-video@0": {"width": 1280, "height": 720},
"prunaai:p-video@avatar": {"width": 1280, "height": 720},
# HeyGen Models (Model ID: heygen-avatar-iv)
"heygen:avatar@4": {"width": 1280, "height": 720},
@@ -416,6 +418,7 @@ class videoModelSearch:
# Pruna Models
"prunaai:p-video@0": "720p",
"prunaai:p-video@avatar": "720p",
# HeyGen Models
"heygen:avatar@4": "720p",
+29 -2
View File
@@ -1,6 +1,6 @@
"""
Runware Video Inference Settings Node
Provides settings (draft, audio, promptUpsampling, voiceDescription, style, thinking, multiClip, shotType, promptExtend, syncMode, mode, emotion, temperature, occlusionDetection, tts, activeSpeakerDetection, segments, etc.) for Runware Video Inference.
Provides settings (draft, audio, voicePrompt, safetyFilter, promptUpsampling, voiceDescription, style, thinking, multiClip, shotType, promptExtend, syncMode, mode, emotion, temperature, occlusionDetection, tts, activeSpeakerDetection, segments, etc.) for Runware Video Inference.
"""
from typing import Dict, Any
@@ -34,6 +34,16 @@ class RunwareVideoSettings:
"label_on": "Enabled",
"label_off": "Disabled",
}),
"useSafetyFilter": ("BOOLEAN", {
"tooltip": "Enable to include safetyFilter in video inference settings.",
"default": False,
}),
"safetyFilter": ("BOOLEAN", {
"tooltip": "When false, enables safety filtering on prompts and input images. Only used when 'Use Safety Filter' is enabled.",
"default": True,
"label_on": "true",
"label_off": "false",
}),
"usePromptUpsampling": ("BOOLEAN", {
"tooltip": "Enable to include promptUpsampling (enhance prompt automatically) in video inference settings.",
"default": False,
@@ -188,6 +198,15 @@ class RunwareVideoSettings:
"segments": ("RUNWAREVIDEOINFERENCESETTINGSSEGMENTS", {
"tooltip": "Connect Runware Video Inference Settings Segments for settings.segments[] (startTime, endTime, audio, audioStartTime, audioEndTime).",
}),
"useVoicePrompt": ("BOOLEAN", {
"tooltip": "Enable to include voicePrompt (delivery style instructions) in video inference settings.",
"default": False,
}),
"voicePrompt": ("STRING", {
"default": "Say the following.",
"multiline": True,
"tooltip": "Speaking style, tone, pacing or emotion instructions for delivery. Only used when 'Use Voice Prompt' is enabled.",
}),
}
}
@@ -196,7 +215,7 @@ class RunwareVideoSettings:
FUNCTION = "createSettings"
CATEGORY = "Runware"
DESCRIPTION = (
"Configure video inference settings (draft, audio, promptUpsampling, voiceDescription, style, thinking, multiClip, shotType, promptExtend, syncMode, mode, emotion, temperature, occlusionDetection, tts, activeSpeakerDetection, segments, etc.) for Runware Video Inference. "
"Configure video inference settings (draft, audio, voicePrompt, safetyFilter, promptUpsampling, voiceDescription, style, thinking, multiClip, shotType, promptExtend, syncMode, mode, emotion, temperature, occlusionDetection, tts, activeSpeakerDetection, segments, etc.) for Runware Video Inference. "
"Connect to Runware Video Inference node."
)
@@ -206,6 +225,10 @@ class RunwareVideoSettings:
draft = kwargs.get("draft", False)
use_audio = kwargs.get("useAudio", False)
audio = kwargs.get("audio", False)
use_voice_prompt = kwargs.get("useVoicePrompt", False)
voice_prompt = (kwargs.get("voicePrompt") or "").strip()
use_safety_filter = kwargs.get("useSafetyFilter", False)
safety_filter = kwargs.get("safetyFilter", True)
use_prompt_upsampling = kwargs.get("usePromptUpsampling", False)
prompt_upsampling = kwargs.get("promptUpsampling", False)
use_background_color = kwargs.get("useBackgroundColor", False)
@@ -248,6 +271,10 @@ class RunwareVideoSettings:
settings["draft"] = bool(draft)
if use_audio:
settings["audio"] = bool(audio)
if use_voice_prompt and voice_prompt:
settings["voicePrompt"] = voice_prompt
if use_safety_filter:
settings["safetyFilter"] = bool(safety_filter)
if use_prompt_upsampling:
settings["promptUpsampling"] = bool(prompt_upsampling)
if use_background_color and background_color:
File diff suppressed because one or more lines are too long