From c38fe8025dcfd4a91bd719b735c197d08b9077f0 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Sat, 17 Aug 2024 08:39:10 +1000 Subject: [PATCH] fix(ui): rebase conflicts --- invokeai/frontend/web/src/app/store/storeHooks.ts | 4 ++-- .../controlLayers/components/AddPromptButtons.tsx | 4 +--- .../controlLayers/hooks/useEntitySelectionColor.ts | 4 ++-- .../web/src/features/controlLayers/store/bboxReducers.ts | 3 --- .../nodes/util/graph/generation/buildSDXLGraph.ts | 4 ++-- .../features/parameters/components/Prompts/Prompts.tsx | 9 ++++----- .../stylePresets/components/ActiveStylePreset.tsx | 2 +- .../stylePresets/hooks/usePresetModifiedPrompts.ts | 3 ++- 8 files changed, 14 insertions(+), 19 deletions(-) diff --git a/invokeai/frontend/web/src/app/store/storeHooks.ts b/invokeai/frontend/web/src/app/store/storeHooks.ts index 632ea76332..7f93819c3a 100644 --- a/invokeai/frontend/web/src/app/store/storeHooks.ts +++ b/invokeai/frontend/web/src/app/store/storeHooks.ts @@ -1,8 +1,8 @@ -import type { AppStore, AppThunkDispatch, RootState } from 'app/store/store'; +import type { AppThunkDispatch, RootState } from 'app/store/store'; import type { TypedUseSelectorHook } from 'react-redux'; import {useDispatch, useSelector, useStore } from 'react-redux'; // Use throughout your app instead of plain `useDispatch` and `useSelector` export const useAppDispatch = () => useDispatch(); export const useAppSelector: TypedUseSelectorHook = useSelector; -export const useAppStore = () => useStore(); +export const useAppStore = () => useStore(); diff --git a/invokeai/frontend/web/src/features/controlLayers/components/AddPromptButtons.tsx b/invokeai/frontend/web/src/features/controlLayers/components/AddPromptButtons.tsx index 4b0804c982..aa05176e38 100644 --- a/invokeai/frontend/web/src/features/controlLayers/components/AddPromptButtons.tsx +++ b/invokeai/frontend/web/src/features/controlLayers/components/AddPromptButtons.tsx @@ -40,9 +40,7 @@ export const AddPromptButtons = ({ id }: AddPromptButtonProps) => { dispatch(rgNegativePromptChanged({ id, prompt: '' })); }, [dispatch, id]); const addIPAdapter = useCallback(() => { - dispatch( - rgIPAdapterAdded({ id, ipAdapter: { ...defaultIPAdapter, id: nanoid(), type: 'ip_adapter', isEnabled: true } }) - ); + dispatch(rgIPAdapterAdded({ id, ipAdapter: { ...defaultIPAdapter, id: nanoid() } })); }, [defaultIPAdapter, dispatch, id]); return ( diff --git a/invokeai/frontend/web/src/features/controlLayers/hooks/useEntitySelectionColor.ts b/invokeai/frontend/web/src/features/controlLayers/hooks/useEntitySelectionColor.ts index 48f5698589..2815577bff 100644 --- a/invokeai/frontend/web/src/features/controlLayers/hooks/useEntitySelectionColor.ts +++ b/invokeai/frontend/web/src/features/controlLayers/hooks/useEntitySelectionColor.ts @@ -13,9 +13,9 @@ export const useEntitySelectionColor = (entityIdentifier: CanvasEntityIdentifier if (!entity) { return 'base.400'; } else if (entity.type === 'inpaint_mask') { - return rgbColorToString(entity.fill); + return rgbColorToString(entity.fill.color); } else if (entity.type === 'regional_guidance') { - return rgbColorToString(entity.fill); + return rgbColorToString(entity.fill.color); } else { return 'base.400'; } diff --git a/invokeai/frontend/web/src/features/controlLayers/store/bboxReducers.ts b/invokeai/frontend/web/src/features/controlLayers/store/bboxReducers.ts index 8ac6d4ea4f..d414144a3c 100644 --- a/invokeai/frontend/web/src/features/controlLayers/store/bboxReducers.ts +++ b/invokeai/frontend/web/src/features/controlLayers/store/bboxReducers.ts @@ -12,12 +12,10 @@ import { pick } from 'lodash-es'; export const bboxReducers = { bboxScaledSizeChanged: (state, action: PayloadAction>) => { - state.rasterLayers.imageCache = null; state.bbox.scaledSize = { ...state.bbox.scaledSize, ...action.payload }; }, bboxScaleMethodChanged: (state, action: PayloadAction) => { state.bbox.scaleMethod = action.payload; - state.rasterLayers.imageCache = null; if (action.payload === 'auto') { const optimalDimension = getOptimalDimension(state.params.model); @@ -27,7 +25,6 @@ export const bboxReducers = { }, bboxChanged: (state, action: PayloadAction) => { state.bbox.rect = action.payload; - state.rasterLayers.imageCache = null; if (state.bbox.scaleMethod === 'auto') { const optimalDimension = getOptimalDimension(state.params.model); diff --git a/invokeai/frontend/web/src/features/nodes/util/graph/generation/buildSDXLGraph.ts b/invokeai/frontend/web/src/features/nodes/util/graph/generation/buildSDXLGraph.ts index 98fadc83e2..031873c1e9 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graph/generation/buildSDXLGraph.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graph/generation/buildSDXLGraph.ts @@ -27,7 +27,7 @@ import { addSeamless } from 'features/nodes/util/graph/generation/addSeamless'; import { addTextToImage } from 'features/nodes/util/graph/generation/addTextToImage'; import { addWatermarker } from 'features/nodes/util/graph/generation/addWatermarker'; import { Graph } from 'features/nodes/util/graph/generation/Graph'; -import { getBoardField, getSDXLStylePrompts, getSizes } from 'features/nodes/util/graph/graphBuilderUtils'; +import { getBoardField, getPresetModifiedPrompts, getSizes } from 'features/nodes/util/graph/graphBuilderUtils'; import type { Invocation } from 'services/api/types'; import { isNonRefinerMainModelConfig } from 'services/api/types'; import { assert } from 'tsafe'; @@ -61,7 +61,7 @@ export const buildSDXLGraph = async (state: RootState, manager: CanvasManager): const { originalSize, scaledSize } = getSizes(bbox); - const { positiveStylePrompt, negativeStylePrompt } = getSDXLStylePrompts(state); + const { positiveStylePrompt, negativeStylePrompt } = getPresetModifiedPrompts(state); const g = new Graph(SDXL_CONTROL_LAYERS_GRAPH); const modelLoader = g.addNode({ diff --git a/invokeai/frontend/web/src/features/parameters/components/Prompts/Prompts.tsx b/invokeai/frontend/web/src/features/parameters/components/Prompts/Prompts.tsx index c41f929ae9..44286d517b 100644 --- a/invokeai/frontend/web/src/features/parameters/components/Prompts/Prompts.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/Prompts/Prompts.tsx @@ -1,18 +1,17 @@ import { Flex } from '@invoke-ai/ui-library'; import { createSelector } from '@reduxjs/toolkit'; import { useAppSelector } from 'app/store/storeHooks'; -import { selectControlLayersSlice } from 'features/controlLayers/store/controlLayersSlice'; +import { selectCanvasV2Slice } from 'features/controlLayers/store/canvasV2Slice'; import { ParamNegativePrompt } from 'features/parameters/components/Core/ParamNegativePrompt'; import { ParamPositivePrompt } from 'features/parameters/components/Core/ParamPositivePrompt'; -import { selectGenerationSlice } from 'features/parameters/store/generationSlice'; import { ParamSDXLNegativeStylePrompt } from 'features/sdxl/components/SDXLPrompts/ParamSDXLNegativeStylePrompt'; import { ParamSDXLPositiveStylePrompt } from 'features/sdxl/components/SDXLPrompts/ParamSDXLPositiveStylePrompt'; import { memo } from 'react'; const concatPromptsSelector = createSelector( - [selectGenerationSlice, selectControlLayersSlice], - (generation, controlLayers) => { - return generation.model?.base !== 'sdxl' || controlLayers.present.shouldConcatPrompts; + [selectCanvasV2Slice], + (canvasV2) => { + return canvasV2.params.model?.base !== 'sdxl' || canvasV2.params.shouldConcatPrompts; } ); diff --git a/invokeai/frontend/web/src/features/stylePresets/components/ActiveStylePreset.tsx b/invokeai/frontend/web/src/features/stylePresets/components/ActiveStylePreset.tsx index 8a68ce6396..39f1dd0d3f 100644 --- a/invokeai/frontend/web/src/features/stylePresets/components/ActiveStylePreset.tsx +++ b/invokeai/frontend/web/src/features/stylePresets/components/ActiveStylePreset.tsx @@ -1,6 +1,6 @@ import { Badge, Flex, IconButton, Spacer, Text, Tooltip } from '@invoke-ai/ui-library'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; -import { negativePromptChanged, positivePromptChanged } from 'features/controlLayers/store/controlLayersSlice'; +import { negativePromptChanged, positivePromptChanged } from 'features/controlLayers/store/canvasV2Slice'; import { usePresetModifiedPrompts } from 'features/stylePresets/hooks/usePresetModifiedPrompts'; import { activeStylePresetIdChanged, viewModeChanged } from 'features/stylePresets/store/stylePresetSlice'; import type { MouseEventHandler } from 'react'; diff --git a/invokeai/frontend/web/src/features/stylePresets/hooks/usePresetModifiedPrompts.ts b/invokeai/frontend/web/src/features/stylePresets/hooks/usePresetModifiedPrompts.ts index 4a136d1d71..661a697231 100644 --- a/invokeai/frontend/web/src/features/stylePresets/hooks/usePresetModifiedPrompts.ts +++ b/invokeai/frontend/web/src/features/stylePresets/hooks/usePresetModifiedPrompts.ts @@ -10,7 +10,8 @@ export const buildPresetModifiedPrompt = (presetPrompt: string, currentPrompt: s }; export const usePresetModifiedPrompts = () => { - const { positivePrompt, negativePrompt } = useAppSelector((s) => s.canvasV2.prompts); + const positivePrompt = useAppSelector((s) => s.canvasV2.params.positivePrompt); + const negativePrompt = useAppSelector((s) => s.canvasV2.params.negativePrompt); const activeStylePresetId = useAppSelector((s) => s.stylePreset.activeStylePresetId);