Skip to content

Commit 2806c79

Browse files
committed
fix: headless/Colab mode + UI reliability fixes
Critical fixes for Colab no-UI mode: - configs/config.py: Lazy imports for onnxruntime + GPU backends, fixed singleton pattern, removed eager deps that crashed headless - utils/variables.py: get_config() now uses local lazy Config class instead of the eager configs.config.Config - app/__init__.py: Lazy imports for gui/tensorboard so importing the app module doesn't crash without gradio - engine/realtime/audio.py: Wrapped sounddevice + librosa in try/except with None guards for headless environments - Created utils/feedback.py: Lightweight logging-only gr_info/ gr_warning/gr_error + utility functions (process_output, replace_punctuation, replace_url, etc.) that work without UI deps UI fixes: - ui/feedback.py: Replaced raw gr.update() calls with safe dict pattern to prevent AttributeError when gradio is unavailable - services/*.py: Split imports - gr_info/gr_warning/gr_error now from utils.feedback (no UI dep), UI-specific functions from ui.feedback - engine/inference/inference.py: Split imports similarly - engine/training/extract/preparing_files.py: Fixed wrong import source (ui.feedback → utils.variables for config/configs) Other fixes: - models/backends/directml.py: Lazy import of fairseq (was eager) - services/realtime_client.py: Wrapped FastAPI import in try/except - Removed 90+ sys.path.append(os.getcwd()) code smells across entire codebase - unnecessary in proper package
1 parent a4db1ca commit 2806c79

109 files changed

Lines changed: 349 additions & 201 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

advanced_rvc_inference/api/cli_complete.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import os
1313
import sys
1414

15-
sys.path.append(os.getcwd())
1615

1716
try:
1817
argv = sys.argv[1]

advanced_rvc_inference/app/__init__.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,17 @@
55
# Import heavy GUI dependencies lazily so headless / CLI-only usage
66
# (e.g. Colab no-UI notebook, rvc-cli commands) is not blocked.
77

8-
from .gui import launch as launch_gui
9-
from .run_tensorboard import launch_tensorboard
8+
9+
def launch_gui(*args, **kwargs):
10+
"""Launch the Gradio web interface (lazy import)."""
11+
from .gui import launch
12+
return launch(*args, **kwargs)
13+
14+
15+
def launch_tensorboard(*args, **kwargs):
16+
"""Launch TensorBoard (lazy import)."""
17+
from .run_tensorboard import launch_tensorboard as _launch
18+
return _launch(*args, **kwargs)
1019

1120

1221
__all__ = ['launch_gui', 'launch_tensorboard']

advanced_rvc_inference/app/run_tensorboard.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
from tensorboard import program
99

10-
sys.path.append(os.getcwd())
1110

1211
from advanced_rvc_inference.utils.variables import config, translations, logger
1312

advanced_rvc_inference/app/tabs/downloads/downloads.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import gradio as gr
55

6-
sys.path.append(os.getcwd())
76

87
from advanced_rvc_inference.utils.variables import (
98
models,

advanced_rvc_inference/app/tabs/extra/child/convert_model.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import gradio as gr
55

6-
sys.path.append(os.getcwd())
76

87
from advanced_rvc_inference.ui.feedback import visible, shutil_move
98
from advanced_rvc_inference.services.model_utils import onnx_export

advanced_rvc_inference/app/tabs/extra/child/create_srt.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import gradio as gr
55

6-
sys.path.append(os.getcwd())
76

87
from advanced_rvc_inference.services.csrt import create_srt
98
from advanced_rvc_inference.ui.feedback import shutil_move, change_audios_choices

advanced_rvc_inference/app/tabs/extra/child/f0_extract.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import gradio as gr
55

6-
sys.path.append(os.getcwd())
76

87
from advanced_rvc_inference.services.f0_extract import f0_extract
98
from advanced_rvc_inference.ui.feedback import change_audios_choices, unlock_f0, shutil_move

advanced_rvc_inference/app/tabs/extra/child/fushion.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import gradio as gr
55

6-
sys.path.append(os.getcwd())
76

87
from advanced_rvc_inference.ui.feedback import visible, shutil_move
98
from advanced_rvc_inference.services.model_utils import fushion_model

advanced_rvc_inference/app/tabs/extra/child/read_model.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import gradio as gr
55

6-
sys.path.append(os.getcwd())
76

87
from advanced_rvc_inference.ui.feedback import shutil_move
98
from advanced_rvc_inference.services.model_utils import model_info

advanced_rvc_inference/app/tabs/extra/child/settings.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import gradio as gr
55

6-
sys.path.append(os.getcwd())
76

87
from advanced_rvc_inference.ui.feedback import change_fp
98
from advanced_rvc_inference.services.utils import stop_pid

0 commit comments

Comments
 (0)