--- title: Snap To Chef emoji: 🔥 colorFrom: yellow colorTo: red sdk: gradio sdk_version: 5.5.0 app_file: app.py pinned: false license: apache-2.0 short_description: Snap a dish photo and let S2C turn it into a recipe! --- # Proyecto: Generador de Recetas desde Imágenes de Platos de Comida ## Descripción General del Proyecto Este proyecto consiste en una aplicación interactiva capaz de generar una receta detallada, incluyendo la lista de ingredientes y el paso a paso para cocinar un plato de comida, a partir de una imagen del mismo. La solución se basa en la combinación de dos modelos preentrenados disponibles en Hugging Face: un modelo de “image-to-text” para la descripción del plato de comida, y un modelo de generación de lenguaje para crear la receta a partir de esa descripción. ## Problema a Resolver En muchas ocasiones, una persona puede ver un plato de comida atractivo en un restaurante, un evento o incluso en redes sociales, y quiere recrearlo en casa. Sin embargo, no siempre sabe cuáles son los ingredientes o los pasos necesarios para prepararlo. Este proyecto pretende ayudar a los usuarios proporcionando una receta detallada a partir de una imagen del plato de comida, eliminando la necesidad de realizar búsquedas complejas o depender de conocimientos previos sobre cocina. ### Solución Propuesta La solución consiste en un espacio interactivo en Hugging Face donde los usuarios pueden cargar una imagen de un plato de comida y recibir una receta detallada que incluya: - Una lista de ingredientes con cantidades exactas. - Instrucciones paso a paso para cocinar el plato de comida. #### Flujo de Trabajo 1. **Input**: El usuario sube una imagen de un plato de comida a la interfaz. 2. **Proceso**: - **Modelo 1**: Se utiliza un modelo de "image-to-text" (Salesforce/blip-image-captioning-base) para generar una descripción del plato de comida a partir de la imagen. - **Modelo 2**: Con la descripción generada, se utiliza un modelo de generación de lenguaje (Qwen/Qwen2.5-72B-Instruct) para generar la receta con la lista de ingredientes y las instrucciones paso a paso. 3. **Output**: El usuario recibe la descripción del plato de comida, la receta generada y la opción de descargarla en un archivo. ## Modelos Utilizados 1. **Salesforce/blip-image-captioning-base** (Clasificación: Image-to-Text): - Este modelo se utiliza para analizar la imagen subida por el usuario y generar una descripción textual del plato de comida. - **Limitaciones**: Puede tener dificultades para generar descripciones precisas si la imagen está desenfocada, tiene múltiples platos de comida o está obstruida. 2. **Qwen/Qwen2.5-72B-Instruct** (Clasificación: Language Generation): - Se utiliza para crear una receta detallada basada en la descripción proporcionada por el primer modelo. Este modelo está entrenado para generar textos instructivos y responder de manera amigable. - **Limitaciones**: La calidad de la receta puede depender de la claridad de la descripción inicial. Además, la generación de lenguaje puede ser propensa a la repetición o a ciertos errores si no se establece un buen control en los parámetros de generación. ## Interfaz de Usuario La aplicación está diseñada para ser intuitiva y amigable, permitiendo al usuario: - Subir una imagen del plato de comida. - Recibir una descripción de la imagen, junto con una receta completa. - Descargar la receta generada en un archivo para su comodidad. La interfaz ha sido desarrollada usando **Gradio** para proporcionar una experiencia sencilla y clara para cualquier tipo de usuario, sin importar su nivel de conocimientos técnicos.