Say what is wrong with it. In English.
"Move the presenter slightly to the right." "Make the background darker." "Replace the office with a trading floor." "Add stronger rim lighting."
What happens
The instruction is read before it is executed.
Your vision model looks at the current image and your sentence together, and produces a plan: which of thirteen edit kinds this is, a prompt for a real edit endpoint, a full re-description for providers that have none, whether a mask is needed, and what must not change.
Where an edit endpoint exists
The change goes straight to it, with your mask when you painted one, and only the region you marked is repainted.
Where it does not
The model re-describes the whole image with the change applied, in enough detail that everything you did not ask to change comes back. It is honest about the difference rather than failing.
Masks
Change one object, not the picture.
Brush, eraser, rectangle, polygon and invert. Paint what may change; everything you leave alone stays exactly as it is. "Replace only this object with a microphone" is a sentence and a smear of paint, and that is the whole interaction.
History
A tree, not a stack.
Every edit saves a new generation whose parent is the one you edited, so undo walks back up the chain and redo walks down whichever branch you took. Compare puts before and after side by side. Restore jumps to any point. Branching from an earlier version costs nothing, because nothing was ever overwritten.