Skip to main content

Descripción general

Cuando ComfyUI guarda un archivo de salida, puede almacenar el flujo de trabajo que produjo el archivo dentro del propio archivo. Puedes pensar en esto como guardar una imagen generada junto con su receta. La imagen es el resultado, y el flujo de trabajo incrustado describe los pasos usados para crearla. Los metadatos del flujo de trabajo incrustado te permiten:
  • Volver a abrir un archivo generado en ComfyUI y recuperar su flujo de trabajo.
  • Compartir un archivo generado junto con el flujo de trabajo usado para crearlo.
  • Inspeccionar las configuraciones de generación en un flujo de trabajo automatizado.
  • Crear herramientas que lean los metadatos del flujo de trabajo de ComfyUI desde archivos de salida.
Los metadatos se almacenan dentro del formato de archivo. No cambian el contenido visible de imagen o video.

Campos incrustados

ComfyUI suele almacenar dos campos JSON: Un ejemplo simplificado se ve así:
El contenido real depende del flujo de trabajo y de la versión de ComfyUI. Los nodos personalizados también pueden agregar campos mediante extra_pnginfo. Los dos campos tienen propósitos diferentes. workflow está pensado para restaurar el flujo de trabajo en el frontend. prompt es la representación orientada a la ejecución que se usa al enviar un flujo de trabajo a un servidor de ComfyUI. Un archivo puede contener un campo sin el otro.

Formatos compatibles

Los nodos de guardado integrados incorporan metadatos en los siguientes formatos de salida: El soporte exacto de metadatos depende del nodo de guardado y de la ruta de escritura del archivo. Es posible que un archivo recodificado por otra aplicación ya no contenga los metadatos. Los archivos WebP animados almacenan los valores en etiquetas EXIF. Las etiquetas contienen cadenas como workflow:{JSON} y prompt:{JSON}. Esto es distinto de MP4 y WebM, que almacenan los valores como etiquetas de metadatos del contenedor.

Cómo ComfyUI escribe los metadatos

Los nodos de salida integrados reciben el prompt de la API y la información adicional del flujo de trabajo cuando ComfyUI ejecuta un flujo de trabajo. A menos que se desactive el guardado de metadatos, el nodo de guardado serializa estos valores como JSON y los escribe en el archivo de salida. Para la salida PNG, los valores se escriben como entradas de texto. Los nombres de campo estándar son prompt y workflow. Los metadatos no son un archivo sidecar separado. Se escriben en el archivo de salida durante la operación de guardado. Esto significa que copiar el archivo también copia su flujo de trabajo incrustado, pero cualquier operación que reescriba el archivo puede eliminar o reemplazar los metadatos. Para desactivar los metadatos al iniciar ComfyUI, usa:
En ComfyUI Desktop, abre Configuraciones > Configuración del Servidor y activa Disable saving prompt metadata in files. Los archivos creados mientras esta opción esté activada no se pueden usar para recuperar un flujo de trabajo a partir de los metadatos incrustados.

Cómo lee ComfyUI los metadatos

Para recuperar un flujo de trabajo en la interfaz de ComfyUI, arrastra un archivo generado al lienzo. También puedes abrir un archivo desde File > Open. Si el archivo contiene tanto workflow como prompt, ComfyUI usa el workflow incrustado para reconstruir el lienzo. Si el archivo no contiene un flujo de trabajo, ComfyUI trata los archivos multimedia compatibles como medios de entrada normales. Cuando crees una integración, comprueba si existe el campo antes de analizarlo. Los metadatos pueden faltar porque el archivo se creó con --disable-metadata, porque el nodo de guardado no recibió información del flujo de trabajo o porque otra aplicación volvió a codificar el archivo. Para inspeccionar o editar flujos de trabajo incrustados desde el navegador, consulta el ComfyUI Embedded Workflow Editor.

Limitaciones

  • Los metadatos incrustados no son una firma digital. No demuestran quién creó o modificó un archivo.
  • El flujo de trabajo no incluye los archivos de modelo, los recursos de entrada ni los paquetes de nodos personalizados de los que depende.
  • Mover o cambiar el nombre de un modelo, un recurso de entrada o un nodo personalizado puede impedir que un flujo de trabajo recuperado se ejecute.
  • Los editores de imágenes y video pueden eliminar los metadatos cuando recodifican un archivo.
  • Los archivos creados con --disable-metadata no contienen los metadatos estándar del flujo de trabajo de ComfyUI.
  • Trata los metadatos incrustados como entrada opcional y no confiable. Valida que un valor sea JSON válido antes de usarlo, y no asumas que un flujo de trabajo contiene todos los modelos o nodos personalizados necesarios para ejecutarlo.