Spaces:
Runtime error
Runtime error
import gradio as gr | |
import torch | |
from optimum.intel.openvino.modeling_diffusion import OVModelVaeDecoder, OVBaseModel, OVStableDiffusionPipeline | |
from huggingface_hub import snapshot_download | |
model_id = "hsuwill000/Fluently-v4-LCM-openvino" | |
HIGH = 1024 | |
WIDTH = 512 | |
batch_size = -1 # Or set it to a specific positive integer if needed | |
class CustomOVModelVaeDecoder(OVModelVaeDecoder): | |
def __init__( | |
self, model: ov.Model, parent_model: OVBaseModel, ov_config: Optional[Dict[str, str]] = None, model_dir: str = None, | |
): | |
super(OVModelVaeDecoder, self).__init__(model, parent_model, ov_config, "vae_decoder", model_dir) | |
pipe = OVStableDiffusionPipeline.from_pretrained( | |
model_id, | |
compile=False, | |
ov_config={"CACHE_DIR": ""}, | |
torch_dtype=torch.bfloat16, # More standard dtype for speed | |
safety_checker=None, | |
use_safetensors=False, | |
) | |
taesd_dir = snapshot_download(repo_id="deinferno/taesd-openvino") | |
pipe.vae_decoder = CustomOVModelVaeDecoder(model = OVBaseModel.load_model(f"{taesd_dir}/vae_decoder/openvino_model.xml"), | |
parent_model = pipe, | |
model_dir = taesd_dir | |
) | |
print(pipe.scheduler.compatibles) | |
pipe.reshape(batch_size=batch_size, height=HIGH, width=WIDTH, num_images_per_prompt=1) | |
pipe.compile() | |
prompt = "" | |
negative_prompt = "Easy Negative, worst quality, low quality, normal quality, lowers, monochrome, grayscales, skin spots, acnes, skin blemishes, age spot, 6 more fingers on one hand, deformity, bad legs, error legs, bad feet, malformed limbs, extra limbs, ugly, poorly drawn hands, poorly drawn feet, poorly drawn face, text, mutilated, extra fingers, mutated hands, mutation, bad anatomy, cloned face, disfigured, fused fingers" | |
def infer(prompt, negative_prompt, num_inference_steps=8): | |
image = pipe( | |
prompt=prompt, | |
negative_prompt=negative_prompt, | |
width=WIDTH, | |
height=HIGH, | |
guidance_scale=1.0, | |
num_inference_steps=num_inference_steps, | |
num_images_per_prompt=1, | |
).images[0] | |
return image | |
css = """ | |
#col-container { | |
margin: 0 auto; | |
max-width: 520px; | |
} | |
""" | |
power_device = "CPU" | |
with gr.Blocks(css=css) as demo: | |
with gr.Column(elem_id="col-container"): | |
gr.Markdown(f""" | |
# {model_id.split('/')[1]} {WIDTH}x{HIGH} | |
Currently running on {power_device}. | |
""") | |
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=1) | |
result = gr.Image(label="Result", show_label=False) | |
run_button.click( | |
fn=infer, | |
inputs=[prompt], | |
outputs=[result] | |
) | |
demo.queue().launch() | |