La guía completa de WBPP: interfaz, másters de calibración y flujo de ejecución
Este artículo está recopilado a partir de notas tomadas entre 2021 y 2024. Algunas herramientas o flujos de trabajo se han actualizado desde entonces, así que tenlo en cuenta al leer; las interfaces, opciones y comportamientos según la versión que se mencionan aquí (como las versiones 2.1.2 y 2.5) reflejan el estado de aquel momento. En cuanto a los errores y bugs conocidos con los que te topes durante la ejecución, consulta el artículo aparte «Resolución de problemas de WBPP».
WBPP (WeightedBatchPreprocessing) es el script de PixInsight que ejecuta «calibración, registro e integración» de principio a fin de forma totalmente automática, y resulta asombrosamente cómodo. Estos últimos años ha cambiado de versión con frecuencia, y yo he ido escribiendo bastantes notas sueltas al respecto; este artículo las reúne en una explicación bastante completa, dividida en tres niveles: los conceptos fundamentales que apenas cambian de una versión a otra, el flujo de ejecución actual y algunos cambios importantes a lo largo de las versiones de estos años. Sea cual sea la versión que uses, si primero tienes los conceptos bien claros, no cundirá el pánico por mucho que cambie la interfaz.
Concepto fundamental 1: la imagen que WBPP integra es solo una vista previa
Este es el punto que más quiero plantear primero y, a la vez, el que más gente pasa por alto.
Yo mismo caí en la trampa: en una ocasión, tras usar Drizzle Integration, descubrí que los centros de las estrellas (las zonas sobresaturadas) se habían vuelto negros. Al investigarlo, resultó que el culpable era haber usado WBPP para hacer la integración.
Por cómodo que sea WBPP, respecto al máster light que integra automáticamente la postura oficial es rotundamente clara: es solo una cómoda vista previa de «el resultado alcanzable», que deberías descartar en cuanto termines, y nunca debería tratarse como producto final. Reproduzco a continuación el fragmento pertinente de la respuesta oficial en el foro:
The integrated image generated by WBPP is just a convenience preview of the achievable image, but it should always be deleted/ignored, and the integration should always be done manually with the registered frames. This is the only way to obtain an optimal integrated image with full control over the normalization, pixel rejection and noise reduction tasks.
El equipo oficial dijo incluso, medio en broma, que le gustaría repetir esta frase «n+1 veces, donde n ya tiende a infinito»: el máster light que produce WBPP no debería usarse con fines definitivos; es solo una vista previa, y el mejor resultado hay que obtenerlo mediante una Image Integration manual que optimice el rechazo de píxeles y la relación señal-ruido.
Así que mi costumbre es esta: con WBPP llego como mucho hasta el paso de «registrar las estrellas»; la integración de verdad se la devuelvo a una Image Integration manual. El enfoque correcto, desglosado en pasos —calibración (a cargo de WBPP), registro (Star Alignment) e integración (Image Integration)—, añade unos cuantos pasos de más, pero en cuanto algo va mal resulta mucho más fácil averiguar qué eslabón de la cadena se ha roto. Esto acabó convirtiéndose en mi convicción firme. También recomiendo mucho aquellos dos vídeos tutoriales de WBPP, muy detallados, de unos aficionados japoneses de los primeros tiempos, pero hay que añadirles la misma advertencia: toma el resultado de la integración solo como referencia.
Concepto fundamental 2: distingue qué archivos de la carpeta Master son los productos finales
Tras un pase completo de WBPP, la carpeta Master predeterminada acaba con un montón de archivos, y mucha gente no sabe distinguir cuál es el que realmente quiere. Vamos a aclararlo:

- La imagen del recuadro rojo es el máster light ya integrado que buscas.
- La imagen del recuadro amarillo es la imagen de referencia (Ref) de la Local Normalization, no el máster light; no las confundas.
- Las imágenes sin recuadro son los másters de calibración, que aquí incluyen el máster flat, el máster bias y el máster dark.
(Dicho esto, y en línea con la sección anterior, este «máster light» sigue teniendo carácter de vista previa de WBPP; si quieres hacerlo bien, deberías volver a integrarlo tú mismo.)
El flujo actual: el programa completo para una cámara de color
WBPP va de un tirón con un solo clic, pero entre bastidores hay en realidad una larga serie de procesos automatizados que se ejecutan en orden. Tomando como ejemplo una cámara de color (OSC), el orden de ejecución completo es el siguiente:

- Calibration File Integration: crear los másters de calibración
- Calibration: calibrar los lights
- Cosmetic Correction: eliminar píxeles calientes o líneas defectuosas
- Debayer: debayering (separar el RGB)
- Measurements: medir los lights y asignarles pesos
- Reference frame selection: elegir la imagen de referencia para el registro
- Plate solving reference frames: hacer plate solving (resolución astrométrica) de las imágenes de referencia
- Registration: registrar las estrellas
- LN reference generation: generar la imagen de referencia de la Local Normalization
- Local Normalization: ejecutar la Local Normalization
- Integration: integrar los lights
- RGB Combination: recombinar los tres canales RGB
En términos más resumidos, también se puede condensar en ocho pasos: crear los archivos de imagen de calibración → calibración de la imagen → Cosmetic Correction → debayering (separación de los tres canales RGB) → registro de estrellas → Local Normalization → integración de la imagen → combinación de los tres canales RGB.

Dos de estos pasos merecen unas palabras más: la separación RGB existe para vencer la dispersión cromática (cuando los bordes de las estrellas parecen tener colores distintos a cada lado), a costa de más tiempo de ejecución; y la Drizzle Integration, si la usas, no está aquí para ampliar la imagen, sino para evitar artefactos, así que solo tiene sentido cuando tienes suficientes frames con dither: por lo general, por debajo de 50 frames puedes prescindir de ella. Como apunte sobre cómo se percibe el tiempo en la práctica: una vez procesé 360 frames de 9 megapíxeles desde la calibración hasta la Drizzle Integration 1x, y aun así tardó más de una hora larga; con más resolución la cosa solo se pone más «emocionante».

Los másters de calibración: donde WBPP es listo
WBPP esconde no pocos detalles bien pensados en su manera de tratar los frames de calibración (flats, darks, bias, etc.), suficientes para dedicarles una sección propia.
Lo mejor es reconstruir los frames de calibración desde los archivos originales dentro de WBPP. No poca gente descubre que sus lights tienen problemas tras la calibración, y la causa principal suele ser que aplicaron «archivos Master hechos con otro software u otros procesos» (máster flat/bias/dark). Lo más seguro es meter los archivos originales de calibración en WBPP y dejar que reconstruya los Masters.
¿Pequeñas discrepancias en el tiempo de exposición? Déjaselo a Exposure tolerance. Una vez, un aficionado preguntó en el grupo: tomaba sus darks con el control de señal de Eqmod y, por problemas de latencia, sus darks de 5 segundos podían quedar en realidad entre 4,980 y 5,02 segundos, así que quería pasarse a capturar con NINA. Pues resulta que WBPP ya lo tenía previsto: los frames de calibración dentro de cierta diferencia de tiempo pueden asignarse al mismo grupo, y WBPP hace automáticamente el procesado que corresponde a los frames de calibración de un mismo grupo y los empareja de forma automática con los lights. Ese valor de tolerancia es precisamente la Exposure tolerance.

¿Imágenes tomadas en días distintos? Resuélvelas todas de una vez con Grouping Keywords. Tras una revisión, WBPP incorporó una función de agrupación, de modo que incluso imágenes tomadas en fechas distintas pueden meterse todas juntas y procesarse a la vez, con tal de que las clasifiques en Grouping Keywords mediante una palabra clave (la fecha, por ejemplo). En mi lote de archivos, por ejemplo, los flats eran distintos cada día, y aun así WBPP podía calibrarlos por separado según la fecha de forma automática, sin que yo tuviera que configurar a mano el emparejamiento de lights y flats para cada fecha distinta. Comodísimo.

¿Solo quieres crear los másters de calibración? No hace falta ni meter lights. Este es un uso que mucha gente desconoce: sin ningún light presente, mete tus darks, bias, flats y flat darks en WBPP, y este, con astucia y siguiendo los pasos correctos, convertirá estos frames de calibración en másters de calibración y los volcará en la carpeta que le indiques, ahorrándote la molestia de fabricarlos a mano con toda clase de procesos distintos.

Opciones de la página Light y trucos para acelerar
La página Light de WBPP tiene una fila de opciones que puedes marcar según necesites. Por defecto, todo está sin marcar salvo subframe weighting.

Dado que estos pasos se pueden activar o desactivar, surge una pregunta práctica: ¿cuánto tiempo se ahorra desactivando el procesado que no necesitas? Lo probé de verdad con un conjunto de datos de libre descarga procedente del extranjero —372 frames de 16 megapíxeles en total— y, tras quitar el procesado que no necesitaba, fue unas 7 u 8 veces más rápido (25 min 03 s frente a 03 min 30 s), mientras que la calidad de imagen solo se resintió ligeramente: en mi máquina local, alrededor de un 15 % de diferencia, y una vez comprimida y enviada por la red, prácticamente imperceptible. Para cuando vas contrarreloj o solo quieres echar un primer vistazo general, la compensación sale muy a cuenta.

En cuanto a qué pasos consumen más tiempo y cuáles conviene más desactivar, volveré sobre ello en el artículo «Resolución de problemas de WBPP».
Cambios de versión: esto llegó más tarde
WBPP ha añadido bastantes cosas en estos años. Voy a ordenar unos cuantos hitos importantes para que te resulte fácil compararlos con la versión que tengas en la mano:
Unas cuantas cosas de la versión 2.1.2. A partir de esta versión, hay tres puntos que merece la pena señalar: primero, que los lights den problemas tras la calibración suele deberse a que se colaron archivos Master hechos por fuera (ya lo comentamos); segundo, la Dark frame optimization se usa sobre todo cuando las duraciones del light y del dark no coinciden (por ejemplo, un light de 20 minutos con un dark de 30 minutos), da su mejor resultado con exposiciones largas y varios frames, y la opción solo aparece si haces clic en un archivo de light; tercero, quien usa CCD va viendo aparecer defects con el uso, sobre todo column defects (defectos de columna), que antes había que eliminar creando un defect map —algo muy laborioso—, y WBPP incorporó la Linear Pattern Subtraction para ayudar a lidiar con ello.

Execution Monitor (ventana de monitorización de la ejecución). Al actualizar a una versión más reciente, WBPP muestra durante la ejecución una ventana llamada WBPP Execution Monitor que te dice por qué paso va en cada momento y qué trabajos ha hecho, y cuyo contenido incluso puedes desplazar y arrastrar arriba y abajo. En versiones antiguas, aparte de quedarte mirando la console del momento, no había manera alguna de conocer el progreso: solo podías esperar a que todo terminara, o a que se detuviera por un error, para poder comprobar algo mediante la console.

La función Cache (caché) (a partir de la versión 2.5). Esta es una mejora clave. Tras un pase del programa completo, si encuentras un error o algo que no está a la altura de lo esperado y cambias algunos ajustes, ¿de verdad hay que volver a ejecutarlo todo entero? No hace falta. La caché de WBPP lo resuelve: mientras los ajustes que cambiaste no afecten a las imágenes, reutiliza sin más los resultados en caché de la vez anterior; solo se reprocesa la parte de las imágenes que de verdad se ve afectada, con lo que el tiempo de la segunda ejecución se acorta drásticamente.

El script reproducible de la carpeta log. La versión más reciente de WBPP, tras ejecutarse, conserva en la carpeta log un registro (log) detallado y el script de ejecución. Cuando lees el script con el Script Editor de PI, lo compilas y lo ejecutas, aparece un Process Container que contiene todos los iconos de proceso del submenú Pipeline de la ventana principal de WBPP, y cada uno se puede abrir por separado en PI. Esto es comodísimo para depurar: por ejemplo, si quieres averiguar por qué la Cosmetic Correction no se ejecutó correctamente o no surtió efecto, puedes abrir ese paso desde aquí y comprobar si es cuestión de parámetros o un bug del programa. Otro uso: quien no esté familiarizado con el preprocesado puede leerse por este método cada proceso y parámetro que usó WBPP, y tomarlo como plantilla de referencia para hacerlo a mano por su cuenta.

El primer paso al abrir WBPP no es, en realidad, cargar archivos
Por último, volvamos a lo más básico y, a la vez, lo más fácil de hacer mal. El primer paso tras abrir WBPP no es lanzarse a «cargar los archivos de light, dark, flat y bias».
WBPP es uno de los pocos scripts que conserva el contenido del último uso. Si lo has usado antes, todos los ajustes siguen ahí. Por eso, el primer paso debería ser vaciar la lista de archivos; si además conviene borrar los otros parámetros, dependerá de lo que necesites.
Y el segundo paso se pasa por alto con facilidad, y muchos vídeos tutoriales tampoco lo mencionan: pulsar Purge Cache. Antes comenté la ventaja de la caché (a partir de la versión 2.5): cuando solo cambias algunos parámetros, WBPP ejecuta únicamente lo que cambió y reutiliza la caché para el resto. Pero, a la inversa, cuando ya has hecho un pase y ese contenido en caché ya no te hace falta, tienes que borrarlo todo; de lo contrario, al ejecutar archivos nuevos pueden surgir errores impredecibles por culpa de contenido de caché duplicado.

Ajustes previos del entorno para usuarios de Windows
Si ejecutas WBPP en Windows, hay dos ajustes de entorno que conviene dejar resueltos desde el principio, y que te ahorrarán un montón de errores desconcertantes más adelante (para los mensajes de error y el diagnóstico relacionados, consulta «Resolución de problemas de WBPP»):
Activa la compatibilidad con rutas largas. Tras cierta actualización, WBPP en Windows saltaba a menudo con avisos de ruta larga, diciendo que no podía generar una ruta de más de 256 caracteres. A mí mismo, por una ruta demasiado larga, se me quedaron corruptos los archivos de salida de WBPP (porque no se podían guardar). La solución es buscar regedit en la barra de tareas para abrir el Editor del Registro, localizar la ubicación correspondiente y cambiar el valor de LongPathsEnabled a 1; tras reiniciar PixInsight, ese aviso ya no vuelve a aparecer.

Evita las rutas con caracteres no ASCII (por ejemplo, chinos). Esta es también la razón por la que no recomiendo usar caracteres chinos en las rutas de archivo. En Windows, si el programa predeterminado para abrir un archivo es PI, con solo hacer doble clic en un archivo con una ruta que contenga caracteres chinos salta un mensaje de error, y esos caracteres ilegibles que ves son, en realidad, el texto en chino. La alternativa es: sin cambiar la ruta, arrastra directamente el archivo hasta PI y así se abrirá.

Juntando todo lo anterior, el panorama completo de WBPP queda más o menos claro: es un potente motor de preprocesado automatizado, pero tienes que recordar que su resultado de integración es solo una vista previa, saber cómo agrupar la calibración, cómo sacarle partido a la caché y qué borrar y qué entorno configurar antes de empezar. Con los conceptos bien asentados, lo demás es solo cuestión de práctica.