Merge pull request #154 from Runware/feature-p-avatar

Added support for Pruna Avatar
This commit is contained in:
Sirshendu Ganguly
2026-05-28 13:18:40 +05:30
committed by GitHub
4 changed files with 24 additions and 0 deletions
+6
View File
@@ -1396,6 +1396,8 @@ 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 usePreserveAudioWidget = settingsNode.widgets.find(w => w && w.name === "usePreserveAudio");
const preserveAudioWidget = settingsNode.widgets.find(w => w && w.name === "preserveAudio");
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");
@@ -1455,6 +1457,7 @@ function videoSettingsToggleHandler(settingsNode) {
if (useDraftWidget && draftWidget) toggleWidgetState(useDraftWidget, draftWidget, "draft");
if (useAudioWidget && audioWidget) toggleWidgetState(useAudioWidget, audioWidget, "audio");
if (usePreserveAudioWidget && preserveAudioWidget) toggleWidgetState(usePreserveAudioWidget, preserveAudioWidget, "preserveAudio");
if (useVoicePromptWidget && voicePromptWidget) toggleWidgetState(useVoicePromptWidget, voicePromptWidget, "voicePrompt");
if (useSafetyFilterWidget && safetyFilterWidget) toggleWidgetState(useSafetyFilterWidget, safetyFilterWidget, "safetyFilter");
if (usePromptUpsamplingWidget && promptUpsamplingWidget) toggleWidgetState(usePromptUpsamplingWidget, promptUpsamplingWidget, "promptUpsampling");
@@ -2879,6 +2882,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) {
"Pruna": [
"prunaai:p-video@0 (P-Video)",
"prunaai:p-video@avatar (P-Video Avatar)",
"prunaai:p-video@animate (P-Video Animate)",
],
"SkyReels": [
"skywork:skyreels@v4 (SkyReels V4)",
@@ -2978,6 +2982,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) {
"veed:fabric@1.0": {"width": 1280, "height": 720},
"prunaai:p-video@0": {"width": 1280, "height": 720},
"prunaai:p-video@avatar": {"width": 1280, "height": 720},
"prunaai:p-video@animate": {"width": 1280, "height": 720},
"heygen:avatar@4": {"width": 1280, "height": 720},
"heygen:video-agent@0": {"width": 1280, "height": 720},
"heygen:avatar@5": {"width": 1280, "height": 720},
@@ -3077,6 +3082,7 @@ function videoModelSearchFilterHandler(videoModelSearchNode) {
"veed:fabric@1.0": "720p",
"prunaai:p-video@0": "720p",
"prunaai:p-video@avatar": "720p",
"prunaai:p-video@animate": "720p",
"heygen:avatar@4": "720p",
"heygen:video-agent@0": "720p",
"heygen:avatar@5": "720p",
+3
View File
@@ -139,6 +139,7 @@ class videoModelSearch:
"Pruna": [
"prunaai:p-video@0 (P-Video)",
"prunaai:p-video@avatar (P-Video Avatar)",
"prunaai:p-video@animate (P-Video Animate)",
],
"SkyReels": [
"skywork:skyreels@v4 (SkyReels V4)",
@@ -278,6 +279,7 @@ class videoModelSearch:
# Pruna Models (720p)
"prunaai:p-video@0": {"width": 1280, "height": 720},
"prunaai:p-video@avatar": {"width": 1280, "height": 720},
"prunaai:p-video@animate": {"width": 1280, "height": 720},
# HeyGen Models (Model ID: heygen-avatar-iv, heygen-avatar-v)
"heygen:avatar@4": {"width": 1280, "height": 720},
@@ -421,6 +423,7 @@ class videoModelSearch:
# Pruna Models
"prunaai:p-video@0": "720p",
"prunaai:p-video@avatar": "720p",
"prunaai:p-video@animate": "720p",
# HeyGen Models
"heygen:avatar@4": "720p",
+14
View File
@@ -225,6 +225,16 @@ class RunwareVideoSettings:
"label_on": "true",
"label_off": "false",
}),
"usePreserveAudio": ("BOOLEAN", {
"tooltip": "Enable to include preserveAudio in video inference settings.",
"default": False,
}),
"preserveAudio": ("BOOLEAN", {
"tooltip": "Preserve source audio in output video. Only used when 'Use Preserve Audio' is enabled.",
"default": True,
"label_on": "Enabled",
"label_off": "Disabled",
}),
}
}
@@ -243,6 +253,8 @@ class RunwareVideoSettings:
draft = kwargs.get("draft", False)
use_audio = kwargs.get("useAudio", False)
audio = kwargs.get("audio", False)
use_preserve_audio = kwargs.get("usePreserveAudio", False)
preserve_audio = kwargs.get("preserveAudio", True)
use_voice_prompt = kwargs.get("useVoicePrompt", False)
voice_prompt = (kwargs.get("voicePrompt") or "").strip()
use_safety_filter = kwargs.get("useSafetyFilter", False)
@@ -293,6 +305,8 @@ class RunwareVideoSettings:
settings["draft"] = bool(draft)
if use_audio:
settings["audio"] = bool(audio)
if use_preserve_audio:
settings["preserveAudio"] = bool(preserve_audio)
if use_voice_prompt and voice_prompt:
settings["voicePrompt"] = voice_prompt
if use_safety_filter:
File diff suppressed because one or more lines are too long