sábado, 7 de febrero de 2026

Scripts de Siril: introducción, configuración e instalación

Siril es una excelente aplicación para el registro y preprocesado y procesado de imágenes de astrofotografía. Su facilidad de uso, rapidez, multi-plataforma y el que sea gratuita lo hace especialmente interesante para los que nos apasiona la astrofotografía.

Pero una de las funciones más interesantes que proporciona son los scripts.

Siril tiene de forma nativa una serie de herramientas que permiten procesar las imágenes que hemos capturado, pero además ofrece un mecanismo para añadir complementos en forma de scripts, ampliando así su funcionalidad


Introducción

Básicamente un script es un conjunto de instrucciones que permiten ejecutar una serie de acciones.
En Siril, podemos añadir scripts que Siril u otras personas han creado, e incluso editar o crear nuestros propios scripts.
Si abrimos un script de ejmplo, veremos algo así:
def main():
    try:
        app = QApplication(sys.argv)
        window = PreprocessingInterface()
        # Only show window if initialization was successful
        if window.initialization_successful:
            window.show()
            sys.exit(app.exec())
        else:
            # User canceled during initialization - exit gracefully
            sys.exit(0)
    except Exception as e:
        print(f"Error initializing application: {str(e)}")
        sys.exit(1)


if __name__ == "__main__":
    main()
 

Como puede apreciarse, no es nada más -y nada menos- que texto en el que se definen y llama a ciertas funciones para que realicen determinadas acciones.
Y aquí reside la potencia de los scripts de Siril. Simplemente con un editor de texto y ciertos conocimientos, podemos crear scripts muy potentes que permitan realizar o automatizar ciertos procesos o funciones.

Tipos de scripts

En Siril tenemos dos tipos de scripts

SSF

Los archivos SSF (Siril Script Files) son los primeros scripts -nativos- que se implementaron en Siril. Como se indica en el post de Introducción de Siril, en la pestaña de consola, tenemos una línea en la parte inferior desde la que podemos ejecutar comandos.

Básicamente cuando realizamos una acción como el apilado o la extracción del ruido de fondo, Siril ejecuta un comando que procesa la imagen. Pues bien, los scripts de tipo ssf lo que permiten es poder llamar a diferentes comandos para así automatizar funciones individuales. Esto permite, por ejemplo, crear un script que automáticamente calibre nuestras imágenes con los flats, darks y biases, las registre y alinee y las apile. Y todo ello de forma automática.

Este es un extracto de un script de tipo ssf:

requires 1.3.4

# Convert Bias Frames to .fit files
cd biases
convert bias -out=../process
cd ../process

# Stack Bias Frames to bias_stacked.fit
stack bias rej 3 3 -nonorm -out=../masters/bias_stacked
cd ..

# Convert Flat Frames to .fit files
cd flats
convert flat -out=../process
cd ../process


Como se aprecia, hay una serie de comandos como convert, stack que realizan ciertas funciones a partir de los parámetros pasados.

Python 

Siril está construido usando un software de desarrollo llamado Qt el cual es gratuito y que además permite ampliar las funciones nativas de un programa mediante scripts escritos en el lenguaje Python.
Este lenguaje es relativamente sencillo de usar y potente. Además, con las librerías gráficas de Qt, podemos crear una inetrfaz de usuario muy visual y atractiva.
La mayoría de scripts recientes de Siril utilizan este segundo tipo ya que confiere opciones gráficas muy interesantes.

Este es un extracto de un script de Siril usando python:
import sirilpy as s

s.ensure_installed("PyQt6", "numpy", "requests", "platform", "scipy")

onnx_helper = s.ONNXHelper()
onnx_helper.install_onnxruntime()


from PyQt6.QtWidgets import (QApplication, QMainWindow, QVBoxLayout, QHBoxLayout,
                            QWidget, QLabel, QPushButton, QLineEdit, QMessageBox, QFileDialog, QSlider, QCheckBox,
                            QGroupBox, QFrame)
from PyQt6.QtCore import Qt, QThread, pyqtSignal
from PyQt6.QtGui import QFont
def _start_processing_thread(self, use_cached_prediction=False):
        # Disable all UI components except the Calculate button
        self._set_ui_enabled(False)
        # Change button text to "Cancel process"
        self.calc_btn.setText("Cancel process")
        # Start the processing thread
        self.processing_thread = ProcessingThread(self, use_cached_prediction=use_cached_prediction)
        self.processing_thread.finished.connect(self._processing_finished)
        self.processing_thread.progress.connect(self._update_progress_ui)
        self.processing_thread.error.connect(self._processing_error)
        self.processing_thread.cancelled.connect(self._processing_cancelled)
        self.processing_thread.start()

Instalación

Desde Siril
Los scripts validados por Siril están alojados en su repositorio y desde la propia aplicación podemos instalarlos, desinstalarlos y actualizarlos.
Para ello, desde la barra superior, desplegamos la opción Scripts y seleccionamos Obtener scripts.


Esto nos llevará a la pantalla de preferencias, directamente a la sección Scripts


En la parte superior nos encontramos con las carpetas donde Siril buscará los scripts. 
Los que él descargue los guardará en las carpetas por defecto, pero nosotros podemos añadir escribiendo directamente otras carpetas por si creamos nuestros propios scripts o los descargamos de otros sitios -ver más abajo el apartado Manualmente-

Para poder acceder a los scripts que Siril tiene en su repositorio, debemos marcar la opción Enable use of the siril-script online repository y es aconsejable también marcar Automatic updates de forma que cuando arranque Siril actualice automáticamente aquellos scripts que nos hubiéramos instalado.

Finalmente, en la zona inferior se muestran los scripts disponibles, pudiendo marcar y desmarcar aquellos que queramos.
Sería interesante que pasando el ratón por encima de cada script nos dijera qué hace, pero por ahora no es así, pero si hacemos doble clic en el nombre de uno de ellos, se nos abrirá un editor de texto donde podremos ver TODO el script y normalmente, en el inicio se indica un comentario acerca de qué hace el script e incluso, en ocasiones, también se indican unas instrucciones de uso.

Una vez seleccionados (o desmarcados) los que queramos deberemos pulsar en el botón de 'refresh' ubicado entre las opciones de Directorio de almacenamiento y Diálogos de aviso.
Por último pulsamos en Aplicar y las modificaciones tomarán efecto sin necesidad de reiniciar la aplicacióń.
En la vista de consola se pueden ver las acciones que realiza Siril para actualizar los scripts.

Manualmente

Además de poder descargar los scripts del repositorio de Siril, también podemos añadir de terceros e incluso los nuestros propios.
En este enlace se detalla cómo funcionan los scripts por si alguno se anima a escribir uno propio.
Y en este otro tenéis el repositorio desde el que Siril se descarga los scripts.
Existen foros en los que de forma altruista -todos los scripts de Siril son gratuitos- podemos descargarnos scripts no oficiales, pero en muchos casos interesantes.

Solución de problemas

Si los scripts no funcionan por problemas con python después de una actualización, es posible que las variables de entorno no estén asignadas correctamente. Para reiniciar estas variables tenemos un botón de Reset python env debajo de la lista de scripts disponibles.
La ubicación de este script no es muy acertada porque debemos hacer un scroll completo para que nos aparezca en pantalla.

Scripts recomendables

Esta es una lista de los scripts que tengo activados y que utilizo con mayor o menor frecuencia, siendo los que están en negrita los que suelo utilizar siempre.
Esto dependerá del equipo fotográfico que tengáis y de gustos personales. Así por ejemplo, no tengo seleccionados scripts para procesado de imágenes mono.
Debe tenerse en cuenta que algunos de estos scripts necesitan conexión a Internet
  • Workflow_Summarizer: Siril registra todas las acciones realizadas en un log. Este script analiza dicho log y crea un resumen -utilizando la IA de Gemini- que puede resultar útil a la hora de registrar y guardar el proceso realizado
  • Satellite_Trail_Remover: utilizando IA, permite identificar las trazas que dejan los satélites artificiales y 'borrarlas' utilizando diferentes algoritmos.
  • Patch_Impainting_Tool: permite generar máscaras en las imágenes para un tratamiento selectivo de la señal
  • Image_Window: a diferencia como ocurre en PixInsight, Siril no tiene la opción de mostrar varias imágenes y compararlas. Esta herramienta cubre esa carencia e inlcuye la sincronización de movimiento y zoom.
  • Hertzsprung-Russell: genera un diagrama con astrometría a partir de la infomación facilitada por Gaia DR3 y la fotometría de Siril
  • Galaxy_Annotations: identifica las galaxias que aparecen en la imagen -por tenues que sean- y genera una composición donde se muestra nuestra imagen, con las coordenadas así como un detalle de cada uno de los objetos identificados con su nombre
  • Blink_Browse_Filter_Sort: permite ver, filtrar y ordenar las imágenes sin necesidad de tener que registrarlas antes.
  • Statistical_Strech: realiza un estiramiento automático con algunos ajustes manuales
  • HDR_multiscale: permite realzar detalles de la imágen
  • Graxpert_AI: herramienta imprescindible. En realidad son 4 módulos -si instalas la versión de pruebas- y todos ellos utilizan modelos basados en IA. Requieren la instalación de la aplicación GraXpert como se detalla en este post.
    • Background extraction
    • Denoise
    • Stellar deconvolution
    • Objects deconvolution
  • Cosmic Clarity: es una suite de scripts pero no están recogidos bajo un único script si no que se ofrecen de foma individual. Al igual que GraXpert utilizan modelos basados en IA.
    También necesitan tener instalada la suite de Cosmic Clarity tal y como se indica aquí.
    La primera vez que ejecutemos el script nos pedirá la ubicación del archivo ejecutable que realiza esa función
    • Dark star: permite eliminar las estrellas de una imagen. Perfecto para poder procesar el resto de la imagen de forma más precisa. El ejecutable necesario es: setiastrocosmicclarity_darkstar
    • Denoise: permite eliminar ruido de la imagen. El ejecutable es SetiAstroCosmicClarity_denoise
    • Sharpen: permite perfilar y acentuar los detalles de la imagen. El ejecutable es SetiAstroCosmicClarity
    • Satellite removal: como su nombre indica, permite eliminar de la imagen las trazas dejadas por satélites artificiales. Se requiere tener el ejecutable setiastrocosmicclarity_satellite
  • AutoBGE: elimina y corrige la luz de fondo de forma automática
  • AberrarionRemover: corrige la aberración estelar de una forma rápida y efectiva
  • Naztronomy-OSC_PP: es una herramienta de preprocesado que permite automatizar la calibración de las imágenes (con darks, biases y flats) obteniendo así la imagen alineada y apilada.
    El script está preparado para poder trabajar con varias sesiones
  • VeraLux: como ocurre en Cosmic Clarity, en realidad se trata de una suite de scripts individuales aunque recientemente se ha añadido a la lista un script lanzador llamado Veralux_Starting_Point desde el que se puede llamar al resto de scrpts
    Ninguno de sus scripts utiliza IA:
    • Vectra: permite ajustar los colores de la imagen, tanto la saturación como el matiz
    • StarComposer: la alternativa al Star Recomposition ofrecido por Siril solo que la imagen con estrellas no tiene que estar previamente estirada.
    • Silentium: permite eliminar ruido en la imagen
    • Revela: resalta los detalles de la imagen 
    • Nox: reduce el gradiente de la imagen
    • HyperMetric_Strech: auto estirado de imagen basado en el sensor con el que se han realizado las tomas
    • Curves: ajuste de curvas fotométrico. Tiene opciones interesantes como la creación de máscara para aplicar el resultado
  • SyQon_Starless: utiliza IA para eliminar las estrllas de una imagen

No hay comentarios:

Publicar un comentario

Cómo limpiar la lente objetivo de tu refractor

Con el uso, las condiciones climáticas -viento, humedad- y entorno -polvo- nuestra lente objetivo acaba por acumular suciedad. En este post ...