Diffusers documentation
DDIMInverseScheduler
DDIMInverseScheduler
DDIMInverseScheduler là trình lập lịch đảo ngược từ Denoising Diffusion Implicit Models (DDIM) của Jiaming Song, Chenlin Meng và Stefano Ermon.
Việc triển khai chủ yếu dựa trên định nghĩa đảo ngược DDIM từ Null-text Inversion for Editing Real Images using Guided Diffusion Models.
DDIMInverseScheduler
lớp diffusers.DDIMInverseScheduler
< source >( num_train_timesteps: int = 1000beta_start: float = 0.0001beta_end: float = 0.02beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = '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.0timestep_spacing: typing.Literal['leading', 'trailing'] = 'leading'rescale_betas_zero_snr: bool = False**kwargs )
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.0001) — Giá trịbetaban đầu của suy luận. - beta_end (
float, mặc định là 0.02) — Giá trịbetacuố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,scaled_linear, hoặcsquaredcos_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ỏ quabeta_startvà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ệ khiclip_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 là 0, ngược lại nó sử dụng giá trị alpha tại bướcnum_train_timesteps - 1. - 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 toepsilon, optional) — Prediction type of the scheduler function; can beepsilon(predicts the noise of the diffusion process),sample(directly predicts the noisy sample) orv_prediction` (see section 2.4 of Imagen Video paper). - 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.
DDIMInverseScheduler là trình lập lịch ngược của DDIMScheduler.
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.
scale_model_input
< source >( sample: Tensortimestep: int | None = None ) → torch.Tensor
Đả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
< source >( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = None )
Đặ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
< source >( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → ~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput 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. - return_dict (
bool, tùy chọn, mặc định làTrue) — Có nên trả về một~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutputhaytuplehay không.
Trả về
~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput hoặc tuple
Nếu True, ~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput sẽ được trả về, ngược lại một tuple sẽ được trả về trong đó phần tử đầu tiên là tensor mẫu.
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).