Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Huggingface Diffusers Setup Package Configuration

From Leeroopedia
Revision as of 13:04, 16 February 2026 by Admin (talk | contribs) (Auto-imported from implementations/Huggingface_Diffusers_Setup_Package_Configuration.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Sources
Domains Packaging, Build_System
Last Updated 2026-02-13 21:00 GMT

Overview

Concrete tool for configuring the diffusers Python package build, dependency management, and PyPI distribution provided by the setuptools build system.

Description

The setup.py file is the central package configuration for the Hugging Face Diffusers library. It defines all dependencies (core and optional), package metadata, entry points (the `diffusers-cli` command), and a custom `DepsTableUpdateCommand` that auto-generates the internal dependency versions table. It manages optional extras for training, testing, quantization backends (bitsandbytes, GGUF, TorchAO, Quanto, ModelOpt), and framework-specific installs (PyTorch, Flax/JAX).

Usage

Use this file when building, installing, or releasing the diffusers package. It is invoked by `pip install .`, `pip install -e .[dev]`, `python setup.py bdist_wheel`, or `python setup.py sdist`. The custom command `python setup.py deps_table_update` regenerates the internal dependency versions table at `src/diffusers/dependency_versions_table.py`.

Code Reference

Source Location

Signature

class DepsTableUpdateCommand(Command):
    """
    A custom command that updates the dependency table.
    usage: python setup.py deps_table_update
    """
    description = "build runtime dependency table"
    user_options = [
        ("dep-table-update", None, "updates src/diffusers/dependency_versions_table.py"),
    ]

    def initialize_options(self): ...
    def finalize_options(self): ...
    def run(self): ...


def deps_list(*pkgs) -> list:
    """Return versioned dependency strings for the given package names."""
    ...


setup(
    name="diffusers",
    version="0.37.0.dev0",
    install_requires=[...],
    extras_require={
        "quality": [...],
        "docs": [...],
        "training": [...],
        "test": [...],
        "torch": [...],
        "flax": [...],
        "bitsandbytes": [...],
        "gguf": [...],
        "optimum_quanto": [...],
        "torchao": [...],
        "nvidia_modelopt": [...],
        "dev": [...],
    },
    entry_points={"console_scripts": ["diffusers-cli=diffusers.commands.diffusers_cli:main"]},
    cmdclass={"deps_table_update": DepsTableUpdateCommand},
)

Import

# Not imported as a module — invoked via setuptools CLI:
# pip install .
# pip install -e .[training]
# python setup.py deps_table_update

I/O Contract

Inputs

Name Type Required Description
_deps list[str] Yes Master list of all dependency strings with version constraints
extras dict[str, list] Yes Optional dependency groups (training, test, quality, etc.)
install_requires list[str] Yes Core runtime dependencies

Outputs

Name Type Description
Package build wheel/sdist Distributable package artifacts
dependency_versions_table.py File Auto-generated dependency lookup table at `src/diffusers/dependency_versions_table.py`
diffusers-cli Console script CLI entry point for the diffusers command-line tool

Usage Examples

Install with Training Extras

# Install diffusers with training dependencies
pip install -e ".[training]"

# Install with all development dependencies
pip install -e ".[dev]"

# Install with specific quantization backend
pip install -e ".[bitsandbytes]"
pip install -e ".[torchao]"

Update Dependency Table

# Regenerate the dependency versions table after modifying _deps
python setup.py deps_table_update
# Or equivalently:
make deps_table_update

Build for PyPI Release

# Build wheel and source distribution
python setup.py bdist_wheel && python setup.py sdist

# Upload to test PyPI
twine upload dist/* -r pypitest

# Upload to production PyPI
twine upload dist/* -r pypi

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment