Cómo guardar workflows de ComfyUI formateados y limpios

Uno de los problemas más comunes al trabajar con ComfyUI es cómo se guardan los archivos de flujo. Por defecto, la aplicación descarga el archivo `workflow.json` en un estado minificado, todo apretado y difícil de leer a simple vista.

Aunque esto no es un bug, simplemente es el comportamiento estándar del frontend al usar `JSON.stringify()`. Pero, ¿hay alguna forma que ComfyUI guarde por defecto sus workflows formateados para visibilización? La respuesta corta es: no hay una opción nativa directa. Sin embargo, existen varias formas prácticas de lidiar con esto y mejorar significativamente la experiencia.

Explorando soluciones para el formato

La opción más simple y común es autoformatearlo fuera del entorno de ComfyUI. Puedes usar herramientas como VS Code, donde simplemente presionas `Shift+Alt+F` para indentar el archivo, o incluso usar la línea de comandos con `jq` para transformar el JSON minificado en uno legible.

Si estás ejecutando ComfyUI localmente, también puedes modificar el código fuente, específicamente dentro de los scripts de exportación, para cambiar cómo se serializa el objeto. Esto haría que todos los exports salgan con indentación automáticamente.

Automatizando el formateo de workflows

Si quieres ir un paso más allá y hacerlo completamente automático, puedes crear un pequeño watcher o script que reformatee cualquier archivo `.json` que aparezca en tu carpeta. Un ejemplo sencillo en PowerShell puede leer cada archivo, convertirlo a JSON limpio y guardarlo de nuevo.

Pantalla mostrando código JSON minificado y enredado
Vista de un archivo minificado y desordenado antes de aplicar cualquier solución de formateo.

Esto asegura que siempre tengas los archivos limpios sin tener que preocuparte por ello manualmente cada vez que exportas un flujo.

Haciendo que los diffs de Git sean limpios

Ahora, hay otro problema importante si quieres versionar tus workflows en Git. El archivo no solo está minificado; los nodos se guardan en un orden arbitrario. Esto significa que aunque cambies una sola cosa, el diff parecerá un terremoto porque todo ha cambiado de lugar.

La solución es normalizar el JSON antes de guardarlo: formatearlo y ordenar las claves junto con los nodos por su ID. Puedes usar un pequeño script en Python para cargar el archivo, ordenar los nodos y luego guardarlos de nuevo con indentación y claves ordenadas.

Editor de código mostrando un archivo JSON limpio y estructurado
El archivo JSON normalizado y ordenado después de ejecutar el script de Python.

Al ejecutar este script como un hook pre-commit en Git, cualquier workflow que guardes se normalizará automáticamente antes de entrar al repositorio. Esto hace que tus diffs sean mucho más limpios y fáciles de revisar.

Imágenes auto-documentadas

Por último, hay un hack bastante interesante que casi nadie conoce: cómo hacer que ComfyUI guarde el workflow dentro de la propia imagen generada. Esto hace que las imágenes sean prácticamente «auto-documentadas», ya que contienen toda la información del pipeline en formato legible.

Con estas técnicas, tus workflows dejan de ser simples blobs gigantes y se vuelven casi código revisable, permitiendo mantener un historial claro de la evolución de tus pipelines.