La respuesta corta
RoundCut usa una arquitectura híbrida: la mayoría de las herramientas se ejecutan por completo en tu navegador sin ninguna subida, y un pequeño grupo envía una sola solicitud de red a través de nuestra propia infraestructura cuando el navegador no puede igualar la calidad, siempre con un respaldo del lado del cliente invisible. Te decimos en qué camino estás, en cada herramienta y en esta página.
La tabla de abajo es representativa, no exhaustiva (salen herramientas nuevas con regularidad). Muestra un ejemplo de cada tipo de camino:
| Herramienta de ejemplo | Dónde ocurre el trabajo |
|---|---|
| Recorte circular (solo navegador) | 100% en tu navegador, Canvas API. Sin subida, funciona sin conexión. |
| Vista previa de compresión (solo navegador) | 100% en tu navegador, canvas.toBlob. Sin subida. El control deslizante sigue siendo instantáneo. |
| Descarga final de compresión (toca el servidor) | Un viaje de ida y vuelta a nuestro servicio en api.roundcut.com.br (Fastify, sharp y libvips en un VPS en Alemania), con un respaldo en el navegador. |
| Quitar el fondo (toca el servidor) | Un viaje de ida y vuelta a un Cloudflare Worker que ejecuta BiRefNet en las GPU de borde de Cloudflare, con un respaldo WebAssembly en tu navegador cuando la nube no está disponible. |
El recorte, el redimensionado, la conversión de formato (salvo la codificación AVIF) y la vista previa de compresión se ejecutan todos por completo en tu navegador. Quitar el fondo, la descarga de compresión, el escalado con IA, la codificación AVIF y el PDF de varias imágenes envían cada uno una sola solicitud y recurren al navegador cuando la nube no está disponible.
Puedes comprobar las afirmaciones del lado del cliente en unos 30 segundos: abre DevTools → Network, vacía el registro, luego usa una herramienta solo de navegador como el recorte circular o el control de la vista previa de compresión, verás salir de la página cero solicitudes que lleven los bytes de tu imagen. Para las herramientas que tocan el servidor verás exactamente una subida por operación, hacia endpoints identificados.
Por qué híbrido
La mayoría de las herramientas de imagen en línea se sitúan en un extremo: subir-todo-a-un-servidor (esperas los viajes de ida y vuelta y el operador conserva tu archivo) o todo-en-el-navegador (pagas en calidad y velocidad en los pasos de codificación e IA). Ninguno de los dos extremos gana en todo.
Elegimos el lado del cliente donde los navegadores ya son excelentes, el elemento
<canvas> se encarga del recorte, el giro, el redimensionado y la codificación de la
vista previa con pérdida en JPG/WebP, y el lado del servidor donde el navegador todavía
pierde de forma medible:
- La compresión de imágenes, en la descarga final.
sharpylibvips 8.17del lado del servidor producen archivos un 10-15% más pequeños byte a byte que los codificadores del navegador con la misma calidad visual, y dan acceso al ajuste de velocidad y croma para AVIF y a la salida JPEG XL que el navegador no expone. El control deslizante y la vista previa siguen ejecutándose en tu navegador para que la iteración sea instantánea, solo el toque en “Descargar” pasa por nuestro servicio. - La eliminación de fondo con IA y el escalado con IA, en el camino predeterminado. Los modelos (BiRefNet para la segmentación, la superresolución para el escalado) necesitan una GPU real para terminar en segundos. Los respaldos en el navegador funcionan pero son más lentos y producen un resultado visiblemente más tosco en el cabello, el pelaje y los bordes finos.
- La codificación AVIF, en la conversión. El codificador AVIF del navegador es lento en algunos dispositivos, así que la salida AVIF envía una solicitud al Worker de compresión, con una codificación en el navegador en el hilo principal como respaldo.
El coste que aceptamos por estar del lado del servidor en esos caminos es un viaje de ida y vuelta por operación. El coste que evitamos al quedarnos del lado del cliente en todo lo demás es la tarifa del viaje de ida y vuelta en las partes del flujo que más rápido iteran.
La canalización, paso a paso
1. Seleccionas un archivo
Mediante el selector de archivos, arrastrar y soltar, o pegar, el navegador entrega a
JavaScript un objeto File. JavaScript lee los bytes usando FileReader o
Blob.arrayBuffer(). En ningún momento de este paso se envía el archivo por la red,
sea cual sea la herramienta que estés usando.
2. El navegador decodifica la imagen
Los navegadores modernos decodifican de forma nativa JPG, PNG, WebP, GIF y AVIF. Usamos
createImageBitmap() para convertir los bytes en bruto en un mapa de bits con el que la
GPU puede trabajar, fuera del hilo principal. Para HEIC en navegadores que no lo
decodifican de forma nativa, recurrimos a un decodificador WebAssembly que se ejecuta
localmente en tu navegador.
3. La herramienta hace lo suyo, aquí es donde los caminos divergen
- Herramientas solo de navegador (recorte, redimensionado, conversión de formato a PNG/JPEG/WebP, la vista previa de compresión). Una transformación de píxeles con Canvas 2D o un códec WebAssembly recodifica el mapa de bits localmente. El resultado está listo sin ninguna subida. Cropper.js se encarga del marco de recorte interactivo para las herramientas de recorte, y
canvas.toBlobse encarga de la recodificación de la vista previa. Por completo en tu navegador. - Compresión, descarga. Cuando tocas “Descargar”, la imagen se envía una vez a
api.roundcut.com.br(un servicio Fastify que se ejecuta en un VPS en Alemania operado por Hostinger, Node 24 consharp 0.34ylibvips 8.17, las mismas bibliotecas C que Squoosh usa en su camino de servidor). Se recodifica con los mismos parámetros que fijaste en la vista previa, y los bytes se transmiten de vuelta a tu navegador. El servicio mantiene una caché aislada por inquilino y direccionada por contenido (un hash de los bytes de entrada y los parámetros) limitada a 500 MB, así que volver a descargar la misma imagen con los mismos ajustes reproduce los bytes en caché, la caché no está indexada por ti, IP ni nombre de archivo. Si el servicio no está disponible, la herramienta recurre al blob de la vista previa en el navegador. - Quitar el fondo, camino en la nube predeterminado. La imagen se sube una vez a un Cloudflare Worker, se almacena de forma temporal en un bucket R2 privado, se procesa con la transformación
cf.image.segmentde Cloudflare que ejecuta el modelo BiRefNet en las GPU de borde de Cloudflare, y el recorte se transmite de vuelta. El objeto R2 temporal se elimina en una hora mediante una regla del ciclo de vida de R2, sea cual sea el resultado. Una foto típica termina en 1-3 segundos. Los límites diarios por IP y los 5 MB de subida mantienen el nivel gratuito sostenible. - Otras herramientas basadas en la nube (escalado con IA, codificación AVIF, PDF de varias imágenes) siguen la misma forma: una solicitud a una infraestructura identificada (una API de imágenes en la nube para la superresolución, el Worker de compresión para la codificación AVIF, nuestro servicio VPS para el PDF de varias imágenes), resultado transmitido de vuelta, y un respaldo transparente en el navegador si esa solicitud falla.
- Respaldo WebAssembly. Si el camino en la nube correspondiente no está disponible (tu red se cae, estás detrás de un firewall estricto, la cuota diaria está llena, o el archivo supera el límite de la nube), la herramienta cambia de forma transparente a un modelo o códec local que se ejecuta en tu navegador, por ejemplo el modelo de eliminación de fondo ISNet mediante ONNX Runtime Web con WebAssembly. La primera ejecución descarga el modelo y es más lenta, las siguientes son más rápidas. Sin subida en estos caminos de respaldo, puedes comprobarlo en DevTools.
4. Descargas el resultado
El mapa de bits de salida se codifica en un Blob, se envuelve en un object URL y se
ofrece al diálogo estándar de guardado de archivos de tu navegador. El archivo aparece en
tu disco.
Cómo comprobarlo tú mismo
Elige el que prefieras:
Método 1. Observa la pestaña Network
- Abre RoundCut en una pestaña nueva y abre DevTools → Network.
- Usa una herramienta solo de navegador, el recorte circular o el control de la vista previa de compresión. Verás solicitudes solo de HTML/CSS/JS/fuentes, más los módulos WebAssembly correspondientes en el primer uso. Ninguna solicitud llevará los bytes de tu imagen.
- Ahora usa una herramienta que toca el servidor, Compresión → Descargar o Quitar el fondo. Verás exactamente un
POSTque lleva tu imagen, y una respuesta que vuelve con el resultado. Pasa el cursor sobre cualquier solicitud para ver el tamaño y los tiempos.
La columna “Initiator” te dice qué script disparó cada solicitud, y la columna “Type” te dice qué se envió. No ocultamos ninguna de las dos.
Método 2. Usa las herramientas sin conexión
- Carga la página de cualquier herramienta de RoundCut. Usa Quitar el fondo una vez en una imagen pequeña para que el modelo ISNet del navegador quede en caché.
- Abre DevTools → Network → marca Offline (o apaga el Wi-Fi).
- Recarga la página, los recursos estáticos están en caché, así que sigue cargando.
- Prueba las herramientas:
- Las herramientas solo de navegador (recorte circular, redimensionado, la vista previa de compresión) siguen funcionando, nunca necesitaron la red.
- La descarga de compresión recurre al blob de la vista previa en el navegador (codificación algo menos eficiente, pero funcional).
- Quitar el fondo recurre al modelo WebAssembly ISNet y funciona sin ninguna solicitud saliente.
Si las herramientas funcionaron sin conexión (las basadas en la nube algo degradadas, las solo de navegador idénticas), por definición ningún servidor vio tu imagen.
Qué vemos y qué no
En los caminos del lado del cliente, no vemos nada de tu imagen. No hay una solicitud que mirar, ninguna caché donde guardarla, ninguna línea de registro que buscar.
En los caminos del lado del servidor:
- El servicio de compresión y PDF ve los bytes de la imagen durante el tiempo de la codificación (normalmente unos cientos de milisegundos), conserva una entrada de caché direccionada por contenido durante el TTL de la caché, y nada más. La caché no está indexada por usuario, IP, nombre de archivo ni ningún identificador que pudiéramos usar para encontrar “tus” imágenes. No registramos el contenido de las imágenes. El servicio de codificación se comparte entre los mismos dos inquilinos que v1 servía antes del cambio, con CORS por inquilino, límites de ritmo y URL canónicas firmadas con HMAC.
- Quitar el fondo y los otros caminos de IA ven la imagen durante el tiempo de la subida temporal y la llamada al modelo (normalmente unos segundos), tras lo cual la copia temporal se elimina mediante una regla del ciclo de vida de R2. El modelo BiRefNet se ejecuta dentro de la propia infraestructura de Cloudflare, no en una API externa al estilo de remove.bg / fal.ai / Replicate.
En todos los caminos, nuestro proveedor de analítica (Cloudflare Web Analytics) registra datos agregados de visitas de página. URL, país, familia de navegador, Core Web Vitals. Sin cookies, sin identificadores persistentes, nada ligado a una persona.
Para las herramientas que descargan un módulo WebAssembly en el primer uso (el decodificador HEIC, el modelo ONNX ISNet), nuestro proveedor de alojamiento ve que alguien descargó el módulo, igual que ve que descarga el archivo CSS. El módulo en sí no contiene ninguna información sobre tu imagen.
El inventario completo de datos está en nuestra política de privacidad.
La pila tecnológica
Para los curiosos:
- Astro, el generador de sitios estáticos. Cada página sale como HTML simple con “islas” de JavaScript de mejora progresiva solo donde viven las herramientas interactivas.
- CSS puro con propiedades personalizadas, sin Tailwind, sin CSS-in-JS. Todo el sistema de diseño es un único archivo
tokens.css. canvas.toBlob/<canvas>. Codificación JPEG, PNG, WebP, AVIF (con soporte del navegador) en las herramientas solo de navegador, y todo el trabajo de recorte y redimensionado.- Cropper.js, la capa de interacción del rectángulo de recorte.
- ONNX Runtime Web, ejecuta el respaldo WebAssembly ISNet para Quitar el fondo.
- Cloudflare Pages, aloja la compilación estática, la sirve desde el borde.
- Cloudflare Workers, R2 y
cf.image.segment(BiRefNet), la canalización predeterminada de Quitar el fondo. - Fastify con
sharp 0.34ylibvips 8.17en Node 24, el servicio de compresión y PDF enapi.roundcut.com.br, en un VPS de Hostinger en Alemania. - Cloudflare Web Analytics, recuentos agregados de visitas de página, sin cookies.
Compatibilidad con navegadores
Cada herramienta funciona en la versión actual y la anterior de Chrome, Firefox, Safari y
Edge, en escritorio y móvil. El sitio usa mejora progresiva: donde un navegador admite una
API más nueva (por ejemplo showSaveFilePicker, OffscreenCanvas) la usamos, donde no la
admite recurrimos al equivalente más antiguo. No hay ningún muro de “tu navegador no es
compatible”.
Los únicos requisitos firmes son JavaScript (para cualquier herramienta) y una conexión de red (solo al usar una herramienta basada en la nube en su camino predeterminado, las herramientas solo de navegador funcionan por completo sin conexión tras la primera carga de la página).
Preguntas
¿Algo que no cubrimos? Escribe a support@roundcut.app. Las preguntas técnicas son bienvenidas.