Merge branch 'main' into fix/img2img-low-strength

This commit is contained in:
Kevin Turner 2023-02-02 07:20:34 -08:00 committed by GitHub
commit 7aa331af8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 62 additions and 171 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>InvokeAI - A Stable Diffusion Toolkit</title> <title>InvokeAI - A Stable Diffusion Toolkit</title>
<link rel="shortcut icon" type="icon" href="./assets/favicon.0d253ced.ico" /> <link rel="shortcut icon" type="icon" href="./assets/favicon.0d253ced.ico" />
<script type="module" crossorigin src="./assets/index.be0f03f1.js"></script> <script type="module" crossorigin src="./assets/index.5c5bc3f1.js"></script>
<link rel="stylesheet" href="./assets/index.8badc8b4.css"> <link rel="stylesheet" href="./assets/index.8badc8b4.css">
<script type="module">try{import.meta.url;import("_").catch(()=>1);}catch(e){}window.__vite_is_modern_browser=true;</script> <script type="module">try{import.meta.url;import("_").catch(()=>1);}catch(e){}window.__vite_is_modern_browser=true;</script>
<script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy build because dynamic import or import.meta.url is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script> <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy build because dynamic import or import.meta.url is unsupported, syntax error above should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
@ -18,6 +18,6 @@
<script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script> <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
<script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-dde3a68a.js"></script> <script nomodule crossorigin id="vite-legacy-polyfill" src="./assets/polyfills-legacy-dde3a68a.js"></script>
<script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-279e042c.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script> <script nomodule crossorigin id="vite-legacy-entry" data-src="./assets/index-legacy-35973932.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
</body> </body>
</html> </html>

View File

@ -30,7 +30,6 @@
"seamBlur": "Nahtunschärfe", "seamBlur": "Nahtunschärfe",
"seamStrength": "Stärke der Naht", "seamStrength": "Stärke der Naht",
"seamSteps": "Nahtstufen", "seamSteps": "Nahtstufen",
"inpaintReplace": "Inpaint Ersetzen",
"scaleBeforeProcessing": "Skalieren vor der Verarbeitung", "scaleBeforeProcessing": "Skalieren vor der Verarbeitung",
"scaledWidth": "Skaliert W", "scaledWidth": "Skaliert W",
"scaledHeight": "Skaliert H", "scaledHeight": "Skaliert H",

View File

@ -30,7 +30,6 @@
"seamBlur": "Seam Blur", "seamBlur": "Seam Blur",
"seamStrength": "Seam Strength", "seamStrength": "Seam Strength",
"seamSteps": "Seam Steps", "seamSteps": "Seam Steps",
"inpaintReplace": "Inpaint Replace",
"scaleBeforeProcessing": "Scale Before Processing", "scaleBeforeProcessing": "Scale Before Processing",
"scaledWidth": "Scaled W", "scaledWidth": "Scaled W",
"scaledHeight": "Scaled H", "scaledHeight": "Scaled H",

View File

@ -30,7 +30,6 @@
"seamBlur": "Seam Blur", "seamBlur": "Seam Blur",
"seamStrength": "Seam Strength", "seamStrength": "Seam Strength",
"seamSteps": "Seam Steps", "seamSteps": "Seam Steps",
"inpaintReplace": "Inpaint Replace",
"scaleBeforeProcessing": "Scale Before Processing", "scaleBeforeProcessing": "Scale Before Processing",
"scaledWidth": "Scaled W", "scaledWidth": "Scaled W",
"scaledHeight": "Scaled H", "scaledHeight": "Scaled H",

View File

@ -30,7 +30,6 @@
"seamBlur": "Desenfoque del parche", "seamBlur": "Desenfoque del parche",
"seamStrength": "Fuerza del parche", "seamStrength": "Fuerza del parche",
"seamSteps": "Pasos del parche", "seamSteps": "Pasos del parche",
"inpaintReplace": "Reemplazar impresión interior",
"scaleBeforeProcessing": "Redimensionar antes de procesar", "scaleBeforeProcessing": "Redimensionar antes de procesar",
"scaledWidth": "Ancho escalado", "scaledWidth": "Ancho escalado",
"scaledHeight": "Alto escalado", "scaledHeight": "Alto escalado",

View File

@ -30,7 +30,6 @@
"seamBlur": "Sfocatura cucitura", "seamBlur": "Sfocatura cucitura",
"seamStrength": "Forza della cucitura", "seamStrength": "Forza della cucitura",
"seamSteps": "Passaggi di cucitura", "seamSteps": "Passaggi di cucitura",
"inpaintReplace": "Inpaint Sostituisci",
"scaleBeforeProcessing": "Scala prima dell'elaborazione", "scaleBeforeProcessing": "Scala prima dell'elaborazione",
"scaledWidth": "Larghezza ridimensionata", "scaledWidth": "Larghezza ridimensionata",
"scaledHeight": "Altezza ridimensionata", "scaledHeight": "Altezza ridimensionata",

View File

@ -30,7 +30,6 @@
"seamBlur": "Seam Blur", "seamBlur": "Seam Blur",
"seamStrength": "Seam Strength", "seamStrength": "Seam Strength",
"seamSteps": "Seam Steps", "seamSteps": "Seam Steps",
"inpaintReplace": "Inpaint Replace",
"scaleBeforeProcessing": "処理前のスケール", "scaleBeforeProcessing": "処理前のスケール",
"scaledWidth": "幅のスケール", "scaledWidth": "幅のスケール",
"scaledHeight": "高さのスケール", "scaledHeight": "高さのスケール",

View File

@ -30,7 +30,6 @@
"seamBlur": "Vervaging naad", "seamBlur": "Vervaging naad",
"seamStrength": "Sterkte naad", "seamStrength": "Sterkte naad",
"seamSteps": "Stappen naad", "seamSteps": "Stappen naad",
"inpaintReplace": "Inpaintvervanging",
"scaleBeforeProcessing": "Schalen voor verwerking", "scaleBeforeProcessing": "Schalen voor verwerking",
"scaledWidth": "Geschaalde B", "scaledWidth": "Geschaalde B",
"scaledHeight": "Geschaalde H", "scaledHeight": "Geschaalde H",

View File

@ -30,7 +30,6 @@
"seamBlur": "Rozmycie", "seamBlur": "Rozmycie",
"seamStrength": "Siła", "seamStrength": "Siła",
"seamSteps": "Kroki", "seamSteps": "Kroki",
"inpaintReplace": "Tryb podmiany",
"scaleBeforeProcessing": "Tryb skalowania", "scaleBeforeProcessing": "Tryb skalowania",
"scaledWidth": "Sk. do szer.", "scaledWidth": "Sk. do szer.",
"scaledHeight": "Sk. do wys.", "scaledHeight": "Sk. do wys.",

View File

@ -30,7 +30,6 @@
"seamBlur": "Desfoque da Fronteira", "seamBlur": "Desfoque da Fronteira",
"seamStrength": "Força da Fronteira", "seamStrength": "Força da Fronteira",
"seamSteps": "Passos da Fronteira", "seamSteps": "Passos da Fronteira",
"inpaintReplace": "Substituir com Inpaint",
"scaleBeforeProcessing": "Escala Antes do Processamento", "scaleBeforeProcessing": "Escala Antes do Processamento",
"scaledWidth": "L Escalada", "scaledWidth": "L Escalada",
"scaledHeight": "A Escalada", "scaledHeight": "A Escalada",

View File

@ -30,7 +30,6 @@
"seamBlur": "Размытие шва", "seamBlur": "Размытие шва",
"seamStrength": "Сила шва", "seamStrength": "Сила шва",
"seamSteps": "Шаги шва", "seamSteps": "Шаги шва",
"inpaintReplace": "Inpaint-замена",
"scaleBeforeProcessing": "Масштабировать", "scaleBeforeProcessing": "Масштабировать",
"scaledWidth": "Масштаб Ш", "scaledWidth": "Масштаб Ш",
"scaledHeight": "Масштаб В", "scaledHeight": "Масштаб В",

View File

@ -30,7 +30,6 @@
"seamBlur": "接缝模糊", "seamBlur": "接缝模糊",
"seamStrength": "接缝强度", "seamStrength": "接缝强度",
"seamSteps": "接缝步数", "seamSteps": "接缝步数",
"inpaintReplace": "内画替换",
"scaleBeforeProcessing": "处理前缩放", "scaleBeforeProcessing": "处理前缩放",
"scaledWidth": "缩放宽度", "scaledWidth": "缩放宽度",
"scaledHeight": "缩放长度", "scaledHeight": "缩放长度",

View File

@ -30,7 +30,6 @@
"seamBlur": "Nahtunschärfe", "seamBlur": "Nahtunschärfe",
"seamStrength": "Stärke der Naht", "seamStrength": "Stärke der Naht",
"seamSteps": "Nahtstufen", "seamSteps": "Nahtstufen",
"inpaintReplace": "Inpaint Ersetzen",
"scaleBeforeProcessing": "Skalieren vor der Verarbeitung", "scaleBeforeProcessing": "Skalieren vor der Verarbeitung",
"scaledWidth": "Skaliert W", "scaledWidth": "Skaliert W",
"scaledHeight": "Skaliert H", "scaledHeight": "Skaliert H",

View File

@ -30,7 +30,6 @@
"seamBlur": "Seam Blur", "seamBlur": "Seam Blur",
"seamStrength": "Seam Strength", "seamStrength": "Seam Strength",
"seamSteps": "Seam Steps", "seamSteps": "Seam Steps",
"inpaintReplace": "Inpaint Replace",
"scaleBeforeProcessing": "Scale Before Processing", "scaleBeforeProcessing": "Scale Before Processing",
"scaledWidth": "Scaled W", "scaledWidth": "Scaled W",
"scaledHeight": "Scaled H", "scaledHeight": "Scaled H",

View File

@ -30,7 +30,6 @@
"seamBlur": "Seam Blur", "seamBlur": "Seam Blur",
"seamStrength": "Seam Strength", "seamStrength": "Seam Strength",
"seamSteps": "Seam Steps", "seamSteps": "Seam Steps",
"inpaintReplace": "Inpaint Replace",
"scaleBeforeProcessing": "Scale Before Processing", "scaleBeforeProcessing": "Scale Before Processing",
"scaledWidth": "Scaled W", "scaledWidth": "Scaled W",
"scaledHeight": "Scaled H", "scaledHeight": "Scaled H",

View File

@ -30,7 +30,6 @@
"seamBlur": "Desenfoque del parche", "seamBlur": "Desenfoque del parche",
"seamStrength": "Fuerza del parche", "seamStrength": "Fuerza del parche",
"seamSteps": "Pasos del parche", "seamSteps": "Pasos del parche",
"inpaintReplace": "Reemplazar impresión interior",
"scaleBeforeProcessing": "Redimensionar antes de procesar", "scaleBeforeProcessing": "Redimensionar antes de procesar",
"scaledWidth": "Ancho escalado", "scaledWidth": "Ancho escalado",
"scaledHeight": "Alto escalado", "scaledHeight": "Alto escalado",

View File

@ -30,7 +30,6 @@
"seamBlur": "Sfocatura cucitura", "seamBlur": "Sfocatura cucitura",
"seamStrength": "Forza della cucitura", "seamStrength": "Forza della cucitura",
"seamSteps": "Passaggi di cucitura", "seamSteps": "Passaggi di cucitura",
"inpaintReplace": "Inpaint Sostituisci",
"scaleBeforeProcessing": "Scala prima dell'elaborazione", "scaleBeforeProcessing": "Scala prima dell'elaborazione",
"scaledWidth": "Larghezza ridimensionata", "scaledWidth": "Larghezza ridimensionata",
"scaledHeight": "Altezza ridimensionata", "scaledHeight": "Altezza ridimensionata",

View File

@ -30,7 +30,6 @@
"seamBlur": "Seam Blur", "seamBlur": "Seam Blur",
"seamStrength": "Seam Strength", "seamStrength": "Seam Strength",
"seamSteps": "Seam Steps", "seamSteps": "Seam Steps",
"inpaintReplace": "Inpaint Replace",
"scaleBeforeProcessing": "処理前のスケール", "scaleBeforeProcessing": "処理前のスケール",
"scaledWidth": "幅のスケール", "scaledWidth": "幅のスケール",
"scaledHeight": "高さのスケール", "scaledHeight": "高さのスケール",

View File

@ -30,7 +30,6 @@
"seamBlur": "Vervaging naad", "seamBlur": "Vervaging naad",
"seamStrength": "Sterkte naad", "seamStrength": "Sterkte naad",
"seamSteps": "Stappen naad", "seamSteps": "Stappen naad",
"inpaintReplace": "Inpaintvervanging",
"scaleBeforeProcessing": "Schalen voor verwerking", "scaleBeforeProcessing": "Schalen voor verwerking",
"scaledWidth": "Geschaalde B", "scaledWidth": "Geschaalde B",
"scaledHeight": "Geschaalde H", "scaledHeight": "Geschaalde H",

View File

@ -30,7 +30,6 @@
"seamBlur": "Rozmycie", "seamBlur": "Rozmycie",
"seamStrength": "Siła", "seamStrength": "Siła",
"seamSteps": "Kroki", "seamSteps": "Kroki",
"inpaintReplace": "Tryb podmiany",
"scaleBeforeProcessing": "Tryb skalowania", "scaleBeforeProcessing": "Tryb skalowania",
"scaledWidth": "Sk. do szer.", "scaledWidth": "Sk. do szer.",
"scaledHeight": "Sk. do wys.", "scaledHeight": "Sk. do wys.",

View File

@ -30,7 +30,6 @@
"seamBlur": "Desfoque da Fronteira", "seamBlur": "Desfoque da Fronteira",
"seamStrength": "Força da Fronteira", "seamStrength": "Força da Fronteira",
"seamSteps": "Passos da Fronteira", "seamSteps": "Passos da Fronteira",
"inpaintReplace": "Substituir com Inpaint",
"scaleBeforeProcessing": "Escala Antes do Processamento", "scaleBeforeProcessing": "Escala Antes do Processamento",
"scaledWidth": "L Escalada", "scaledWidth": "L Escalada",
"scaledHeight": "A Escalada", "scaledHeight": "A Escalada",

View File

@ -30,7 +30,6 @@
"seamBlur": "Размытие шва", "seamBlur": "Размытие шва",
"seamStrength": "Сила шва", "seamStrength": "Сила шва",
"seamSteps": "Шаги шва", "seamSteps": "Шаги шва",
"inpaintReplace": "Inpaint-замена",
"scaleBeforeProcessing": "Масштабировать", "scaleBeforeProcessing": "Масштабировать",
"scaledWidth": "Масштаб Ш", "scaledWidth": "Масштаб Ш",
"scaledHeight": "Масштаб В", "scaledHeight": "Масштаб В",

View File

@ -30,7 +30,6 @@
"seamBlur": "接缝模糊", "seamBlur": "接缝模糊",
"seamStrength": "接缝强度", "seamStrength": "接缝强度",
"seamSteps": "接缝步数", "seamSteps": "接缝步数",
"inpaintReplace": "内画替换",
"scaleBeforeProcessing": "处理前缩放", "scaleBeforeProcessing": "处理前缩放",
"scaledWidth": "缩放宽度", "scaledWidth": "缩放宽度",
"scaledHeight": "缩放长度", "scaledHeight": "缩放长度",

View File

@ -196,8 +196,6 @@ export const frontendToBackendParameters = (
layerState: { objects }, layerState: { objects },
boundingBoxCoordinates, boundingBoxCoordinates,
boundingBoxDimensions, boundingBoxDimensions,
inpaintReplace,
shouldUseInpaintReplace,
stageScale, stageScale,
isMaskEnabled, isMaskEnabled,
shouldPreserveMaskedArea, shouldPreserveMaskedArea,
@ -223,10 +221,6 @@ export const frontendToBackendParameters = (
generationParameters.invert_mask = shouldPreserveMaskedArea; generationParameters.invert_mask = shouldPreserveMaskedArea;
if (shouldUseInpaintReplace) {
generationParameters.inpaint_replace = inpaintReplace;
}
generationParameters.bounding_box = boundingBox; generationParameters.bounding_box = boundingBox;
const tempScale = canvasBaseLayer.scale(); const tempScale = canvasBaseLayer.scale();

View File

@ -49,7 +49,6 @@ const initialCanvasState: CanvasState = {
cursorPosition: null, cursorPosition: null,
doesCanvasNeedScaling: false, doesCanvasNeedScaling: false,
futureLayerStates: [], futureLayerStates: [],
inpaintReplace: 0.1,
isCanvasInitialized: false, isCanvasInitialized: false,
isDrawing: false, isDrawing: false,
isMaskEnabled: true, isMaskEnabled: true,
@ -82,7 +81,6 @@ const initialCanvasState: CanvasState = {
shouldShowStagingImage: true, shouldShowStagingImage: true,
shouldShowStagingOutline: true, shouldShowStagingOutline: true,
shouldSnapToGrid: true, shouldSnapToGrid: true,
shouldUseInpaintReplace: false,
stageCoordinates: { x: 0, y: 0 }, stageCoordinates: { x: 0, y: 0 },
stageDimensions: { width: 0, height: 0 }, stageDimensions: { width: 0, height: 0 },
stageScale: 1, stageScale: 1,
@ -264,12 +262,6 @@ export const canvasSlice = createSlice({
state.pastLayerStates = []; state.pastLayerStates = [];
state.futureLayerStates = []; state.futureLayerStates = [];
}, },
setShouldUseInpaintReplace: (state, action: PayloadAction<boolean>) => {
state.shouldUseInpaintReplace = action.payload;
},
setInpaintReplace: (state, action: PayloadAction<number>) => {
state.inpaintReplace = action.payload;
},
setShouldLockBoundingBox: (state, action: PayloadAction<boolean>) => { setShouldLockBoundingBox: (state, action: PayloadAction<boolean>) => {
state.shouldLockBoundingBox = action.payload; state.shouldLockBoundingBox = action.payload;
}, },
@ -858,7 +850,6 @@ export const {
setCursorPosition, setCursorPosition,
setDoesCanvasNeedScaling, setDoesCanvasNeedScaling,
setInitialCanvasImage, setInitialCanvasImage,
setInpaintReplace,
setIsDrawing, setIsDrawing,
setIsMaskEnabled, setIsMaskEnabled,
setIsMouseOverBoundingBox, setIsMouseOverBoundingBox,
@ -885,7 +876,6 @@ export const {
setShouldShowStagingImage, setShouldShowStagingImage,
setShouldShowStagingOutline, setShouldShowStagingOutline,
setShouldSnapToGrid, setShouldSnapToGrid,
setShouldUseInpaintReplace,
setStageCoordinates, setStageCoordinates,
setStageScale, setStageScale,
setTool, setTool,

View File

@ -125,7 +125,6 @@ export interface CanvasState {
cursorPosition: Vector2d | null; cursorPosition: Vector2d | null;
doesCanvasNeedScaling: boolean; doesCanvasNeedScaling: boolean;
futureLayerStates: CanvasLayerState[]; futureLayerStates: CanvasLayerState[];
inpaintReplace: number;
intermediateImage?: InvokeAI.Image; intermediateImage?: InvokeAI.Image;
isCanvasInitialized: boolean; isCanvasInitialized: boolean;
isDrawing: boolean; isDrawing: boolean;
@ -159,7 +158,6 @@ export interface CanvasState {
shouldShowStagingImage: boolean; shouldShowStagingImage: boolean;
shouldShowStagingOutline: boolean; shouldShowStagingOutline: boolean;
shouldSnapToGrid: boolean; shouldSnapToGrid: boolean;
shouldUseInpaintReplace: boolean;
stageCoordinates: Vector2d; stageCoordinates: Vector2d;
stageDimensions: Dimensions; stageDimensions: Dimensions;
stageScale: number; stageScale: number;

View File

@ -21,7 +21,6 @@ import { systemSelector } from 'features/system/store/systemSelectors';
import _ from 'lodash'; import _ from 'lodash';
import { ChangeEvent } from 'react'; import { ChangeEvent } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import InpaintReplace from './InpaintReplace';
const selector = createSelector( const selector = createSelector(
[optionsSelector, systemSelector, canvasSelector], [optionsSelector, systemSelector, canvasSelector],
@ -148,7 +147,6 @@ const InfillAndScalingOptions = () => {
withReset withReset
handleReset={handleResetScaledHeight} handleReset={handleResetScaledHeight}
/> />
<InpaintReplace />
<IAISelect <IAISelect
label={t('options:infillMethod')} label={t('options:infillMethod')}
value={infillMethod} value={infillMethod}

View File

@ -1,67 +0,0 @@
import React, { ChangeEvent } from 'react';
import { useAppDispatch, useAppSelector } from '../../../../../app/storeHooks';
import _ from 'lodash';
import { createSelector } from '@reduxjs/toolkit';
import IAISwitch from '../../../../../common/components/IAISwitch';
import IAISlider from '../../../../../common/components/IAISlider';
import { Flex } from '@chakra-ui/react';
import {
setInpaintReplace,
setShouldUseInpaintReplace,
} from 'features/canvas/store/canvasSlice';
import { canvasSelector } from 'features/canvas/store/canvasSelectors';
import { useTranslation } from 'react-i18next';
const selector = createSelector(
canvasSelector,
(canvas) => {
const { inpaintReplace, shouldUseInpaintReplace } = canvas;
return {
inpaintReplace,
shouldUseInpaintReplace,
};
},
{
memoizeOptions: {
resultEqualityCheck: _.isEqual,
},
}
);
export default function InpaintReplace() {
const { inpaintReplace, shouldUseInpaintReplace } = useAppSelector(selector);
const dispatch = useAppDispatch();
const { t } = useTranslation();
return (
<Flex alignItems={'center'} columnGap={'0.2rem'}>
<IAISlider
label={t('options:inpaintReplace')}
value={inpaintReplace}
onChange={(v: number) => {
dispatch(setInpaintReplace(v));
}}
min={0}
max={1.0}
step={0.05}
isInteger={false}
isSliderDisabled={!shouldUseInpaintReplace}
withSliderMarks
sliderMarkRightOffset={-2}
withReset
handleReset={() => dispatch(setInpaintReplace(0.1))}
withInput
isResetDisabled={!shouldUseInpaintReplace}
/>
<IAISwitch
isChecked={shouldUseInpaintReplace}
onChange={(e: ChangeEvent<HTMLInputElement>) =>
dispatch(setShouldUseInpaintReplace(e.target.checked))
}
marginTop="1.25rem"
/>
</Flex>
);
}