mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
feat(ui): migrate all metadata recall logic to new system
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import { objectKeys } from 'common/util/objectKeys';
|
||||
import { toast } from 'common/util/toast';
|
||||
import type { ControlAdapterConfig } from 'features/controlAdapters/store/types';
|
||||
import type { LoRA } from 'features/lora/store/loraSlice';
|
||||
@ -312,3 +313,75 @@ export const handlers = {
|
||||
renderItemValue: renderControlAdapterValue,
|
||||
}),
|
||||
} as const;
|
||||
|
||||
export const parseAndRecallPrompts = async (metadata: unknown) => {
|
||||
const results = await Promise.allSettled([
|
||||
handlers.positivePrompt.parse(metadata).then((positivePrompt) => {
|
||||
if (!handlers.positivePrompt.recall) {
|
||||
return;
|
||||
}
|
||||
handlers.positivePrompt?.recall(positivePrompt);
|
||||
}),
|
||||
handlers.negativePrompt.parse(metadata).then((negativePrompt) => {
|
||||
if (!handlers.negativePrompt.recall) {
|
||||
return;
|
||||
}
|
||||
handlers.negativePrompt?.recall(negativePrompt);
|
||||
}),
|
||||
handlers.sdxlPositiveStylePrompt.parse(metadata).then((sdxlPositiveStylePrompt) => {
|
||||
if (!handlers.sdxlPositiveStylePrompt.recall) {
|
||||
return;
|
||||
}
|
||||
handlers.sdxlPositiveStylePrompt?.recall(sdxlPositiveStylePrompt);
|
||||
}),
|
||||
handlers.sdxlNegativeStylePrompt.parse(metadata).then((sdxlNegativeStylePrompt) => {
|
||||
if (!handlers.sdxlNegativeStylePrompt.recall) {
|
||||
return;
|
||||
}
|
||||
handlers.sdxlNegativeStylePrompt?.recall(sdxlNegativeStylePrompt);
|
||||
}),
|
||||
]);
|
||||
if (results.some((result) => result.status === 'fulfilled')) {
|
||||
parameterSetToast(t('metadata.allPrompts'));
|
||||
}
|
||||
};
|
||||
|
||||
export const parseAndRecallImageDimensions = async (metadata: unknown) => {
|
||||
const results = await Promise.allSettled([
|
||||
handlers.width.parse(metadata).then((width) => {
|
||||
if (!handlers.width.recall) {
|
||||
return;
|
||||
}
|
||||
handlers.width?.recall(width);
|
||||
}),
|
||||
handlers.height.parse(metadata).then((height) => {
|
||||
if (!handlers.height.recall) {
|
||||
return;
|
||||
}
|
||||
handlers.height?.recall(height);
|
||||
}),
|
||||
]);
|
||||
if (results.some((result) => result.status === 'fulfilled')) {
|
||||
parameterSetToast(t('metadata.imageDimensions'));
|
||||
}
|
||||
};
|
||||
|
||||
export const parseAndRecallAllMetadata = async (metadata: unknown, skip: (keyof typeof handlers)[] = []) => {
|
||||
const results = await Promise.allSettled(
|
||||
objectKeys(handlers)
|
||||
.filter((key) => !skip.includes(key))
|
||||
.map((key) => {
|
||||
const { parse, recall } = handlers[key];
|
||||
return parse(metadata).then((value) => {
|
||||
if (!recall) {
|
||||
return;
|
||||
}
|
||||
/* @ts-expect-error The return type of parse and the input type of recall are guaranteed to be compatible. */
|
||||
recall(value);
|
||||
});
|
||||
})
|
||||
);
|
||||
if (results.some((result) => result.status === 'fulfilled')) {
|
||||
parameterSetToast(t('toast.parametersSet'));
|
||||
}
|
||||
};
|
||||
|
@ -203,62 +203,6 @@ const recallIPAdapters: MetadataRecallFunc<IPAdapterConfig[]> = (ipAdapters) =>
|
||||
});
|
||||
};
|
||||
|
||||
export const recallPrompts = (_metadata: unknown) => {
|
||||
// recallPositivePrompt(metadata);
|
||||
// recallNegativePrompt(metadata);
|
||||
// recallSDXLPositiveStylePrompt(metadata);
|
||||
// recallSDXLNegativeStylePrompt(metadata);
|
||||
// parameterNotSetToast(t('metadata.allPrompts'));
|
||||
// parameterSetToast(t('metadata.allPrompts'));
|
||||
};
|
||||
|
||||
export const recallWidthAndHeight = (_metadata: unknown) => {
|
||||
// recallWidth(metadata);
|
||||
// recallHeight(metadata);
|
||||
};
|
||||
|
||||
export const recallAll = async (_metadata: unknown) => {
|
||||
// if (!metadata) {
|
||||
// allParameterNotSetToast();
|
||||
// return;
|
||||
// }
|
||||
// // Update the main model first, as other parameters may depend on it.
|
||||
// await recallModel(metadata);
|
||||
// await Promise.allSettled([
|
||||
// // Core parameters
|
||||
// recallCFGScale(metadata),
|
||||
// recallCFGRescaleMultiplier(metadata),
|
||||
// recallPositivePrompt(metadata),
|
||||
// recallNegativePrompt(metadata),
|
||||
// recallScheduler(metadata),
|
||||
// recallSeed(metadata),
|
||||
// recallSteps(metadata),
|
||||
// recallWidth(metadata),
|
||||
// recallHeight(metadata),
|
||||
// recallStrength(metadata),
|
||||
// recallHRFEnabled(metadata),
|
||||
// recallHRFMethod(metadata),
|
||||
// recallHRFStrength(metadata),
|
||||
// // SDXL parameters
|
||||
// recallSDXLPositiveStylePrompt(metadata),
|
||||
// recallSDXLNegativeStylePrompt(metadata),
|
||||
// recallRefinerSteps(metadata),
|
||||
// recallRefinerCFGScale(metadata),
|
||||
// recallRefinerScheduler(metadata),
|
||||
// recallRefinerPositiveAestheticScore(metadata),
|
||||
// recallRefinerNegativeAestheticScore(metadata),
|
||||
// recallRefinerStart(metadata),
|
||||
// // Models
|
||||
// recallVAE(metadata),
|
||||
// recallRefinerModel(metadata),
|
||||
// recallAllLoRAs(metadata),
|
||||
// recallControlNets(metadata),
|
||||
// recallT2IAdapters(metadata),
|
||||
// recallIPAdapters(metadata),
|
||||
// ]);
|
||||
// allParameterSetToast();
|
||||
};
|
||||
|
||||
export const recallers = {
|
||||
positivePrompt: recallPositivePrompt,
|
||||
negativePrompt: recallNegativePrompt,
|
||||
|
Reference in New Issue
Block a user