1
0
Fork 0

add strings for new features

This commit is contained in:
Sean Sube 2024-02-16 23:11:30 -06:00
parent dff6dfa8ac
commit 6f35b57e6e
Signed by: ssube
GPG Key ID: 3EED7B957D362AF1
7 changed files with 103 additions and 13 deletions

View File

@ -3,6 +3,7 @@ import { mustDefault, mustExist } from '@apextoaster/js-utils';
import { Checkbox, FormControlLabel, Stack, TextField } from '@mui/material'; import { Checkbox, FormControlLabel, Stack, TextField } from '@mui/material';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import * as React from 'react'; import * as React from 'react';
import { useState } from 'react';
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import { STALE_TIME, STANDARD_SPACING } from '../../constants.js'; import { STALE_TIME, STANDARD_SPACING } from '../../constants.js';
@ -10,13 +11,24 @@ import { NumericField } from '../input/NumericField.js';
import { QueryList } from '../input/QueryList.js'; import { QueryList } from '../input/QueryList.js';
import { ClientContext } from '../../state/full.js'; import { ClientContext } from '../../state/full.js';
export interface ExperimentalParams {
latent_symmetry: boolean;
latent_symmetry_gradient_start: number;
latent_symmetry_gradient_end: number;
latent_symmetry_line_of_symmetry: number;
prompt_editing: boolean;
prompt_filter: string;
remove_tokens: string;
add_suffix: string;
}
export interface ExperimentalControlProps { export interface ExperimentalControlProps {
setExperimental(params: Record<string, unknown>): void; setExperimental(params: Record<string, unknown>): void;
} }
export function ExperimentalControl(props: ExperimentalControlProps) { export function ExperimentalControl(props: ExperimentalControlProps) {
const { t } = useTranslation(); const { t } = useTranslation();
const state = { const [state, setState] = useState<ExperimentalParams>({
latent_symmetry: false, latent_symmetry: false,
latent_symmetry_gradient_start: 0.1, latent_symmetry_gradient_start: 0.1,
latent_symmetry_gradient_end: 0.3, latent_symmetry_gradient_end: 0.3,
@ -25,7 +37,7 @@ export function ExperimentalControl(props: ExperimentalControlProps) {
prompt_filter: '', prompt_filter: '',
remove_tokens: '', remove_tokens: '',
add_suffix: '', add_suffix: '',
}; });
const client = mustExist(React.useContext(ClientContext)); const client = mustExist(React.useContext(ClientContext));
const filters = useQuery(['filters'], async () => client.filters(), { const filters = useQuery(['filters'], async () => client.filters(), {
@ -41,7 +53,8 @@ export function ExperimentalControl(props: ExperimentalControlProps) {
checked={state.latent_symmetry} checked={state.latent_symmetry}
value='check' value='check'
onChange={(event) => { onChange={(event) => {
props.setExperimental({ setState({
...state,
latent_symmetry: state.latent_symmetry === false, latent_symmetry: state.latent_symmetry === false,
}); });
}} }}
@ -49,39 +62,45 @@ export function ExperimentalControl(props: ExperimentalControlProps) {
/> />
<NumericField <NumericField
decimal decimal
disabled={state.latent_symmetry === false}
label={t('experimental.latent_symmetry.gradient_start')} label={t('experimental.latent_symmetry.gradient_start')}
min={0} min={0}
max={0.5} max={0.5}
step={0.01} step={0.01}
value={state.latent_symmetry_gradient_start} value={state.latent_symmetry_gradient_start}
onChange={(latent_symmetry_gradient_start) => { onChange={(latent_symmetry_gradient_start) => {
props.setExperimental({ setState({
...state,
latent_symmetry_gradient_start, latent_symmetry_gradient_start,
}); });
}} }}
/> />
<NumericField <NumericField
decimal decimal
disabled={state.latent_symmetry === false}
label={t('experimental.latent_symmetry.gradient_end')} label={t('experimental.latent_symmetry.gradient_end')}
min={0} min={0}
max={0.5} max={0.5}
step={0.01} step={0.01}
value={state.latent_symmetry_gradient_end} value={state.latent_symmetry_gradient_end}
onChange={(latent_symmetry_gradient_end) => { onChange={(latent_symmetry_gradient_end) => {
props.setExperimental({ setState({
...state,
latent_symmetry_gradient_end, latent_symmetry_gradient_end,
}); });
}} }}
/> />
<NumericField <NumericField
decimal decimal
disabled={state.latent_symmetry === false}
label={t('experimental.latent_symmetry.line_of_symmetry')} label={t('experimental.latent_symmetry.line_of_symmetry')}
min={0} min={0}
max={1} max={1}
step={0.01} step={0.01}
value={state.latent_symmetry_line_of_symmetry} value={state.latent_symmetry_line_of_symmetry}
onChange={(latent_symmetry_line_of_symmetry) => { onChange={(latent_symmetry_line_of_symmetry) => {
props.setExperimental({ setState({
...state,
latent_symmetry_line_of_symmetry, latent_symmetry_line_of_symmetry,
}); });
}} }}
@ -95,43 +114,50 @@ export function ExperimentalControl(props: ExperimentalControlProps) {
checked={state.prompt_editing} checked={state.prompt_editing}
value='check' value='check'
onChange={(event) => { onChange={(event) => {
props.setExperimental({ setState({
...state,
prompt_editing: state.prompt_editing === false, prompt_editing: state.prompt_editing === false,
}); });
}} }}
/>} />}
/> />
<QueryList <QueryList
disabled={state.prompt_editing === false}
id='prompt_filters' id='prompt_filters'
labelKey='prompt_filter' labelKey='model.prompt'
name={t('experimental.prompt_editing.prompt_filters')} name={t('experimental.prompt_editing.filter')}
query={{ query={{
result: filters, result: filters,
selector: (f) => f.prompt, selector: (f) => f.prompt,
}} }}
value={mustDefault(state.prompt_filter, '')} value={mustDefault(state.prompt_filter, '')}
onChange={(prompt_filter) => { onChange={(prompt_filter) => {
props.setExperimental({ setState({
...state,
prompt_filter, prompt_filter,
}); });
}} }}
/> />
<TextField <TextField
disabled={state.prompt_editing === false}
label={t('experimental.prompt_editing.remove_tokens')} label={t('experimental.prompt_editing.remove_tokens')}
variant='outlined' variant='outlined'
value={state.remove_tokens} value={state.remove_tokens}
onChange={(event) => { onChange={(event) => {
props.setExperimental({ setState({
...state,
remove_tokens: event.target.value, remove_tokens: event.target.value,
}); });
}} }}
/> />
<TextField <TextField
disabled={state.prompt_editing === false}
label={t('experimental.prompt_editing.add_suffix')} label={t('experimental.prompt_editing.add_suffix')}
variant='outlined' variant='outlined'
value={state.add_suffix} value={state.add_suffix}
onChange={(event) => { onChange={(event) => {
props.setExperimental({ setState({
...state,
add_suffix: event.target.value, add_suffix: event.target.value,
}); });
}} }}

View File

@ -15,6 +15,7 @@ export interface QueryListFilter<T> {
} }
export interface QueryListProps<T> { export interface QueryListProps<T> {
disabled?: boolean;
id: string; id: string;
labelKey: string; labelKey: string;
name: string; name: string;
@ -107,6 +108,7 @@ export function QueryList<T>(props: QueryListProps<T>) {
return <FormControl> return <FormControl>
<InputLabel id={labelID}>{props.name}</InputLabel> <InputLabel id={labelID}>{props.name}</InputLabel>
<Select <Select
disabled={props.disabled}
labelId={labelID} labelId={labelID}
label={props.name} label={props.name}
value={firstValidValue()} value={firstValidValue()}

View File

@ -106,11 +106,11 @@ export function Txt2Img() {
<SizeControl /> <SizeControl />
<HighresControl selectHighres={selectHighres} setHighres={setHighres} /> <HighresControl selectHighres={selectHighres} setHighres={setHighres} />
<UpscaleControl selectUpscale={selectUpscale} setUpscale={setUpscale} /> <UpscaleControl selectUpscale={selectUpscale} setUpscale={setUpscale} />
<VariableControl selectGrid={selectVariable} setGrid={setVariable} />
<ExperimentalControl setExperimental={(props) => { <ExperimentalControl setExperimental={(props) => {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.log('setting experimental props', props); console.log('setting experimental props', props);
}} /> }} />
<VariableControl selectGrid={selectVariable} setGrid={setVariable} />
<Button <Button
variant='contained' variant='contained'
onClick={() => generate.mutate()} onClick={() => generate.mutate()}

View File

@ -22,6 +22,20 @@ export const I18N_STRINGS_DE = {
support: 'Dieses Modell unterstützt möglicherweise keine Bearbeitung.', support: 'Dieses Modell unterstützt möglicherweise keine Bearbeitung.',
}, },
}, },
experimental: {
latent_symmetry: {
label: '', // 'Latente Symmetrie',
gradient_start: '', // 'Gradientenstart',
gradient_end: '', // 'Gradientenende',
line_of_symmetry: '', // 'Symmetrielinie',
},
prompt_editing: {
add_suffix: '', // 'Suffix hinzufügen',
filter: '', // 'Prompt-Filter',
label: '', // 'Prompt-Bearbeitung',
remove_tokens: '', // 'Entfernen Sie Token',
},
},
extras: { extras: {
add: 'Artikel hinzufügen', add: 'Artikel hinzufügen',
dest: 'Ordnernamen', dest: 'Ordnernamen',

View File

@ -17,6 +17,20 @@ export const I18N_STRINGS_EN = {
support: 'This diffusion model may not support inpainting.', support: 'This diffusion model may not support inpainting.',
}, },
}, },
experimental: {
latent_symmetry: {
label: 'Latent Symmetry',
gradient_start: 'Gradient Start',
gradient_end: 'Gradient End',
line_of_symmetry: 'Line of Symmetry',
},
prompt_editing: {
add_suffix: 'Add Suffix',
filter: 'Prompt Filter',
label: 'Prompt Editing',
remove_tokens: 'Remove Tokens',
},
},
extras: { extras: {
add: 'Add', add: 'Add',
dest: 'Folder', dest: 'Folder',
@ -156,6 +170,12 @@ export const I18N_STRINGS_EN = {
scribble: 'Scribble', scribble: 'Scribble',
seg: 'Image Segmentation', seg: 'Image Segmentation',
}, },
'prompt': {
'AUTOMATIC/promptgen-lexart': 'LexArt',
'AUTOMATIC/promptgen-majinai-safe': 'Majinai (Safe)',
'AUTOMATIC/promptgen-majinai-unsafe': 'Majinai (Unsafe)',
'Gustavosta/MagicPrompt-Stable-Diffusion': 'MagicPrompt',
}
}, },
modelType: { modelType: {
control: 'ControlNet', control: 'ControlNet',

View File

@ -22,6 +22,20 @@ export const I18N_STRINGS_ES = {
support: 'Es posible que este modelo no admita la edición.', support: 'Es posible que este modelo no admita la edición.',
}, },
}, },
experimental: {
latent_symmetry: {
label: '',
gradient_start: '',
gradient_end: '',
line_of_symmetry: '',
},
prompt_editing: {
add_suffix: '',
filter: '',
label: '',
remove_tokens: '',
},
},
extras: { extras: {
add: 'Agregar', add: 'Agregar',
dest: 'Nombre de la carpeta', dest: 'Nombre de la carpeta',

View File

@ -22,6 +22,20 @@ export const I18N_STRINGS_FR = {
support: 'ce modèle peut ne pas prendre en charge l\'édition', support: 'ce modèle peut ne pas prendre en charge l\'édition',
}, },
}, },
experimental: {
latent_symmetry: {
label: '',
gradient_start: '',
gradient_end: '',
line_of_symmetry: '',
},
prompt_editing: {
add_suffix: '',
filter: '',
label: '',
remove_tokens: '',
},
},
extras: { extras: {
add: 'ajouter', add: 'ajouter',
dest: 'nom de dossier', dest: 'nom de dossier',