Diffusers documentation

KDPM2DiscreteScheduler

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

KDPM2DiscreteScheduler

KDPM2DiscreteScheduler được lấy cảm hứng từ bài báo Elucidating the Design Space of Diffusion-Based Generative Models, và trình điều phối này được chuyển đổi và tạo bởi Katherine Crowson.

Mã nguồn gốc có thể được tìm thấy tại crowsonkb/k-diffusion.

KDPM2DiscreteScheduler

lớp diffusers.KDPM2DiscreteScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falseprediction_type: str = 'epsilon'timestep_spacing: str = 'linspace'steps_offset: int = 0 )

Tham số

  • num_train_timesteps (int, mặc định là 1000) — Số bước khuếch tán để huấn luyện mô hình.
  • beta_start (float, mặc định là 0.00085) — Giá trị beta ban đầu của suy luận.
  • beta_end (float, mặc định là 0.012) — Giá trị beta cuối cùng.
  • beta_schedule (str, mặc định là "linear") — Lịch trình beta, một ánh xạ từ một khoảng beta sang một chuỗi các beta để bước qua mô hình. Chọn từ linear hoặc scaled_linear.
  • trained_betas (np.ndarray hoặc list[float], tùy chọn) — Truyền trực tiếp một mảng betas vào constructor để bỏ qua beta_start và beta_end.
  • use_karras_sigmas (bool, mặc định là False) — Có sử dụng Karras sigmas cho kích thước bước trong lịch trình nhiễu trong quá trình lấy mẫu hay không. Nếu True, các sigmas được xác định theo một chuỗi các mức nhiễu {σi}.
  • use_exponential_sigmas (bool, mặc định là False) — Có sử dụng exponential sigmas cho kích thước bước trong lịch trình nhiễu trong quá trình lấy mẫu hay không.
  • use_beta_sigmas (bool, mặc định là False) — Có sử dụng beta sigmas cho kích thước bước trong lịch trình nhiễu trong quá trình lấy mẫu hay không. Xem Beta Sampling is All You Need để biết thêm thông tin.
  • prediction_type (str, defaults to "epsilon") — Prediction type of the scheduler function; can be epsilon (predicts the noise of the diffusion process), sample (directly predicts the noisy sample) or v_prediction` (see section 2.4 of Imagen Video paper).
  • timestep_spacing (str, mặc định là "linspace") — Cách các bước thời gian (timesteps) nên được mở rộng. Xem Bảng 2 trong Common Diffusion Noise Schedules and Sample Steps are Flawed để biết thêm thông tin.
  • steps_offset (int, mặc định là 0) — Một giá trị bù được cộng vào các bước suy luận, theo yêu cầu của một số nhóm mô hình.

KDPM2DiscreteScheduler được lấy cảm hứng từ DPMSolver2 và Algorithm 2 trong bài báo Elucidating the Design Space of Diffusion-Based Generative Models.

Mô hình này kế thừa từ SchedulerMixin và ConfigMixin. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các trình lập lịch, chẳng hạn như tải và lưu.

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: Tensor ) → torch.Tensor

Tham số

  • original_samples (torch.Tensor) — Các mẫu gốc mà nhiễu sẽ được thêm vào.
  • noise (torch.Tensor) — Tensor nhiễu cần thêm vào các mẫu gốc.
  • timesteps (torch.Tensor) — Các bước thời gian (timesteps) để thêm nhiễu, xác định mức nhiễu từ lịch trình (schedule).

Trả về

torch.Tensor

Các mẫu nhiễu với nhiễu được thêm vào, được điều chỉnh theo lịch trình bước thời gian.

Thêm nhiễu vào các mẫu gốc theo lịch trình nhiễu tại các bước thời gian được chỉ định.

index_for_timestep

< >

( timestep: typing.Union[float, torch.Tensor]schedule_timesteps: typing.Optional[torch.Tensor] = None ) → int

Tham số

  • timestep (float hoặc torch.Tensor) — Giá trị bước thời gian cần tìm trong lịch trình.
  • schedule_timesteps (torch.Tensor, tùy chọn) — Lịch trình bước thời gian để tìm kiếm. Nếu là None, sẽ sử dụng self.timesteps.

Trả về

int

Chỉ số của bước thời gian trong lịch trình. Đối với bước đầu tiên, trả về chỉ số thứ hai nếu có nhiều kết quả khớp để tránh bỏ qua một sigma khi bắt đầu giữa lịch trình (ví dụ: cho image-to-image).

Tìm chỉ số của một bước thời gian (timestep) cho trước trong lịch trình bước thời gian.

scale_model_input

< >

( sample: Tensortimestep: typing.Union[float, torch.Tensor] ) → torch.Tensor

Tham số

  • sample (torch.Tensor) — Mẫu đầu vào.
  • timestep (float hoặc torch.Tensor) — Bước thời gian hiện tại trong chuỗi khuếch tán.

Trả về

torch.Tensor

Một mẫu đầu vào đã được chuẩn hóa.

Đảm bảo khả năng hoán đổi với các trình lập lịch cần mở rộng đầu vào của mô hình khử nhiễu tùy thuộc vào bước thời gian hiện tại.

set_begin_index

< >

( begin_index: int = 0 )

Tham số

  • begin_index (int, mặc định là 0) — Chỉ số bắt đầu cho trình lập lịch.

Đặt chỉ số bắt đầu cho trình lập lịch. Hàm này nên được chạy từ pipeline trước khi suy luận.

set_timesteps

< >

( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = Nonenum_train_timesteps: int | None = None )

Tham số

  • num_inference_steps (int) — Số bước khuếch tán được sử dụng khi tạo mẫu bằng mô hình đã được huấn luyện trước.
  • device (str hoặc torch.device, tùy chọn) — Thiết bị mà các bước thời gian (timesteps) sẽ được chuyển đến. Nếu là None, các bước thời gian sẽ không được chuyển.
  • num_train_timesteps (int, tùy chọn) — Số bước khuếch tán được sử dụng để huấn luyện mô hình. Nếu là None, self.config.num_train_timesteps sẽ được sử dụng.

Đặt các bước thời gian rời rạc được sử dụng cho chuỗi khuếch tán (cần chạy trước khi suy luận).

bước

< >

( model_output: typing.Union[torch.Tensor, numpy.ndarray]timestep: typing.Union[float, torch.Tensor]sample: typing.Union[torch.Tensor, numpy.ndarray]return_dict: bool = True )

Tham số

  • model_output (torch.Tensor hoặc np.ndarray) — Đầu ra trực tiếp từ mô hình khuếch tán đã học.
  • timestep (float hoặc torch.Tensor) — Bước thời gian rời rạc hiện tại trong chuỗi khuếch tán.
  • sample (torch.Tensor hoặc np.ndarray) — Một bản thể hiện hiện tại của mẫu được tạo ra bởi quá trình khuếch tán.
  • return_dict (bool, mặc định là True) — Có nên trả về KDPM2DiscreteSchedulerOutput hay tuple hay không.

Dự đoán mẫu từ bước thời gian trước đó bằng cách đảo ngược SDE. Hàm này lan truyền quá trình khuếch tán từ các đầu ra của mô hình đã học (thường nhất là nhiễu được dự đoán).

SchedulerOutput

lớp diffusers.schedulers.scheduling_utils.SchedulerOutput

< >

( prev_sample: Tensor )

Tham số

  • prev_sample (torch.Tensor có shape (batch_size, num_channels, height, width) đối với ảnh) — Mẫu đã tính (x_{t-1}) của bước thời gian trước đó. prev_sample nên được sử dụng làm đầu vào mô hình tiếp theo trong vòng lặp khử nhiễu.

Lớp cơ sở cho kết quả của hàm step của một trình lập lịch.

Update on GitHub