(img2vid_image, img2vid_prompt, n_prompt, img2vid_audio_1, img2vid_audio_2,
sd_steps, seed, text_guide_scale, audio_guide_scale, mode_selector, tts_text, resolution_select, human1_voice, human2_voice)
| 506 | |
| 507 | |
| 508 | def generate_video(img2vid_image, img2vid_prompt, n_prompt, img2vid_audio_1, img2vid_audio_2, |
| 509 | sd_steps, seed, text_guide_scale, audio_guide_scale, mode_selector, tts_text, resolution_select, human1_voice, human2_voice): |
| 510 | input_data = {} |
| 511 | input_data["prompt"] = img2vid_prompt |
| 512 | input_data["cond_image"] = img2vid_image |
| 513 | person = {} |
| 514 | if mode_selector == "Single Person(Local File)": |
| 515 | person['person1'] = img2vid_audio_1 |
| 516 | elif mode_selector == "Single Person(TTS)": |
| 517 | tts_audio = {} |
| 518 | tts_audio['text'] = tts_text |
| 519 | tts_audio['human1_voice'] = human1_voice |
| 520 | input_data["tts_audio"] = tts_audio |
| 521 | elif mode_selector == "Multi Person(Local File, audio add)": |
| 522 | person['person1'] = img2vid_audio_1 |
| 523 | person['person2'] = img2vid_audio_2 |
| 524 | input_data["audio_type"] = 'add' |
| 525 | elif mode_selector == "Multi Person(Local File, audio parallel)": |
| 526 | person['person1'] = img2vid_audio_1 |
| 527 | person['person2'] = img2vid_audio_2 |
| 528 | input_data["audio_type"] = 'para' |
| 529 | else: |
| 530 | tts_audio = {} |
| 531 | tts_audio['text'] = tts_text |
| 532 | tts_audio['human1_voice'] = human1_voice |
| 533 | tts_audio['human2_voice'] = human2_voice |
| 534 | input_data["tts_audio"] = tts_audio |
| 535 | |
| 536 | input_data["cond_audio"] = person |
| 537 | |
| 538 | if 'Local File' in mode_selector: |
| 539 | if len(input_data['cond_audio'])==2: |
| 540 | new_human_speech1, new_human_speech2, sum_human_speechs = audio_prepare_multi(input_data['cond_audio']['person1'], input_data['cond_audio']['person2'], input_data['audio_type']) |
| 541 | audio_embedding_1 = get_embedding(new_human_speech1, wav2vec_feature_extractor, audio_encoder) |
| 542 | audio_embedding_2 = get_embedding(new_human_speech2, wav2vec_feature_extractor, audio_encoder) |
| 543 | emb1_path = os.path.join(args.audio_save_dir, '1.pt') |
| 544 | emb2_path = os.path.join(args.audio_save_dir, '2.pt') |
| 545 | sum_audio = os.path.join(args.audio_save_dir, 'sum.wav') |
| 546 | sf.write(sum_audio, sum_human_speechs, 16000) |
| 547 | torch.save(audio_embedding_1, emb1_path) |
| 548 | torch.save(audio_embedding_2, emb2_path) |
| 549 | input_data['cond_audio']['person1'] = emb1_path |
| 550 | input_data['cond_audio']['person2'] = emb2_path |
| 551 | input_data['video_audio'] = sum_audio |
| 552 | elif len(input_data['cond_audio'])==1: |
| 553 | human_speech = audio_prepare_single(input_data['cond_audio']['person1']) |
| 554 | audio_embedding = get_embedding(human_speech, wav2vec_feature_extractor, audio_encoder) |
| 555 | emb_path = os.path.join(args.audio_save_dir, '1.pt') |
| 556 | sum_audio = os.path.join(args.audio_save_dir, 'sum.wav') |
| 557 | sf.write(sum_audio, human_speech, 16000) |
| 558 | torch.save(audio_embedding, emb_path) |
| 559 | input_data['cond_audio']['person1'] = emb_path |
| 560 | input_data['video_audio'] = sum_audio |
| 561 | elif 'TTS' in mode_selector: |
| 562 | if 'human2_voice' not in input_data['tts_audio'].keys(): |
| 563 | new_human_speech1, sum_audio = process_tts_single(input_data['tts_audio']['text'], args.audio_save_dir, input_data['tts_audio']['human1_voice']) |
| 564 | audio_embedding_1 = get_embedding(new_human_speech1, wav2vec_feature_extractor, audio_encoder) |
| 565 | emb1_path = os.path.join(args.audio_save_dir, '1.pt') |
nothing calls this directly
no test coverage detected