Diffusers documentation

RFD4ProteinaScheduler

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

RFD4ProteinaScheduler

RFD4ProteinaScheduler 是 RFD4-Proteína 针对单一模态的时间分数重缩放流采样器。该 pipeline 使用两个实例,一个用于 backbone(bb_ca,坐标单位为纳米),另一个用于每个 token 的局部潜变量(local_latents),每个实例都有各自的时间调度、噪声调度和重缩放。有关采样循环,请参阅 RFD4ProteinaPipeline。

RFD4ProteinaScheduler

class diffusers.RFD4ProteinaScheduler

< >

( schedule_mode: strnoise_mode: strtsr_k: floattsr_sigma: floattail_steps: int = 10tail_step_multiplier: int = 2t_lim_ode: float = 0.95t_lim_ode_below: float = 0.02 )

参数

  • schedule_mode (str) — 噪声与数据之间的时间间隔: "log" 或 "power"。
  • noise_mode (str) — 注入到随机窗口中的噪声形状:"1/t" 或 "tan"。
  • tsr_k (float) — 采样温度能降到的下限;值越大,温度越低。
  • tsr_sigma (float) — 达到低温的速度;值越大,速度越快。
  • tail_steps (int,默认为 10) — 最后 tail_step_multiplier 倍更精细的区间数量。
  • tail_step_multiplier(int,默认为 2)— 最终区间的粒度比之前细多少。
  • t_lim_ode (float,默认为 0.95) — 超过此时间后,该步骤变为确定性。
  • t_lim_ode_below (float,默认为 0.02) — 低于此时间时,该步骤是确定性的。

RFD4-Proteína 单模态的时间分数重缩放流采样器。

该流水线整合了两种模态,即主干网络和逐 token 局部潜变量,每种模态各使用一个调度器。它们在时间调度、噪声调度和重缩放方面有所不同。

在采样之前调用 set_timesteps。时间步从噪声向干净数据递增。调度器会跟踪当前区间,不应在并发生成之间共享。

set_timesteps

< >

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

参数

  • num_inference_steps (int) — 积分区间的数量。
  • device (str 或 torch.device,可选) — timesteps 所在的设备。区间长度和噪声系数保留在 CPU 上。
  • start_time (float, 可选) — 部分扩散的起始时间,取值范围为 [0, 1)。若省略,则执行完整生成。

解析调度并重置集成游标。

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: typing.Union[float, torch.Tensor] )

参数

  • original_samples (torch.Tensor) — 干净状态 (batch, tokens, D)。
  • noise (torch.Tensor) — 与输入形状相同的噪声,由调用方生成。
  • timesteps(float 或 torch.Tensor)— 位于 [0, 1) 区间内的时间,标量或 (batch,)。

采样前向边缘分布 (1 - t) * noise + t * clean。

步骤

< >

( model_output: Tensortimestep: Tensorsample: Tensoremit_mask: Tensorgenerator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonereturn_dict: bool = True ) → RFD4ProteinaSchedulerOutput or tuple

参数

  • model_output (torch.Tensor) — 预测速度,形状与 sample 相同。
  • timestep (torch.Tensor) — timesteps 中的下一个元素。顺序错误的步骤将被拒绝。
  • sample (torch.Tensor) — 当前状态 (B, N, D)。
  • emit_mask (torch.Tensor) — 布尔型 (B, N),对于被更新的 token(非上下文或填充)为 true。
  • generator (torch.Generator 或 list[torch.Generator],可选) — 用于单行数据的生成器,或为每个批次行提供不同的生成器。省略时,将使用全局流。
  • return_dict (bool,默认为 True) — 返回 RFD4ProteinaSchedulerOutput;否则返回一个包含该状态的单元素元组。

返回值

RFD4ProteinaSchedulerOutput 或 tuple

更新后的状态。

推进一个积分区间并更新 step_index。

RFD4ProteinaSchedulerOutput

class diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput

< >

( prev_sample: Tensor )

参数

  • prev_sample (torch.Tensor) — 执行该步骤后的状态,形状为 (B, N, D):对于主干网络,D 为 3(坐标单位为纳米);对于局部潜在变量,D 为潜在宽度。

某一模态的更新后状态。

Update on GitHub