diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json
index e06804772b..94e05f791c 100644
--- a/invokeai/frontend/web/public/locales/en.json
+++ b/invokeai/frontend/web/public/locales/en.json
@@ -583,6 +583,7 @@
"strength": "Image to image strength",
"Threshold": "Noise Threshold",
"variations": "Seed-weight pairs",
+ "vae": "VAE",
"width": "Width",
"workflow": "Workflow"
},
diff --git a/invokeai/frontend/web/src/features/gallery/components/ImageMetadataViewer/ImageMetadataActions.tsx b/invokeai/frontend/web/src/features/gallery/components/ImageMetadataViewer/ImageMetadataActions.tsx
index 4e4531d268..3ca554cb84 100644
--- a/invokeai/frontend/web/src/features/gallery/components/ImageMetadataViewer/ImageMetadataActions.tsx
+++ b/invokeai/frontend/web/src/features/gallery/components/ImageMetadataViewer/ImageMetadataActions.tsx
@@ -31,6 +31,7 @@ const ImageMetadataActions = (props: Props) => {
recallCfgScale,
recallModel,
recallScheduler,
+ recallVaeModel,
recallSteps,
recallWidth,
recallHeight,
@@ -72,6 +73,10 @@ const ImageMetadataActions = (props: Props) => {
recallScheduler(metadata?.scheduler);
}, [metadata?.scheduler, recallScheduler]);
+ const handleRecallVaeModel = useCallback(() => {
+ recallVaeModel(metadata?.vae);
+ }, [metadata?.vae, recallVaeModel]);
+
const handleRecallSteps = useCallback(() => {
recallSteps(metadata?.steps);
}, [metadata?.steps, recallSteps]);
@@ -219,6 +224,11 @@ const ImageMetadataActions = (props: Props) => {
onClick={handleRecallScheduler}
/>
)}
+
{metadata.steps && (
{
[dispatch, parameterSetToast, parameterNotSetToast]
);
+ /**
+ * Recall vae model
+ */
+ const recallVaeModel = useCallback(
+ (vae: unknown) => {
+ if (!isValidVaeModel(vae) && !isNil(vae)) {
+ parameterNotSetToast();
+ return;
+ }
+ if (isNil(vae)) {
+ dispatch(vaeSelected(null));
+ } else {
+ dispatch(vaeSelected(vae));
+ }
+ parameterSetToast();
+ },
+ [dispatch, parameterSetToast, parameterNotSetToast]
+ );
+
/**
* Recall steps with toast
*/
@@ -757,6 +779,7 @@ export const useRecallParameters = () => {
positive_prompt,
negative_prompt,
scheduler,
+ vae,
seed,
steps,
width,
@@ -798,6 +821,13 @@ export const useRecallParameters = () => {
if (isValidScheduler(scheduler)) {
dispatch(setScheduler(scheduler));
}
+ if (isValidVaeModel(vae) || isNil(vae)) {
+ if (isNil(vae)) {
+ dispatch(vaeSelected(null));
+ } else {
+ dispatch(vaeSelected(vae));
+ }
+ }
if (isValidSeed(seed)) {
dispatch(setSeed(seed));
@@ -932,6 +962,7 @@ export const useRecallParameters = () => {
recallCfgScale,
recallModel,
recallScheduler,
+ recallVaeModel,
recallSteps,
recallWidth,
recallHeight,