Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,19 +1,15 @@
|
|
1 |
import gradio as gr
|
2 |
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
|
3 |
from transformers import MarianMTModel, MarianTokenizer
|
4 |
-
from diffusers import StableDiffusionPipeline
|
5 |
import torch
|
6 |
import numpy as np
|
7 |
-
import imageio
|
8 |
from PIL import Image
|
9 |
-
from modelscope.pipelines import pipeline as ms_pipeline
|
10 |
-
from modelscope.outputs import OutputKeys
|
11 |
|
12 |
-
class
|
13 |
def __init__(self):
|
14 |
self.device = "cuda" if torch.cuda.is_available() else "cpu"
|
15 |
self.image_generator = None
|
16 |
-
self.video_generator = None
|
17 |
self.translator = None
|
18 |
self.sentiment_analyzer = None
|
19 |
|
@@ -26,14 +22,6 @@ class MultiModalServices:
|
|
26 |
).to(self.device)
|
27 |
return self.image_generator
|
28 |
|
29 |
-
def load_video_generator(self):
|
30 |
-
if self.video_generator is None:
|
31 |
-
self.video_generator = ms_pipeline(
|
32 |
-
'text-to-video-synthesis',
|
33 |
-
'damo/text-to-video-synthesis'
|
34 |
-
)
|
35 |
-
return self.video_generator
|
36 |
-
|
37 |
def generate_image(self, prompt, num_images=1):
|
38 |
try:
|
39 |
generator = self.load_image_generator()
|
@@ -46,14 +34,6 @@ class MultiModalServices:
|
|
46 |
except Exception as e:
|
47 |
return f"Erro na geração de imagem: {str(e)}"
|
48 |
|
49 |
-
def generate_video(self, prompt, duration=3):
|
50 |
-
try:
|
51 |
-
generator = self.load_video_generator()
|
52 |
-
output = generator({'text': prompt})
|
53 |
-
return output[OutputKeys.OUTPUT_VIDEO]
|
54 |
-
except Exception as e:
|
55 |
-
return f"Erro na geração de vídeo: {str(e)}"
|
56 |
-
|
57 |
def translate(self, text, src_lang, tgt_lang):
|
58 |
if self.translator is None:
|
59 |
model_name = f'Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}'
|
@@ -77,14 +57,14 @@ class MultiModalServices:
|
|
77 |
return f"Erro na análise: {str(e)}"
|
78 |
|
79 |
# Instância global dos serviços
|
80 |
-
services =
|
81 |
|
82 |
# Interface Gradio
|
83 |
-
with gr.Blocks(title="Serviços de IA
|
84 |
gr.Markdown("""
|
85 |
-
# 🎨 Hub de Serviços de IA
|
86 |
|
87 |
-
Esta aplicação oferece serviços de geração de imagem
|
88 |
""")
|
89 |
|
90 |
# 1. Geração de Imagem
|
@@ -112,32 +92,7 @@ with gr.Blocks(title="Serviços de IA Multimodal") as demo:
|
|
112 |
outputs=img_output
|
113 |
)
|
114 |
|
115 |
-
# 2.
|
116 |
-
with gr.Tab("Geração de Vídeo"):
|
117 |
-
gr.Markdown("### Gerador de Vídeos")
|
118 |
-
with gr.Row():
|
119 |
-
vid_prompt = gr.Textbox(
|
120 |
-
label="Descrição do vídeo",
|
121 |
-
placeholder="Descreva o vídeo que deseja gerar...",
|
122 |
-
lines=3
|
123 |
-
)
|
124 |
-
vid_output = gr.Video(label="Vídeo Gerado")
|
125 |
-
with gr.Row():
|
126 |
-
vid_duration = gr.Slider(
|
127 |
-
minimum=1,
|
128 |
-
maximum=10,
|
129 |
-
value=3,
|
130 |
-
step=1,
|
131 |
-
label="Duração (segundos)"
|
132 |
-
)
|
133 |
-
vid_button = gr.Button("Gerar Vídeo")
|
134 |
-
vid_button.click(
|
135 |
-
services.generate_video,
|
136 |
-
inputs=[vid_prompt, vid_duration],
|
137 |
-
outputs=vid_output
|
138 |
-
)
|
139 |
-
|
140 |
-
# 3. Tradução
|
141 |
with gr.Tab("Tradutor"):
|
142 |
gr.Markdown("### Tradutor Multilíngue")
|
143 |
with gr.Row():
|
@@ -168,7 +123,7 @@ with gr.Blocks(title="Serviços de IA Multimodal") as demo:
|
|
168 |
outputs=trans_output
|
169 |
)
|
170 |
|
171 |
-
#
|
172 |
with gr.Tab("Análise de Sentimentos"):
|
173 |
gr.Markdown("### Análise de Sentimentos Multilíngue")
|
174 |
with gr.Row():
|
@@ -190,7 +145,7 @@ with gr.Blocks(title="Serviços de IA Multimodal") as demo:
|
|
190 |
|
191 |
gr.Markdown("""
|
192 |
### Notas:
|
193 |
-
- A geração de imagens
|
194 |
- Os modelos são carregados sob demanda para economizar memória
|
195 |
- Primeira execução pode ser mais lenta devido ao download dos modelos
|
196 |
- Todos os modelos são open source
|
|
|
1 |
import gradio as gr
|
2 |
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
|
3 |
from transformers import MarianMTModel, MarianTokenizer
|
4 |
+
from diffusers import StableDiffusionPipeline
|
5 |
import torch
|
6 |
import numpy as np
|
|
|
7 |
from PIL import Image
|
|
|
|
|
8 |
|
9 |
+
class AIServices:
|
10 |
def __init__(self):
|
11 |
self.device = "cuda" if torch.cuda.is_available() else "cpu"
|
12 |
self.image_generator = None
|
|
|
13 |
self.translator = None
|
14 |
self.sentiment_analyzer = None
|
15 |
|
|
|
22 |
).to(self.device)
|
23 |
return self.image_generator
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
def generate_image(self, prompt, num_images=1):
|
26 |
try:
|
27 |
generator = self.load_image_generator()
|
|
|
34 |
except Exception as e:
|
35 |
return f"Erro na geração de imagem: {str(e)}"
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
def translate(self, text, src_lang, tgt_lang):
|
38 |
if self.translator is None:
|
39 |
model_name = f'Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}'
|
|
|
57 |
return f"Erro na análise: {str(e)}"
|
58 |
|
59 |
# Instância global dos serviços
|
60 |
+
services = AIServices()
|
61 |
|
62 |
# Interface Gradio
|
63 |
+
with gr.Blocks(title="Serviços de IA") as demo:
|
64 |
gr.Markdown("""
|
65 |
+
# 🎨 Hub de Serviços de IA
|
66 |
|
67 |
+
Esta aplicação oferece serviços de geração de imagem e processamento de texto.
|
68 |
""")
|
69 |
|
70 |
# 1. Geração de Imagem
|
|
|
92 |
outputs=img_output
|
93 |
)
|
94 |
|
95 |
+
# 2. Tradução
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
with gr.Tab("Tradutor"):
|
97 |
gr.Markdown("### Tradutor Multilíngue")
|
98 |
with gr.Row():
|
|
|
123 |
outputs=trans_output
|
124 |
)
|
125 |
|
126 |
+
# 3. Análise de Sentimentos
|
127 |
with gr.Tab("Análise de Sentimentos"):
|
128 |
gr.Markdown("### Análise de Sentimentos Multilíngue")
|
129 |
with gr.Row():
|
|
|
145 |
|
146 |
gr.Markdown("""
|
147 |
### Notas:
|
148 |
+
- A geração de imagens requer GPU para melhor performance
|
149 |
- Os modelos são carregados sob demanda para economizar memória
|
150 |
- Primeira execução pode ser mais lenta devido ao download dos modelos
|
151 |
- Todos os modelos são open source
|