Skip to content
Back to skills

Dpm Solver

ASecurity

"Use DPM-Solver and DPM-Solver++ single-file samplers for diffusion

  • 247 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
developmentpythongobashapibackend

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill dpm-solver --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dpm Solver?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Dpm Solver
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-dpm-solver/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-dpm-solver)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: dpm-solver
description: "Use DPM-Solver and DPM-Solver++ single-file samplers for diffusion
  ODE sampling, PyTorch/JAX integration, ScoreSDE/DDPM examples, and Stable
  Diffusion acceleration."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# DPM-Solver

Use this skill when a task asks how to integrate, configure, debug, or adapt the
DPM-Solver / DPM-Solver++ samplers from Cheng Lu et al.'s `dpm-solver` project.
The repository is a source-code distribution rather than a normal PyPI package:
the durable user-facing artifacts are the single-file PyTorch and JAX solver
modules plus example integrations for DDPM/guided-diffusion, ScoreSDE, and
Stable Diffusion.

## Start Here

1. Identify whether the user wants **direct solver API integration**, a
   **PyTorch example workflow**, a **JAX ScoreSDE workflow**, or **Stable
   Diffusion sampling acceleration**.
2. If they need code, prefer the bundled implementation copies in
   [`scripts/dpm_solver_pytorch.py`](scripts/dpm_solver_pytorch.py) and
   [`scripts/dpm_solver_jax.py`](scripts/dpm_solver_jax.py) instead of relying
   on an original checkout.
3. Use [`references/solver-choice-guide.md`](references/solver-choice-guide.md)
   before recommending `algorithm_type`, `order`, `method`, `steps`,
   `skip_type`, thresholding, or denoising settings.
4. Run [`scripts/check_dpm_solver_environment.py`](scripts/check_dpm_solver_environment.py)
   when imports, PyTorch/JAX availability, CUDA visibility, or a tiny numerical
   smoke test are uncertain.
5. Treat full image generation, pretrained checkpoints, FID evaluation, Stable
   Diffusion weights, dataset downloads, and multi-GPU training as opt-in:
   they are network-, credential-, GPU-, memory-, and time-sensitive.
6. Read [`references/repo-provenance.md`](references/repo-provenance.md) before
   refreshing this skill against a newer source snapshot.

## Route By Task

| User task | Read |
| --- | --- |
| Copy DPM-Solver into custom code, wrap a diffusion model, choose noise schedules, inspect API signatures, run tiny smoke tests | [`sub-skills/core-api/SKILL.md`](sub-skills/core-api/SKILL.md) |
| Adapt DDPM, guided-diffusion, ScoreSDE PyTorch sampling commands, configs, checkpoints, or DPM-Solver flags | [`sub-skills/torch-examples/SKILL.md`](sub-skills/torch-examples/SKILL.md) |
| Use the JAX ScoreSDE integration, understand JAX-specific solver differences, `pmap`/device behavior, or JAX caveats | [`sub-skills/jax-examples/SKILL.md`](sub-skills/jax-examples/SKILL.md) |
| Add DPM-Solver to latent Stable Diffusion, plan `txt2img --dpm_solver`, use the sampler adapter, or troubleshoot model-weight/runtime constraints | [`sub-skills/stable-diffusion/SKILL.md`](sub-skills/stable-diffusion/SKILL.md) |

## Key Operating Facts

- Direct use imports `NoiseScheduleVP`, `model_wrapper`, and `DPM_Solver` from
  the PyTorch or JAX module.
- `NoiseScheduleVP(schedule="discrete", betas=...)` or
  `NoiseScheduleVP(schedule="discrete", alphas_cumprod=...)` converts a
  discrete diffusion schedule to continuous time labels in `(0, 1]`.
- `NoiseScheduleVP(schedule="linear", continuous_beta_0=0.1,
  continuous_beta_1=20.)` covers continuous VP SDEs used by ScoreSDE-style
  examples. The bundled JAX module also exposes `schedule="cosine"`; the root
  PyTorch file does not, while the Stable Diffusion nested copy does.
- PyTorch `DPM_Solver(..., algorithm_type="dpmsolver++")` selects data
  prediction internally and is the common default for guided sampling. The JAX
  API uses `predict_x0=True` for the DPM-Solver++-style path.
- `method="multistep"`, `order=2`, `skip_type="time_uniform"`, and roughly
  20-25 steps are the Stable Diffusion / large-guidance default family.
- `method="singlestep"` or `method="multistep"` with order 3 is the common
  exploration path for unconditional or lightly guided sampling.
- `correcting_x0_fn="dynamic_thresholding"` is for pixel-space guided sampling;
  do not use dynamic thresholding for latent-space Stable Diffusion.

## Installation And Import Baseline

There is no root package metadata. For custom code, copy one bundled solver file
into the target project or keep it on `PYTHONPATH` and install only the backend
needed by that file:

```bash
python -m pip install torch        # for dpm_solver_pytorch.py
python -m pip install jax jaxlib   # for dpm_solver_jax.py CPU use
```

Minimal PyTorch import and smoke check:

```bash
python scripts/check_dpm_solver_environment.py --backend torch --smoke
```

Minimal JAX import and smoke check:

```bash
python scripts/check_dpm_solver_environment.py --backend jax --smoke
```

## Root References And Tools

- [`references/solver-choice-guide.md`](references/solver-choice-guide.md):
  practical solver setting choices for unconditional, guided, low-resolution,
  high-resolution, and latent-space workflows.
- [`references/api-summary.md`](references/api-summary.md): compact signatures,
  naming differences, return behavior, and caveats for the PyTorch and JAX
  solver files.
- [`references/troubleshooting.md`](references/troubleshooting.md): install,
  import, backend, numerical, guidance, checkpoint, and optional dependency
  troubleshooting shared across sub-skills.
- [`scripts/check_dpm_solver_environment.py`](scripts/check_dpm_solver_environment.py):
  self-contained import/backend/smoke checker for the bundled solver copies.
- [`scripts/dpm_solver_pytorch.py`](scripts/dpm_solver_pytorch.py) and
  [`scripts/dpm_solver_jax.py`](scripts/dpm_solver_jax.py): source-derived
  bundled implementations future agents can copy into projects.

## Safety And Scope Boundaries

- Do not start model downloads, dataset downloads, FID computation, Stable
  Diffusion generation, notebook execution, or multi-GPU sampling unless the
  user explicitly approves the cost and runtime.
- Do not assume a CUDA, ROCm, MPS, TPU, or JAX accelerator backend is available;
  run a backend probe and use CPU only for tiny API smoke tests unless real
  generation is requested.
- Do not route Hugging Face `diffusers` scheduler API tasks here when the user
  is using the `diffusers` package directly; prefer a Diffusers-specific skill
  for `DPMSolverMultistepScheduler` pipelines.
- Do not tell future agents to run original repository examples. If a workflow
  is useful, use this skill's distilled references and bundled command builders.
- Keep Stable Diffusion safety, license, checkpoint, and gated-weight
  requirements explicit when constructing commands.

## Verification Expectations

Start with the smallest safe checks: import the backend, construct a linear
noise schedule, run a zero-model sample on a tiny tensor, and validate planned
command arguments without loading checkpoints. Full native example parity is
blocked by external checkpoints/datasets and should be recorded as skipped or
opt-in unless the user provides the assets and hardware.

Files in this skill

  • SKILL.md6.8 KB
  • references/api-summary.md5.8 KB
  • references/repo-provenance.md3.2 KB
  • references/repo-routing-metadata.json335 B
  • references/solver-choice-guide.md5.2 KB
  • references/troubleshooting.md6 KB
  • scripts/check_dpm_solver_environment.py4.4 KB
  • scripts/dpm_solver_jax.py61.5 KB
  • scripts/dpm_solver_pytorch.py66.6 KB
  • sub-skills/core-api/SKILL.md4.6 KB
  • sub-skills/core-api/references/api-reference.md5.2 KB
  • sub-skills/core-api/references/noise-schedules-and-wrappers.md3.7 KB
  • sub-skills/core-api/references/troubleshooting.md3.1 KB
  • sub-skills/core-api/scripts/minimal_jax_sample.py1.5 KB
  • sub-skills/core-api/scripts/minimal_torch_sample.py1.5 KB
  • sub-skills/jax-examples/SKILL.md3.6 KB
  • sub-skills/jax-examples/references/jax-api-differences.md3.1 KB
  • sub-skills/jax-examples/references/score-sde-jax-workflows.md3.3 KB
  • sub-skills/jax-examples/references/troubleshooting.md2.2 KB
  • sub-skills/jax-examples/scripts/build_jax_scoresde_command.py2.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.