ViewDiffusion / inference.py
BertChristiaens's picture
Update inference.py
96be5bf
import streamlit as st
import torch
import numpy
from PIL import Image
from torchvision import transforms
from diffusers import StableDiffusionInpaintPipeline
from diffusers import DPMSolverMultistepScheduler, UniPCMultistepScheduler
@torch.inference_mode()
@st.cache_resource
def get_pipeline():
pipe = StableDiffusionInpaintPipeline.from_pretrained("stabilityai/stable-diffusion-2-inpainting",
torch_dtype=torch.float16)
pipe.to(device)
pipe.enable_xformers_memory_efficient_attention()
pipe.set_progress_bar_config(disable=True)
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
return pipe
def inpainting(image,
mask_image,
prompt,
negative_prompt,
num_inference_steps=20,
guidance_scale=7.5,
):
pipe = get_pipeline()
print("retrieved pipeline")
result = pipe(
image=image,
mask_image=mask_image,
prompt=prompt,
negative_prompt=negative_prompt,
num_inference_steps=num_inference_steps,
guidance_scale=guidance_scale,
).images[0]
print("Generated image")
return result