Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,23 +1,23 @@
|
|
1 |
import gradio as gr
|
2 |
-
from transformers import
|
3 |
from PIL import Image
|
4 |
import requests
|
5 |
|
6 |
-
# Carregar o modelo BLIP para geração de descrições de imagens
|
7 |
-
processor =
|
8 |
-
|
9 |
|
10 |
-
# Carregar um modelo de linguagem para análise nutricional (exemplo:
|
11 |
-
nutrition_model = pipeline("
|
12 |
|
13 |
def interpret_image(image):
|
14 |
# Converter a imagem para o formato PIL se necessário
|
15 |
if isinstance(image, str):
|
16 |
image = Image.open(requests.get(image, stream=True).raw)
|
17 |
|
18 |
-
# Processar a imagem e gerar a descrição
|
19 |
inputs = processor(image, return_tensors="pt")
|
20 |
-
out =
|
21 |
|
22 |
# Decodificar a saída para texto
|
23 |
description = processor.decode(out[0], skip_special_tokens=True)
|
@@ -25,7 +25,7 @@ def interpret_image(image):
|
|
25 |
return description
|
26 |
|
27 |
def nutritional_analysis(image):
|
28 |
-
# Passo 1: Gerar descrição da imagem usando BLIP
|
29 |
description = interpret_image(image)
|
30 |
|
31 |
# Passo 2: Criar um prompt para análise nutricional
|
@@ -38,7 +38,7 @@ def nutritional_analysis(image):
|
|
38 |
)
|
39 |
|
40 |
# Passo 3: Usar o modelo de linguagem para gerar a análise nutricional
|
41 |
-
analysis = nutrition_model(prompt, max_length=300
|
42 |
|
43 |
# Retornar a descrição e a análise nutricional
|
44 |
return description, analysis
|
|
|
1 |
import gradio as gr
|
2 |
+
from transformers import Blip2Processor, Blip2ForConditionalGeneration, pipeline
|
3 |
from PIL import Image
|
4 |
import requests
|
5 |
|
6 |
+
# Carregar o modelo BLIP-2 para geração de descrições de imagens
|
7 |
+
processor = Blip2Processor.from_pretrained("Salesforce/blip2-opt-2.7b")
|
8 |
+
model_blip2 = Blip2ForConditionalGeneration.from_pretrained("Salesforce/blip2-opt-2.7b")
|
9 |
|
10 |
+
# Carregar um modelo de linguagem para análise nutricional (exemplo: Flan-T5)
|
11 |
+
nutrition_model = pipeline("text2text-generation", model="google/flan-t5-large")
|
12 |
|
13 |
def interpret_image(image):
|
14 |
# Converter a imagem para o formato PIL se necessário
|
15 |
if isinstance(image, str):
|
16 |
image = Image.open(requests.get(image, stream=True).raw)
|
17 |
|
18 |
+
# Processar a imagem e gerar a descrição usando BLIP-2
|
19 |
inputs = processor(image, return_tensors="pt")
|
20 |
+
out = model_blip2.generate(**inputs)
|
21 |
|
22 |
# Decodificar a saída para texto
|
23 |
description = processor.decode(out[0], skip_special_tokens=True)
|
|
|
25 |
return description
|
26 |
|
27 |
def nutritional_analysis(image):
|
28 |
+
# Passo 1: Gerar descrição da imagem usando BLIP-2
|
29 |
description = interpret_image(image)
|
30 |
|
31 |
# Passo 2: Criar um prompt para análise nutricional
|
|
|
38 |
)
|
39 |
|
40 |
# Passo 3: Usar o modelo de linguagem para gerar a análise nutricional
|
41 |
+
analysis = nutrition_model(prompt, max_length=300)[0]['generated_text']
|
42 |
|
43 |
# Retornar a descrição e a análise nutricional
|
44 |
return description, analysis
|