mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
refactor(ui): update size/prompts state
This commit is contained in:
@ -1,11 +1,7 @@
|
||||
import { useStore } from '@nanostores/react';
|
||||
import { createMemoizedSelector } from 'app/store/createMemoizedSelector';
|
||||
import { useAppSelector } from 'app/store/storeHooks';
|
||||
import { selectControlAdaptersV2Slice } from 'features/controlLayers/store/controlAdaptersSlice';
|
||||
import { selectCanvasV2Slice } from 'features/controlLayers/store/canvasV2Slice';
|
||||
import { selectIPAdaptersSlice } from 'features/controlLayers/store/ipAdaptersSlice';
|
||||
import { selectLayersSlice } from 'features/controlLayers/store/layersSlice';
|
||||
import { selectRegionalGuidanceSlice } from 'features/controlLayers/store/regionalGuidanceSlice';
|
||||
import type { CanvasEntity } from 'features/controlLayers/store/types';
|
||||
import { selectDynamicPromptsSlice } from 'features/dynamicPrompts/store/dynamicPromptsSlice';
|
||||
import { getShouldProcessPrompt } from 'features/dynamicPrompts/util/getShouldProcessPrompt';
|
||||
@ -40,32 +36,13 @@ const createSelector = (templates: Templates) =>
|
||||
selectWorkflowSettingsSlice,
|
||||
selectDynamicPromptsSlice,
|
||||
selectCanvasV2Slice,
|
||||
selectLayersSlice,
|
||||
selectControlAdaptersV2Slice,
|
||||
selectRegionalGuidanceSlice,
|
||||
selectIPAdaptersSlice,
|
||||
activeTabNameSelector,
|
||||
selectUpscalelice,
|
||||
selectConfigSlice,
|
||||
activeTabNameSelector,
|
||||
],
|
||||
(
|
||||
generation,
|
||||
system,
|
||||
nodes,
|
||||
workflowSettings,
|
||||
dynamicPrompts,
|
||||
canvasV2,
|
||||
layersState,
|
||||
controlAdaptersState,
|
||||
regionalGuidanceState,
|
||||
ipAdaptersState,
|
||||
activeTabName,
|
||||
upscale,
|
||||
config
|
||||
) => {
|
||||
const { model } = generation;
|
||||
const { size } = canvasV2;
|
||||
const { positivePrompt } = canvasV2.prompts;
|
||||
(generation, system, nodes, workflowSettings, dynamicPrompts, canvasV2, upscale, config, activeTabName) => {
|
||||
const { model, positivePrompt } = generation;
|
||||
const { bbox } = canvasV2;
|
||||
|
||||
const { isConnected } = system;
|
||||
|
||||
@ -149,7 +126,7 @@ const createSelector = (templates: Templates) =>
|
||||
reasons.push({ content: i18n.t('parameters.invoke.noModelSelected') });
|
||||
}
|
||||
|
||||
controlAdaptersState.controlAdapters
|
||||
canvasV2.controlAdapters
|
||||
.filter((ca) => ca.isEnabled)
|
||||
.forEach((ca, i) => {
|
||||
const layerLiteral = i18n.t('controlLayers.layers_one');
|
||||
@ -174,7 +151,7 @@ const createSelector = (templates: Templates) =>
|
||||
// T2I Adapters require images have dimensions that are multiples of 64 (SD1.5) or 32 (SDXL)
|
||||
if (!ca.controlMode) {
|
||||
const multiple = model?.base === 'sdxl' ? 32 : 64;
|
||||
if (size.width % multiple !== 0 || size.height % multiple !== 0) {
|
||||
if (bbox.width % multiple !== 0 || bbox.height % multiple !== 0) {
|
||||
problems.push(i18n.t('parameters.invoke.layer.t2iAdapterIncompatibleDimensions', { multiple }));
|
||||
}
|
||||
}
|
||||
@ -185,7 +162,7 @@ const createSelector = (templates: Templates) =>
|
||||
}
|
||||
});
|
||||
|
||||
ipAdaptersState.ipAdapters
|
||||
canvasV2.ipAdapters
|
||||
.filter((ipa) => ipa.isEnabled)
|
||||
.forEach((ipa, i) => {
|
||||
const layerLiteral = i18n.t('controlLayers.layers_one');
|
||||
@ -213,7 +190,7 @@ const createSelector = (templates: Templates) =>
|
||||
}
|
||||
});
|
||||
|
||||
regionalGuidanceState.regions
|
||||
canvasV2.regions
|
||||
.filter((rg) => rg.isEnabled)
|
||||
.forEach((rg, i) => {
|
||||
const layerLiteral = i18n.t('controlLayers.layers_one');
|
||||
@ -250,7 +227,7 @@ const createSelector = (templates: Templates) =>
|
||||
}
|
||||
});
|
||||
|
||||
layersState.layers
|
||||
canvasV2.layers
|
||||
.filter((l) => l.isEnabled)
|
||||
.forEach((l, i) => {
|
||||
const layerLiteral = i18n.t('controlLayers.layers_one');
|
||||
|
Reference in New Issue
Block a user