"""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")], examples=examples, ) iface.launch(enable_queue=True)