Fix Approx NN previews changing first generation result #7151
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe what this pull request is trying to achieve.
The loading of the model for approx nn live previews can change the internal state of PyTorch (at least for MPS), resulting in a different image.
For example, here is the first generation of a image with approx nn previews:
All generations afterwards with the exact same settings result in:
If approx nn is not used, the image generated will always be the same as the second generation with approx nn turned on.
To avoid generating a different result with the first generation with approx nn turned on, this PR preloads the approx nn model before starting sampling if approx nn live previews are turned on.
Environment this was tested in