ivoryxs commited on
Commit
f8c03e7
·
verified ·
1 Parent(s): cbf7083

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -54
app.py CHANGED
@@ -1,62 +1,24 @@
1
  import gradio as gr
2
- from transformers import TrOCRProcessor, VisionEncoderDecoderModel
3
- from PIL import Image
4
  import torch
5
- import os
6
 
7
- # 1. Definição do Nome do Modelo (NOVO MODELO PEQUENO)
8
- # A versão 'small' printed é muito mais leve e confiável para a maioria dos Spaces.
9
- MODEL_NAME = "microsoft/trocr-small-printed"
 
 
10
 
11
- # 2. Carregamento do Processador e do Modelo (Feito Apenas Uma Vez)
12
- try:
13
- processor = TrOCRProcessor.from_pretrained(MODEL_NAME)
14
- model = VisionEncoderDecoderModel.from_pretrained(MODEL_NAME)
15
- print("Modelo TrOCR SMALL carregado com sucesso.")
16
- except Exception as e:
17
- # Se ainda falhar, o erro exato estará nos Logs.
18
- print(f"Erro crítico ao carregar o modelo: {e}")
19
- processor = None
20
- model = None
21
 
22
- # Verifica se a GPU está disponível e define o dispositivo
23
- # A versão 'small' é perfeitamente funcional na CPU, o que também economiza VRAM.
24
- device = "cuda" if torch.cuda.is_available() else "cpu"
25
- if model:
26
- model.to(device)
27
- print(f"Modelo movido para o dispositivo: {device}")
28
-
29
-
30
- # 3. Função de Inferência (OCR)
31
- def realizar_ocr(imagem: Image.Image) -> str:
32
- # ... (O restante da função de inferência permanece o mesmo)
33
- if not model or not processor:
34
- return "Erro: O modelo não foi carregado corretamente na inicialização."
35
-
36
- if imagem is None:
37
- return "Nenhuma imagem fornecida."
38
-
39
- # Processamento
40
- pixel_values = processor(images=imagem, return_tensors="pt").pixel_values
41
- pixel_values = pixel_values.to(device)
42
-
43
- # Inferência
44
- generated_ids = model.generate(pixel_values)
45
-
46
- # Decodificação
47
- generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
48
-
49
- return generated_text
50
-
51
- # 4. Configuração da Interface Gradio
52
  iface = gr.Interface(
53
- fn=realizar_ocr,
54
- inputs=gr.Image(type="pil", label="Faça o Upload da Imagem para OCR"),
55
- outputs=gr.Textbox(label="Texto Reconhecido (OCR)"),
56
- title="TrOCR Pequeno - Reconhecimento de Texto Impresso",
57
- description="Utiliza a versão SMALL do TrOCR para extrair texto de imagens de documentos impressos (baixo consumo de memória)."
58
  )
59
 
60
- # Inicia o aplicativo Gradio
61
- if __name__ == "__main__":
62
- iface.launch()
 
1
  import gradio as gr
2
+ from diffusers import StableDiffusionPipeline
 
3
  import torch
 
4
 
5
+ # 1. Carregar o Pipeline (use um modelo adequado ao seu hardware)
6
+ pipeline = StableDiffusionPipeline.from_pretrained(
7
+ "runwayml/stable-diffusion-v1-5",
8
+ torch_dtype=torch.float16
9
+ ).to("cuda")
10
 
11
+ def generate_image(prompt):
12
+ # 2. Gerar a Imagem
13
+ image = pipeline(prompt).images[0]
14
+ return image
 
 
 
 
 
 
15
 
16
+ # 3. Criar a Interface Gradio
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  iface = gr.Interface(
18
+ fn=generate_image,
19
+ inputs="text",
20
+ outputs="image",
21
+ title="Meu Gerador de Imagens com Stable Diffusion"
 
22
  )
23
 
24
+ iface.launch()