# 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