(
cls,
config: dict[str, Any],
device: torch.device | str | None = None,
vae_decoder: Any | None = None,
)
| 43 | |
| 44 | @classmethod |
| 45 | def from_config( |
| 46 | cls, |
| 47 | config: dict[str, Any], |
| 48 | device: torch.device | str | None = None, |
| 49 | vae_decoder: Any | None = None, |
| 50 | ) -> "AsyncVAEChunkDecoder": |
| 51 | ar_config = config.get("ar_config", {}) |
| 52 | enabled = bool( |
| 53 | config.get( |
| 54 | "async_vae_decode", |
| 55 | ar_config.get("async_vae_decode", config.get("streaming_vae", False) and config.get("async_vae", False)), |
| 56 | ) |
| 57 | ) |
| 58 | decoder = cls(enabled=enabled, device=device) |
| 59 | if vae_decoder is not None: |
| 60 | decoder.prepare_vae(vae_decoder) |
| 61 | return decoder |
| 62 | |
| 63 | def prepare_vae(self, vae_decoder: Any) -> None: |
| 64 | """Pin VAE on GPU for async overlap when ``cpu_offload`` would block overlap.""" |
nothing calls this directly
no test coverage detected