Negativo Lab es un sencillo laboratorio digital que nace de mi propia experiencia digitalizando negativos, ya sea peleando con un escáner no muy bueno o fotografiando los rollos sobre una mesa de luz casera. Es una herramienta creada, en principio, para el ámbito doméstico.
Digitalizar un negativo y convertirlo a positivo es, en esencia, traducir la información de la película a una imagen en pantalla. Aunque existen excelentes soluciones comerciales —algunas gratuitas, como Affinity, o incluso open source como Darktable, RawTherapee, ART, etc.—, está el placer de resolver los problemas uno mismo; y ahora, con el apoyo de asistentes de IA, es mucho más factible abordar esta fase. Para un flujo de trabajo absolutamente casero, con un equipamiento sencillo y lotes pequeños de negativos, quería crear una utilidad simple y con los ajustes justos.
Captura de pantalla de Negativo Lab
¿Cómo funciona?
La aplicación es un único archivo HTML —puedes acceder desde aquí— que no requiere instalación ni librerías externas. Se abre en cualquier navegador, lee las imágenes escaneadas y entrega el positivo revelado. Todo el procesamiento ocurre en local: ningún píxel sale de tu ordenador.
La inversión del negativo (el núcleo del revelado) ofrece tres modos:
Lineal: una inversión directa de la luz.
sRGB: invierte la imagen respetando el espacio visual del escáner o cámara.
Logarítmico: fiel al proceso químico tradicional. Mide las densidades extremas del negativo (con percentiles, ignorando polvo y valores atípicos) para estirar el rango con precisión. Esta calibración puede ser automática (por histograma) o manual, con dos cuentagotas para marcar la base de la película (Base+Fog) y su zona más densa (Dmax).
Controles disponibles
Ofrece herramientas familiares para cualquiera que haya editado una foto:
Rango tonal: ajustes de punto blanco, punto negro y gamma.
Contraste: curva en S y controles de microcontraste (estructura y claridad) aplicados en espacio perceptual, lo que evita la asimetría típica de los filtros de enfoque en lineal (que queman luces y aplastan sombras).
Ecualizador tonal: cinco zonas (negros, sombras, medios, luces y blancos) para ajustar la exposición por separado, de forma suave y sin artefactos extraños.
La aplicación exporta el resultado en PNG de 8 bits o TIFF de 16 bits, listos para guardar. Además del modo Negativo, incluye un modo Positivo (con submodos Lineal y Normalizar) para procesar escaneados que ya no necesiten inversión.
Sobre el alcance del proyecto
Negativo Lab no pretende competir con suites profesionales ni herramientas de revelado RGB avanzadas.
Solo blanco y negro: no procesa color ni archivos RAW. Trabaja con imágenes estándar de escáneres o cámaras domésticas.
¿Qué pasa con los negativos a color? Si introduces un negativo a color, se revelará en blanco y negro. Para hacerlo, el programa utiliza solo el canal verde del escaneo. En película de blanco y negro el resultado es idéntico, pero en películas de color (C-41) esto tiene una gran ventaja: esquiva la típica máscara naranja que suele enturbiar las conversiones automáticas.
El proyecto es de código abierto (licencia MIT) y vive en un único archivo autocontenido. Funciona sin conexión indefinidamente: una vez descargado el archivo, no depende de ningún servidor y se puede modificar o adaptar libremente. Está pensado para quien tenga un escáner sencillo, una pila de negativos en blanco y negro esperando turno y ganas de revelarlos sin complicaciones.
Algunas decisiones técnicas del motor interno, para los muy cafeteros:
Precisión interna: el procesado se realiza en coma flotante de 32 bits (Float32) de extremo a extremo, alternando entre luz lineal (para los niveles) y sRGB perceptual (para microcontraste, curvas y ecualizador) según lo que sea físicamente correcto en cada paso.
Privacidad por diseño: todo el procesado ocurre en el navegador. Las imágenes nunca se suben a ningún servidor.
Sin banding: amplía la entrada de 8 bits a Float32 con dither TPDF y lo vuelve a aplicar en la cuantización de salida.
Suavidad matemática: el ecualizador tonal utiliza interpolación monótona PCHIP, que mantiene la curva siempre creciente aunque muevas los anclajes de forma agresiva.
Cero dependencias: ni librerías ni red. Incluso la salida TIFF de 16 bits, con compresión Deflate y predictor horizontal, está escrita para mantener el principio de archivo único.
Puedes acceder desde aquí al GitHub del proyecto.