lainlives commited on
Commit
b3f6d6c
·
1 Parent(s): bbed340
Files changed (2) hide show
  1. app.py +103 -62
  2. yt-dlp.conf +0 -1
app.py CHANGED
@@ -14,28 +14,42 @@ from pydantic import BaseModel
14
  from ultimate_rvc.common import AUDIO_DIR, MODELS_DIR, TEMP_DIR
15
  from ultimate_rvc.core.generate.song_cover import get_named_song_dirs
16
  from ultimate_rvc.core.generate.speech import get_edge_tts_voice_names
17
- from ultimate_rvc.core.manage.audio import (get_audio_datasets,
18
- get_named_audio_datasets,
19
- get_saved_output_audio,
20
- get_saved_speech_audio)
 
 
21
  from ultimate_rvc.core.manage.config import get_config_names, load_config
22
- from ultimate_rvc.core.manage.models import (get_custom_embedder_model_names,
23
- get_custom_pretrained_model_names,
24
- get_training_model_names,
25
- get_voice_model_names)
 
 
26
  from ultimate_rvc.web.common import initialize_dropdowns
27
- from ultimate_rvc.web.config.component import (AnyComponentConfig, AudioConfig,
28
- CheckboxConfig, ComponentConfig,
29
- DropdownConfig, NumberConfig,
30
- RadioConfig, SliderConfig,
31
- TextboxConfig)
32
- from ultimate_rvc.web.config.tab import (SongGenerationConfig,
33
- SpeechGenerationConfig,
34
- TrainingConfig)
35
- from ultimate_rvc.web.tabs.generate.speech.multi_step_generation import \
36
- render as render_speech_multi_step_tab
37
- from ultimate_rvc.web.tabs.generate.speech.one_click_generation import \
38
- render as render_speech_one_click_tab
 
 
 
 
 
 
 
 
 
 
39
  from ultimate_rvc.web.tabs.manage.audio import render as render_audio_tab
40
  from ultimate_rvc.web.tabs.manage.models import render as render_models_tab
41
  from ultimate_rvc.web.tabs.manage.settings import render as render_settings_tab
@@ -47,38 +61,60 @@ if TYPE_CHECKING:
47
  from functools import partial
48
 
49
  import gradio as gr
50
- from ultimate_rvc.core.common import (INTERMEDIATE_AUDIO_BASE_DIR,
51
- OUTPUT_AUDIO_DIR, copy_file_safe,
52
- display_progress, get_file_hash,
53
- json_dump, json_load, validate_model,
54
- validate_url)
55
- from ultimate_rvc.core.exceptions import (Entity, InvalidLocationError,
56
- Location, NotFoundError,
57
- NotProvidedError, UIMessage,
58
- YoutubeUrlError)
59
- from ultimate_rvc.core.generate.common import (convert, get_unique_base_path,
60
- mix_audio,
61
- validate_audio_dir_exists,
62
- validate_audio_file_exists,
63
- wavify)
64
- from ultimate_rvc.core.generate.song_cover import (get_named_song_dirs,
65
- get_song_cover_name,
66
- run_pipeline)
67
- from ultimate_rvc.core.generate.typing_extra import (EffectedVocalsMetaData,
68
- FileMetaData,
69
- MixedAudioType,
70
- PitchShiftMetaData,
71
- RVCAudioMetaData,
72
- SeparatedAudioMetaData,
73
- SongSourceType)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  from ultimate_rvc.core.manage.audio import get_saved_output_audio
75
  from ultimate_rvc.typing_extra import EmbedderModel
76
- from ultimate_rvc.web.common import (PROGRESS_BAR, exception_harness,
77
- toggle_intermediate_audio,
78
- toggle_visibility,
79
- toggle_visible_component,
80
- update_dropdowns, update_output_name,
81
- update_value)
 
 
 
 
82
  from ultimate_rvc.web.typing_extra import ConcurrencyId
83
 
84
  type StrPath = str | PathLike[str]
@@ -319,8 +355,6 @@ class DatasetType(StrEnum):
319
  EXISTING_DATASET = "Use existing dataset"
320
 
321
 
322
-
323
-
324
  class EmbedderModel(StrEnum):
325
  """Enumeration of audio embedding models."""
326
 
@@ -1919,7 +1953,9 @@ class SpeechGenerationConfig(GenerationConfig):
1919
  total_config = load_config(config_name, TotalConfig) if config_name else TotalConfig()
1920
 
1921
 
1922
- def render_song_cover_multi_step_tab(total_config: TotalConfig, cookiefile: str | None = None) -> None:
 
 
1923
  """
1924
  Render "Generate song cover - multi-step generation" tab.
1925
 
@@ -2727,7 +2763,9 @@ def run_newpipeline(
2727
  validate_model(custom_embedder_model, Entity.CUSTOM_EMBEDDER_MODEL)
2728
  display_progress("[~] Retrieving song...", 0 / 9, progress_bar)
2729
  song, song_dir = retrieve_song(source, cookiefile=cookiefile)
2730
- display_progress("[~] Separating vocals from instrumentals...", 1 / 9, progress_bar)
 
 
2731
  vocals_track, instrumentals_track = separate_audio(
2732
  song,
2733
  song_dir,
@@ -2735,7 +2773,7 @@ def run_newpipeline(
2735
  SegmentSize.SEG_2048,
2736
  )
2737
  display_progress(
2738
- "[~] Separating main vocals from backup vocals...",
2739
  2 / 9,
2740
  progress_bar,
2741
  )
@@ -2745,14 +2783,14 @@ def run_newpipeline(
2745
  SeparationModel.UVR_MDX_NET_KARA_2,
2746
  SegmentSize.SEG_2048,
2747
  )
2748
- display_progress("[~] De-noising vocals...", 3 / 9, progress_bar)
2749
  noise_track, clean_track = separate_audio(
2750
  clean_track,
2751
  song_dir,
2752
  SeparationModel.UVR_DeNoise,
2753
  SegmentSize.SEG_2048,
2754
  )
2755
- display_progress("[~] De-reverbing vocals...", 4 / 9, progress_bar)
2756
  reverb_track, vocals_dereverb_track = separate_audio(
2757
  main_vocals_track,
2758
  song_dir,
@@ -2760,7 +2798,7 @@ def run_newpipeline(
2760
  SegmentSize.SEG_2048,
2761
  )
2762
 
2763
- display_progress("[~] Converting vocals...", 5 / 9, progress_bar)
2764
  converted_vocals_track = convert(
2765
  audio_track=vocals_dereverb_track,
2766
  directory=song_dir,
@@ -2782,7 +2820,7 @@ def run_newpipeline(
2782
  sid=sid,
2783
  content_type=RVCContentType.VOCALS,
2784
  )
2785
- display_progress("[~] Post-processing vocals...", 6 / 9, progress_bar)
2786
  effected_vocals_track = postprocess(
2787
  converted_vocals_track,
2788
  song_dir,
@@ -2791,13 +2829,17 @@ def run_newpipeline(
2791
  dry_level,
2792
  damping,
2793
  )
2794
- display_progress("[~] Pitch-shifting instrumentals...", 7 / 9, progress_bar)
 
 
2795
  shifted_instrumentals_track = pitch_shift(
2796
  instrumentals_track,
2797
  song_dir,
2798
  n_semitones,
2799
  )
2800
- display_progress("[~] Pitch-shifting backup vocals...", 8 / 9, progress_bar)
 
 
2801
  shifted_backup_vocals_track = pitch_shift(
2802
  backup_vocals_track,
2803
  song_dir,
@@ -3053,7 +3095,6 @@ def render_song_cover_one_click_tab(
3053
  generate_btn.click(
3054
  partial(
3055
  exception_harness(
3056
- info_msg="New pipeline engaged expect bugs.",
3057
  run_newpipeline,
3058
  info_msg="Song cover generated successfully!",
3059
  ),
 
14
  from ultimate_rvc.common import AUDIO_DIR, MODELS_DIR, TEMP_DIR
15
  from ultimate_rvc.core.generate.song_cover import get_named_song_dirs
16
  from ultimate_rvc.core.generate.speech import get_edge_tts_voice_names
17
+ from ultimate_rvc.core.manage.audio import (
18
+ get_audio_datasets,
19
+ get_named_audio_datasets,
20
+ get_saved_output_audio,
21
+ get_saved_speech_audio,
22
+ )
23
  from ultimate_rvc.core.manage.config import get_config_names, load_config
24
+ from ultimate_rvc.core.manage.models import (
25
+ get_custom_embedder_model_names,
26
+ get_custom_pretrained_model_names,
27
+ get_training_model_names,
28
+ get_voice_model_names,
29
+ )
30
  from ultimate_rvc.web.common import initialize_dropdowns
31
+ from ultimate_rvc.web.config.component import (
32
+ AnyComponentConfig,
33
+ AudioConfig,
34
+ CheckboxConfig,
35
+ ComponentConfig,
36
+ DropdownConfig,
37
+ NumberConfig,
38
+ RadioConfig,
39
+ SliderConfig,
40
+ TextboxConfig,
41
+ )
42
+ from ultimate_rvc.web.config.tab import (
43
+ SongGenerationConfig,
44
+ SpeechGenerationConfig,
45
+ TrainingConfig,
46
+ )
47
+ from ultimate_rvc.web.tabs.generate.speech.multi_step_generation import (
48
+ render as render_speech_multi_step_tab,
49
+ )
50
+ from ultimate_rvc.web.tabs.generate.speech.one_click_generation import (
51
+ render as render_speech_one_click_tab,
52
+ )
53
  from ultimate_rvc.web.tabs.manage.audio import render as render_audio_tab
54
  from ultimate_rvc.web.tabs.manage.models import render as render_models_tab
55
  from ultimate_rvc.web.tabs.manage.settings import render as render_settings_tab
 
61
  from functools import partial
62
 
63
  import gradio as gr
64
+ from ultimate_rvc.core.common import (
65
+ INTERMEDIATE_AUDIO_BASE_DIR,
66
+ OUTPUT_AUDIO_DIR,
67
+ copy_file_safe,
68
+ display_progress,
69
+ get_file_hash,
70
+ json_dump,
71
+ json_load,
72
+ validate_model,
73
+ validate_url,
74
+ )
75
+ from ultimate_rvc.core.exceptions import (
76
+ Entity,
77
+ InvalidLocationError,
78
+ Location,
79
+ NotFoundError,
80
+ NotProvidedError,
81
+ UIMessage,
82
+ YoutubeUrlError,
83
+ )
84
+ from ultimate_rvc.core.generate.common import (
85
+ convert,
86
+ get_unique_base_path,
87
+ mix_audio,
88
+ validate_audio_dir_exists,
89
+ validate_audio_file_exists,
90
+ wavify,
91
+ )
92
+ from ultimate_rvc.core.generate.song_cover import (
93
+ get_named_song_dirs,
94
+ get_song_cover_name,
95
+ run_pipeline,
96
+ )
97
+ from ultimate_rvc.core.generate.typing_extra import (
98
+ EffectedVocalsMetaData,
99
+ FileMetaData,
100
+ MixedAudioType,
101
+ PitchShiftMetaData,
102
+ RVCAudioMetaData,
103
+ SeparatedAudioMetaData,
104
+ SongSourceType,
105
+ )
106
  from ultimate_rvc.core.manage.audio import get_saved_output_audio
107
  from ultimate_rvc.typing_extra import EmbedderModel
108
+ from ultimate_rvc.web.common import (
109
+ PROGRESS_BAR,
110
+ exception_harness,
111
+ toggle_intermediate_audio,
112
+ toggle_visibility,
113
+ toggle_visible_component,
114
+ update_dropdowns,
115
+ update_output_name,
116
+ update_value,
117
+ )
118
  from ultimate_rvc.web.typing_extra import ConcurrencyId
119
 
120
  type StrPath = str | PathLike[str]
 
355
  EXISTING_DATASET = "Use existing dataset"
356
 
357
 
 
 
358
  class EmbedderModel(StrEnum):
359
  """Enumeration of audio embedding models."""
360
 
 
1953
  total_config = load_config(config_name, TotalConfig) if config_name else TotalConfig()
1954
 
1955
 
1956
+ def render_song_cover_multi_step_tab(
1957
+ total_config: TotalConfig, cookiefile: str | None = None
1958
+ ) -> None:
1959
  """
1960
  Render "Generate song cover - multi-step generation" tab.
1961
 
 
2763
  validate_model(custom_embedder_model, Entity.CUSTOM_EMBEDDER_MODEL)
2764
  display_progress("[~] Retrieving song...", 0 / 9, progress_bar)
2765
  song, song_dir = retrieve_song(source, cookiefile=cookiefile)
2766
+ display_progress(
2767
+ "[~] newpipeline: Separating vocals from instrumentals...", 1 / 9, progress_bar
2768
+ )
2769
  vocals_track, instrumentals_track = separate_audio(
2770
  song,
2771
  song_dir,
 
2773
  SegmentSize.SEG_2048,
2774
  )
2775
  display_progress(
2776
+ "[~] newpipeline: Separating main vocals from backup vocals...",
2777
  2 / 9,
2778
  progress_bar,
2779
  )
 
2783
  SeparationModel.UVR_MDX_NET_KARA_2,
2784
  SegmentSize.SEG_2048,
2785
  )
2786
+ display_progress("[~] newpipeline: De-noising vocals...", 3 / 9, progress_bar)
2787
  noise_track, clean_track = separate_audio(
2788
  clean_track,
2789
  song_dir,
2790
  SeparationModel.UVR_DeNoise,
2791
  SegmentSize.SEG_2048,
2792
  )
2793
+ display_progress("[~] newpipeline: De-reverbing vocals...", 4 / 9, progress_bar)
2794
  reverb_track, vocals_dereverb_track = separate_audio(
2795
  main_vocals_track,
2796
  song_dir,
 
2798
  SegmentSize.SEG_2048,
2799
  )
2800
 
2801
+ display_progress("[~] newpipeline: Converting vocals...", 5 / 9, progress_bar)
2802
  converted_vocals_track = convert(
2803
  audio_track=vocals_dereverb_track,
2804
  directory=song_dir,
 
2820
  sid=sid,
2821
  content_type=RVCContentType.VOCALS,
2822
  )
2823
+ display_progress("[~] newpipeline: Post-processing vocals...", 6 / 9, progress_bar)
2824
  effected_vocals_track = postprocess(
2825
  converted_vocals_track,
2826
  song_dir,
 
2829
  dry_level,
2830
  damping,
2831
  )
2832
+ display_progress(
2833
+ "[~] newpipeline: Pitch-shifting instrumentals...", 7 / 9, progress_bar
2834
+ )
2835
  shifted_instrumentals_track = pitch_shift(
2836
  instrumentals_track,
2837
  song_dir,
2838
  n_semitones,
2839
  )
2840
+ display_progress(
2841
+ "[~] newpipeline: Pitch-shifting backup vocals...", 8 / 9, progress_bar
2842
+ )
2843
  shifted_backup_vocals_track = pitch_shift(
2844
  backup_vocals_track,
2845
  song_dir,
 
3095
  generate_btn.click(
3096
  partial(
3097
  exception_harness(
 
3098
  run_newpipeline,
3099
  info_msg="Song cover generated successfully!",
3100
  ),
yt-dlp.conf DELETED
@@ -1 +0,0 @@
1
- /data/yt-dlp.conf