Observed since 20 Oct, 17:42 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
abstractmusic
Model-agnostic remote and local music/audio generation abstractions for the Abstract ecosystem
abstractmusic is a model-agnostic text-to-music / text-to-audio library designed to plug into AbstractCore as an optional capability plugin. The base install is lightweight and remote-capable; local model runtimes live behind explicit extras.
pip install abstractmusic
The base package is import-light: contracts, manager, CLI shell, plugin wiring, docs, model metadata, and stdlib-only remote music backends for ACE Music and ElevenLabs Music. It does not install Torch, Diffusers, Transformers, or NumPy.
Use the base install with a remote API key:
export ACEMUSIC_API_KEY=...
abstractmusic t2m "ambient lo-fi study music" --out out.wav --duration 30
Or select ElevenLabs Music explicitly:
export ELEVENLABS_API_KEY=...
abstractmusic --backend elevenlabs t2m "cinematic instrumental synth cue" --format mp3 --out out.mp3 --duration 30
Install a local runtime profile when you want in-process model generation:
pip install "abstractmusic[remote]" # no-op alias; base install already contains remote clients
pip install "abstractmusic[acestep]" # local ACE-Step path
pip install "abstractmusic[stable-audio-3]" # internal Stable Audio 3 runtime, gated HF weights
pip install "abstractmusic[apple]"
pip install "abstractmusic[gpu]"
pip install "abstractmusic[all-apple]" # all supported Apple/MPS local runtime deps
pip install "abstractmusic[all-gpu]" # all supported CUDA/ROCm-style local runtime deps
The acestep profile installs the package-owned ACE-Step route. On Apple MPS, AbstractMusic
prefers MPS bfloat16 when the local PyTorch stack supports it, then MPS float32, and only falls
back to CPU float32 if MPS still returns invalid audio.
from abstractmusic import MusicManager
from abstractmusic.backends import AceMusicBackend, AceMusicBackendConfig
backend = AceMusicBackend(config=AceMusicBackendConfig(api_key="..."))
mm = MusicManager(backend=backend)
wav_bytes = mm.t2m("uplifting synthwave with punchy drums", duration_s=30.0)
open("out.wav", "wb").write(wav_bytes)
ElevenLabs Music is also available as a music-only remote backend:
from abstractmusic import MusicManager
from abstractmusic.backends import ElevenLabsMusicBackend, ElevenLabsMusicBackendConfig
backend = ElevenLabsMusicBackend(config=ElevenLabsMusicBackendConfig(api_key="..."))
mm = MusicManager(backend=backend)
mp3_bytes = mm.t2m("cinematic instrumental synth cue", duration_s=30.0, format="mp3")
open("out.mp3", "wb").write(mp3_bytes)
from abstractmusic import MusicManager
from abstractmusic.backends import AceStepBackend, AceStepBackendConfig
backend = AceStepBackend(config=AceStepBackendConfig())
mm = MusicManager(backend=backend)
wav_bytes = mm.t2m("uplifting synthwave with punchy drums", duration_s=10.0)
open("out.wav", "wb").write(wav_bytes)
from abstractcore import create_llm
llm = create_llm(
# Any provider/model works here. The LLM does *not* synthesize audio.
"ollama",
model="qwen3:4b-instruct",
music_backend="acemusic",
music_acemusic_api_key="...",
)
wav_bytes = llm.music.t2m("ambient lo-fi study music", format="wav", duration_s=10.0)
open("out.wav", "wb").write(wav_bytes)
You can also pass provider-neutral style tags (instruments, vocalist traits, mix notes) through the same contract:
wav_bytes = llm.music.t2m(
"a clean jazz arrangement with a clear chorus lift",
duration_s=25.0,
lyrics="auto",
positive_styles=["saxophone", "brushed drums", "female vocalist"],
negative_styles=["no autotune", "no chipmunk voice"],
)
open("jazz.wav", "wb").write(wav_bytes)
acemusic, a remote ACE Music API adapter. It requires
ACEMUSIC_API_KEY. Use ACEMUSIC_BASE_URL only when targeting a compatible custom endpoint.elevenlabs, which calls only ElevenLabs Music endpoints and
requires ELEVENLABS_API_KEY. Use AbstractVoice, not AbstractMusic, for ElevenLabs voice/TTS.model_id selectors must be Hugging Face repo ids. Local checkpoint directories and custom cache-dir overrides are intentionally not supported.acestep, which uses package-owned orchestration around Diffusers AceStepPipeline and Hugging Face checkpoint files rather than an external ACE-Step source tree.musicgen, stable-audio, and stable-audio-3 are optional local comparison/generation
backends; they are not default providers.stable-audio-tools==0.0.19 model code and an internal minimal inference loop; you do not need to install the upstream stable-audio-tools package.stable-audio-3 uses an AbstractMusic-owned internal inference subset with Hugging Face
weights/configs. It does not import the upstream stable_audio_3 package or require a local
Stable Audio checkout. Model terms must be accepted on Hugging Face. The current implementation
has passed focused 30-second and 120-second Small Music validation runs; broader prompt/seed and
GPU validation are still required before it is marked recommended.task="text_to_audio") runs the checkpoint the request
names (for example stabilityai/stable-audio-3-small-sfx) for the requested seconds (5 seconds
when none is given; music defaults to 30), with the prompt as written. See
docs/api.md.src/abstractmusic/assets/music_model_capabilities.json.
See docs/models.md for the reviewed model list and precision policy.docs/README.md, including setup, API, architecture, models,
troubleshooting, and release process notes.After installation, abstractmusic provides a small CLI:
# One-shot remote generation (default backend)
abstractmusic t2m "ambient lo-fi study music" --out out.wav --duration 30
abstractmusic --backend acemusic t2m "heroic fantasy epic music" --out out.wav --duration 30
abstractmusic --backend acemusic t2m "upbeat pop song" --lyrics auto --format mp3 --out out.mp3 --duration 30
abstractmusic --backend elevenlabs t2m "cinematic instrumental synth cue" --format mp3 --out out.mp3 --duration 30
abstractmusic --backend elevenlabs t2m "upbeat pop song" --lyrics auto --composition-mode plan --format mp3 --out out.mp3 --duration 30
# One-shot local generation
abstractmusic --backend acestep t2m "ambient lo-fi study music" --out out.wav --duration 10
abstractmusic --backend musicgen t2m "ambient lo-fi study music" --out out.wav --duration 10
abstractmusic --backend stable-audio t2m "short ambient synth loop" --out out.wav --duration 10
abstractmusic --backend stable-audio-3 t2m "rhythmic space shooter game music" --out out.wav --duration 30 --steps 16
# Sound effects (Stable Audio 3 Small SFX)
abstractmusic t2m \
--backend stable-audio-3 \
--model-id stabilityai/stable-audio-3-small-sfx \
--duration 3 \
--out sfx.wav \
"A short sci-fi laser zap, crisp transient, no reverb tail"
# Sound effects (Stable Audio Open Small)
abstractmusic t2m \
--backend stable-audio \
--duration 11 \
--out slam.wav \
"A heavy wooden door slam, close-mic, natural room tail"
# Richer local conditioning for ACE-Step
abstractmusic --backend acestep t2m "heroic fantasy epic music" --enhance-prompt --auto-lyrics --print-plan --out out.wav --duration 30
abstractmusic --backend acestep t2m "heroic fantasy epic instrumental music" --duration 120 --instrumental --print-plan --out out.wav
# Vocals + lyrics (ACE Music remote)
abstractmusic t2m \
--backend acemusic \
--duration 25 \
--format mp3 \
--lyrics auto \
--style "soulful pop, female vocalist, warm bass, tight drums, big chorus, modern radio mix" \
--out soulful-pop.mp3 \
"A soulful pop song with a big uplifting chorus and a catchy hook"
# Interactive REPL
abstractmusic repl
abstractmusic --engine xl repl
abstractmusic --engine musicgen repl
The REPL accepts bare prompts, a reusable /prompt + /run flow, and slash commands for engine/parameter changes:
/engine xl
/duration 12
/steps 8
/seed 123
/verbose off
/lyrics [Instrumental]
/enhance-prompt on
/structure-prompt on
/auto-lyrics on
/prompt bright melodic synth pop loop with steady drums
/run
bright melodic synth pop loop with steady drums
Set duration either at startup (abstractmusic repl --duration 30) or inside the REPL
(/duration 30). Add --verbose or use /verbose on only when you want backend logs and
progress bars.
For generations of 45 seconds or more, --structure-prompt is enabled by default and adds a compact
intro/build/bridge/climax/outro section map to the caption. Use --no-structure-prompt or
/structure-prompt off to pass long prompts through unchanged.
AbstractMusic separates text planning from audio synthesis. The built-in planner is dependency-free:
it can enrich short captions, infer simple BPM/key/time hints, preserve explicit lyrics, and produce
template lyrics when --auto-lyrics is requested. It is intentionally a fallback, not a full language
model.
Host applications can inject a smarter planner without making AbstractMusic depend on that host:
MusicManager(..., text_planner=planner, text_planner_mode="auto") accepts an object with
create_plan(request), an object with plan_music_text(request_dict), or a callable that accepts
request_dict. In AbstractCore plugin mode the same hook is exposed through owner config keys
music_text_planner, music_text_planner_instance, or music_text_planner_factory. The compiled
plan is then applied deterministically per backend, and planner provenance is stored in output
metadata. Planners may also return composition_plan; compatible backends such as elevenlabs
translate it into native structured music plans, while other backends continue using the compiled
prompt and lyrics.
When AbstractMusic is hosted by AbstractCore, it can also consume a narrow host text-generation
service structurally if one is supplied by the host context or config. The service must expose only
generate_text(...) and/or generate_structured(...); AbstractMusic does not import AbstractCore,
does not receive raw provider objects, and keeps the deterministic fallback for standalone use.
The AbstractCore plugin also exposes lightweight music discovery methods (available_providers,
list_models, list_provider_models, list_operations, and capability_catalog) from packaged
metadata. Discovery uses backend-oriented provider ids such as acemusic, elevenlabs,
acestep, stable-audio, and stable-audio-3, and only reports what can run right now: a local
provider needs its runtime installed and its weights already in the Hugging Face cache, and a remote
provider needs an API key plus an endpoint that answers. Remote providers are probed concurrently
under a 5s deadline. These methods never import a model runtime and never load weights.
provider_details(task=...) complements them by listing every known provider with why it is or is
not usable, plus which of its models are already downloaded.
elevenlabs backend calls ElevenLabs Music only. ElevenLabs voice/TTS belongs in
AbstractVoice. ElevenLabs Music API access may require a paid Music-enabled account tier.ACE-Step/acestep-v15-xl-turbo-diffusers), tagged license:mit on Hugging Face, through the package-owned acestep adapter.facebook/musicgen-small is exposed through --backend musicgen; its model weights are CC BY-NC 4.0, so it is a non-commercial validation backend.stabilityai/stable-audio-open-small is exposed through --backend stable-audio; it is gated on Hugging Face and uses the Stability AI Community License.stabilityai/stable-audio-3-small-music is exposed through --backend stable-audio-3;
it is gated on Hugging Face, uses the Stability AI Community License plus text-encoder
terms, and runs through AbstractMusic-owned internal runtime code.--backend diffusers, model licenses vary by checkpoint. Choose a model compatible with your intended usage.GitHub Actions validates tests, package builds, and documentation builds. Releases run from
v*.*.* tags or manual dispatch through .github/workflows/release.yml.
Manual dispatch defaults to publish=false, which is a rehearsal path: it validates version,
changelog, package build, and docs without creating tags or publishing. To publish manually, set
publish=true and publish_confirmation=publish-abstractmusic-<version>.
Publishing uses PyPI trusted publishing with the pypi environment. Documentation deployment uses
GitHub Pages with the github-pages environment. Repository setup must configure PyPI trusted
publisher metadata for release.yml and GitHub Pages source as GitHub Actions.
On Apple systems, the local acestep path tries PyTorch MPS first. ACE-Step
Diffusers fp16 can overflow during transformer denoising on MPS, so the automatic dtype prefers MPS
bfloat16 when supported and MPS float32 otherwise. CPU float32 is only the final fallback when MPS
still returns non-finite audio.
Some Diffusers audio pipelines can fail on the mps device due to PyTorch backend limitations (typically during vocoder inference).
abstractmusic will retry on CPU with a clear warning (#FALLBACK) when it detects the known MPS channel-limit error.
To force CPU directly, use --device cpu.
If you run into numerical issues, you can override with --dtype float32 (at the cost of significantly higher memory use).
The acestep backend now follows checkpoint-specific defaults: turbo checkpoints use 8 steps with
guidance effectively off, while base and SFT checkpoints should usually run around 50 steps with
guidance enabled. If you need instrumental output, pass lyrics as [Instrumental].
Upstream references:
PYTORCH_ENABLE_MPS_FALLBACK=1 (fallback to CPU when an op is unsupported): https://docs.pytorch.org/docs/stable/mps_environment_variables.htmlhttps://github.com/pytorch/pytorch/issues/144445Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
numpyEnvironment{
"extras": "",
"marker": "extra == \"acestep\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | numpy>=1.24.0; extra == "acestep" | runtime |
torchEnvironment{
"extras": "",
"marker": "extra == \"acestep\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torch<3.0.0,>=2.0; extra == "acestep" | runtime |
diffusersEnvironment{
"extras": "",
"marker": "extra == \"acestep\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | diffusers>=0.38.0; extra == "acestep" | runtime |
transformersEnvironment{
"extras": "",
"marker": "extra == \"acestep\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | transformers<6.0.0,>=4.0; extra == "acestep" | runtime |
accelerateEnvironment{
"extras": "",
"marker": "extra == \"acestep\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | accelerate>=0.0; extra == "acestep" | runtime |
safetensorsEnvironment{
"extras": "",
"marker": "extra == \"acestep\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | safetensors>=0.0; extra == "acestep" | runtime |
huggingface_hubEnvironment{
"extras": "",
"marker": "extra == \"acestep\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | huggingface_hub>=0.20.0; extra == "acestep" | runtime |
numpyEnvironment{
"extras": "",
"marker": "extra == \"diffusers\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | numpy>=1.24.0; extra == "diffusers" | runtime |
torchEnvironment{
"extras": "",
"marker": "extra == \"diffusers\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torch<3.0.0,>=2.0; extra == "diffusers" | runtime |
diffusersEnvironment{
"extras": "",
"marker": "extra == \"diffusers\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | diffusers>=0.36.0; extra == "diffusers" | runtime |
transformersEnvironment{
"extras": "",
"marker": "extra == \"diffusers\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | transformers<6.0.0,>=4.0; extra == "diffusers" | runtime |
accelerateEnvironment{
"extras": "",
"marker": "extra == \"diffusers\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | accelerate>=0.0; extra == "diffusers" | runtime |
safetensorsEnvironment{
"extras": "",
"marker": "extra == \"diffusers\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | safetensors>=0.0; extra == "diffusers" | runtime |
huggingface_hubEnvironment{
"extras": "",
"marker": "extra == \"diffusers\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | huggingface_hub>=0.20.0; extra == "diffusers" | runtime |
numpyEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | numpy>=1.24.0; extra == "local" | runtime |
torchEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torch<3.0.0,>=2.0; extra == "local" | runtime |
torchaudioEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torchaudio<3.0.0,>=2.0; extra == "local" | runtime |
diffusersEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | diffusers>=0.38.0; extra == "local" | runtime |
transformersEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | transformers<6.0.0,>=5.8.0; extra == "local" | runtime |
accelerateEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | accelerate>=0.0; extra == "local" | runtime |
safetensorsEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | safetensors>=0.0; extra == "local" | runtime |
huggingface_hubEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | huggingface_hub>=1.7.1; extra == "local" | runtime |
einopsEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops>=0.8.2; extra == "local" | runtime |
einops-extsEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops-exts>=0.0.4; extra == "local" | runtime |
alias-free-torchEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alias-free-torch>=0.0.6; extra == "local" | runtime |
vector-quantize-pytorchEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | vector-quantize-pytorch>=1.22.0; extra == "local" | runtime |
x-transformersEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | x-transformers>=1.0.0; extra == "local" | runtime |
PyWaveletsEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | PyWavelets>=1.4.1; extra == "local" | runtime |
librosaEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | librosa>=0.10.0; extra == "local" | runtime |
soundfileEnvironment{
"extras": "",
"marker": "extra == \"local\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | soundfile>=0.12.0; extra == "local" | runtime |
numpyEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | numpy>=1.24.0; extra == "apple" | runtime |
torchEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torch<3.0.0,>=2.0; extra == "apple" | runtime |
torchaudioEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torchaudio<3.0.0,>=2.0; extra == "apple" | runtime |
diffusersEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | diffusers>=0.38.0; extra == "apple" | runtime |
transformersEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | transformers<6.0.0,>=5.8.0; extra == "apple" | runtime |
accelerateEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | accelerate>=0.0; extra == "apple" | runtime |
safetensorsEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | safetensors>=0.0; extra == "apple" | runtime |
huggingface_hubEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | huggingface_hub>=1.7.1; extra == "apple" | runtime |
einopsEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops>=0.8.2; extra == "apple" | runtime |
einops-extsEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops-exts>=0.0.4; extra == "apple" | runtime |
alias-free-torchEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alias-free-torch>=0.0.6; extra == "apple" | runtime |
loguruEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | loguru>=0.7.0; extra == "apple" | runtime |
vector-quantize-pytorchEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | vector-quantize-pytorch>=1.22.0; extra == "apple" | runtime |
x-transformersEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | x-transformers>=1.0.0; extra == "apple" | runtime |
PyWaveletsEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | PyWavelets>=1.4.1; extra == "apple" | runtime |
librosaEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | librosa>=0.10.0; extra == "apple" | runtime |
soundfileEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | soundfile>=0.12.0; extra == "apple" | runtime |
mlxEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | mlx>=0.20.0; extra == "apple" | runtime |
mlx-lmEnvironment{
"extras": "",
"marker": "extra == \"apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | mlx-lm>=0.20.0; extra == "apple" | runtime |
numpyEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | numpy>=1.24.0; extra == "gpu" | runtime |
torchEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torch<3.0.0,>=2.0; extra == "gpu" | runtime |
torchaudioEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torchaudio<3.0.0,>=2.0; extra == "gpu" | runtime |
diffusersEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | diffusers>=0.38.0; extra == "gpu" | runtime |
transformersEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | transformers<6.0.0,>=5.8.0; extra == "gpu" | runtime |
accelerateEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | accelerate>=0.0; extra == "gpu" | runtime |
safetensorsEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | safetensors>=0.0; extra == "gpu" | runtime |
huggingface_hubEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | huggingface_hub>=1.7.1; extra == "gpu" | runtime |
einopsEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops>=0.8.2; extra == "gpu" | runtime |
einops-extsEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops-exts>=0.0.4; extra == "gpu" | runtime |
alias-free-torchEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alias-free-torch>=0.0.6; extra == "gpu" | runtime |
loguruEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | loguru>=0.7.0; extra == "gpu" | runtime |
vector-quantize-pytorchEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | vector-quantize-pytorch>=1.22.0; extra == "gpu" | runtime |
x-transformersEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | x-transformers>=1.0.0; extra == "gpu" | runtime |
PyWaveletsEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | PyWavelets>=1.4.1; extra == "gpu" | runtime |
librosaEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | librosa>=0.10.0; extra == "gpu" | runtime |
soundfileEnvironment{
"extras": "",
"marker": "extra == \"gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | soundfile>=0.12.0; extra == "gpu" | runtime |
numpyEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | numpy>=1.24.0; extra == "all-apple" | runtime |
torchEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torch<3.0.0,>=2.0; extra == "all-apple" | runtime |
torchaudioEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torchaudio<3.0.0,>=2.0; extra == "all-apple" | runtime |
diffusersEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | diffusers>=0.38.0; extra == "all-apple" | runtime |
transformersEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | transformers<6.0.0,>=5.8.0; extra == "all-apple" | runtime |
accelerateEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | accelerate>=0.0; extra == "all-apple" | runtime |
safetensorsEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | safetensors>=0.0; extra == "all-apple" | runtime |
huggingface_hubEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | huggingface_hub>=1.7.1; extra == "all-apple" | runtime |
einopsEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops>=0.8.2; extra == "all-apple" | runtime |
einops-extsEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops-exts>=0.0.4; extra == "all-apple" | runtime |
alias-free-torchEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alias-free-torch>=0.0.6; extra == "all-apple" | runtime |
loguruEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | loguru>=0.7.0; extra == "all-apple" | runtime |
vector-quantize-pytorchEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | vector-quantize-pytorch>=1.22.0; extra == "all-apple" | runtime |
x-transformersEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | x-transformers>=1.0.0; extra == "all-apple" | runtime |
PyWaveletsEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | PyWavelets>=1.4.1; extra == "all-apple" | runtime |
librosaEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | librosa>=0.10.0; extra == "all-apple" | runtime |
soundfileEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | soundfile>=0.12.0; extra == "all-apple" | runtime |
mlxEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | mlx>=0.20.0; extra == "all-apple" | runtime |
mlx-lmEnvironment{
"extras": "",
"marker": "extra == \"all-apple\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | mlx-lm>=0.20.0; extra == "all-apple" | runtime |
numpyEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | numpy>=1.24.0; extra == "all-gpu" | runtime |
torchEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torch<3.0.0,>=2.0; extra == "all-gpu" | runtime |
torchaudioEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | torchaudio<3.0.0,>=2.0; extra == "all-gpu" | runtime |
diffusersEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | diffusers>=0.38.0; extra == "all-gpu" | runtime |
transformersEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | transformers<6.0.0,>=5.8.0; extra == "all-gpu" | runtime |
accelerateEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | accelerate>=0.0; extra == "all-gpu" | runtime |
safetensorsEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | safetensors>=0.0; extra == "all-gpu" | runtime |
huggingface_hubEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | huggingface_hub>=1.7.1; extra == "all-gpu" | runtime |
einopsEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops>=0.8.2; extra == "all-gpu" | runtime |
einops-extsEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | einops-exts>=0.0.4; extra == "all-gpu" | runtime |
alias-free-torchEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | alias-free-torch>=0.0.6; extra == "all-gpu" | runtime |
loguruEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | loguru>=0.7.0; extra == "all-gpu" | runtime |
vector-quantize-pytorchEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | vector-quantize-pytorch>=1.22.0; extra == "all-gpu" | runtime |
x-transformersEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | x-transformers>=1.0.0; extra == "all-gpu" | runtime |
PyWaveletsEnvironment{
"extras": "",
"marker": "extra == \"all-gpu\"",
"requires_python": ">=3.10",
"evaluation": "NOT_EVALUATED"
} | PyWavelets>=1.4.1; extra == "all-gpu" | runtime |
Showing the first 100 declarations.
bdist_wheel · 255.39 KB · Python py3
sdist · 260.85 KB · Python source
Observed since 20 Oct, 17:42 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:b92520b5c35952429df1da8d34b83d4899d4cef3b50c785014e91cf1b413fed7