¿Cómo crear archivos en ComfyUI si no existen? Guía de workflows

Gestión de archivos en ComfyUI: ¿Qué pasa si el archivo no existe?

Parte de mi workflow de ComfyUI lee un valor numérico de un archivo de texto, lo usa como variable, le suma uno y guarda de vuelta. Pero surge una duda común: ¿cómo hago que el workflow cree un archivo nuevo si no existe, guardando en él el valor inicial 0?

La respuesta es más simple de lo que parece, pero requiere un manejo explícito del flujo dentro de la aplicación. No hay magia implícita para crear archivos automáticamente, así que hay que implementarlo directamente en el workflow.

Diagrama técnico mostrando nodos de flujo para leer archivos, verificar su existencia y guardar valores incrementados.
Diagrama visual comparativo de las tres estrategias para manejar archivos en ComfyUI: enfoque condicional nativo, nodo Python y archivo seed fallback.

Opción 1: Usando nodos de texto + condicional

Esta es la forma más ‘pura’ y visual, ideal si prefieres mantener todo dentro del entorno nativo.

  1. Read Text File: Si el archivo existe, devuelve el contenido. Si no existe, devuelve vacío o dispara un error según la configuración del nodo.
  2. Añade un nodo de comparación, como Is Empty, para comprobar si el texto leído está vacío.
  3. Usa un Switch / If node: Si el valor es vacío, usa «0»; si no lo es, usa el valor real leído.
  4. Convierte a número, suma 1 y conecta todo al nodo de guardado.

Nota clave: El nodo Save Text File siempre crea el archivo si no existe. El truco es asegurarte de que, si no había nada, le pasas «0» antes de sumar.

Opción 2: Nodo Python (Más directo y robusto)

Si utilizas un nodo Python Script, la lógica se vuelve mucho más flexible. Puedes escribir el código directamente para manejar las excepciones de sistema:

import os
path = "contador.txt"
if not os.path.exists(path):
    value = 0
else:
    with open(path, "r") as f:
        value = int(f.read().strip())
value += 1
with open(path, "w") as f:
    f.write(str(value))

Esta opción te libera de depender de nodos condicionales complejos y te permite añadir logs o timestamps fácilmente.

Opción 3: Archivo ‘seed’ + fallback pragmático

Si no quieres usar Python ni condicionales, puedes crear una copia base del archivo con el valor inicial (por ejemplo, «0») antes de iniciar tu proceso. Luego, usas un nodo que copie ese archivo solo si el destino final no existe.

Recomendaciones finales

Si el valor es crítico para tu flujo—como contadores o versiones—te recomiendo encarecidamente la opción de Python por su robustez. Para tareas más livianas donde quieras mantener todo visual, la opción de nodos condicionales con Save Text es perfecta.