|
import folder_paths |
|
import comfy.audio_encoders.audio_encoders |
|
import comfy.utils |
|
|
|
|
|
class AudioEncoderLoader: |
|
@classmethod |
|
def INPUT_TYPES(s): |
|
return {"required": { "audio_encoder_name": (folder_paths.get_filename_list("audio_encoders"), ), |
|
}} |
|
RETURN_TYPES = ("AUDIO_ENCODER",) |
|
FUNCTION = "load_model" |
|
|
|
CATEGORY = "loaders" |
|
|
|
def load_model(self, audio_encoder_name): |
|
audio_encoder_name = folder_paths.get_full_path_or_raise("audio_encoders", audio_encoder_name) |
|
sd = comfy.utils.load_torch_file(audio_encoder_name, safe_load=True) |
|
audio_encoder = comfy.audio_encoders.audio_encoders.load_audio_encoder_from_sd(sd) |
|
if audio_encoder is None: |
|
raise RuntimeError("ERROR: audio encoder file is invalid and does not contain a valid model.") |
|
return (audio_encoder,) |
|
|
|
|
|
class AudioEncoderEncode: |
|
@classmethod |
|
def INPUT_TYPES(s): |
|
return {"required": { "audio_encoder": ("AUDIO_ENCODER",), |
|
"audio": ("AUDIO",), |
|
}} |
|
RETURN_TYPES = ("AUDIO_ENCODER_OUTPUT",) |
|
FUNCTION = "encode" |
|
|
|
CATEGORY = "conditioning" |
|
|
|
def encode(self, audio_encoder, audio): |
|
output = audio_encoder.encode_audio(audio["waveform"], audio["sample_rate"]) |
|
return (output,) |
|
|
|
|
|
NODE_CLASS_MAPPINGS = { |
|
"AudioEncoderLoader": AudioEncoderLoader, |
|
"AudioEncoderEncode": AudioEncoderEncode, |
|
} |
|
|