vllm_omni.diffusion.models.sdxl.pipeline_sdxl ¶
StableDiffusionXLPipeline ¶
Bases: Module, CFGParallelMixin, DiffusionPipelineProfilerMixin, SupportsComponentDiscovery
image_processor instance-attribute ¶
scheduler instance-attribute ¶
scheduler = EulerDiscreteScheduler.from_pretrained(
model,
subfolder="scheduler",
local_files_only=local_files_only,
torch_dtype=torch.float32,
)
text_encoder instance-attribute ¶
text_encoder = from_pretrained_with_prefetch(
CLIPTextModel.from_pretrained,
model,
subfolder="text_encoder",
prefetch_list=sdxl_subfolders,
local_files_only=local_files_only,
torch_dtype=dtype,
)
text_encoder_2 instance-attribute ¶
text_encoder_2 = from_pretrained_with_prefetch(
CLIPTextModelWithProjection.from_pretrained,
model,
subfolder="text_encoder_2",
prefetch_list=sdxl_subfolders,
local_files_only=local_files_only,
torch_dtype=dtype,
)
tokenizer instance-attribute ¶
tokenizer = CLIPTokenizer.from_pretrained(
model,
subfolder="tokenizer",
local_files_only=local_files_only,
)
tokenizer_2 instance-attribute ¶
tokenizer_2 = CLIPTokenizer.from_pretrained(
model,
subfolder="tokenizer_2",
local_files_only=local_files_only,
)
vae instance-attribute ¶
vae = from_pretrained_with_prefetch(
DistributedAutoencoderKL.from_pretrained,
model,
subfolder="vae",
prefetch_list=sdxl_subfolders,
local_files_only=local_files_only,
torch_dtype=dtype,
).to(self.device)
weights_sources instance-attribute ¶
weights_sources = [
DiffusersPipelineLoader.ComponentSource(
model_or_path=od_config.model,
subfolder="unet",
revision=None,
prefix="unet.",
fall_back_to_pt=True,
)
]
diffuse ¶
diffuse(
latents: Tensor,
timesteps: Tensor,
prompt_embeds: Tensor,
added_cond_kwargs: dict,
negative_prompt_embeds: Tensor | None,
negative_added_cond_kwargs: dict | None,
do_cfg: bool,
guidance_scale: float,
) -> Tensor
encode_prompt ¶
forward ¶
forward(
req: OmniDiffusionRequest,
prompt: str | list[str] = "",
negative_prompt: str | list[str] = "",
height: int | None = None,
width: int | None = None,
num_inference_steps: int = 50,
num_images_per_prompt: int = 1,
generator: Generator | list[Generator] | None = None,
latents: Tensor | None = None,
) -> DiffusionOutput
get_sdxl_image_post_process_func ¶
get_sdxl_image_post_process_func(
od_config: OmniDiffusionConfig,
)