Javiai's picture
update
70dd424
import gradio as gr
#from transformers import pipeline
import torch
from diffusers import DiffusionPipeline
import platform
inCloud = True
#translator = pipeline("translation", model = "Helsinki-NLP/opus-mt-es-en")
pipe = ''
if inCloud:
pipe = DiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
if platform.system() == "Darwin": #Apple OS
pipe = pipe.to("mps")
#pipe = pipe.to("cuda")
# Recommended if your computer has < 64 GB of RAM
pipe.enable_attention_slicing()
textos = [
'''脡rase una vez un hombre muy rico que vendi贸 todo lo que ten铆a a cambio de varios lingotes de oro. Y para que nadie le robara, enterr贸 el oro en un bosque. Todos los d铆as acud铆a al lugar para comprobar que su oro segu铆a all铆, sin saber que un ladr贸n lo vigilaba escondido.
Una noche, el ladr贸n desenterr贸 el oro y se lo llev贸. Cuando el rico descubri贸 el robo, dio tal grito que un vecino se acerc贸 a ver qu茅 pasaba. El hombre rico lloraba, desesperado. Entonces el vecino tom贸 unas piedras, las enterr贸 en el mismo lugar y dijo:
鈥擜qu铆 tiene su tesoro. Sabe que nunca habr铆a gastado sus lingotes. 驴Qu茅 m谩s le da, entonces, que sean piedras? As铆 por lo menos dejar谩 de sufrir.'''
]
#def translate(text):
# return translator(text)[0]["translation_text"]
def generate_texts_array(text, max_length = 70):
text_array = []
start = 0
while start < len(text):
end = start + max_length
part = text[start:end]
text_array.append(part)
start = end
return text_array
def generation(text):
images = []
steps = 5
#translate_text = translate(text)
text_array = generate_texts_array(text)
images.append(pipe(text_array[0],num_inference_steps=steps).images[0])
images.append(pipe(text_array[1],num_inference_steps=steps).images[0])
images.append(pipe(text_array[2],num_inference_steps=steps).images[0])
images.append(pipe(text_array[3],num_inference_steps=steps).images[0])
images.append(pipe(text_array[4],num_inference_steps=steps).images[0])
return images
def generation_test(img):
images = []
images.append(img)
images.append(img)
images.append(img)
images.append(img)
images.append(img)
return images
demo = gr.Blocks()
title = '# Generando historias graficas '
description = 'Escribe un texto y se generara una secuencia de imagenes basadas en el texto proporcionado'
with demo:
gr.Markdown(title)
gr.Markdown(description)
with gr.Row():
with gr.Column():
text_input = gr.Textbox ( label="Cuento",
info="Escribe una historia",
lines=5,
value='Erase una vez..')
#steps_input = gr.Number(value=20)
#img_input = gr.Image (type='pil')
button = gr.Button(value="Generate")
gr.Examples(
examples=textos,
inputs=text_input,
#outputs=im_2,
)
with gr.Row():
imgs_output = []
imgs_output.append(gr.Image())
imgs_output.append(gr.Image())
imgs_output.append(gr.Image())
imgs_output.append(gr.Image())
imgs_output.append(gr.Image())
button.click(generation, inputs=text_input, outputs=imgs_output)
if __name__ == "__main__":
demo.launch()