mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
fix(ui): use seed + 1 for inpaint/outpaint second pass
This commit is contained in:
parent
2ba52b8921
commit
2f11936db0
@ -18,6 +18,8 @@ import {
|
||||
CANVAS_INPAINT_GRAPH,
|
||||
CANVAS_OUTPUT,
|
||||
CANVAS_REFINE_DENOISE_LATENTS,
|
||||
CANVAS_REFINE_NOISE,
|
||||
CANVAS_REFINE_NOISE_INCREMENT,
|
||||
CLIP_SKIP,
|
||||
DENOISE_LATENTS,
|
||||
INPAINT_IMAGE,
|
||||
@ -141,6 +143,18 @@ export const buildCanvasInpaintGraph = (
|
||||
denoising_start: 1 - strength,
|
||||
denoising_end: 1,
|
||||
},
|
||||
[CANVAS_REFINE_NOISE]: {
|
||||
type: 'noise',
|
||||
id: NOISE,
|
||||
use_cpu,
|
||||
is_intermediate: true,
|
||||
},
|
||||
[CANVAS_REFINE_NOISE_INCREMENT]: {
|
||||
type: 'add',
|
||||
id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
b: 1,
|
||||
is_intermediate: true,
|
||||
},
|
||||
[CANVAS_REFINE_DENOISE_LATENTS]: {
|
||||
type: 'denoise_latents',
|
||||
id: DENOISE_LATENTS,
|
||||
@ -294,6 +308,26 @@ export const buildCanvasInpaintGraph = (
|
||||
},
|
||||
},
|
||||
// Canvas Refine
|
||||
{
|
||||
source: {
|
||||
node_id: ITERATE,
|
||||
field: 'item',
|
||||
},
|
||||
destination: {
|
||||
node_id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
field: 'a',
|
||||
},
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
field: 'value',
|
||||
},
|
||||
destination: {
|
||||
node_id: CANVAS_REFINE_NOISE,
|
||||
field: 'seed',
|
||||
},
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: MAIN_MODEL_LOADER,
|
||||
@ -326,7 +360,7 @@ export const buildCanvasInpaintGraph = (
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: NOISE,
|
||||
node_id: CANVAS_REFINE_NOISE,
|
||||
field: 'noise',
|
||||
},
|
||||
destination: {
|
||||
@ -395,11 +429,10 @@ export const buildCanvasInpaintGraph = (
|
||||
height: height,
|
||||
};
|
||||
|
||||
graph.nodes[NOISE] = {
|
||||
...(graph.nodes[NOISE] as NoiseInvocation),
|
||||
width: scaledWidth,
|
||||
height: scaledHeight,
|
||||
};
|
||||
(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;
|
||||
|
||||
// Connect Nodes
|
||||
graph.edges.push(
|
||||
@ -468,11 +501,11 @@ export const buildCanvasInpaintGraph = (
|
||||
);
|
||||
} else {
|
||||
// Add Images To Nodes
|
||||
graph.nodes[NOISE] = {
|
||||
...(graph.nodes[NOISE] as NoiseInvocation),
|
||||
width: width,
|
||||
height: height,
|
||||
};
|
||||
(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[INPAINT_IMAGE] = {
|
||||
...(graph.nodes[INPAINT_IMAGE] as ImageToLatentsInvocation),
|
||||
image: canvasInitImage,
|
||||
|
@ -20,6 +20,8 @@ import {
|
||||
CANVAS_OUTPAINT_GRAPH,
|
||||
CANVAS_OUTPUT,
|
||||
CANVAS_REFINE_DENOISE_LATENTS,
|
||||
CANVAS_REFINE_NOISE,
|
||||
CANVAS_REFINE_NOISE_INCREMENT,
|
||||
CLIP_SKIP,
|
||||
DENOISE_LATENTS,
|
||||
INPAINT_IMAGE,
|
||||
@ -139,12 +141,6 @@ export const buildCanvasOutpaintGraph = (
|
||||
radius: maskBlur,
|
||||
blur_type: maskBlurMethod,
|
||||
},
|
||||
[INPAINT_INFILL]: {
|
||||
type: 'infill_tile',
|
||||
id: INPAINT_INFILL,
|
||||
is_intermediate: true,
|
||||
tile_size: tileSize,
|
||||
},
|
||||
[INPAINT_IMAGE]: {
|
||||
type: 'i2l',
|
||||
id: INPAINT_IMAGE,
|
||||
@ -167,6 +163,18 @@ export const buildCanvasOutpaintGraph = (
|
||||
denoising_start: 1 - strength,
|
||||
denoising_end: 1,
|
||||
},
|
||||
[CANVAS_REFINE_NOISE]: {
|
||||
type: 'noise',
|
||||
id: NOISE,
|
||||
use_cpu,
|
||||
is_intermediate: true,
|
||||
},
|
||||
[CANVAS_REFINE_NOISE_INCREMENT]: {
|
||||
type: 'add',
|
||||
id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
b: 1,
|
||||
is_intermediate: true,
|
||||
},
|
||||
[CANVAS_REFINE_DENOISE_LATENTS]: {
|
||||
type: 'denoise_latents',
|
||||
id: CANVAS_REFINE_DENOISE_LATENTS,
|
||||
@ -341,6 +349,26 @@ export const buildCanvasOutpaintGraph = (
|
||||
},
|
||||
},
|
||||
// Canvas Refine
|
||||
{
|
||||
source: {
|
||||
node_id: ITERATE,
|
||||
field: 'item',
|
||||
},
|
||||
destination: {
|
||||
node_id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
field: 'a',
|
||||
},
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
field: 'value',
|
||||
},
|
||||
destination: {
|
||||
node_id: CANVAS_REFINE_NOISE,
|
||||
field: 'seed',
|
||||
},
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: MAIN_MODEL_LOADER,
|
||||
@ -373,7 +401,7 @@ export const buildCanvasOutpaintGraph = (
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: NOISE,
|
||||
node_id: CANVAS_REFINE_NOISE,
|
||||
field: 'noise',
|
||||
},
|
||||
destination: {
|
||||
@ -422,6 +450,15 @@ export const buildCanvasOutpaintGraph = (
|
||||
};
|
||||
}
|
||||
|
||||
if (infillMethod === 'tile') {
|
||||
graph.nodes[INPAINT_INFILL] = {
|
||||
type: 'infill_tile',
|
||||
id: INPAINT_INFILL,
|
||||
is_intermediate: true,
|
||||
tile_size: tileSize,
|
||||
};
|
||||
}
|
||||
|
||||
// Handle Scale Before Processing
|
||||
if (['auto', 'manual'].includes(boundingBoxScaleMethod)) {
|
||||
const scaledWidth: number = scaledBoundingBoxDimensions.width;
|
||||
@ -465,11 +502,10 @@ export const buildCanvasOutpaintGraph = (
|
||||
height: height,
|
||||
};
|
||||
|
||||
graph.nodes[NOISE] = {
|
||||
...(graph.nodes[NOISE] as NoiseInvocation),
|
||||
width: scaledWidth,
|
||||
height: scaledHeight,
|
||||
};
|
||||
(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;
|
||||
|
||||
// Connect Nodes
|
||||
graph.edges.push(
|
||||
@ -576,11 +612,12 @@ export const buildCanvasOutpaintGraph = (
|
||||
| InfillPatchMatchInvocation),
|
||||
image: canvasInitImage,
|
||||
};
|
||||
graph.nodes[NOISE] = {
|
||||
...(graph.nodes[NOISE] as NoiseInvocation),
|
||||
width: width,
|
||||
height: height,
|
||||
};
|
||||
|
||||
(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[INPAINT_IMAGE] = {
|
||||
...(graph.nodes[INPAINT_IMAGE] as ImageToLatentsInvocation),
|
||||
image: canvasInitImage,
|
||||
|
@ -18,6 +18,8 @@ import { addWatermarkerToGraph } from './addWatermarkerToGraph';
|
||||
import {
|
||||
CANVAS_OUTPUT,
|
||||
CANVAS_REFINE_DENOISE_LATENTS,
|
||||
CANVAS_REFINE_NOISE,
|
||||
CANVAS_REFINE_NOISE_INCREMENT,
|
||||
INPAINT_IMAGE,
|
||||
INPAINT_IMAGE_RESIZE_DOWN,
|
||||
INPAINT_IMAGE_RESIZE_UP,
|
||||
@ -146,6 +148,18 @@ export const buildCanvasSDXLInpaintGraph = (
|
||||
: 1 - strength,
|
||||
denoising_end: shouldUseSDXLRefiner ? refinerStart : 1,
|
||||
},
|
||||
[CANVAS_REFINE_NOISE]: {
|
||||
type: 'noise',
|
||||
id: NOISE,
|
||||
use_cpu,
|
||||
is_intermediate: true,
|
||||
},
|
||||
[CANVAS_REFINE_NOISE_INCREMENT]: {
|
||||
type: 'add',
|
||||
id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
b: 1,
|
||||
is_intermediate: true,
|
||||
},
|
||||
[CANVAS_REFINE_DENOISE_LATENTS]: {
|
||||
type: 'denoise_latents',
|
||||
id: SDXL_DENOISE_LATENTS,
|
||||
@ -308,6 +322,26 @@ export const buildCanvasSDXLInpaintGraph = (
|
||||
},
|
||||
},
|
||||
// Canvas Refine
|
||||
{
|
||||
source: {
|
||||
node_id: ITERATE,
|
||||
field: 'item',
|
||||
},
|
||||
destination: {
|
||||
node_id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
field: 'a',
|
||||
},
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
field: 'value',
|
||||
},
|
||||
destination: {
|
||||
node_id: CANVAS_REFINE_NOISE,
|
||||
field: 'seed',
|
||||
},
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: SDXL_MODEL_LOADER,
|
||||
@ -340,7 +374,7 @@ export const buildCanvasSDXLInpaintGraph = (
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: NOISE,
|
||||
node_id: CANVAS_REFINE_NOISE,
|
||||
field: 'noise',
|
||||
},
|
||||
destination: {
|
||||
@ -409,11 +443,10 @@ export const buildCanvasSDXLInpaintGraph = (
|
||||
height: height,
|
||||
};
|
||||
|
||||
graph.nodes[NOISE] = {
|
||||
...(graph.nodes[NOISE] as NoiseInvocation),
|
||||
width: scaledWidth,
|
||||
height: scaledHeight,
|
||||
};
|
||||
(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;
|
||||
|
||||
// Connect Nodes
|
||||
graph.edges.push(
|
||||
@ -482,11 +515,11 @@ export const buildCanvasSDXLInpaintGraph = (
|
||||
);
|
||||
} else {
|
||||
// Add Images To Nodes
|
||||
graph.nodes[NOISE] = {
|
||||
...(graph.nodes[NOISE] as NoiseInvocation),
|
||||
width: width,
|
||||
height: height,
|
||||
};
|
||||
(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[INPAINT_IMAGE] = {
|
||||
...(graph.nodes[INPAINT_IMAGE] as ImageToLatentsInvocation),
|
||||
image: canvasInitImage,
|
||||
|
@ -20,6 +20,8 @@ import { addWatermarkerToGraph } from './addWatermarkerToGraph';
|
||||
import {
|
||||
CANVAS_OUTPUT,
|
||||
CANVAS_REFINE_DENOISE_LATENTS,
|
||||
CANVAS_REFINE_NOISE,
|
||||
CANVAS_REFINE_NOISE_INCREMENT,
|
||||
INPAINT_IMAGE,
|
||||
INPAINT_IMAGE_RESIZE_DOWN,
|
||||
INPAINT_IMAGE_RESIZE_UP,
|
||||
@ -142,12 +144,6 @@ export const buildCanvasSDXLOutpaintGraph = (
|
||||
radius: maskBlur,
|
||||
blur_type: maskBlurMethod,
|
||||
},
|
||||
[INPAINT_INFILL]: {
|
||||
type: 'infill_tile',
|
||||
id: INPAINT_INFILL,
|
||||
is_intermediate: true,
|
||||
tile_size: tileSize,
|
||||
},
|
||||
[INPAINT_IMAGE]: {
|
||||
type: 'i2l',
|
||||
id: INPAINT_IMAGE,
|
||||
@ -172,6 +168,18 @@ export const buildCanvasSDXLOutpaintGraph = (
|
||||
: 1 - strength,
|
||||
denoising_end: shouldUseSDXLRefiner ? refinerStart : 1,
|
||||
},
|
||||
[CANVAS_REFINE_NOISE]: {
|
||||
type: 'noise',
|
||||
id: NOISE,
|
||||
use_cpu,
|
||||
is_intermediate: true,
|
||||
},
|
||||
[CANVAS_REFINE_NOISE_INCREMENT]: {
|
||||
type: 'add',
|
||||
id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
b: 1,
|
||||
is_intermediate: true,
|
||||
},
|
||||
[CANVAS_REFINE_DENOISE_LATENTS]: {
|
||||
type: 'denoise_latents',
|
||||
id: CANVAS_REFINE_DENOISE_LATENTS,
|
||||
@ -355,6 +363,26 @@ export const buildCanvasSDXLOutpaintGraph = (
|
||||
},
|
||||
},
|
||||
// Canvas Refine
|
||||
{
|
||||
source: {
|
||||
node_id: ITERATE,
|
||||
field: 'item',
|
||||
},
|
||||
destination: {
|
||||
node_id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
field: 'a',
|
||||
},
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: CANVAS_REFINE_NOISE_INCREMENT,
|
||||
field: 'value',
|
||||
},
|
||||
destination: {
|
||||
node_id: CANVAS_REFINE_NOISE,
|
||||
field: 'seed',
|
||||
},
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: SDXL_MODEL_LOADER,
|
||||
@ -387,7 +415,7 @@ export const buildCanvasSDXLOutpaintGraph = (
|
||||
},
|
||||
{
|
||||
source: {
|
||||
node_id: NOISE,
|
||||
node_id: CANVAS_REFINE_NOISE,
|
||||
field: 'noise',
|
||||
},
|
||||
destination: {
|
||||
@ -437,6 +465,15 @@ export const buildCanvasSDXLOutpaintGraph = (
|
||||
};
|
||||
}
|
||||
|
||||
if (infillMethod === 'tile') {
|
||||
graph.nodes[INPAINT_INFILL] = {
|
||||
type: 'infill_tile',
|
||||
id: INPAINT_INFILL,
|
||||
is_intermediate: true,
|
||||
tile_size: tileSize,
|
||||
};
|
||||
}
|
||||
|
||||
// Handle Scale Before Processing
|
||||
if (['auto', 'manual'].includes(boundingBoxScaleMethod)) {
|
||||
const scaledWidth: number = scaledBoundingBoxDimensions.width;
|
||||
@ -480,11 +517,10 @@ export const buildCanvasSDXLOutpaintGraph = (
|
||||
height: height,
|
||||
};
|
||||
|
||||
graph.nodes[NOISE] = {
|
||||
...(graph.nodes[NOISE] as NoiseInvocation),
|
||||
width: scaledWidth,
|
||||
height: scaledHeight,
|
||||
};
|
||||
(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;
|
||||
|
||||
// Connect Nodes
|
||||
graph.edges.push(
|
||||
@ -591,11 +627,12 @@ export const buildCanvasSDXLOutpaintGraph = (
|
||||
| InfillPatchMatchInvocation),
|
||||
image: canvasInitImage,
|
||||
};
|
||||
graph.nodes[NOISE] = {
|
||||
...(graph.nodes[NOISE] as NoiseInvocation),
|
||||
width: width,
|
||||
height: height,
|
||||
};
|
||||
|
||||
(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[INPAINT_IMAGE] = {
|
||||
...(graph.nodes[INPAINT_IMAGE] as ImageToLatentsInvocation),
|
||||
image: canvasInitImage,
|
||||
|
@ -26,6 +26,8 @@ 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 MASK_FROM_ALPHA = 'tomask';
|
||||
export const MASK_EDGE = 'mask_edge';
|
||||
export const MASK_BLUR = 'mask_blur';
|
||||
|
Loading…
Reference in New Issue
Block a user