renest 0.1.24

Guides

After the restore.

A finished restore prints Done and a What's next block built from the nest's own manifest: the command that starts the app, where output lands, and the workflow file that produced the test render. Run renest start --dir <folder> --listen 0.0.0.0 to start the app so your browser can reach it, expose its port in your platform's panel, and copy your outputs off the machine before you terminate it.

A finished restore ends with Done and a What's next block

The restore starts the app only for its own check, then stops it. Its last lines come after the JSON report, so they are the last thing on your screen. Every command and path in them is taken from this nest's own manifest and this machine. Anything the nest doesn't record is left out, not guessed. For an image nest restored into /workspace/run, the end looks like this:

[restore] ✅ Done: … files downloaded, … already here. Took …s. Logs and evidence: /workspace/run/.renest/evidence/…
[restore] Everything is under /workspace/run
[restore] What is yours is under /workspace/run. The toolchain is not part of this nest and is shared with every other rebuild on this machine: …
[restore] What's next:
[restore]   · Start it: renest start --dir /workspace/run --listen 0.0.0.0 — serves it on port 8188; expose 8188 (HTTP) in your provider's panel to open it in your browser — RunPod's proxy only answers on ports opened as HTTP ports.
[restore]   · The same by hand: cd /workspace/run/ComfyUI && /workspace/run/.venv/bin/python main.py --listen 0.0.0.0. (The nest records 127.0.0.1, which answers this machine only — right for the check, not for your browser.)
[restore]   · Then open https://<pod-id>-8188.proxy.runpod.net — paste it into a new tab; clicking it from the provider's console page is refused by ComfyUI (HTTP 403).
[restore]   · Images render into /workspace/run/ComfyUI/output — that is where yours is.
[restore]   · In ComfyUI, open Workflows (left sidebar) → my-run: the workflow this nest was packed from.
[restore]   · Moving to another machine? The same restore command works there too — it reuses what is already fetched and carries on.
[restore]   · The same next steps are on this nest's Restore page in the Renest web console.

Your workflow is in ComfyUI's Workflows sidebar. When the nest carries the workflow the way ComfyUI's editor saves it, the restore puts it in that list, so the app opens on your graph instead of an empty canvas. Nests packed from the Renest panel or with renest pack --auto carry it. With --workflow, add --workflow-ui and the same workflow saved with Save. Older nests have only the API form, which the sidebar can't open. For those, the line says so and tells you how to load it: save the test image from the address it gives and drop it onto the canvas.

Two more lines can appear. One thing still needs you means some places in the nest point at files of your own that were never packed. Read this before you call it done means this machine is missing a system library the working run used. See If a restore stops for that one.

On the base image, upgrade the tool first. The copy of renest built into the base image may be older than the latest release, and an older copy lacks the newest checks and fixes. Run uv tool install --upgrade renest before you restore, and renest --version to see which copy you have.

renest start runs the recorded start command for you

Shell
$ renest start --dir ./run --listen 0.0.0.0

renest start reads what a successful restore left in <folder>/.renest/start.json. It runs the same command the closing lines printed: the same program from the nest's own Python environment, the same working folder and the same environment variables. It prints that command before it runs it.

  • --dir: the folder you restored into. Defaults to the current folder.
  • --listen 0.0.0.0: changes the address the app listens on, so a browser on another computer can reach it. It only changes an address flag the recorded command already has (--listen, --host or --bind). If the command has none, it stops and says so, instead of adding a flag the app may not accept.
  • --port: listen on this port instead of the recorded one, for when something else already holds it.
  • --yes: if the app fails because git, git-lfs or a C compiler is missing, install it without asking and start again (root or password-free sudo only).
  • --dry-run: prints the command, then stops.

It never guesses. If no restore has finished in that folder, or the nest is an older format that records no start command, it says so. Run the command from the closing lines by hand instead. Its exit code is the app's.

To reach it from your browser, listen on 0.0.0.0 and expose the port

ComfyUI nests record the start command the restore's own check needs, --listen 127.0.0.1. That address answers only the machine itself. Opening the port in your platform's panel isn't enough on its own. The app also has to listen on 0.0.0.0, which is what --listen 0.0.0.0 does.

Then expose the port. When ComfyUI starts, it prints the address and port it listens on. With no --port in the start command, it uses its own default, 8188. How to expose a port depends on the platform. On RunPod you add it as an HTTP port on the pod. On vast.ai you map it when you create the instance. See Renest on RunPod and Renest on vast.ai.

Open the address by pasting it into a new browser tab. Clicking the link on the platform's page can give a blank page with HTTP 403: ComfyUI turns away a page opened by a click from another site, and that click counts as one. On RunPod and vast.ai, newer versions of renest start print the address to paste on a line of their own once it listens on 0.0.0.0; if yours doesn't, upgrade with uv tool install --upgrade renest.

If you'd rather not open a port at all, leave the app on 127.0.0.1 and use an SSH tunnel from your own computer:

Shell
$ ssh -N -L 8188:127.0.0.1:8188 root@<machine-address> -p <ssh-port>

Then browse to http://127.0.0.1:8188 on your own computer.

Your output lands in the folder the closing lines name

  • ComfyUI: images go to the output folder inside the ComfyUI folder, for example /workspace/run/ComfyUI/output. The test render from the restore is already there.
  • The workflow that worked is at <folder>/.renest/staging/workflow.json. Drag it into ComfyUI to start from it. If the nest records where the workflow used to live, the restore also puts a copy back there. If a different file is already in that spot, the restore leaves yours alone.
  • Logs from the restore, including the app's own start-up log, are in <folder>/.renest/evidence/<run>/. The Done line names the exact folder.

A fine-tuning nest names the file it produced and the command to train again

For a kohya_ss or LLaMA-Factory nest, the restore runs the packed training once, to the end, instead of starting an app. Nothing is left running. The What's next block then says:

  • Your run's output is at …: the file this nest was packed to produce, such as the trained adapter, at the same path under your restore folder. The restore only counts as finished if that file appeared.
  • To run it again (another epoch, a changed config): …: the training command, with the folder to run it from.

If the nest doesn't name an output file, the block says the run's own log shows where the output went. That log is entrypoint.log in the evidence folder. Running renest start --dir <folder> on a fine-tuning nest runs the training command again.

Copy what you want to keep before you terminate the machine

A rented machine's disk goes when you terminate it. Your nest is safe in your drive, but anything you made on the machine, such as new images, a trained adapter or a workflow you edited, is only on that machine until you copy it off. From your own computer:

Shell
$ scp -P <ssh-port> -r root@<machine-address>:/workspace/run/ComfyUI/output ./my-outputs

rsync -avz -e "ssh -p <ssh-port>" does the same and can resume if the connection drops. If the restore failed and you want help, run renest support --dir ./run on the machine and keep what it prints before you terminate it. See If a restore stops.

If you changed the setup itself and want to keep that, pack it as a new version. See Capture a run.

On another machine, the same restore command carries on

A restore code from the console works on any machine until it expires. Paste the same command on a new machine and it restores there. Run it again on the same machine and it reuses every file already on disk that matches its checksum. If the code has expired, issue a new one from the nest's page in your drive.

These docs describe renest 0.1.24, the latest release.

Open format

The docs describe a format you own.

Everything here is written against the open nest format. Every nest ships a plain restore.sh that brings back its files and dependencies with zero Renest code.