Spaces:
Sleeping
Sleeping
import gradio as gr | |
import numpy as np | |
from optimum.intel import OVStableDiffusionPipeline, OVStableDiffusionXLPipeline, OVLatentConsistencyModelPipeline | |
from diffusers.pipelines.stable_diffusion import StableDiffusionSafetyChecker | |
# model_id = "echarlaix/sdxl-turbo-openvino-int8" | |
# model_id = "echarlaix/LCM_Dreamshaper_v7-openvino" | |
#safety_checker = StableDiffusionSafetyChecker.from_pretrained("CompVis/stable-diffusion-safety-checker") | |
model_id = "OpenVINO/LCM_Dreamshaper_v7-int8-ov" | |
#pipeline = OVLatentConsistencyModelPipeline.from_pretrained(model_id, compile=False, safety_checker=safety_checker) | |
pipeline = OVLatentConsistencyModelPipeline.from_pretrained(model_id, compile=False) | |
batch_size, num_images, height, width = 1, 1, 512, 512 | |
pipeline.reshape(batch_size=batch_size, height=height, width=width, num_images_per_prompt=num_images) | |
pipeline.compile() | |
def infer(prompt, num_inference_steps): | |
image = pipeline( | |
prompt = prompt, | |
negative_prompt = negative_prompt, | |
# guidance_scale = guidance_scale, | |
num_inference_steps = num_inference_steps, | |
width = width, | |
height = height, | |
num_images_per_prompt=num_images, | |
).images[0] | |
return image | |
examples = [ | |
"Astronaut in a jungle, cold color palette, muted colors, detailed, 8k", | |
"An astronaut riding a green horse", | |
"A delicious ceviche cheesecake slice", | |
] | |
css=""" | |
#col-container { | |
margin: 0 auto; | |
max-width: 520px; | |
} | |
""" | |
with gr.Blocks(css=css) as demo: | |
with gr.Column(elem_id="col-container"): | |
gr.Markdown(f""" | |
# Demo : [Fast LCM](https://huggingface.co/OpenVINO/LCM_Dreamshaper_v7-int8-ov) quantized with NNCF ⚡ | |
""") | |
with gr.Row(): | |
prompt = gr.Text( | |
label="Prompt", | |
show_label=False, | |
max_lines=1, | |
placeholder="Enter your prompt", | |
container=False, | |
) | |
run_button = gr.Button("Run", scale=0) | |
result = gr.Image(label="Result", show_label=False) | |
with gr.Accordion("Advanced Settings", open=False): | |
negative_prompt = gr.Text( | |
label="Negative prompt", | |
max_lines=1, | |
placeholder="Enter a negative prompt", | |
visible=True, | |
) | |
with gr.Row(): | |
num_inference_steps = gr.Slider( | |
label="Number of inference steps", | |
minimum=1, | |
maximum=10, | |
step=1, | |
value=5, | |
) | |
gr.Examples( | |
examples = examples, | |
inputs = [prompt] | |
) | |
run_button.click( | |
fn = infer, | |
inputs = [prompt, num_inference_steps], | |
outputs = [result] | |
) | |
demo.queue().launch() |