Update main.py
Browse files
main.py
CHANGED
|
@@ -558,6 +558,22 @@ EXEMPLOS
|
|
| 558 |
elif 'image' in content_type and title_text and result_data.get("result_type") == "meme":
|
| 559 |
try:
|
| 560 |
img_for_meme = cropped_file_path if cropped_file_path and os.path.exists(cropped_file_path) else temp_file.name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 561 |
print("📸 Enviando imagem base do meme para recurve-save...")
|
| 562 |
with open(img_for_meme, 'rb') as img_f:
|
| 563 |
upload_resp = requests.post(
|
|
|
|
| 558 |
elif 'image' in content_type and title_text and result_data.get("result_type") == "meme":
|
| 559 |
try:
|
| 560 |
img_for_meme = cropped_file_path if cropped_file_path and os.path.exists(cropped_file_path) else temp_file.name
|
| 561 |
+
|
| 562 |
+
image_needs_correction = record.get("image_needs_correction", False)
|
| 563 |
+
if image_needs_correction:
|
| 564 |
+
print("🍌 Chamando Nano Banana Pro (Gemini) para limpar a imagem...")
|
| 565 |
+
clean_prompt = "Anexei uma imagem que pode ser um post de rede social, um meme, um screenshot ou qualquer composição visual que mistura texto com imagem. Sua única tarefa é limpar essa imagem, removendo tudo que não faz parte do conteúdo visual original. Remova completamente qualquer texto sobreposto, seja título, legenda, frase, username, arroba, logo ou qualquer marcação de outras páginas ou plataformas. Onde o texto estiver sobreposto diretamente na imagem, remova-o e reconstrua o fundo de forma coerente com o estilo visual ao redor. Preserve absolutamente tudo da imagem original: cores, iluminação, estilo artístico, traços, texturas, proporções, enquadramento, clima e contexto visual. Não altere, não melhore, não filtre e não modifique nada além do que for necessário para a remoção dos textos e marcas. Retorne apenas a imagem limpa, sem nenhum texto, sem nenhuma explicação, sem nenhum comentário. Só a imagem, mantendo a mesma proporção e tamanho."
|
| 566 |
+
nano_model = get_gemini_model("pro")
|
| 567 |
+
clean_res = await client.generate_content(clean_prompt, files=[img_for_meme], model=nano_model)
|
| 568 |
+
|
| 569 |
+
if clean_res.images:
|
| 570 |
+
cleaned_path = await clean_res.images[0].save(path="static/processed", filename=f"cleaned_{record_id}")
|
| 571 |
+
if cleaned_path and os.path.exists(cleaned_path):
|
| 572 |
+
img_for_meme = cleaned_path
|
| 573 |
+
print(f"✨ Imagem limpa salva em: {img_for_meme}")
|
| 574 |
+
else:
|
| 575 |
+
print("⚠️ Gemini não retornou imagem limpa. Usando a original.")
|
| 576 |
+
|
| 577 |
print("📸 Enviando imagem base do meme para recurve-save...")
|
| 578 |
with open(img_for_meme, 'rb') as img_f:
|
| 579 |
upload_resp = requests.post(
|