diffusers-test / app.py
freemt
Update
8ddf994
raw
history blame
1.87 kB
"""See https://huggingface.co/spaces/Gradio-Blocks/Story-to-video/blob/main/app.py."""
import gradio as gr
import base64
import io
from logzero import logger
from PIL import Image # opencv-python
from random import choice
# from PIL import Image
# from transformers import AutoTokenizer, AutoModelForSeq2SeqLM,pipeline
# import requests
# import torch
image_gen = gr.Interface.load("spaces/multimodalart/latentdiffusion")
def generate_images(phrase: str, steps: int = 125):
if not phrase.strip():
phrase = choice(["an apple", "a cat", "blue moon", "metaverse"])
generated_text = phrase
# steps = 125
width = 256
height = 256
num_images = 4
num_images = 1
diversity = 6
image_bytes = image_gen(generated_text, steps, width, height, num_images, diversity)
# Algo from spaces/Gradio-Blocks/latent_gpt2_story/blob/main/app.py
# generated_images = []
img = None
err_msg = phrase
for image in image_bytes[1]:
image_str = image[0]
try:
image_str = image_str.replace("data:image/png;base64,", "")
except Exception as exc:
logger.error(exc)
err_msg = str(exc)
return None, f"Error: {err_msg}. Try again."
decoded_bytes = base64.decodebytes(bytes(image_str, "utf-8"))
img = Image.open(io.BytesIO(decoded_bytes))
# generated_images.append(img)
# return generated_images
return img, err_msg
examples = [["an apple", 125], ["Donald Trump", 125]]
inputs = [
# "text",
gr.Text(value="a dog with a funny hat"),
gr.Slider(minimum=2, maximum=500, value=115, step=5),
]
iface = gr.Interface(
generate_images,
inputs,
# ["image", gr.Text(value="", label="phrase")],
[gr.Image(label=""), gr.Text(value="", label="phrase")],
examples=examples,
)
iface.launch(enable_queue=True)