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,