8257069713 / src /pipeline.py
TrendForge's picture
Initial commit
b3e44c4 verified
Raw
History Blame Contribute Delete
2.23 kB
import torch
from pathlib import Path
from PIL.Image import Image
from diffusers import StableDiffusionXLPipeline, DDIMScheduler
from pipelines.models import TextToImageRequest
from torch import Generator
from cache_diffusion import cachify
from pipe.deploy import compile
from loss import SchedulerWrapper
generator = Generator(torch.device("cuda")).manual_seed(6969)
prompt = "Make submissions great again"
SDXL_DEFAULT_CONFIG = [
{
"wildcard_or_filter_func": lambda name: "down_blocks.2" not in name and"down_blocks.3" not in name and "up_blocks.2" not in name,
"select_cache_step_func": lambda step: (step % 2 != 0) and (step >= 14),
}]
def load_pipeline() -> StableDiffusionXLPipeline:
pipe = StableDiffusionXLPipeline.from_pretrained(
"stablediffusionapi/newdream-sdxl-20",torch_dtype=torch.float16, use_safetensors=True
).to("cuda")
compile(
pipe,
onnx_path=Path("/home/sandbox/.cache/huggingface/hub/models--RobertML--edge-onnx/snapshots/d56fa8ea1dc675b87de08eece735bc5ec80a247f"),
engine_path=Path("/home/sandbox/.cache/huggingface/hub/models--RobertML--edge-engine/snapshots/e0dd02be0c58057947801857c41839f76df2fc88"),
batch_size=1,
)
cachify.prepare(pipe, SDXL_DEFAULT_CONFIG)
cachify.enable(pipe)
pipe.scheduler = SchedulerWrapper(DDIMScheduler.from_config(pipe.scheduler.config))
with cachify.infer(pipe) as cached_pipe:
for _ in range(4):
pipe(prompt=prompt, num_inference_steps=20)
pipe.scheduler.prepare_loss()
cachify.disable(pipe)
return pipe
def infer(request: TextToImageRequest, pipeline: StableDiffusionXLPipeline) -> Image:
if request.seed is None:
generator = None
else:
generator = Generator(pipeline.device).manual_seed(request.seed)
cachify.enable(pipeline)
with cachify.infer(pipeline) as cached_pipe:
image = cached_pipe(
prompt=request.prompt,
negative_prompt=request.negative_prompt,
width=request.width,
height=request.height,
generator=generator,
num_inference_steps=13,
).images[0]
return image