1
0
Fork 0

feat(gui): add selector for mask filter

This commit is contained in:
Sean Sube 2023-01-15 11:10:02 -06:00
parent f5ed77a349
commit 2a30a04e46
4 changed files with 21 additions and 21 deletions

View File

@ -44,7 +44,7 @@ export interface InpaintParams extends BaseImgParams {
mask: Blob; mask: Blob;
source: Blob; source: Blob;
blend: string; filter: string;
noise: string; noise: string;
} }
@ -78,7 +78,7 @@ export interface ApiReady {
} }
export interface ApiClient { export interface ApiClient {
blends(): Promise<Array<string>>; masks(): Promise<Array<string>>;
models(): Promise<Array<string>>; models(): Promise<Array<string>>;
noises(): Promise<Array<string>>; noises(): Promise<Array<string>>;
params(): Promise<ConfigParams>; params(): Promise<ConfigParams>;
@ -161,8 +161,8 @@ export function makeClient(root: string, f = fetch): ApiClient {
} }
return { return {
async blends(): Promise<Array<string>> { async masks(): Promise<Array<string>> {
const path = makeApiUrl(root, 'settings', 'blends'); const path = makeApiUrl(root, 'settings', 'masks');
const res = await f(path); const res = await f(path);
return await res.json() as Array<string>; return await res.json() as Array<string>;
}, },
@ -238,8 +238,8 @@ export function makeClient(root: string, f = fetch): ApiClient {
} }
const url = makeImageURL(root, 'inpaint', params); const url = makeImageURL(root, 'inpaint', params);
url.searchParams.append('filter', params.filter);
url.searchParams.append('noise', params.noise); url.searchParams.append('noise', params.noise);
url.searchParams.append('blend', params.blend);
const body = new FormData(); const body = new FormData();
body.append('mask', params.mask, 'mask'); body.append('mask', params.mask, 'mask');
@ -259,8 +259,8 @@ export function makeClient(root: string, f = fetch): ApiClient {
} }
const url = makeImageURL(root, 'inpaint', params); const url = makeImageURL(root, 'inpaint', params);
url.searchParams.append('filter', params.filter);
url.searchParams.append('noise', params.noise); url.searchParams.append('noise', params.noise);
url.searchParams.append('blend', params.blend);
if (doesExist(params.left)) { if (doesExist(params.left)) {
url.searchParams.append('left', params.left.toFixed(0)); url.searchParams.append('left', params.left.toFixed(0));

View File

@ -6,7 +6,7 @@ import { useStore } from 'zustand';
import { ConfigParams, IMAGE_FILTER, STALE_TIME } from '../config.js'; import { ConfigParams, IMAGE_FILTER, STALE_TIME } from '../config.js';
import { ClientContext, StateContext } from '../state.js'; import { ClientContext, StateContext } from '../state.js';
import { BLEND_LABELS, NOISE_LABELS } from '../strings.js'; import { MASK_LABELS, NOISE_LABELS } from '../strings.js';
import { ImageControl } from './ImageControl.js'; import { ImageControl } from './ImageControl.js';
import { ImageInput } from './ImageInput.js'; import { ImageInput } from './ImageInput.js';
import { MaskCanvas } from './MaskCanvas.js'; import { MaskCanvas } from './MaskCanvas.js';
@ -25,7 +25,7 @@ export interface InpaintProps {
export function Inpaint(props: InpaintProps) { export function Inpaint(props: InpaintProps) {
const { config, model, platform } = props; const { config, model, platform } = props;
const client = mustExist(useContext(ClientContext)); const client = mustExist(useContext(ClientContext));
const blends = useQuery('blends', async () => client.blends(), { const masks = useQuery('masks', async () => client.masks(), {
staleTime: STALE_TIME, staleTime: STALE_TIME,
}); });
const noises = useQuery('noises', async () => client.noises(), { const noises = useQuery('noises', async () => client.noises(), {
@ -114,14 +114,14 @@ export function Inpaint(props: InpaintProps) {
/> />
<Stack direction='row' spacing={2}> <Stack direction='row' spacing={2}>
<QueryList <QueryList
id='blends' id='masks'
labels={BLEND_LABELS} labels={MASK_LABELS}
name='Blend Mode' name='Mask Filter'
result={blends} result={masks}
value={params.blend} value={params.filter}
onChange={(blend) => { onChange={(filter) => {
setInpaint({ setInpaint({
blend, filter,
}); });
}} }}
/> />

View File

@ -126,10 +126,10 @@ export function createStateSlices(base: ConfigParams) {
const createInpaintSlice: StateCreator<OnnxState, [], [], InpaintSlice> = (set) => ({ const createInpaintSlice: StateCreator<OnnxState, [], [], InpaintSlice> = (set) => ({
inpaint: { inpaint: {
...defaults, ...defaults,
filter: '',
mask: null, mask: null,
source: null,
noise: '', noise: '',
blend: '', source: null,
}, },
setInpaint(params) { setInpaint(params) {
set((prev) => ({ set((prev) => ({
@ -143,10 +143,10 @@ export function createStateSlices(base: ConfigParams) {
set({ set({
inpaint: { inpaint: {
...defaults, ...defaults,
filter: '',
mask: null, mask: null,
source: null, source: null,
noise: '', noise: '',
blend: '',
}, },
}); });
}, },

View File

@ -35,7 +35,7 @@ export const NOISE_LABELS: Record<string, string> = {
uniform: 'Uniform Noise', uniform: 'Uniform Noise',
}; };
export const BLEND_LABELS: Record<string, string> = { export const MASK_LABELS: Record<string, string> = {
'mask-source': 'Noise -> Source', gaussian: 'Gaussian Blur',
'source-mask': 'Source -> Noise', none: 'None',
}; };