File size: 3,460 Bytes
b943a7e
cc3741b
70dd424
cc3741b
b943a7e
 
 
91ceb5b
 
 
b943a7e
70dd424
 
 
f380d33
 
91ceb5b
 
f380d33
b943a7e
f380d33
 
b943a7e
f380d33
 
cc3741b
f380d33
cc3741b
f380d33
 
 
70dd424
 
f380d33
91ceb5b
 
 
 
 
 
 
 
 
 
f380d33
 
91ceb5b
f380d33
70dd424
 
91ceb5b
70dd424
 
 
 
 
f380d33
 
 
 
 
 
 
70dd424
 
f380d33
cc3741b
 
 
91ceb5b
 
cc3741b
 
 
 
 
 
f380d33
 
 
 
 
70dd424
f380d33
 
 
 
 
 
 
 
 
cc3741b
 
f380d33
 
 
 
70dd424
 
cc3741b
f380d33
cc3741b
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

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()