UniPCMultistepScheduler.set_timesteps(sigmas=...) raises TypeError for a list when use_flow_sigmas=True
Maintainer antworten meist innerhalb von 1 Tag
@marlonferreira1800-hue arbeitet bereits daran.
Seit 09.11.2026.
- #15214 von @marlonferreira1800-hue — offen
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 85/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Bereich
- backend, machine-learning
Rechercherichtung
Lies src/diffusers/schedulers/scheduling_unipc_multistep.py und vergleiche, wie Euler, FlowMatch Euler und FlowMatch LCM in set_timesteps Sigmas umwandeln. Füge einen Regressionstest für eine einfache Liste mit use_flow_sigmas=True hinzu, einschließlich dynamischer Verschiebung, falls unterstützt. Fertig ist es, wenn die Liste funktioniert und die vorhandenen Scheduler-Tests bestehen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
UniPCMultistepScheduler.set_timesteps documents sigmas as list[float], but with use_flow_sigmas=True a plain list fails in the shift calculation:
flow_shift * sigmas→TypeError: can't multiply sequence by non-int of type 'float'- with
use_dynamic_shifting=True,time_shiftcomputes1 / sigmas→TypeError: unsupported operand type(s) for /: 'int' and 'list'
The same values passed as a NumPy array work. Euler, FlowMatch Euler and FlowMatch LCM already convert sigmas with np.array(sigmas).astype(np.float32) before using them; UniPC doesn't.
Reproduction
from diffusers import UniPCMultistepScheduler
scheduler = UniPCMultistepScheduler.from_pretrained("Wan-AI/Wan2.1-T2V-1.3B-Diffusers", subfolder="scheduler")
print("use_flow_sigmas:", scheduler.config.use_flow_sigmas, "| flow_shift:", scheduler.config.flow_shift)
# A custom 8-step schedule, written as a list (the documented type).
sigmas = [1.0, 0.9, 0.8, 0.65, 0.5, 0.35, 0.2, 0.1]
scheduler.set_timesteps(sigmas=sigmas)
print("timesteps:", scheduler.timesteps.tolist())
Only the scheduler config is downloaded.
Context
I wanted to try a custom sigma schedule with Wan's default scheduler (UniPC with use_flow_sigmas=True, flow_shift=3.0), so I called set_timesteps(sigmas=...) with a list, as the docstring describes. Passing np.array(sigmas) works around it.
None of the in-tree pipelines currently send a list down this path, so this only shows up when calling the scheduler directly, from a custom pipeline, or when swapping UniPC into a pipeline that forwards a user-provided sigmas list.
I have a one-line fix (convert to an array at the top of set_timesteps, same as the other schedulers) plus a regression test, and can open a PR if that sounds good.
Logs
File "src/diffusers/schedulers/scheduling_unipc_multistep.py", line 434, in set_timesteps
sigmas = self.config.flow_shift * sigmas / (1 + (self.config.flow_shift - 1) * sigmas)
~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
TypeError: can't multiply sequence by non-int of type 'float'
System Info
- diffusers:
main@f7fc4389e - Python 3.14.6, torch 2.14.1, numpy 2.5.4
- macOS 26.5.2 (arm64)
Who can help?
@yiyixuxu @dg845
- Vorherrschende Sprache
- Python
- Sterne
- 34.9k
- Forks
- 7.5k
- Ø Merge
- 2 T. 13 Std.
- Gemergte PRs (30 T.)
- 64
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus huggingface/diffusers
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
huggingface/diffusers#15211 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
huggingface/diffusers#15210 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
huggingface/diffusers#15170 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
huggingface/diffusers#15163 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
`encode_video` truncates a fractional `fps`, so the video runs longer than its audioEvtl. vergeben @guptaishaan hat das vor 19 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
huggingface/diffusers#15104 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in huggingface/diffusers
Ähnliche Issues
-
bug triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
mealie-recipes/mealie#9117 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
freelawproject/courtlistener#8406 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
good first issue help wanted level 1 wocs
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
GianlucaBave/murmury#49 ·
Maintainer antworten meist innerhalb von 1 Tag
-
regression skipped skipped_bmg
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
intel/torch-xpu-ops#6142 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
good first issue help wanted python up-for-grabs
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
andrewsiah/agentswarm-data-tasks#122 ·
Maintainer antworten meist innerhalb von 1 Tag