To create a custom audio processor, implement a handler class that follows the Audio Processor Plugin API. The handler must define its capabilities via query_audio_processor_def() and implement the specific processing methods required for its type (soundtrack, voice_replacement, or audio_edit).
Processor Types
soundtrack: Replace or generate the soundtrack for a video.voice_replacement: Replace voice tracks in a video remux flow.audio_edit: Process a standalone audio file in late audio postprocessing.
Required Methods by Type
- soundtrack:
generate_soundtrack(method, video_path, prompt="", negative_prompt="", seed=-1, duration=0, output_path=None, send_cmd=None, status_callback=None, **kwargs) - voice_replacement:
replace_voice_tracks(method, audio_tracks, voice_sample=None, voice_sample2=None, output_dir="", prefix="", process_files=None, **kwargs) - audio_edit:
process_audio_file(method, audio_source, output_path=None, status_callback=None, **kwargs)
class MyAudioProcessor:
def query_audio_processor_def(self):
return {
"name": "MyAudioProcessor",
"processor_types": ("soundtrack",),
"methods": [("MyAudioProcessor", "myaudio")],
"method_types": {"myaudio": ("soundtrack",)},
"needs_prompt": {"myaudio": True},
"config_key": "myaudio",
"pos": 100,
}
def validate_method(self, method, **kwargs):
# Return "" for success or error text
return ""
def generate_soundtrack(self, method, video_path, prompt="", ...):
# Return path to audio file to mux into video
return "/path/to/output.wav"