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의 단일 모달리티용 temporal-score-rescaled flow sampler입니다. 이 파이프라인은 두 개의 인스턴스를 사용하며, 하나는 백본(bb_ca, 나노미터 단위 좌표)을, 다른 하나는 토큰별 로컬 라텐트(local_latents)를 담당합니다. 각 인스턴스는 자체적인 시간 스케줄, 노이즈 스케줄 및 리스케일링을 가집니다. 샘플링 루프에 대해서는 RFD4ProteinaPipeline을 참조하세요.

RFD4ProteinaScheduler

클래스 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의 한 모달리티에 대한 시간 점수 재조정(flow) 샘플러.

은 두 가지 모달리티, 즉 백본과 토큰별 로컬 라텐트를 통합하며, 각각 하나의 스케줄러를 사용합니다. 이들은 시간 스케줄, 노이즈 스케줄 및 리스케일링에서 차이가 있습니다.

샘플링 전에 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에 사용할 Device입니다. 간격 길이와 노이즈 계수는 CPU에 유지됩니다.
  • start_time (float, 선택 사항) — [0, 1) 범위의 부분 확산 시작 시간입니다. 전체 생성을 원하면 생략하세요.

스케줄을 해결하고 통합 커서를 초기화합니다.

add_noise

< >

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

매개변수

  • original_samples (torch.Tensor) — Clean 상태 (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) — Boolean (B, N), 업데이트되는 토큰(컨텍스트 또는 패딩이 아닌 토큰)에 대해 true입니다.
  • generator (torch.Generator 또는 list[torch.Generator], 선택 사항) — 단일 행에 사용할 생성기 또는 배치의 각 행에 사용할 개별 생성기입니다. 생략하면 전역 스트림을 사용합니다.
  • return_dict (bool, 기본값 True) — RFD4ProteinaSchedulerOutput를 반환합니다. 그렇지 않으면 상태를 포함하는 1개 항목의 튜플을 반환합니다.

반환값

RFD4ProteinaSchedulerOutput 또는 tuple

업데이트된 상태.

step_index을 업데이트하고 통합 간격을 한 단계 진행합니다.

RFD4ProteinaSchedulerOutput

class diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput

< >

( prev_sample: Tensor )

매개변수

  • prev_sample (torch.Tensor) — 스텝 이후의 상태로, 모양은 (B, N, D)입니다. D는 백본의 경우 3(나노미터 단위 좌표)이며, 로컬 라텐트의 경우 라텐트 폭입니다.

Updated state of one modality.

Update on GitHub