# Should I use a network volume, my own Docker image, a ComfyUI-Manager snapshot, or something else to keep a working ComfyUI?

> Each keeps a different layer. A network volume keeps files in one provider's region; a Docker image freezes the system and Python layers; a ComfyUI-Manager or Desktop snapshot records which versions you had and installs them again; a nest keeps the files themselves plus the exact package versions, and checks them on the new machine. Pick the one that keeps the layer you'd lose.

Canonical page: https://renest.ai/answers-volume-image-snapshot-compared.html

<h2 id="volume">Is a network volume enough to keep my ComfyUI?</h2>

<p>It keeps your files — models, custom node folders, outputs — inside one region of one
provider, and that's its right use: the next pod in that region mounts them in place. What it
doesn't keep is a working environment on a different machine. Python packages installed into
the container are gone when the pod stops, a venv on the volume was built for the machine
that made it, and system libraries live in the container image. It also bills while no pod
is running, and a pod can only use it where a GPU is free in that region.</p>

<h2 id="docker">Should I build my own Docker image for ComfyUI?</h2>

<p>An image freezes the operating system and the Python layer, which makes it the right tool
for deployment, serverless endpoints and anything that must start the same way many times.
Keep models out of it — a model baked into the image makes it huge and slow to start, so
models usually go on a volume. And what's frozen in it was built for the GPUs of its day:
a newer GPU generation can need a different torch build than the one inside.</p>

<h2 id="snapshot">Does a ComfyUI-Manager snapshot restore bring back everything, including pip packages?</h2>

<p>No — a snapshot is a record of versions, not a copy. A <strong>ComfyUI-Manager
snapshot</strong> records the ComfyUI commit, each custom node's repository and commit, and a
list of pip packages. Restoring it checks out or clones those repositories again and installs
packages again from the network; whether the recorded pip list gets applied has depended on
the Manager version and how you restore. The <strong>ComfyUI desktop app</strong>'s snapshots
record the ComfyUI version, each custom node's version or commit, and the installed Python
packages, and restoring installs or adjusts them to match. Neither one carries model files or
workflows.</p>

<p>That makes a snapshot the right tool for rolling back an update on the machine you're on,
or for getting the same node versions onto a machine that already has your models. It
depends on every repository and package still being downloadable.</p>

<h2 id="nest">What does a nest keep that the others don't?</h2>

<p>A nest is packed from a run that already worked. It keeps:</p>

<ul>
  <li><strong>The files themselves</strong> — the model files the workflow used and each custom
  node's source, pinned to its commit — so a restore doesn't depend on a repository or a
  download link still existing.</li>
  <li><strong>The exact package versions</strong> that were installed, reinstalled for the new
  machine without re-resolving.</li>
  <li><strong>What the machine provided</strong> — GPU generation, driver, the system
  libraries the run loaded.</li>
</ul>

<p>On restore it checks the machine first and stops before downloading when the GPU
generation, driver or CPU can't run the recorded build; it names missing system libraries
with the command that installs them. Then it checks every file against its recorded checksum,
reinstalls the packages, starts ComfyUI and runs the workflow once, and reports which steps
passed. It isn't tied to one provider, the format is open, and
<a href="docs-escape-hatch.html">restore.sh</a> brings the files and dependencies back
without Renest.</p>

<p>What it isn't: a disk image. Packages are installed fresh on the target, so a GPU
generation the recorded build doesn't support is refused, not adapted. Our own results,
failures included, are on the <a href="proof.html">Proof page</a>.</p>

<h2 id="pick">So which one should I use?</h2>

<ul>
  <li><strong>Same region, same provider, used often</strong> — a network volume.</li>
  <li><strong>Deploying, serverless, many identical starts</strong> — a Docker image with
  models on a volume.</li>
  <li><strong>Rolling back node updates on this machine</strong> — a Manager or Desktop
  snapshot.</li>
  <li><strong>Moving a setup that works to another machine, region or provider, models
  included</strong> — a nest.</li>
</ul>

<p>They combine: you can restore a nest onto a pod that also mounts a volume, and our
<a href="docs-base-image.html">base image</a> is itself a small Docker image.</p>

<h2 id="not">When Renest isn't the answer</h2>

<ul>
  <li><strong>Serverless or production deployment</strong> — build a Docker image and keep
  models on a volume; Renest isn't a deployment platform.</li>
  <li><strong>You always rent in the same region</strong> — a network volume already keeps
  your files where the next pod can mount them.</li>
  <li><strong>You only need to undo a bad node update on this machine</strong> — use a
  snapshot.</li>
</ul>

<p>Related: <a href="answers-what-to-back-up.html">What a ComfyUI backup has to include</a> ·
<a href="answers-keep-setup-between-sessions.html">Keep a setup between cloud sessions</a> ·
<a href="docs-pinned-commits-not-latest.html">Pinned, not latest</a></p>
