Image 1
Image 2
Image 3
Image 4

Photo Create AI — Editar, Componer y Crear Imágenes con IA

Aplicación full-stack para editar, componer y crear fotografías en lote usando IA vía OpenRouter. Procesamiento concurrente controlado, marca de agua personalizable integrada de forma consistente en todo el lote, y generación de imágenes desde texto — con auth JWT y arquitectura MVVM de punta a punta.

Stack

FastAPI
SQLAlchemy
PostgreSQL
Alembic
OpenRouter
AI Image Generation
JWT
Python
JavaScript
MVVM
asyncio

¿Qué es esto?

Una aplicación web para editar, componer y crear imágenes con IA, pensada para procesar lotes completos de fotos con una sola instrucción en lenguaje natural en vez de editar una por una.

Tres modos, un mismo pipeline

  • Editar: sube una foto, describe el retoque ("mejora la nitidez y el balance de color") y la IA la procesa contra el modelo configurado.
  • Componer: igual que editar, pero agrega una imagen de referencia (marca de agua propia o predeterminada) integrada de forma consistente en la esquina inferior derecha de cada foto del lote.
  • Crear: genera imágenes nuevas desde cero solo con un prompt de texto — sin subir ninguna foto — eligiendo cuántas variaciones generar.

Los tres modos comparten las mismas tablas y el mismo pipeline de batch/jobs — un campo discriminador distingue el modo en vez de triplicar la lógica.

Funcionalidades

  • Procesamiento por lotes concurrente: asyncio.Semaphore limita cuántos jobs corren en paralelo para no saturar la API de IA ni la base de datos
  • Progreso en tiempo real: polling ligero del estado del lote (pendiente/procesando/completado/fallido) cada 1.5s
  • Reintentos individuales: cada job fallido se puede reintentar sin rehacer todo el lote
  • Auth JWT: registro/login con bcrypt, cada usuario solo ve sus propios lotes
  • Soft delete y auditoría de cada llamada a la IA (costo, duración, status HTTP)
  • Proveedor de IA inyectable: cambiar de proveedor sin tocar la lógica de negocio, vía un Protocol de Python

Arquitectura

MVVM de punta a punta: FastAPI + SQLAlchemy async sirven tanto la API REST como el frontend (Jinja2 + JS vanilla modular), sin frameworks pesados ni build step.

View (Jinja2 + JS) → ViewModel (estado UI) → Model (api.js) → FastAPI → OpenRouter

Stack técnico

  • FastAPI (async) + SQLAlchemy 2.0 + asyncpg
  • PostgreSQL + Alembic para migraciones
  • OpenRouter — modelo de IA configurable para edición, composición y generación de imágenes
  • python-jose + bcrypt — auth JWT
  • Pillow + piexif — metadata y redimensionado de imágenes
  • JS vanilla modular (sin frameworks) + Tailwind CDN

Por qué importa

Un pipeline de IA generativa de producción real: procesamiento concurrente controlado, arquitectura desacoplada (proveedor de IA intercambiable sin tocar servicios), y un frontend reactivo sin la complejidad de un framework — pensado para escalar de 1 a N imágenes por lote sin cambiar una línea de lógica de negocio.

Jul 16, 2026