Skip to content

vllm.v1.core.sched.diffusion_scheduler

Canvas-width handling and async read deferral for diffusion requests.

Functions:

_read_in_flight(request, width)

True when a read-only request has all its denoise steps in flight.

The request emits its canvas on the last step and ends, so a further step is discarded.

Source code in vllm/v1/core/sched/diffusion_scheduler.py
def _read_in_flight(request: Request, width: int) -> bool:
    """True when a read-only request has all its denoise steps in flight.

    The request emits its canvas on the last step and ends, so a further
    step is discarded.
    """
    params = request.sampling_params
    extra = params.extra_args if params is not None else None
    if not extra or not extra.get("diffusion_read_only"):
        return False
    steps = extra.get("diffusion_max_steps")
    if not steps:
        return False
    # Each in-flight denoise step holds one canvas of placeholders.
    return request.num_output_placeholders >= steps * width

diffusion_canvas_width(request, canvas_length)

The canvas width a diffusion request asked for, else the served one.

Source code in vllm/v1/core/sched/diffusion_scheduler.py
def diffusion_canvas_width(request: Request, canvas_length: int) -> int:
    """The canvas width a diffusion request asked for, else the served one."""
    params = request.sampling_params
    extra = params.extra_args if params is not None else None
    width = extra.get("diffusion_canvas_length") if extra else None
    return int(width) if width else canvas_length