lvkaokao's picture
Update app.py
8103950
import os
import gradio as gr
import PIL.Image
import numpy as np
import random
import torch
import subprocess
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
import time
print(os.environ)
model_id = "dicoo_model"
dpm = DPMSolverMultistepScheduler.from_pretrained(model_id, subfolder="scheduler")
pipe = StableDiffusionPipeline.from_pretrained(model_id, scheduler=dpm, torch_dtype=torch.float)
def predict(prompt, steps=25, seed=42, guidance_scale=7.5):
# cpu info
# print(subprocess.check_output(["cat /proc/cpuinfo | grep 'model name' |uniq"], stderr=subprocess.STDOUT).decode("utf8"))
print("prompt: ", prompt)
print("steps: ", steps)
generator = torch.manual_seed(seed)
start_time = time.time()
image = pipe(prompt, generator=generator, num_inference_steps=steps, guidance_scale=7.5).images[0]
print("cost: ", time.time() - start_time)
return image
md = """
This Spaces app is same as <a href=\"https://huggingface.co/spaces/Intel/dicoo_diffusion\">Intel/dicoo_diffusion</a>, created by Intel AIA/AIPC team with the model fine-tuned with one shot (one image) for a newly introduced object \"dicoo\". To replicate the model fine-tuning, please refer to the code sample in <a href=\"https://github.com/intel/neural-compressor/tree/master/examples/pytorch/diffusion_model/diffusers/textual_inversion\">Intel Neural Compressor</a>. You may also refer to our <a href=\"https://medium.com/intel-analytics-software/personalized-stable-diffusion-with-few-shot-fine-tuning-on-a-single-cpu-f01a3316b13\">blog</a> for more details.
**Tips:**
1) When inputting prompts, you need to contain the word **\<dicoo\>** which represents the pretrained object \"dicoo\".
2) For better generation, you maybe increase the inference steps.
"""
random_seed = random.randint(0, 2147483647)
gr.Interface(
predict,
inputs=[
gr.inputs.Textbox(label='Prompt', default='a lovely <dicoo> in red dress and hat, in the snowy and brightly night, with many brightly buildings'),
gr.inputs.Slider(1, 100, label='Inference Steps', default=25, step=1),
gr.inputs.Slider(0, 2147483647, label='Seed', default=random_seed, step=1),
gr.inputs.Slider(1.0, 20.0, label='Guidance Scale - how much the prompt will influence the results', default=6.0, step=0.1),
],
outputs=gr.Image(shape=[512, 512], type="pil", elem_id="output_image"),
css="#output_image{width: 256px}",
title="Demo of dicoo-finetuned-diffusion-model using Intel Neural Compressor 🧨",
description=md,
).launch()