⚡ Together goes multimodal on Inference Providers
Together now supports five additional task types beyond chat and text-to-image on Inference Providers:
feature_extractiontext_to_speechautomatic_speech_recognitionimage_to_imagetext_to_video
from huggingface_hub import InferenceClient
client = InferenceClient(provider="together")
# Embeddings
embeddings = client.feature_extraction("Hello world", model="intfloat/multilingual-e5-large-instruct")
# Text-to-speech
audio = client.text_to_speech("Hello world", model="hexgrad/Kokoro-82M", extra_body={'voice': 'af_heart'})
# Text-to-video
video = client.text_to_video("A cat on the moon", model="Wan-AI/Wan2.2-T2V-A14B")- [Inference] Add embeddings, TTS, ASR, image-to-image and video tasks for Together by @nbroad1881 in #4164
📚 Documentation: Inference guide
🔗 Centralized hf:// URI parsing
All scattered ad-hoc hf:// URI parsers throughout the codebase have been consolidated onto the new parse_hf_uri/parse_hf_mount helpers. This brings consistent parsing behavior, a new is_hf_uri public helper for validating URIs, and proper handling of @ in filenames (now treated as literal). The CLI error handler now catches HfUriError and displays a clean message instead of a raw traceback.
🚨 Breaking Changes
This migration includes several breaking changes: BucketUrl.handle has been renamed to BucketUrl.uri (type changed from str to HfUri, use .to_uri() for the string form), Volume.to_hf_handle() has been renamed to Volume.to_uri(), single-segment repo IDs (e.g. gpt2) are no longer supported in HfFileSystem paths or CLI -v flags — you must use the namespace/name format instead.
📚 Documentation: CLI guide | Buckets guide
🖥️ CLI
Global --no-truncate flag for CLI tables
A new --no-truncate global formatting flag disables the ... shortening of scalar values in human-mode tables, letting you see full IDs, names, and other long text at a glance. List- and dict-valued columns (e.g. tags) remain shortened in human mode since they can be arbitrarily long; use --format json for those. When any cell is truncated, human tables now print a one-line hint at the bottom pointing you to the right flag.
# Show full scalar values in table output
hf models ls --no-truncate- [CLI] Add global
--no-truncateflag for human tables by @hanouticelina in #4229
📚 Documentation: CLI guide
Miscellaneous
- [CLI] Surface job runtime fields in ps + inspect by @davanstrien in #4211
- [CLI] Parse
initiatorfield on jobs API responses by @davanstrien in #4212 - [CLI] Support hf:// URIs in cache rm by @abhinavgautam01 in #4235
- [CLI] Expose linked repos in PaperInfo by @mishig25 in #4240
- [CLI] Raise error when both --local-dir and --cache-dir are provided by @Wauplin in #4245
🔒 Token file permissions hardened
Token files written by huggingface_hub (~/.cache/huggingface/token and ~/.cache/huggingface/stored_tokens) were previously created with Python's default modes, leaving them world-readable on most systems. This PR sets file permissions to 0o600 and parent directory permissions to 0o700 after every write, bringing huggingface_hub in line with industry-standard tools like GitHub CLI, AWS CLI, and Google Cloud SDK. Pre-existing installations will converge to safe permissions on the next token save. The chmod calls are wrapped in try/except for Windows, which doesn't support POSIX modes.
📊 Jobs
- Use server-side support to tail job logs by @coyotte508 in #4202
- [Jobs] Add
ephemeral_storagefield toJobHardwareby @Wauplin in #4233
🐛 Bug and typo fixes
📖 Documentation
🏗️ Internal
- Post-release: bump version to 1.16.0.dev0 by @huggingface-hub-bot[bot] in #4230
- Fix catch-all empty string in CI pytest --only-rerun by @albertvillanova in #4239
- [Internal] Silence
tyinvalid-type-formonWebhooksServerannotations by @hanouticelina in #4242 - [CI] make test_model_info_with_security for robust by @Wauplin in #4246