restore
Repair missing generated files without buying new generations. It prefers
validated local content-addressed cache bytes and otherwise reuses provider
references. It never replaces a destination whose bytes disagree with the lock
unless --force says to: restore --force puts the recorded bytes back over
a file that was changed after download (an orphaned plan entry), discarding
that change. Copy it aside, or declare it with edit, first.
pixelkiln restore --only anvil --style base --generation 1
pixelkiln restore --only anvil --style base --generation d14b73af
--generation brings a replaced generation back instead. 1 is the most
recently replaced (see history); a prefix of one of its output
hashes also works. The current generation moves into the asset's history and
the chosen one becomes current again, so its object id, hashes, prompt, and
cost are the record. Its bytes are written back from the local content cache,
or re-downloaded from its durable provider reference when the cache no longer
has them. Nothing is generated and nothing upstream changes, so a restore can
be undone the same way. The file being replaced holds the outgoing
generation's own bytes, so --force is only needed if it was changed by hand
since. One asset at a time.