Upload audio_or_fallback.py
Browse files- audio_or_fallback.py +26 -0
audio_or_fallback.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class AudioOrFallback:
|
| 2 |
+
@classmethod
|
| 3 |
+
def INPUT_TYPES(cls):
|
| 4 |
+
return {
|
| 5 |
+
"required": {"fallback": ("AUDIO",)},
|
| 6 |
+
"optional": {"audio": ("AUDIO",)},
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
RETURN_TYPES = ("AUDIO",)
|
| 10 |
+
FUNCTION = "run"
|
| 11 |
+
CATEGORY = "audio"
|
| 12 |
+
|
| 13 |
+
def run(self, fallback, audio=None):
|
| 14 |
+
try:
|
| 15 |
+
# VHS passes audio as a lazy callable; the "no audio stream" error is raised when it's called
|
| 16 |
+
if callable(audio):
|
| 17 |
+
audio = audio()
|
| 18 |
+
if audio is not None and audio["waveform"].numel() > 0:
|
| 19 |
+
return (audio,)
|
| 20 |
+
except Exception:
|
| 21 |
+
pass
|
| 22 |
+
return (fallback,)
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
NODE_CLASS_MAPPINGS = {"AudioOrFallback": AudioOrFallback}
|
| 26 |
+
NODE_DISPLAY_NAME_MAPPINGS = {"AudioOrFallback": "Audio Or Fallback"}
|