Tutorial

How to Back Up ComfyUI Workflows: From Manual Export to Full Provenance

Numonic Team12 min read
Abstract visualization: Neon-glow bubbles in macro abstraction
THE BACKUP STACK
Tier 1
Manual JSON
Tier 2
Git
Tier 3
Cloud Sync
Tier 4
Provenance

Each tier adds context. Only one captures the full picture.

Most ComfyUI backup methods save the graph but lose the context—the seeds, model versions, and sampler states— that made the output actually work. This tutorial walks through four tiers of workflow protection so you can choose the level of memory your practice actually needs.

The Problem Nobody Talks About Until It’s Too Late

ComfyUI workflows are deceptively complex objects. A single .json export might contain 40–80 nodes, each with parameter states that interact in non-obvious ways. Change one sampler setting or swap a LoRA weight, and your output shifts dramatically.

I think about ComfyUI backup in two parts: graph preservation (did you save the node layout and connections?) and execution context (did you save everything needed to reproduce a specific output?). Most practitioners solve the first problem and assume they’ve solved the second.

They haven’t.

With 34 million AI images generated daily across tools like ComfyUI, Stable Diffusion, and Midjourney, the volume of untracked creative work is staggering. Creative teams already spend roughly 25% of their time on “digital archaeology”—hunting for files, settings, and prior versions. Every unprotected workflow compounds that cost.

Here’s the framework: four tiers, each evaluated on three dimensions.

TierEffortReliabilityContext Preserved
1. Manual JSON ExportLow setup, high ongoingDepends on youGraph only
2. Git Version ControlMedium setup, low ongoingHigh for what it tracksGraph + diff history
3. Cloud SyncMedium setup, low ongoingHigh availabilityGraph + file backup
4. Provenance InfrastructureMedium setup, near-zero ongoingSystematicGraph + full execution context

Let’s walk through each.

Tier 1: Manual JSON Export

What it is: ComfyUI’s built-in export. Click the menu, select “Save,” and you get a .json file representing your current node graph.

How to Do It

  1. In the ComfyUI interface, click the hamburger menu (Ξ) in the top toolbar.
  2. Select Save or use Ctrl+S / Cmd+S.
  3. Name the file descriptively: portrait-lighting-v3-2026-02-20.json.
  4. Store it in a dedicated folder outside your ComfyUI installation directory.

What It Preserves

  • Node types and connections
  • Widget values visible in the UI (steps, CFG scale, dimensions)
  • Group layout and notes

What It Loses

  • The specific model file versions loaded at execution time
  • Seed values if you’re using randomized seeds (the saved value is the widget state, not necessarily the last executed seed)
  • Custom node versions—if a node author pushes an update that changes behavior, your JSON still references the same node type but may produce different results
  • Output images linked to that specific configuration

Honest assessment: This is the floor, not the foundation. Manual exports work as bookmarks, not backups. If you’re working solo on exploratory projects with low reproducibility requirements, Tier 1 is fine. The moment someone asks you to recreate a specific output from three weeks ago, it falls apart.

A Naming Convention That Actually Helps

[project]-[subject]-[technique]-v[version]-[YYYY-MM-DD].json

Example: brand-campaign-inpainting-controlnet-v7-2026-02-20.json

Tier 2: Git Version Control

What it is: Using Git to track changes to your workflow files over time, giving you a full diff history and the ability to revert to any prior state.

How to Set It Up

  1. Create a dedicated workflows directory:
    mkdir ~/comfyui-workflows && cd ~/comfyui-workflows
    git init
  2. Add a .gitignore to exclude large binary files:
    *.png
    *.safetensors
    *.ckpt
    *.pt
  3. Copy or symlink your workflow JSONs into this directory.
  4. Commit after meaningful changes:
    git add .
    git commit -m "portrait workflow: switched to euler_ancestral, CFG 7.5, added IP-Adapter node"
  5. Optionally push to a private GitHub or GitLab repo for remote backup.

What It Preserves (Beyond Tier 1)

  • Complete change history with timestamps
  • The ability to diff two versions and see exactly which parameters changed
  • Branch support for experimental variations
  • Commit messages as a decision journal

What It Still Loses

  • Model file versions (the JSON references sd_xl_base_1.0.safetensors by name, but Git doesn’t track whether that file was modified or replaced)
  • The relationship between a specific commit and a specific output image
  • Custom node dependency versions
  • Execution metadata: actual generation time, GPU used, batch context

Practical Tip: Strip Node Positions Before Committing

Git diffs on raw ComfyUI JSON are noisy because node position coordinates change constantly. Use a pre-commit hook that strips pos values before committing. This makes your diffs meaningful—you see parameter changes, not pixel-level repositioning of nodes on the canvas.

# strip_positions.py — run before git add
import json, sys, glob

for filepath in glob.glob("*.json"):
    with open(filepath, "r") as f:
        data = json.load(f)
    for node_id, node in data.items():
        if isinstance(node, dict) and "pos" in node:
            del node["pos"]
    with open(filepath, "w") as f:
        json.dump(data, f, indent=2)

Honest assessment: Git is where most technically comfortable practitioners should start. It’s free, battle-tested, and the diff history alone is worth the setup. But it requires discipline. The average team uses 3+ AI generation tools; Git only covers what you manually commit from one of them.

Tier 3: Cloud Sync

What it is: Using services like Dropbox, Google Drive, Syncthing, or Resilio Sync to automatically back up your ComfyUI working directories to the cloud.

How to Set It Up (Syncthing Example)

  1. Install Syncthing on your workstation and a second device or server.
  2. Share your ComfyUI/output/ and ComfyUI/user/ directories.
  3. Configure conflict resolution to keep both copies (renamed) rather than overwriting.
  4. Set sync frequency to continuous or every 5 minutes.

Alternatively, With Dropbox or Google Drive

Move your workflows folder into your cloud-synced directory, then symlink it back:

ln -s ~/Dropbox/comfyui-workflows ~/ComfyUI/user/default/workflows

What It Preserves (Beyond Tier 2)

  • Automatic, effort-free file backup
  • Output images alongside workflows (if you sync the output directory)
  • Version history through the cloud provider (Dropbox keeps 30–180 days depending on plan)
  • Access from multiple machines

What It Still Loses

  • Semantic relationships between outputs and the workflows that created them
  • Model version tracking
  • Any execution metadata not written to disk by ComfyUI itself
  • Lineage: which workflow produced which image, with which seed, at which timestamp

The hidden risk: Cloud sync can introduce conflicts. If you run ComfyUI on two machines and both modify the same workflow file, you’ll get a conflict copy. More critically, cloud sync creates a false sense of security. You have the files, but not the relationships between files. When AI content production grows 54–57% year over year across teams, the file count quickly outpaces anyone’s ability to manually reconnect outputs to their source configurations.

Honest assessment: Cloud sync is excellent for disaster recovery—hardware failure, accidental deletion. It’s poor for reproducibility. Think of it as backing up the letters of a sentence without preserving the grammar. Everything is there; nothing is connected.

Your workflows deserve better than “Save As v2 Final.”

Numonic captures the full execution context of every ComfyUI generation—model hashes, resolved seeds, node versions, and output linkage—automatically.

See how it works

Tier 4: Provenance-Aware Infrastructure

What it is: Systems designed to automatically capture not just the workflow graph but the full execution context—every parameter, model version, seed, and environmental variable—at the moment of generation, linked directly to the output.

How It’s Different

This is where the gap between graph preservation and execution context finally closes. Instead of relying on you to save, commit, and annotate, provenance infrastructure intercepts the generation event itself.

What Tier 4 captures that Tiers 1–3 do not:

  • Exact model lineage: Not just the filename dreamshaper_8.safetensors, but the hash, version, and source of the model at the time of execution.
  • Resolved seed values: The actual seed used, even when the widget was set to “random.”
  • Custom node versions: The Git commit or release version of every custom node active in the graph.
  • Sampler execution state: Scheduler type, denoise values, and any mid-pipeline overrides.
  • Temporal linkage: A direct, queryable connection between “this output image” and “this exact configuration.”

And that matters because reproducibility isn’t an academic concern—it’s a production requirement. The EU AI Act imposes penalties of up to 3% of global revenue for certain transparency failures. California’s SB 942 carries fines of $5,000 per day for AI disclosure violations. Even outside regulatory contexts, any team producing client-facing generative work needs to answer the question: How did we make this, and can we make it again?

The effort paradox: Tier 4 requires medium upfront setup but approaches zero ongoing effort. It’s the inverse of Tier 1, where setup is trivial but every backup requires a manual action. For teams losing 3–6 hours weekly searching for prior work and settings, the math favors infrastructure that remembers automatically. This is the approach we’re building at Numonic—a sync agent that captures execution context as it happens, with no manual export step.

Choosing Your Tier: A Decision Framework

Start with three questions:

1. Do You Need to Reproduce Specific Outputs?

  • No → Tier 1 or 2 is sufficient.
  • Yes → You need Tier 3 minimum, Tier 4 ideally.

2. How Many People Touch the Same Workflows?

  • Just you → Tier 2 (Git) gives you excellent personal version history.
  • A team → Tier 3 or 4. Git workflows require discipline that breaks down at team scale.

3. Are Your Outputs Subject to Client Review, Regulatory Scrutiny, or Licensing Requirements?

  • No → Choose based on personal pain tolerance.
  • Yes → Tier 4. Graph-only backups cannot answer provenance questions.

A realistic path for most practitioners: Start at Tier 2, add Tier 3 for redundancy, plan for Tier 4 as your volume or team grows. These tiers stack—Git inside a cloud-synced folder, feeding into provenance infrastructure—rather than replacing each other.

What This Looks Like in Practice

Here’s a concrete scenario. You built a ComfyUI workflow three weeks ago for a client project. It used SDXL with a specific LoRA, ControlNet depth conditioning, and an IP-Adapter reference image. The client wants a variation.

Tier 1 (Manual JSON)

You find the JSON. You load it. Half the custom nodes have updated. The LoRA was renamed during a folder reorganization. The seed was randomized. You spend 45 minutes reconstructing the setup. Maybe it matches. Maybe it doesn’t.

Tier 2 (Git)

You find the JSON at the exact commit. You can see the diff from the version before it. But you still face the same model-mismatch and seed problems. You check your commit message—hopefully past-you was detailed. Time: 30 minutes, still uncertain.

Tier 3 (Cloud Sync)

The files are there, including the output images. You can visually compare. But connecting which output came from which workflow version requires your memory. Time: 20 minutes of searching, same reproducibility gap.

Tier 4 (Provenance Infrastructure)

You search by the output image or project tag. The system returns the exact workflow state, resolved seed, model hashes, and node versions. You load it. It runs. Time: 2 minutes.

The gap between Tier 3 and Tier 4 is the gap between having files and having memory.

Key Takeaways

  • 1.Manual JSON export saves the graph, not the context. It’s a necessary habit but insufficient backup for any work you might need to reproduce.
  • 2.Git adds history and diffing. Strip node positions from your JSONs before committing to get meaningful diffs. Pair with descriptive commit messages as a decision journal.
  • 3.Cloud sync solves disaster recovery, not reproducibility. Files without relationships become exponentially harder to navigate as volume grows.
  • 4.Provenance-aware infrastructure closes the context gap. Model versions, resolved seeds, custom node states, and output linkage turn a backup into a memory.
  • 5.The tiers stack, they don’t replace. The most resilient setup layers Git inside cloud sync, feeding into provenance infrastructure that captures what manual methods cannot.

Stop Losing the Context That Made Your Outputs Work

Numonic captures the full execution context of every ComfyUI generation—model hashes, resolved seeds, node versions, and output linkage—so you never reconstruct from memory again.