Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Web UI #163

Closed
wants to merge 6 commits into from
Closed

Web UI #163

wants to merge 6 commits into from

Conversation

Bebra777228
Copy link
Contributor

Duplicate of the previous PR

@beveradb
Copy link
Collaborator

beveradb commented Dec 8, 2024

Hey @Bebra777228 , thank you for making this!
The web UI demo on huggingface looks really nice and easy to use, and I can see why some people might want to use it :)

However, I think this ought to be a separate project in a new repo rather than an addition to the audio-separator package.
In general, that's because I try to apply unix philosophy in the tools I make:

(i) Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features.
(ii) Expect the output of every program to become the input to another, as yet unknown, program.

I made audio-separator with the intention of it being a simple tool which focuses on nothing but audio separation, which could be easily integrated into other projects as people see fit.
In my opinion, adding in a GUI into this project itself muddies that single purpose somewhat, as most of the users of this tool are probably either using it as a library (integrating it into their own software) or running it on the command line with no need for a GUI.
For those people, the large number of additional dependencies and complications from the gradio dependency are undesirable, as it adds a lot of extra bloat which won't be used by the majority of users.

Additionally, I don't really want to have to learn and maintain that additional GUI complexity myself - I hope to try and prevent this project getting into the weeds of GUI complexity which ended up making UVR such a spaghetti codebase in the first place 😅

Hope this doesn't offend you or disappoint you too much; I do think this code is a good thing and might be useful to someone, I just think it should like in a separate audio-separator-ui repository or similar and be published as a separate package on PyPI so users can choose whether they need a UI or not and only install the necessary dependencies based on that choice 😄

Oh, and unfortunately I tried to run it myself on my mac just now and got this error, which might be worth looking into once you move the code into a separate project 👀

audio-separator-app
Matplotlib is building the font cache; this may take a moment.
/Users/andrew/miniforge3/envs/audio-separator/lib/python3.11/site-packages/gradio_client/documentation.py:106: UserWarning: Could not get documentation group for <class 'gradio.mix.Parallel'>: No known documentation group for module 'gradio.mix'
  warnings.warn(f"Could not get documentation group for {cls}: {exc}")
/Users/andrew/miniforge3/envs/audio-separator/lib/python3.11/site-packages/gradio_client/documentation.py:106: UserWarning: Could not get documentation group for <class 'gradio.mix.Series'>: No known documentation group for module 'gradio.mix'
  warnings.warn(f"Could not get documentation group for {cls}: {exc}")
Traceback (most recent call last):
  File "/Users/andrew/miniforge3/envs/audio-separator/bin/audio-separator-app", line 6, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/andrew/Projects/python-audio-separator/audio_separator/utils/app.py", line 617, in main
    app.launch(share=True, debug=True)
  File "/Users/andrew/miniforge3/envs/audio-separator/lib/python3.11/site-packages/gradio/blocks.py", line 1796, in launch
    self.validate_queue_settings()
  File "/Users/andrew/miniforge3/envs/audio-separator/lib/python3.11/site-packages/gradio/blocks.py", line 1631, in validate_queue_settings
    raise ValueError("Progress tracking requires queuing to be enabled.")
ValueError: Progress tracking requires queuing to be enabled.

@Bebra777228
Copy link
Contributor Author

Sure, I'll take care of it. Thank you for your response. In that case, I suppose we can close this PR. Should I notify you once I finish working on the separate fork with the UI?

@beveradb
Copy link
Collaborator

beveradb commented Dec 8, 2024

Sure! I'd happily contribute to it a little in the other repo, give it a test myself and we can link to it / mention it from the README in this repo etc. to help people find it - I just think the code & dependencies should stay separate :)

@beveradb beveradb closed this Dec 8, 2024
@Bebra777228 Bebra777228 deleted the WebUI branch December 9, 2024 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants