Skip to content

Feature Request: Standardize dependency management using requirements.txt #2010

Description

@Djdefrag

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:

  1. requirements.txt: A root file containing the core application dependencies
  2. Hardware-specific files: Use files like requirements-cuda.txt or requirements-mac.txt to handle specialized environments without bloating the main installation
  3. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions