lots update
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { ModelInfo, Rect } from "@/lib/types"
|
||||
import { ModelInfo, PowerPaintTask, Rect } from "@/lib/types"
|
||||
import { Settings } from "@/lib/states"
|
||||
import { srcToFile } from "@/lib/utils"
|
||||
import axios from "axios"
|
||||
@@ -22,7 +22,6 @@ export default async function inpaint(
|
||||
const fd = new FormData()
|
||||
fd.append("image", imageFile)
|
||||
fd.append("mask", mask)
|
||||
|
||||
fd.append("ldmSteps", settings.ldmSteps.toString())
|
||||
fd.append("ldmSampler", settings.ldmSampler.toString())
|
||||
fd.append("zitsWireframe", settings.zitsWireframe.toString())
|
||||
@@ -51,6 +50,7 @@ export default async function inpaint(
|
||||
fd.append("sdSteps", settings.sdSteps.toString())
|
||||
fd.append("sdGuidanceScale", settings.sdGuidanceScale.toString())
|
||||
fd.append("sdSampler", settings.sdSampler.toString())
|
||||
|
||||
if (settings.seedFixed) {
|
||||
fd.append("sdSeed", settings.seed.toString())
|
||||
} else {
|
||||
@@ -76,13 +76,20 @@ export default async function inpaint(
|
||||
fd.append("p2pImageGuidanceScale", settings.p2pImageGuidanceScale.toString())
|
||||
|
||||
// ControlNet
|
||||
fd.append("controlnet_enabled", settings.enableControlnet.toString())
|
||||
fd.append("enable_controlnet", settings.enableControlnet.toString())
|
||||
fd.append(
|
||||
"controlnet_conditioning_scale",
|
||||
settings.controlnetConditioningScale.toString()
|
||||
)
|
||||
fd.append("controlnet_method", settings.controlnetMethod.toString())
|
||||
|
||||
// PowerPaint
|
||||
if (settings.showExtender) {
|
||||
fd.append("powerpaintTask", PowerPaintTask.outpainting)
|
||||
} else {
|
||||
fd.append("powerpaintTask", settings.powerpaintTask)
|
||||
}
|
||||
|
||||
try {
|
||||
const res = await fetch(`${API_ENDPOINT}/inpaint`, {
|
||||
method: "POST",
|
||||
|
||||
@@ -8,14 +8,13 @@ export const MODEL_TYPE_DIFFUSERS_SDXL_INPAINT = "diffusers_sdxl_inpaint"
|
||||
export const MODEL_TYPE_OTHER = "diffusers_other"
|
||||
export const BRUSH_COLOR = "#ffcc00bb"
|
||||
|
||||
export const EXTENDER_X = "extender_x"
|
||||
export const EXTENDER_Y = "extender_y"
|
||||
export const EXTENDER_ALL = "extender_all"
|
||||
|
||||
export const LDM = "ldm"
|
||||
export const CV2 = "cv2"
|
||||
|
||||
export const PAINT_BY_EXAMPLE = "Fantasy-Studio/Paint-by-Example"
|
||||
export const INSTRUCT_PIX2PIX = "timbrooks/instruct-pix2pix"
|
||||
export const KANDINSKY_2_2 = "kandinsky-community/kandinsky-2-2-decoder-inpaint"
|
||||
export const POWERPAINT = "Sanster/PowerPaint-V1-stable-diffusion-inpainting"
|
||||
|
||||
export const DEFAULT_NEGATIVE_PROMPT =
|
||||
"out of frame, lowres, error, cropped, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, disfigured, gross proportions, malformed limbs, watermark, signature"
|
||||
|
||||
@@ -5,6 +5,7 @@ import { castDraft } from "immer"
|
||||
import { createWithEqualityFn } from "zustand/traditional"
|
||||
import {
|
||||
CV2Flag,
|
||||
ExtenderDirection,
|
||||
FreeuConfig,
|
||||
LDMSampler,
|
||||
Line,
|
||||
@@ -12,6 +13,7 @@ import {
|
||||
ModelInfo,
|
||||
PluginParams,
|
||||
Point,
|
||||
PowerPaintTask,
|
||||
SDSampler,
|
||||
Size,
|
||||
SortBy,
|
||||
@@ -21,9 +23,6 @@ import {
|
||||
BRUSH_COLOR,
|
||||
DEFAULT_BRUSH_SIZE,
|
||||
DEFAULT_NEGATIVE_PROMPT,
|
||||
EXTENDER_ALL,
|
||||
EXTENDER_X,
|
||||
EXTENDER_Y,
|
||||
MODEL_TYPE_INPAINT,
|
||||
PAINT_BY_EXAMPLE,
|
||||
} from "./const"
|
||||
@@ -60,7 +59,7 @@ export type Settings = {
|
||||
enableUploadMask: boolean
|
||||
showCropper: boolean
|
||||
showExtender: boolean
|
||||
extenderDirection: string
|
||||
extenderDirection: ExtenderDirection
|
||||
|
||||
// For LDM
|
||||
ldmSteps: number
|
||||
@@ -99,6 +98,9 @@ export type Settings = {
|
||||
enableLCMLora: boolean
|
||||
enableFreeu: boolean
|
||||
freeuConfig: FreeuConfig
|
||||
|
||||
// PowerPaint
|
||||
powerpaintTask: PowerPaintTask
|
||||
}
|
||||
|
||||
type ServerConfig = {
|
||||
@@ -178,9 +180,9 @@ type AppAction = {
|
||||
setExtenderWidth: (newValue: number) => void
|
||||
setExtenderHeight: (newValue: number) => void
|
||||
setIsCropperExtenderResizing: (newValue: boolean) => void
|
||||
updateExtenderDirection: (newValue: string) => void
|
||||
updateExtenderDirection: (newValue: ExtenderDirection) => void
|
||||
resetExtender: (width: number, height: number) => void
|
||||
updateExtenderByBuiltIn: (direction: string, scale: number) => void
|
||||
updateExtenderByBuiltIn: (direction: ExtenderDirection, scale: number) => void
|
||||
|
||||
setServerConfig: (newValue: ServerConfig) => void
|
||||
setSeed: (newValue: number) => void
|
||||
@@ -296,7 +298,7 @@ const defaultValues: AppState = {
|
||||
enableControlnet: false,
|
||||
showCropper: false,
|
||||
showExtender: false,
|
||||
extenderDirection: EXTENDER_ALL,
|
||||
extenderDirection: ExtenderDirection.xy,
|
||||
enableDownloadMask: false,
|
||||
enableManualInpainting: false,
|
||||
enableUploadMask: false,
|
||||
@@ -309,7 +311,7 @@ const defaultValues: AppState = {
|
||||
negativePrompt: DEFAULT_NEGATIVE_PROMPT,
|
||||
seed: 42,
|
||||
seedFixed: false,
|
||||
sdMaskBlur: 5,
|
||||
sdMaskBlur: 35,
|
||||
sdStrength: 1.0,
|
||||
sdSteps: 50,
|
||||
sdGuidanceScale: 7.5,
|
||||
@@ -322,6 +324,7 @@ const defaultValues: AppState = {
|
||||
enableLCMLora: false,
|
||||
enableFreeu: false,
|
||||
freeuConfig: { s1: 0.9, s2: 0.2, b1: 1.2, b2: 1.4 },
|
||||
powerpaintTask: PowerPaintTask.text_guided,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -894,7 +897,7 @@ export const useStore = createWithEqualityFn<AppState & AppAction>()(
|
||||
state.isCropperExtenderResizing = newValue
|
||||
}),
|
||||
|
||||
updateExtenderDirection: (newValue: string) => {
|
||||
updateExtenderDirection: (newValue: ExtenderDirection) => {
|
||||
console.log(
|
||||
`updateExtenderDirection: ${JSON.stringify(get().extenderState)}`
|
||||
)
|
||||
@@ -908,7 +911,10 @@ export const useStore = createWithEqualityFn<AppState & AppAction>()(
|
||||
get().updateExtenderByBuiltIn(newValue, 1.5)
|
||||
},
|
||||
|
||||
updateExtenderByBuiltIn: (direction: string, scale: number) => {
|
||||
updateExtenderByBuiltIn: (
|
||||
direction: ExtenderDirection,
|
||||
scale: number
|
||||
) => {
|
||||
const newExtenderState = { ...defaultValues.extenderState }
|
||||
let { x, y, width, height } = newExtenderState
|
||||
const { imageWidth, imageHeight } = get()
|
||||
@@ -916,15 +922,15 @@ export const useStore = createWithEqualityFn<AppState & AppAction>()(
|
||||
height = imageHeight
|
||||
|
||||
switch (direction) {
|
||||
case EXTENDER_X:
|
||||
case ExtenderDirection.x:
|
||||
x = -Math.ceil((imageWidth * (scale - 1)) / 2)
|
||||
width = Math.ceil(imageWidth * scale)
|
||||
break
|
||||
case EXTENDER_Y:
|
||||
case ExtenderDirection.y:
|
||||
y = -Math.ceil((imageHeight * (scale - 1)) / 2)
|
||||
height = Math.ceil(imageHeight * scale)
|
||||
break
|
||||
case EXTENDER_ALL:
|
||||
case ExtenderDirection.xy:
|
||||
x = -Math.ceil((imageWidth * (scale - 1)) / 2)
|
||||
y = -Math.ceil((imageHeight * (scale - 1)) / 2)
|
||||
width = Math.ceil(imageWidth * scale)
|
||||
|
||||
@@ -93,3 +93,16 @@ export interface Size {
|
||||
width: number
|
||||
height: number
|
||||
}
|
||||
|
||||
export enum ExtenderDirection {
|
||||
x = "x",
|
||||
y = "y",
|
||||
xy = "xy",
|
||||
}
|
||||
|
||||
export enum PowerPaintTask {
|
||||
text_guided = "text-guided",
|
||||
shape_guided = "shape-guided",
|
||||
object_remove = "object-remove",
|
||||
outpainting = "outpainting",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user