En este artículo describimos cómo construir una aplicación llamada FashionistaAI que permite subir una foto y obtener cuatro looks con estilos distintos elegante, streetwear, sporty y business casual usando Cloudinary GenAI, React con Vite en el frontend y un pequeño backend en Node.js y Express para subir archivos de forma segura.

Qué vas a construir: una app React que sube una imagen al servidor Node, pide a Cloudinary GenAI que sustituya prendas superiores e inferiores, reemplaza el fondo y permite recolorear una prenda al hacer clic. El backend en Node sube archivos a Cloudinary usando el SDK oficial de forma segura.

Tecnologías: React + Vite, TypeScript opcional, Node.js y Express, Cloudinary GenAI, multer para uploads, streamifier para stream a Cloudinary, y axios en el cliente.

Requisitos previos: Node 18 o superior y npm, cuenta gratuita en Cloudinary con GenAI activado según plan, conocimientos básicos de React y TypeScript recomendables.

1 Configurar Cloudinary: entra en Settings Product Environments para confirmar el cloud name y genera API Keys en API Keys Generate New API Key. Guarda cloud name, API key y API secret. El secret siempre en el servidor.

2 Bootstrap del frontend con Vite: crear proyecto con npm create vite@latest fashionistaai -- --template react-ts e instalar dependencias frontend como axios @cloudinary/react @cloudinary/url-gen y dependencias backend en el mismo package.json como express cors cloudinary multer streamifier dotenv. Para desarrollo son útiles nodemon y concurrently.

3 Proxy de Vite: configura vite.config.js para reenviar peticiones que empiezan por /api al backend en localhost 8000. Esto permite que el frontend pida /api/generate sin exponer el backend directamente al puerto del navegador.

4 Variables de entorno: crea un archivo .env con CLOUDINARY_CLOUD_NAME CLOUDINARY_API_KEY CLOUDINARY_API_SECRET para el servidor y variables que empiecen con VITE_ para el frontend como VITE_CLOUDINARY_CLOUD_NAME. Nunca expongas CLOUDINARY_API_SECRET en el cliente.

5 Backend Node y Express: el servidor configura cloudinary con cloud name api key y secret desde las variables de entorno. Usa multer con memoryStorage y límites de tamaño y fileFilter para permitir solo imagen png jpg webp. El endpoint POST /api/generate recibe la imagen y usa cloudinary.uploader.upload_stream para subirla y devolver el public_id en la respuesta. Mantén controles y manejo de errores y registra fallos en consola.

Scripts útiles en package.json: type module y scripts para dev con vite server con nodemon y start:both con concurrently para lanzar ambos servidores a la vez. También puedes usar dos terminales para npm run server y npm run dev.

6 Frontend React: la UI permite seleccionar archivo y al subirlo el componente envía FormData a POST /api/generate. Cuando el backend devuelve public_id se crea una CloudinaryImage base y se generan cuatro transformaciones con efectos generativeReplace para upper y lower garments, generativeBackgroundReplace para cambiar fondo y generativeRestore para mejorar calidad. Cada transformación se previsualiza y se maneja reintentos si Cloudinary responde con estado 423 indicando que la derivación aún se está generando.

Interacción: al hacer clic en cualquier look se abre un modal para elegir recolorear la prenda superior o inferior usando generativeRecolor y un color hexadecimal. El cliente actualiza la transformación y vuelve a precargar la imagen derivada.

Cómo funciona en resumen: Upload el archivo al endpoint del servidor que sube a Cloudinary y devuelve public_id. Transform aplica generativeReplace para camisa y pantalón y generativeBackgroundReplace para fondo. Recolor aplica generativeRecolor sobre el elemento seleccionado. El frontend gestiona el estado de carga y reintentos con backoff para manejar HTTP 423.

Notas de producción: guarda secretos solo en servidor y variables de entorno, considera usar upload presets para controlar transformaciones y reglas de contenido, añade rate limiting si el API va a estar público, valida y escanea uploads y aprovecha la CDN de Cloudinary para cache mediante reutilización del mismo public_id.

Prueba local: npm install y npm run start:both. Frontend en http://localhost:3000 y backend en http://localhost:8000.

Sobre Q2BSTUDIO: somos Q2BSTUDIO empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial y ciberseguridad. Ofrecemos soluciones completas que incluyen desarrollo de aplicaciones a medida y software a medida adaptado a tus necesidades, integración de agentes IA y servicios de IA para empresas para optimizar procesos y mejorar la experiencia de usuario. Si necesitas un proyecto personalizado consulta nuestro servicio de desarrollo de aplicaciones a medida y descubre cómo podemos transformar tu idea en un producto real.

También implementamos infraestructuras seguras en la nube y gestionamos servicios cloud aws y azure para desplegar aplicaciones escalables y resilientes. Conecta tus soluciones de IA con plataformas en la nube y aprovecha nuestras prácticas de ciberseguridad y pentesting para proteger tus datos y operaciones. Conoce más sobre nuestros servicios de inteligencia artificial y cómo aplicamos modelos generativos y agentes IA para mejorar procesos y aportar valor.

Palabras clave integradas naturalmente: aplicaciones a medida software a medida inteligencia artificial ciberseguridad servicios cloud aws y azure servicios inteligencia de negocio ia para empresas agentes IA power bi. También trabajamos con Business Intelligence y Power BI para análisis y visualización que impulsan la toma de decisiones.

Conclusión: FashionistaAI es un ejemplo práctico de cómo una aplicación ligera en React y Node puede aprovechar Cloudinary GenAI para generar múltiples looks, cambiar fondos y recolorear prendas en tiempo real. Adapta, prueba y expande las ideas de prompts y flujos para crear experiencias de prueba virtual y comercio visual. Si quieres que Q2BSTUDIO te ayude a construir una solución similar o a integrar inteligencia artificial en tu negocio, contacta con nosotros y te acompañamos en todo el proceso.

Repositorio de referencia y punto de partida: Cloudinary-FashionistaAI. Haz fork personaliza prompts y lanza tu propio sistema de prueba virtual con soporte profesional y seguridad gestionada.