Feature Request: Standardize dependency management using requirements.txt
Is your feature request related to a problem? Please describe. Yes. Currently, Python packages and their versions are hardcoded within the installation scripts and backend logic. Many of these dependencies are significantly outdated (some over 3 years old), which creates a "black box" environment that is hard to audit, update, or fix.
Describe the solution you'd like This results in:
- Technical Debt: Difficulty in upgrading core libraries like torch or diffusers.
- Incompatibility: Issues with newer Python versions (3.10+) and modern GPU drivers.
- Lack of Transparency: Users and contributors cannot easily see the dependency tree.
Describe alternatives you've considered I suggest migrating dependency management to a standardized requirements.txt structure. Ideally:
- requirements.txt: A root file containing the core application dependencies
- Hardware-specific files: Use files like requirements-cuda.txt or requirements-mac.txt to handle specialized environments without bloating the main installation
- Dynamic Loading: Modify the installation scripts to use pip install -r requirements.txt instead of hardcoded strings
This would allow the project to:
- Use version ranges (e.g., transformers>=4.30.0) instead of pinned, ancient versions.
- Enable easier testing of security patches.
- Allow advanced users to customize their environment easily.
Additional context By decoupling the package list from the logic of the install.sh or install.bat scripts, we can update the AI stack (Stable Diffusion, ControlNet, etc.) independently from the installer's code.
Source: easydiffusion/easydiffusion