Diffusers documentation

CogVideoXDDIMScheduler

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

CogVideoXDDIMScheduler

CogVideoXDDIMScheduler được xây dựng dựa trên Denoising Diffusion Implicit Models, dành riêng cho các mô hình CogVideoX.

CogVideoXDDIMScheduler

lớp diffusers.CogVideoXDDIMScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = 'scaled_linear'trained_betas: numpy.ndarray | list[float] | None = Noneclip_sample: bool = Trueset_alpha_to_one: bool = Truesteps_offset: int = 0prediction_type: typing.Literal['epsilon', 'sample', 'v_prediction'] = 'epsilon'clip_sample_range: float = 1.0sample_max_value: float = 1.0timestep_spacing: typing.Literal['linspace', 'leading', 'trailing'] = 'leading'rescale_betas_zero_snr: bool = Falsesnr_shift_scale: float = 3.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.0120) — Giá trị beta cuối cùng.
  • beta_schedule (str, mặc định là "scaled_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, scaled_linear, hoặc squaredcos_cap_v2.
  • trained_betas (np.ndarray, tùy chọn) — Truyền một mảng betas trực tiếp vào constructor để bỏ qua beta_start và beta_end.
  • clip_sample (bool, mặc định là True) — Cắt mẫu dự đoán để đảm bảo ổn định về mặt số học.
  • clip_sample_range (float, mặc định là 1.0) — Độ lớn tối đa cho việc cắt mẫu. Chỉ hợp lệ khi clip_sample=True.
  • set_alpha_to_one (bool, mặc định là True) — Mỗi bước khuếch tán sử dụng giá trị tích của alpha tại bước đó và tại bước trước đó. Đối với bước cuối cùng, không có alpha trước đó. Khi tùy chọn này là True, tích alpha trước đó được cố định thành 1, ngược lại nó sử dụng giá trị alpha tại bước 0.
  • 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ố họ mô hình.
  • prediction_type (str, defaults to epsilon, optional) — 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).
  • thresholding (bool, mặc định là False) — Có sử dụng phương pháp “dynamic thresholding” hay không. Phương pháp này không phù hợp với các mô hình khuếch tán trong không gian ẩn (latent-space) như Stable Diffusion.
  • dynamic_thresholding_ratio (float, mặc định là 0.995) — Tỷ số cho phương pháp ngưỡng động. Chỉ hợp lệ khi thresholding=True.
  • sample_max_value (float, mặc định là 1.0) — Giá trị ngưỡng cho việc đặt ngưỡng động. Chỉ hợp lệ khi thresholding=True.
  • timestep_spacing (str, mặc định là "leading") — Cách các bước thời gian (timesteps) nên được quy đổi. Xem Bảng 2 trong Common Diffusion Noise Schedules and Sample Steps are Flawed để biết thêm thông tin.
  • rescale_betas_zero_snr (bool, mặc định là False) — Có nên điều chỉnh lại betas để có SNR cuối bằng zero hay không. Điều này cho phép mô hình tạo ra các mẫu rất sáng và rất tối thay vì giới hạn ở các mẫu có độ sáng trung bình. Liên quan lỏng lẻo đến --offset_noise.
  • snr_shift_scale (float, mặc định là 3.0) — Thang dịch chuyển cho SNR.

DDIMScheduler mở rộng quy trình khử nhiễu được giới thiệu trong các mô hình xác suất khuếch tán khử nhiễu (DDPM) bằng cách sử dụng hướng dẫn phi Markov.

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: IntTensor ) → 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) — Nhiễu cần thêm vào các mẫu.
  • timesteps (torch.IntTensor) — Các bước thời gian (timesteps) chỉ ra mức độ nhiễu cho từng mẫu.

Trả về

torch.Tensor

Các mẫu nhiễu.

Thêm nhiễu vào các mẫu gốc theo mức độ nhiễu tại mỗi bước thời gian (đây là quá trình khuếch tán thuận).

get_velocity

< >

( sample: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor

Tham số

  • sample (torch.Tensor) — Mẫu đầu vào.
  • noise (torch.Tensor) — Tensor nhiễu.
  • timesteps (torch.IntTensor) — Các bước thời gian (timesteps) để tính toán vận tốc.

Trả về

torch.Tensor

Tốc độ đã được tính toán.

Tính dự đoán vận tốc từ mẫu và nhiễu theo công thức vận tốc.

scale_model_input

< >

( sample: Tensortimestep: int = None ) → torch.Tensor

Tham số

  • sample (torch.Tensor) — Mẫu đầu vào.
  • timestep (int, tùy chọn) — 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_timesteps

< >

( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = 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.

Đặ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: Tensortimestep: intsample: Tensoreta: float = 0.0use_clipped_model_output: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonevariance_noise: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → DDIMSchedulerOutput or tuple

Tham số

  • model_output (torch.Tensor) — Đầu ra trực tiếp từ mô hình khuếch tán đã học.
  • timestep (int) — Bước thời gian rời rạc hiện tại trong chuỗi khuếch tán.
  • sample (torch.Tensor) — 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.
  • eta (float) — Trọng số của nhiễu cho nhiễu được thêm vào trong bước khuếch tán.
  • use_clipped_model_output (bool, mặc định là False) — Nếu True, sẽ tính toán model_output “đã hiệu chỉnh” từ mẫu dự đoán gốc đã bị cắt. Điều này là cần thiết vì mẫu dự đoán gốc bị cắt về khoảng [-1, 1] khi self.config.clip_sample là True. Nếu không có việc cắt nào xảy ra, model_output “đã hiệu chỉnh” sẽ trùng khớp với giá trị được cung cấp làm đầu vào và use_clipped_model_output sẽ không có tác dụng.
  • generator (torch.Generator, tùy chọn) — Bộ tạo số ngẫu nhiên.
  • variance_noise (torch.Tensor) — Cách thay thế cho việc tạo nhiễu bằng generator bằng cách cung cấp trực tiếp nhiễu cho phương sai bản thân. Hữu ích cho các phương pháp như CycleDiffusion.
  • return_dict (bool, tùy chọn, mặc định là True) — Có nên trả về DDIMSchedulerOutput hay tuple hay không.

Trả về

DDIMSchedulerOutput hoặc tuple

If return_dict is True, DDIMSchedulerOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

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).

Update on GitHub