1
0
Fork 0

fix: send missing model params, add face strength control

This commit is contained in:
Sean Sube 2023-01-16 22:54:01 -06:00
parent 83f2e872f6
commit 0e27cc830d
5 changed files with 24 additions and 13 deletions

View File

@ -183,6 +183,7 @@ def upscale_from_request() -> UpscaleParams:
upscaling = get_from_list(request.args, 'upscaling', upscaling_models) upscaling = get_from_list(request.args, 'upscaling', upscaling_models)
correction = get_from_list(request.args, 'correction', correction_models) correction = get_from_list(request.args, 'correction', correction_models)
faces = request.args.get('faces', 'false') == 'true' faces = request.args.get('faces', 'false') == 'true'
face_strength = get_and_clamp_float(request.args, 'faceStrength', 0.5, 1.0, 0.0)
return UpscaleParams( return UpscaleParams(
upscaling, upscaling,
@ -192,6 +193,7 @@ def upscale_from_request() -> UpscaleParams:
faces=faces, faces=faces,
platform='onnx', platform='onnx',
denoise=denoise, denoise=denoise,
face_strength=face_strength,
) )

View File

@ -91,6 +91,7 @@ class UpscaleParams():
outscale: int = 1, outscale: int = 1,
denoise: float = 0.5, denoise: float = 0.5,
faces=True, faces=True,
face_strength: float = 0.5,
platform: str = 'onnx', platform: str = 'onnx',
half=False half=False
) -> None: ) -> None:
@ -100,21 +101,10 @@ class UpscaleParams():
self.outscale = outscale self.outscale = outscale
self.denoise = denoise self.denoise = denoise
self.faces = faces self.faces = faces
self.face_strength = face_strength
self.platform = platform self.platform = platform
self.half = half self.half = half
def rescale(self, scale: int, outscale: int = 1):
return UpscaleParams(
self.upscale_model,
correction_model=self.correction_model,
scale=scale,
outscale=outscale,
denoise=self.denoise,
faces=self.faces,
platform=self.platform,
half=self.half,
)
def resize(self, size: Size) -> Size: def resize(self, size: Size) -> Size:
return Size(size.width * self.scale * self.outscale, size.height * self.scale * self.outscale) return Size(size.width * self.scale * self.outscale, size.height * self.scale * self.outscale)
@ -190,6 +180,6 @@ def upscale_gfpgan(ctx: ServerContext, params: UpscaleParams, image, upsampler=N
bg_upsampler=upsampler) bg_upsampler=upsampler)
_, _, output = face_enhancer.enhance( _, _, output = face_enhancer.enhance(
image, has_aligned=False, only_center_face=False, paste_back=True) image, has_aligned=False, only_center_face=False, paste_back=True, weight=params.face_strength)
return output return output

View File

@ -73,6 +73,7 @@ export interface UpscaleParams {
faces: boolean; faces: boolean;
scale: number; scale: number;
outscale: number; outscale: number;
faceStrength: number;
} }
export interface ApiResponse { export interface ApiResponse {
@ -167,6 +168,8 @@ export function makeImageURL(root: string, type: string, params: BaseImgParams):
export function appendModelToURL(url: URL, params: ModelParams) { export function appendModelToURL(url: URL, params: ModelParams) {
url.searchParams.append('model', params.model); url.searchParams.append('model', params.model);
url.searchParams.append('platform', params.platform); url.searchParams.append('platform', params.platform);
url.searchParams.append('upscaling', params.upscaling);
url.searchParams.append('correction', params.correction);
} }
export function appendUpscaleToURL(url: URL, upscale: UpscaleParams) { export function appendUpscaleToURL(url: URL, upscale: UpscaleParams) {
@ -175,6 +178,7 @@ export function appendUpscaleToURL(url: URL, upscale: UpscaleParams) {
url.searchParams.append('faces', String(upscale.faces)); url.searchParams.append('faces', String(upscale.faces));
url.searchParams.append('scale', upscale.scale.toFixed(FIXED_INTEGER)); url.searchParams.append('scale', upscale.scale.toFixed(FIXED_INTEGER));
url.searchParams.append('outscale', upscale.outscale.toFixed(FIXED_INTEGER)); url.searchParams.append('outscale', upscale.outscale.toFixed(FIXED_INTEGER));
url.searchParams.append('faceStrength', upscale.faceStrength.toFixed(FIXED_FLOAT));
} }
} }

View File

@ -89,5 +89,19 @@ export function UpscaleControl(props: UpscaleControlProps) {
<FaceRetouchingNatural /> <FaceRetouchingNatural />
Face Correction Face Correction
</ToggleButton> </ToggleButton>
<NumericField
label='Strength'
decimal
disabled={params.enabled === false}
min={config.faceStrength.min}
max={config.faceStrength.max}
step={config.faceStrength.step}
value={params.faceStrength}
onChange={(faceStrength) => {
setUpscale({
faceStrength,
});
}}
/>
</Stack>; </Stack>;
} }

View File

@ -250,6 +250,7 @@ export function createStateSlices(base: ConfigParams) {
faces: false, faces: false,
scale: 1, scale: 1,
outscale: 1, outscale: 1,
faceStrength: 0.5,
}, },
setUpscale(upscale) { setUpscale(upscale) {
set((prev) => ({ set((prev) => ({