From 40e6dd8464a39f9b312c565b3615d78055f128ae Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu, 24 Aug 2023 12:22:17 +1000 Subject: [PATCH] feat(ui): use seed + 1 for second inpaint/outpaint pass --- invokeai/frontend/web/public/locales/en.json | 6 +- .../util/graphBuilders/addLoRAsToGraph.ts | 4 +- .../util/graphBuilders/addSDXLLoRAstoGraph.ts | 4 +- .../graphBuilders/buildCanvasInpaintGraph.ts | 52 ++++++++--------- .../graphBuilders/buildCanvasOutpaintGraph.ts | 54 +++++++++--------- .../buildCanvasSDXLInpaintGraph.ts | 54 +++++++++--------- .../buildCanvasSDXLOutpaintGraph.ts | 56 ++++++++++--------- .../nodes/util/graphBuilders/constants.ts | 8 ++- .../ParamCanvasCoherencePassCollapse.tsx | 21 +++++++ ...teps.tsx => ParamCanvasCoherenceSteps.tsx} | 18 +++--- ...h.tsx => ParamCanvasCoherenceStrength.tsx} | 18 +++--- .../ParamCanvasRefinePassCollapse.tsx | 21 ------- .../parameters/store/generationSlice.ts | 20 +++---- .../SDXLUnifiedCanvasTabParameters.tsx | 4 +- .../UnifiedCanvas/UnifiedCanvasParameters.tsx | 4 +- 15 files changed, 177 insertions(+), 167 deletions(-) create mode 100644 invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherencePassCollapse.tsx rename invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/{ParamCanvasRefineSteps.tsx => ParamCanvasCoherenceSteps.tsx} (56%) rename invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/{ParamCanvasRefineStrength.tsx => ParamCanvasCoherenceStrength.tsx} (54%) delete mode 100644 invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefinePassCollapse.tsx diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json index 0bddc07bac..e39f438146 100644 --- a/invokeai/frontend/web/public/locales/en.json +++ b/invokeai/frontend/web/public/locales/en.json @@ -509,9 +509,9 @@ "maskAdjustmentsHeader": "Mask Adjustments", "maskBlur": "Mask Blur", "maskBlurMethod": "Mask Blur Method", - "refinePassHeader": "Refine Pass", - "refineSteps": "Refine Steps", - "refineStrength": "Refine Strength", + "coherencePassHeader": "Coherence Pass", + "coherenceSteps": "Coherence Pass Steps", + "coherenceStrength": "Coherence Pass Strength", "seamLowThreshold": "Low", "seamHighThreshold": "High", "scaleBeforeProcessing": "Scale Before Processing", diff --git a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/addLoRAsToGraph.ts b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/addLoRAsToGraph.ts index 602af2242e..e199a78a20 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/addLoRAsToGraph.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/addLoRAsToGraph.ts @@ -8,7 +8,7 @@ import { import { CANVAS_INPAINT_GRAPH, CANVAS_OUTPAINT_GRAPH, - CANVAS_REFINE_DENOISE_LATENTS, + CANVAS_COHERENCE_DENOISE_LATENTS, CLIP_SKIP, LORA_LOADER, MAIN_MODEL_LOADER, @@ -149,7 +149,7 @@ export const addLoRAsToGraph = ( field: 'unet', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'unet', }, }); diff --git a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/addSDXLLoRAstoGraph.ts b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/addSDXLLoRAstoGraph.ts index 56423bd031..a52264ca8e 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/addSDXLLoRAstoGraph.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/addSDXLLoRAstoGraph.ts @@ -6,7 +6,7 @@ import { SDXLLoraLoaderInvocation, } from 'services/api/types'; import { - CANVAS_REFINE_DENOISE_LATENTS, + CANVAS_COHERENCE_DENOISE_LATENTS, LORA_LOADER, METADATA_ACCUMULATOR, NEGATIVE_CONDITIONING, @@ -178,7 +178,7 @@ export const addSDXLLoRAsToGraph = ( field: 'unet', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'unet', }, }); diff --git a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasInpaintGraph.ts b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasInpaintGraph.ts index 330052a5a6..4b017340cb 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasInpaintGraph.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasInpaintGraph.ts @@ -17,9 +17,9 @@ import { addWatermarkerToGraph } from './addWatermarkerToGraph'; import { CANVAS_INPAINT_GRAPH, CANVAS_OUTPUT, - CANVAS_REFINE_DENOISE_LATENTS, - CANVAS_REFINE_NOISE, - CANVAS_REFINE_NOISE_INCREMENT, + CANVAS_COHERENCE_DENOISE_LATENTS, + CANVAS_COHERENCE_NOISE, + CANVAS_COHERENCE_NOISE_INCREMENT, CLIP_SKIP, DENOISE_LATENTS, INPAINT_IMAGE, @@ -63,8 +63,8 @@ export const buildCanvasInpaintGraph = ( shouldUseCpuNoise, maskBlur, maskBlurMethod, - canvasRefineSteps, - canvasRefineStrength, + canvasCoherenceSteps, + canvasCoherenceStrength, clipSkip, } = state.generation; @@ -143,26 +143,26 @@ export const buildCanvasInpaintGraph = ( denoising_start: 1 - strength, denoising_end: 1, }, - [CANVAS_REFINE_NOISE]: { + [CANVAS_COHERENCE_NOISE]: { type: 'noise', id: NOISE, use_cpu, is_intermediate: true, }, - [CANVAS_REFINE_NOISE_INCREMENT]: { + [CANVAS_COHERENCE_NOISE_INCREMENT]: { type: 'add', - id: CANVAS_REFINE_NOISE_INCREMENT, + id: CANVAS_COHERENCE_NOISE_INCREMENT, b: 1, is_intermediate: true, }, - [CANVAS_REFINE_DENOISE_LATENTS]: { + [CANVAS_COHERENCE_DENOISE_LATENTS]: { type: 'denoise_latents', id: DENOISE_LATENTS, is_intermediate: true, - steps: canvasRefineSteps, + steps: canvasCoherenceSteps, cfg_scale: cfg_scale, scheduler: scheduler, - denoising_start: 1 - canvasRefineStrength, + denoising_start: 1 - canvasCoherenceStrength, denoising_end: 1, }, [LATENTS_TO_IMAGE]: { @@ -314,17 +314,17 @@ export const buildCanvasInpaintGraph = ( field: 'item', }, destination: { - node_id: CANVAS_REFINE_NOISE_INCREMENT, + node_id: CANVAS_COHERENCE_NOISE_INCREMENT, field: 'a', }, }, { source: { - node_id: CANVAS_REFINE_NOISE_INCREMENT, + node_id: CANVAS_COHERENCE_NOISE_INCREMENT, field: 'value', }, destination: { - node_id: CANVAS_REFINE_NOISE, + node_id: CANVAS_COHERENCE_NOISE, field: 'seed', }, }, @@ -334,7 +334,7 @@ export const buildCanvasInpaintGraph = ( field: 'unet', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'unet', }, }, @@ -344,7 +344,7 @@ export const buildCanvasInpaintGraph = ( field: 'conditioning', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'positive_conditioning', }, }, @@ -354,17 +354,17 @@ export const buildCanvasInpaintGraph = ( field: 'conditioning', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'negative_conditioning', }, }, { source: { - node_id: CANVAS_REFINE_NOISE, + node_id: CANVAS_COHERENCE_NOISE, field: 'noise', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'noise', }, }, @@ -374,14 +374,14 @@ export const buildCanvasInpaintGraph = ( field: 'latents', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'latents', }, }, // Decode Inpainted Latents To Image { source: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'latents', }, destination: { @@ -431,8 +431,10 @@ export const buildCanvasInpaintGraph = ( (graph.nodes[NOISE] as NoiseInvocation).width = scaledWidth; (graph.nodes[NOISE] as NoiseInvocation).height = scaledHeight; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).width = scaledWidth; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).height = scaledHeight; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).width = + scaledWidth; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).height = + scaledHeight; // Connect Nodes graph.edges.push( @@ -503,8 +505,8 @@ export const buildCanvasInpaintGraph = ( // Add Images To Nodes (graph.nodes[NOISE] as NoiseInvocation).width = width; (graph.nodes[NOISE] as NoiseInvocation).height = height; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).width = width; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).height = height; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).width = width; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).height = height; graph.nodes[INPAINT_IMAGE] = { ...(graph.nodes[INPAINT_IMAGE] as ImageToLatentsInvocation), diff --git a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasOutpaintGraph.ts b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasOutpaintGraph.ts index 82ddea87b8..9f424d3dcf 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasOutpaintGraph.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasOutpaintGraph.ts @@ -19,9 +19,9 @@ import { addWatermarkerToGraph } from './addWatermarkerToGraph'; import { CANVAS_OUTPAINT_GRAPH, CANVAS_OUTPUT, - CANVAS_REFINE_DENOISE_LATENTS, - CANVAS_REFINE_NOISE, - CANVAS_REFINE_NOISE_INCREMENT, + CANVAS_COHERENCE_DENOISE_LATENTS, + CANVAS_COHERENCE_NOISE, + CANVAS_COHERENCE_NOISE_INCREMENT, CLIP_SKIP, DENOISE_LATENTS, INPAINT_IMAGE, @@ -69,8 +69,8 @@ export const buildCanvasOutpaintGraph = ( shouldUseCpuNoise, maskBlur, maskBlurMethod, - canvasRefineSteps, - canvasRefineStrength, + canvasCoherenceSteps, + canvasCoherenceStrength, tileSize, infillMethod, clipSkip, @@ -163,26 +163,26 @@ export const buildCanvasOutpaintGraph = ( denoising_start: 1 - strength, denoising_end: 1, }, - [CANVAS_REFINE_NOISE]: { + [CANVAS_COHERENCE_NOISE]: { type: 'noise', id: NOISE, use_cpu, is_intermediate: true, }, - [CANVAS_REFINE_NOISE_INCREMENT]: { + [CANVAS_COHERENCE_NOISE_INCREMENT]: { type: 'add', - id: CANVAS_REFINE_NOISE_INCREMENT, + id: CANVAS_COHERENCE_NOISE_INCREMENT, b: 1, is_intermediate: true, }, - [CANVAS_REFINE_DENOISE_LATENTS]: { + [CANVAS_COHERENCE_DENOISE_LATENTS]: { type: 'denoise_latents', - id: CANVAS_REFINE_DENOISE_LATENTS, + id: CANVAS_COHERENCE_DENOISE_LATENTS, is_intermediate: true, - steps: canvasRefineSteps, + steps: canvasCoherenceSteps, cfg_scale: cfg_scale, scheduler: scheduler, - denoising_start: 1 - canvasRefineStrength, + denoising_start: 1 - canvasCoherenceStrength, denoising_end: 1, }, [LATENTS_TO_IMAGE]: { @@ -355,17 +355,17 @@ export const buildCanvasOutpaintGraph = ( field: 'item', }, destination: { - node_id: CANVAS_REFINE_NOISE_INCREMENT, + node_id: CANVAS_COHERENCE_NOISE_INCREMENT, field: 'a', }, }, { source: { - node_id: CANVAS_REFINE_NOISE_INCREMENT, + node_id: CANVAS_COHERENCE_NOISE_INCREMENT, field: 'value', }, destination: { - node_id: CANVAS_REFINE_NOISE, + node_id: CANVAS_COHERENCE_NOISE, field: 'seed', }, }, @@ -375,7 +375,7 @@ export const buildCanvasOutpaintGraph = ( field: 'unet', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'unet', }, }, @@ -385,7 +385,7 @@ export const buildCanvasOutpaintGraph = ( field: 'conditioning', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'positive_conditioning', }, }, @@ -395,17 +395,17 @@ export const buildCanvasOutpaintGraph = ( field: 'conditioning', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'negative_conditioning', }, }, { source: { - node_id: CANVAS_REFINE_NOISE, + node_id: CANVAS_COHERENCE_NOISE, field: 'noise', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'noise', }, }, @@ -415,14 +415,14 @@ export const buildCanvasOutpaintGraph = ( field: 'latents', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'latents', }, }, // Decode the result from Inpaint { source: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'latents', }, destination: { @@ -504,8 +504,10 @@ export const buildCanvasOutpaintGraph = ( (graph.nodes[NOISE] as NoiseInvocation).width = scaledWidth; (graph.nodes[NOISE] as NoiseInvocation).height = scaledHeight; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).width = scaledWidth; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).height = scaledHeight; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).width = + scaledWidth; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).height = + scaledHeight; // Connect Nodes graph.edges.push( @@ -615,8 +617,8 @@ export const buildCanvasOutpaintGraph = ( (graph.nodes[NOISE] as NoiseInvocation).width = width; (graph.nodes[NOISE] as NoiseInvocation).height = height; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).width = width; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).height = height; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).width = width; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).height = height; graph.nodes[INPAINT_IMAGE] = { ...(graph.nodes[INPAINT_IMAGE] as ImageToLatentsInvocation), diff --git a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasSDXLInpaintGraph.ts b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasSDXLInpaintGraph.ts index 76136dc681..f60c710c64 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasSDXLInpaintGraph.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasSDXLInpaintGraph.ts @@ -17,9 +17,9 @@ import { addVAEToGraph } from './addVAEToGraph'; import { addWatermarkerToGraph } from './addWatermarkerToGraph'; import { CANVAS_OUTPUT, - CANVAS_REFINE_DENOISE_LATENTS, - CANVAS_REFINE_NOISE, - CANVAS_REFINE_NOISE_INCREMENT, + CANVAS_COHERENCE_DENOISE_LATENTS, + CANVAS_COHERENCE_NOISE, + CANVAS_COHERENCE_NOISE_INCREMENT, INPAINT_IMAGE, INPAINT_IMAGE_RESIZE_DOWN, INPAINT_IMAGE_RESIZE_UP, @@ -63,8 +63,8 @@ export const buildCanvasSDXLInpaintGraph = ( shouldUseCpuNoise, maskBlur, maskBlurMethod, - canvasRefineSteps, - canvasRefineStrength, + canvasCoherenceSteps, + canvasCoherenceStrength, } = state.generation; const { @@ -148,26 +148,26 @@ export const buildCanvasSDXLInpaintGraph = ( : 1 - strength, denoising_end: shouldUseSDXLRefiner ? refinerStart : 1, }, - [CANVAS_REFINE_NOISE]: { + [CANVAS_COHERENCE_NOISE]: { type: 'noise', id: NOISE, use_cpu, is_intermediate: true, }, - [CANVAS_REFINE_NOISE_INCREMENT]: { + [CANVAS_COHERENCE_NOISE_INCREMENT]: { type: 'add', - id: CANVAS_REFINE_NOISE_INCREMENT, + id: CANVAS_COHERENCE_NOISE_INCREMENT, b: 1, is_intermediate: true, }, - [CANVAS_REFINE_DENOISE_LATENTS]: { + [CANVAS_COHERENCE_DENOISE_LATENTS]: { type: 'denoise_latents', id: SDXL_DENOISE_LATENTS, is_intermediate: true, - steps: canvasRefineSteps, + steps: canvasCoherenceSteps, cfg_scale: cfg_scale, scheduler: scheduler, - denoising_start: 1 - canvasRefineStrength, + denoising_start: 1 - canvasCoherenceStrength, denoising_end: 1, }, [LATENTS_TO_IMAGE]: { @@ -328,17 +328,17 @@ export const buildCanvasSDXLInpaintGraph = ( field: 'item', }, destination: { - node_id: CANVAS_REFINE_NOISE_INCREMENT, + node_id: CANVAS_COHERENCE_NOISE_INCREMENT, field: 'a', }, }, { source: { - node_id: CANVAS_REFINE_NOISE_INCREMENT, + node_id: CANVAS_COHERENCE_NOISE_INCREMENT, field: 'value', }, destination: { - node_id: CANVAS_REFINE_NOISE, + node_id: CANVAS_COHERENCE_NOISE, field: 'seed', }, }, @@ -348,7 +348,7 @@ export const buildCanvasSDXLInpaintGraph = ( field: 'unet', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'unet', }, }, @@ -358,7 +358,7 @@ export const buildCanvasSDXLInpaintGraph = ( field: 'conditioning', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'positive_conditioning', }, }, @@ -368,17 +368,17 @@ export const buildCanvasSDXLInpaintGraph = ( field: 'conditioning', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'negative_conditioning', }, }, { source: { - node_id: CANVAS_REFINE_NOISE, + node_id: CANVAS_COHERENCE_NOISE, field: 'noise', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'noise', }, }, @@ -388,14 +388,14 @@ export const buildCanvasSDXLInpaintGraph = ( field: 'latents', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'latents', }, }, // Decode Inpainted Latents To Image { source: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'latents', }, destination: { @@ -445,8 +445,10 @@ export const buildCanvasSDXLInpaintGraph = ( (graph.nodes[NOISE] as NoiseInvocation).width = scaledWidth; (graph.nodes[NOISE] as NoiseInvocation).height = scaledHeight; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).width = scaledWidth; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).height = scaledHeight; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).width = + scaledWidth; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).height = + scaledHeight; // Connect Nodes graph.edges.push( @@ -517,8 +519,8 @@ export const buildCanvasSDXLInpaintGraph = ( // Add Images To Nodes (graph.nodes[NOISE] as NoiseInvocation).width = width; (graph.nodes[NOISE] as NoiseInvocation).height = height; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).width = width; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).height = height; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).width = width; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).height = height; graph.nodes[INPAINT_IMAGE] = { ...(graph.nodes[INPAINT_IMAGE] as ImageToLatentsInvocation), @@ -576,7 +578,7 @@ export const buildCanvasSDXLInpaintGraph = ( // Add Refiner if enabled if (shouldUseSDXLRefiner) { - addSDXLRefinerToGraph(state, graph, CANVAS_REFINE_DENOISE_LATENTS); + addSDXLRefinerToGraph(state, graph, CANVAS_COHERENCE_DENOISE_LATENTS); } // optionally add custom VAE diff --git a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasSDXLOutpaintGraph.ts b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasSDXLOutpaintGraph.ts index dacfb6eb88..7e98c37233 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasSDXLOutpaintGraph.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/buildCanvasSDXLOutpaintGraph.ts @@ -19,9 +19,9 @@ import { addVAEToGraph } from './addVAEToGraph'; import { addWatermarkerToGraph } from './addWatermarkerToGraph'; import { CANVAS_OUTPUT, - CANVAS_REFINE_DENOISE_LATENTS, - CANVAS_REFINE_NOISE, - CANVAS_REFINE_NOISE_INCREMENT, + CANVAS_COHERENCE_DENOISE_LATENTS, + CANVAS_COHERENCE_NOISE, + CANVAS_COHERENCE_NOISE_INCREMENT, INPAINT_IMAGE, INPAINT_IMAGE_RESIZE_DOWN, INPAINT_IMAGE_RESIZE_UP, @@ -69,8 +69,8 @@ export const buildCanvasSDXLOutpaintGraph = ( shouldUseCpuNoise, maskBlur, maskBlurMethod, - canvasRefineSteps, - canvasRefineStrength, + canvasCoherenceSteps, + canvasCoherenceStrength, tileSize, infillMethod, } = state.generation; @@ -168,26 +168,26 @@ export const buildCanvasSDXLOutpaintGraph = ( : 1 - strength, denoising_end: shouldUseSDXLRefiner ? refinerStart : 1, }, - [CANVAS_REFINE_NOISE]: { + [CANVAS_COHERENCE_NOISE]: { type: 'noise', id: NOISE, use_cpu, is_intermediate: true, }, - [CANVAS_REFINE_NOISE_INCREMENT]: { + [CANVAS_COHERENCE_NOISE_INCREMENT]: { type: 'add', - id: CANVAS_REFINE_NOISE_INCREMENT, + id: CANVAS_COHERENCE_NOISE_INCREMENT, b: 1, is_intermediate: true, }, - [CANVAS_REFINE_DENOISE_LATENTS]: { + [CANVAS_COHERENCE_DENOISE_LATENTS]: { type: 'denoise_latents', - id: CANVAS_REFINE_DENOISE_LATENTS, + id: CANVAS_COHERENCE_DENOISE_LATENTS, is_intermediate: true, - steps: canvasRefineSteps, + steps: canvasCoherenceSteps, cfg_scale: cfg_scale, scheduler: scheduler, - denoising_start: 1 - canvasRefineStrength, + denoising_start: 1 - canvasCoherenceStrength, denoising_end: 1, }, [LATENTS_TO_IMAGE]: { @@ -369,17 +369,17 @@ export const buildCanvasSDXLOutpaintGraph = ( field: 'item', }, destination: { - node_id: CANVAS_REFINE_NOISE_INCREMENT, + node_id: CANVAS_COHERENCE_NOISE_INCREMENT, field: 'a', }, }, { source: { - node_id: CANVAS_REFINE_NOISE_INCREMENT, + node_id: CANVAS_COHERENCE_NOISE_INCREMENT, field: 'value', }, destination: { - node_id: CANVAS_REFINE_NOISE, + node_id: CANVAS_COHERENCE_NOISE, field: 'seed', }, }, @@ -389,7 +389,7 @@ export const buildCanvasSDXLOutpaintGraph = ( field: 'unet', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'unet', }, }, @@ -399,7 +399,7 @@ export const buildCanvasSDXLOutpaintGraph = ( field: 'conditioning', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'positive_conditioning', }, }, @@ -409,17 +409,17 @@ export const buildCanvasSDXLOutpaintGraph = ( field: 'conditioning', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'negative_conditioning', }, }, { source: { - node_id: CANVAS_REFINE_NOISE, + node_id: CANVAS_COHERENCE_NOISE, field: 'noise', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'noise', }, }, @@ -429,14 +429,14 @@ export const buildCanvasSDXLOutpaintGraph = ( field: 'latents', }, destination: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'latents', }, }, // Decode inpainted latents to image { source: { - node_id: CANVAS_REFINE_DENOISE_LATENTS, + node_id: CANVAS_COHERENCE_DENOISE_LATENTS, field: 'latents', }, destination: { @@ -519,8 +519,10 @@ export const buildCanvasSDXLOutpaintGraph = ( (graph.nodes[NOISE] as NoiseInvocation).width = scaledWidth; (graph.nodes[NOISE] as NoiseInvocation).height = scaledHeight; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).width = scaledWidth; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).height = scaledHeight; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).width = + scaledWidth; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).height = + scaledHeight; // Connect Nodes graph.edges.push( @@ -630,8 +632,8 @@ export const buildCanvasSDXLOutpaintGraph = ( (graph.nodes[NOISE] as NoiseInvocation).width = width; (graph.nodes[NOISE] as NoiseInvocation).height = height; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).width = width; - (graph.nodes[CANVAS_REFINE_NOISE] as NoiseInvocation).height = height; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).width = width; + (graph.nodes[CANVAS_COHERENCE_NOISE] as NoiseInvocation).height = height; graph.nodes[INPAINT_IMAGE] = { ...(graph.nodes[INPAINT_IMAGE] as ImageToLatentsInvocation), @@ -709,7 +711,7 @@ export const buildCanvasSDXLOutpaintGraph = ( // Add Refiner if enabled if (shouldUseSDXLRefiner) { - addSDXLRefinerToGraph(state, graph, CANVAS_REFINE_DENOISE_LATENTS); + addSDXLRefinerToGraph(state, graph, CANVAS_COHERENCE_DENOISE_LATENTS); } // optionally add custom VAE diff --git a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/constants.ts b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/constants.ts index e9842299f7..6547d4a092 100644 --- a/invokeai/frontend/web/src/features/nodes/util/graphBuilders/constants.ts +++ b/invokeai/frontend/web/src/features/nodes/util/graphBuilders/constants.ts @@ -25,9 +25,11 @@ export const INPAINT_IMAGE_RESIZE_DOWN = 'inpaint_image_resize_down'; export const INPAINT_INFILL = 'inpaint_infill'; export const INPAINT_INFILL_RESIZE_DOWN = 'inpaint_infill_resize_down'; export const INPAINT_FINAL_IMAGE = 'inpaint_final_image'; -export const CANVAS_REFINE_DENOISE_LATENTS = 'canvas_refine_denoise_latents'; -export const CANVAS_REFINE_NOISE = 'canvas_refine_noise'; -export const CANVAS_REFINE_NOISE_INCREMENT = 'canvas_refine_noise_increment'; +export const CANVAS_COHERENCE_DENOISE_LATENTS = + 'canvas_coherence_denoise_latents'; +export const CANVAS_COHERENCE_NOISE = 'canvas_coherence_noise'; +export const CANVAS_COHERENCE_NOISE_INCREMENT = + 'canvas_coherence_noise_increment'; export const MASK_FROM_ALPHA = 'tomask'; export const MASK_EDGE = 'mask_edge'; export const MASK_BLUR = 'mask_blur'; diff --git a/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherencePassCollapse.tsx b/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherencePassCollapse.tsx new file mode 100644 index 0000000000..b454c4ccec --- /dev/null +++ b/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherencePassCollapse.tsx @@ -0,0 +1,21 @@ +import { Flex } from '@chakra-ui/react'; +import IAICollapse from 'common/components/IAICollapse'; +import { memo } from 'react'; +import { useTranslation } from 'react-i18next'; +import ParamCanvasCoherenceSteps from './ParamCanvasCoherenceSteps'; +import ParamCanvasCoherenceStrength from './ParamCanvasCoherenceStrength'; + +const ParamCanvasCoherencePassCollapse = () => { + const { t } = useTranslation(); + + return ( + + + + + + + ); +}; + +export default memo(ParamCanvasCoherencePassCollapse); diff --git a/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefineSteps.tsx b/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherenceSteps.tsx similarity index 56% rename from invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefineSteps.tsx rename to invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherenceSteps.tsx index 5bb877cc5d..5482a7e1d9 100644 --- a/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefineSteps.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherenceSteps.tsx @@ -1,36 +1,36 @@ import type { RootState } from 'app/store/store'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; import IAISlider from 'common/components/IAISlider'; -import { setCanvasRefineSteps } from 'features/parameters/store/generationSlice'; +import { setCanvasCoherenceSteps } from 'features/parameters/store/generationSlice'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; -const ParamCanvasRefineSteps = () => { +const ParamCanvasCoherenceSteps = () => { const dispatch = useAppDispatch(); - const canvasRefineSteps = useAppSelector( - (state: RootState) => state.generation.canvasRefineSteps + const canvasCoherenceSteps = useAppSelector( + (state: RootState) => state.generation.canvasCoherenceSteps ); const { t } = useTranslation(); return ( { - dispatch(setCanvasRefineSteps(v)); + dispatch(setCanvasCoherenceSteps(v)); }} withInput withSliderMarks withReset handleReset={() => { - dispatch(setCanvasRefineSteps(20)); + dispatch(setCanvasCoherenceSteps(20)); }} /> ); }; -export default memo(ParamCanvasRefineSteps); +export default memo(ParamCanvasCoherenceSteps); diff --git a/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefineStrength.tsx b/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherenceStrength.tsx similarity index 54% rename from invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefineStrength.tsx rename to invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherenceStrength.tsx index 53f6f68dbf..f478bd70fe 100644 --- a/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefineStrength.tsx +++ b/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherenceStrength.tsx @@ -1,36 +1,36 @@ import type { RootState } from 'app/store/store'; import { useAppDispatch, useAppSelector } from 'app/store/storeHooks'; import IAISlider from 'common/components/IAISlider'; -import { setCanvasRefineStrength } from 'features/parameters/store/generationSlice'; +import { setCanvasCoherenceStrength } from 'features/parameters/store/generationSlice'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; -const ParamCanvasRefineStrength = () => { +const ParamCanvasCoherenceStrength = () => { const dispatch = useAppDispatch(); - const canvasRefineStrength = useAppSelector( - (state: RootState) => state.generation.canvasRefineStrength + const canvasCoherenceStrength = useAppSelector( + (state: RootState) => state.generation.canvasCoherenceStrength ); const { t } = useTranslation(); return ( { - dispatch(setCanvasRefineStrength(v)); + dispatch(setCanvasCoherenceStrength(v)); }} withInput withSliderMarks withReset handleReset={() => { - dispatch(setCanvasRefineStrength(0.3)); + dispatch(setCanvasCoherenceStrength(0.3)); }} /> ); }; -export default memo(ParamCanvasRefineStrength); +export default memo(ParamCanvasCoherenceStrength); diff --git a/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefinePassCollapse.tsx b/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefinePassCollapse.tsx deleted file mode 100644 index 6bd486955e..0000000000 --- a/invokeai/frontend/web/src/features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefinePassCollapse.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Flex } from '@chakra-ui/react'; -import IAICollapse from 'common/components/IAICollapse'; -import { memo } from 'react'; -import { useTranslation } from 'react-i18next'; -import ParamCanvasRefineSteps from './ParamCanvasRefineSteps'; -import ParamCanvasRefineStrength from './ParamCanvasRefineStrength'; - -const ParamCanvasRefinePassCollapse = () => { - const { t } = useTranslation(); - - return ( - - - - - - - ); -}; - -export default memo(ParamCanvasRefinePassCollapse); diff --git a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts index 339e70147e..8a4b9a7963 100644 --- a/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts +++ b/invokeai/frontend/web/src/features/parameters/store/generationSlice.ts @@ -37,8 +37,8 @@ export interface GenerationState { scheduler: SchedulerParam; maskBlur: number; maskBlurMethod: MaskBlurMethodParam; - canvasRefineSteps: number; - canvasRefineStrength: StrengthParam; + canvasCoherenceSteps: number; + canvasCoherenceStrength: StrengthParam; seed: SeedParam; seedWeights: string; shouldFitToWidthHeight: boolean; @@ -76,8 +76,8 @@ export const initialGenerationState: GenerationState = { scheduler: 'euler', maskBlur: 16, maskBlurMethod: 'box', - canvasRefineSteps: 20, - canvasRefineStrength: 0.3, + canvasCoherenceSteps: 20, + canvasCoherenceStrength: 0.3, seed: 0, seedWeights: '', shouldFitToWidthHeight: true, @@ -204,11 +204,11 @@ export const generationSlice = createSlice({ setMaskBlurMethod: (state, action: PayloadAction) => { state.maskBlurMethod = action.payload; }, - setCanvasRefineSteps: (state, action: PayloadAction) => { - state.canvasRefineSteps = action.payload; + setCanvasCoherenceSteps: (state, action: PayloadAction) => { + state.canvasCoherenceSteps = action.payload; }, - setCanvasRefineStrength: (state, action: PayloadAction) => { - state.canvasRefineStrength = action.payload; + setCanvasCoherenceStrength: (state, action: PayloadAction) => { + state.canvasCoherenceStrength = action.payload; }, setTileSize: (state, action: PayloadAction) => { state.tileSize = action.payload; @@ -318,8 +318,8 @@ export const { setScheduler, setMaskBlur, setMaskBlurMethod, - setCanvasRefineSteps, - setCanvasRefineStrength, + setCanvasCoherenceSteps, + setCanvasCoherenceStrength, setSeed, setSeedWeights, setShouldFitToWidthHeight, diff --git a/invokeai/frontend/web/src/features/sdxl/components/SDXLUnifiedCanvasTabParameters.tsx b/invokeai/frontend/web/src/features/sdxl/components/SDXLUnifiedCanvasTabParameters.tsx index 707317a2b5..00432bcec8 100644 --- a/invokeai/frontend/web/src/features/sdxl/components/SDXLUnifiedCanvasTabParameters.tsx +++ b/invokeai/frontend/web/src/features/sdxl/components/SDXLUnifiedCanvasTabParameters.tsx @@ -2,7 +2,7 @@ import ParamDynamicPromptsCollapse from 'features/dynamicPrompts/components/Para import ParamLoraCollapse from 'features/lora/components/ParamLoraCollapse'; import ParamInfillAndScalingCollapse from 'features/parameters/components/Parameters/Canvas/InfillAndScaling/ParamInfillAndScalingCollapse'; import ParamMaskAdjustmentCollapse from 'features/parameters/components/Parameters/Canvas/MaskAdjustment/ParamMaskAdjustmentCollapse'; -import ParamCanvasRefinePassCollapse from 'features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefinePassCollapse'; +import ParamCanvasCoherencePassCollapse from 'features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherencePassCollapse'; import ParamControlNetCollapse from 'features/parameters/components/Parameters/ControlNet/ParamControlNetCollapse'; import ParamNoiseCollapse from 'features/parameters/components/Parameters/Noise/ParamNoiseCollapse'; import ParamSDXLPromptArea from './ParamSDXLPromptArea'; @@ -21,7 +21,7 @@ export default function SDXLUnifiedCanvasTabParameters() { - + ); } diff --git a/invokeai/frontend/web/src/features/ui/components/tabs/UnifiedCanvas/UnifiedCanvasParameters.tsx b/invokeai/frontend/web/src/features/ui/components/tabs/UnifiedCanvas/UnifiedCanvasParameters.tsx index c1298fd6ef..1c3d3cd270 100644 --- a/invokeai/frontend/web/src/features/ui/components/tabs/UnifiedCanvas/UnifiedCanvasParameters.tsx +++ b/invokeai/frontend/web/src/features/ui/components/tabs/UnifiedCanvas/UnifiedCanvasParameters.tsx @@ -3,7 +3,7 @@ import ParamLoraCollapse from 'features/lora/components/ParamLoraCollapse'; import ParamAdvancedCollapse from 'features/parameters/components/Parameters/Advanced/ParamAdvancedCollapse'; import ParamInfillAndScalingCollapse from 'features/parameters/components/Parameters/Canvas/InfillAndScaling/ParamInfillAndScalingCollapse'; import ParamMaskAdjustmentCollapse from 'features/parameters/components/Parameters/Canvas/MaskAdjustment/ParamMaskAdjustmentCollapse'; -import ParamCanvasRefinePassCollapse from 'features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasRefinePassCollapse'; +import ParamCanvasCoherencePassCollapse from 'features/parameters/components/Parameters/Canvas/SeamPainting/ParamCanvasCoherencePassCollapse'; import ParamControlNetCollapse from 'features/parameters/components/Parameters/ControlNet/ParamControlNetCollapse'; import ParamPromptArea from 'features/parameters/components/Parameters/Prompt/ParamPromptArea'; import ParamSymmetryCollapse from 'features/parameters/components/Parameters/Symmetry/ParamSymmetryCollapse'; @@ -21,7 +21,7 @@ const UnifiedCanvasParameters = () => { - + );