unsloth/studio/backend/requirements/no-torch-runtime.txt
Daniel Han-Chen 081377fd30 Fix/adjust diffusion: restore huggingface_hub line to no-torch-runtime for PR #5754
Round 34 P1: R33 removed the `huggingface_hub>=1.3.0,<2.0` line
entirely when the right revert was to restore the pre-PR
`huggingface_hub>=0.34.0` floor. install.sh --no-torch installs
this requirements file with --no-deps and does NOT install
studio.txt afterward, so without an explicit Hub line a no-torch
Studio install ends with no huggingface_hub at all and the new
diffusion + chat GGUF paths fail at import with
ModuleNotFoundError: huggingface_hub.

Restores the pre-PR floor and documents both the round-26 walk-back
and the round-34 reason the package line stays.
2026-05-25 17:29:47 +00:00

99 lines
3.7 KiB
Text

# Runtime dependencies for no-torch (GGUF-only) mode.
# Installed with --no-deps to prevent transitive torch resolution
# from packages like accelerate, peft, trl, sentence-transformers.
#
# Includes unsloth's own direct deps (typer, pydantic, pyyaml,
# nest-asyncio) since unsloth is also installed with --no-deps
# (current PyPI metadata still declares torch as a hard dep).
# unsloth direct deps (from pyproject.toml [project].dependencies)
typer
# typer's full runtime dep tree. Required explicitly because this
# file is installed with --no-deps. On Linux/Mac CI runners these
# are often cached transitively; on a fresh windows-latest venv they
# are not, and `unsloth studio setup` crashes with
# `ModuleNotFoundError: No module named 'click'`, then 'annotated_doc',
# then 'rich', etc. as each is hit. Pin the full chain so the
# no-torch path works cleanly on every fresh venv.
click>=8.0
shellingham>=1.5
annotated-doc>=0.0.3
rich>=13.0
markdown-it-py>=3.0
mdurl>=0.1
pygments>=2.0
# pydantic is intentionally NOT pinned here. install.sh / install.ps1
# / install_python_stack.py run `pip install pydantic` WITH deps just
# before this --no-deps file is applied, so pip resolves pydantic-core
# to the exact version pydantic's _ensure_pydantic_core_version check
# expects. Pinning both under --no-deps used to drift them apart.
pyyaml
nest-asyncio
# HF ecosystem (from [huggingfacenotorch] extras in pyproject.toml)
wheel>=0.42.0
packaging
numpy
tqdm
psutil
tyro
protobuf
sentencepiece>=0.2.0
safetensors>=0.4.3
datasets>=3.4.1,!=4.0.*,!=4.1.0,<4.4.0
accelerate>=0.34.1
peft>=0.18.0,!=0.11.0
# Round 33 P1: reverted the round-26 hub>=1.3.0 floor to the
# pre-PR >=0.34.0 floor. Studio's install_python_stack later
# forces hub==0.36.2 via studio.txt (constrained by
# transformers==4.57.6 in extras-no-deps.txt), so the 1.3.0
# floor was internally inconsistent. extras-no-deps holds
# transformers at 4.x, so the transformers-5.x is_offline_mode
# concern that motivated the original bump never actually
# triggers on the supported install path.
# Round 34 P1: the line itself must stay because install.sh
# --no-torch installs THIS file with --no-deps and does not run
# studio.txt afterward; without the package line a no-torch
# install ends with no huggingface_hub at all and the new
# diffusion / chat GGUF paths fail with ModuleNotFoundError.
# Verified live on B200: hub 0.36.2 + transformers 4.57.6 +
# diffusers 0.37.1 imports Flux2KleinPipeline cleanly and runs
# end-to-end image generation.
huggingface_hub>=0.34.0
hf_transfer
# Floor 0.37.0 introduces Flux2KleinPipeline + Flux2Pipeline which the
# Studio Images page imports for the default curated picker.
diffusers>=0.37.0
# Required by diffusers.GGUFQuantizationConfig (used by the Images page
# to load FLUX.2 / FLUX.1 / Qwen-Image GGUFs from the Hub). Floor at
# 0.10.0 to match the diffusers requirement; older gguf releases raise
# at single-file load time.
gguf>=0.10.0
# Transitive deps required because this file is installed with --no-deps.
# Without these, `from transformers import AutoConfig` fails at import time.
regex
typing_extensions
filelock
# `requests` and its urllib3/charset chain are required by huggingface_hub's
# blob downloader; diffusers + GGUFQuantizationConfig 500 on first
# /api/inference/images/load otherwise.
requests
urllib3
charset_normalizer
httpx
httpcore
certifi
idna
anyio
sniffio
h11
# Unpinned resolves to 0.23.1+ which breaks `from transformers import
# AutoConfig`; transformers 4.56..5.3 declares tokenizers<=0.23.0.
tokenizers<=0.23.0
transformers>=4.51.3,!=4.52.0,!=4.52.1,!=4.52.2,!=4.52.3,!=4.53.0,!=4.54.0,!=4.55.0,!=4.55.1,!=4.57.0,!=4.57.4,!=4.57.5,!=5.0.0,!=5.1.0,<=5.3.0
trl>=0.18.2,!=0.19.0,<=0.24.0
sentence-transformers
cut_cross_entropy
pillow