3d-prompt / app.py
Miguelpef's picture
Update app.py
b86aea7 verified
raw
history blame
2.02 kB
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from peft import PeftModel, PeftConfig
import gradio as gr
from accelerate import Accelerator
from googletrans import Translator
# Inicializar el acelerador
accelerator = Accelerator()
translator = Translator()
# Define the repository ID
repo_id = "Miguelpef/bart-base-lora-3DPrompt" # Replace with your repository name
# Load the PEFT configuration from the Hub
peft_config = PeftConfig.from_pretrained(repo_id)
# Cargar el modelo y el tokenizador con accelerate
model, tokenizer = accelerator.prepare(
AutoModelForSeq2SeqLM.from_pretrained(peft_config.base_model_name_or_path),
AutoTokenizer.from_pretrained(repo_id)
)
# Wrap the base model with PEFT
model = PeftModel.from_pretrained(model, repo_id)
# Now you can use the model for inference as before
async def generar_prompt_desde_objeto(objeto):
prompt = objeto
inputs = tokenizer(prompt, return_tensors='pt').to(model.device)
outputs = model.generate(**inputs, max_length=100)
prompt_generado = tokenizer.decode(outputs[0], skip_special_tokens=True)
try:
# Intentar traducir el texto generado
prompt_translate = await translator.translate(prompt_generado, src="es", dest="en")
return prompt_translate.text
except Exception as e:
# Manejo de errores en la traducci贸n
print(f"Error en la traducci贸n: {e}")
return prompt_generado
# Define the Gradio interface
iface = gr.Interface(
fn=generar_prompt_desde_objeto,
inputs=gr.Textbox(lines=2, placeholder="Introduce la descripci贸n del objeto aqu铆..."),
outputs="text",
title="Generador de Prompt 3D",
description="""Genera un prompt para crear una im谩gen del modelo 3D desde la descripcion de un objeto usando el modelo Facebook/bart fine-tuned\n
ATENCI脫N: Funciona solamente en el idioma Castellano\n
ATTENTION: It only works in the Spanish language""",
)
# Launch the interface
iface.launch()