add strings for new features
This commit is contained in:
parent
dff6dfa8ac
commit
6f35b57e6e
|
@ -3,6 +3,7 @@ import { mustDefault, mustExist } from '@apextoaster/js-utils';
|
|||
import { Checkbox, FormControlLabel, Stack, TextField } from '@mui/material';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import * as React from 'react';
|
||||
import { useState } from 'react';
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
|
||||
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 { 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 {
|
||||
setExperimental(params: Record<string, unknown>): void;
|
||||
}
|
||||
|
||||
export function ExperimentalControl(props: ExperimentalControlProps) {
|
||||
const { t } = useTranslation();
|
||||
const state = {
|
||||
const [state, setState] = useState<ExperimentalParams>({
|
||||
latent_symmetry: false,
|
||||
latent_symmetry_gradient_start: 0.1,
|
||||
latent_symmetry_gradient_end: 0.3,
|
||||
|
@ -25,7 +37,7 @@ export function ExperimentalControl(props: ExperimentalControlProps) {
|
|||
prompt_filter: '',
|
||||
remove_tokens: '',
|
||||
add_suffix: '',
|
||||
};
|
||||
});
|
||||
|
||||
const client = mustExist(React.useContext(ClientContext));
|
||||
const filters = useQuery(['filters'], async () => client.filters(), {
|
||||
|
@ -41,7 +53,8 @@ export function ExperimentalControl(props: ExperimentalControlProps) {
|
|||
checked={state.latent_symmetry}
|
||||
value='check'
|
||||
onChange={(event) => {
|
||||
props.setExperimental({
|
||||
setState({
|
||||
...state,
|
||||
latent_symmetry: state.latent_symmetry === false,
|
||||
});
|
||||
}}
|
||||
|
@ -49,39 +62,45 @@ export function ExperimentalControl(props: ExperimentalControlProps) {
|
|||
/>
|
||||
<NumericField
|
||||
decimal
|
||||
disabled={state.latent_symmetry === false}
|
||||
label={t('experimental.latent_symmetry.gradient_start')}
|
||||
min={0}
|
||||
max={0.5}
|
||||
step={0.01}
|
||||
value={state.latent_symmetry_gradient_start}
|
||||
onChange={(latent_symmetry_gradient_start) => {
|
||||
props.setExperimental({
|
||||
setState({
|
||||
...state,
|
||||
latent_symmetry_gradient_start,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
<NumericField
|
||||
decimal
|
||||
disabled={state.latent_symmetry === false}
|
||||
label={t('experimental.latent_symmetry.gradient_end')}
|
||||
min={0}
|
||||
max={0.5}
|
||||
step={0.01}
|
||||
value={state.latent_symmetry_gradient_end}
|
||||
onChange={(latent_symmetry_gradient_end) => {
|
||||
props.setExperimental({
|
||||
setState({
|
||||
...state,
|
||||
latent_symmetry_gradient_end,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
<NumericField
|
||||
decimal
|
||||
disabled={state.latent_symmetry === false}
|
||||
label={t('experimental.latent_symmetry.line_of_symmetry')}
|
||||
min={0}
|
||||
max={1}
|
||||
step={0.01}
|
||||
value={state.latent_symmetry_line_of_symmetry}
|
||||
onChange={(latent_symmetry_line_of_symmetry) => {
|
||||
props.setExperimental({
|
||||
setState({
|
||||
...state,
|
||||
latent_symmetry_line_of_symmetry,
|
||||
});
|
||||
}}
|
||||
|
@ -95,43 +114,50 @@ export function ExperimentalControl(props: ExperimentalControlProps) {
|
|||
checked={state.prompt_editing}
|
||||
value='check'
|
||||
onChange={(event) => {
|
||||
props.setExperimental({
|
||||
setState({
|
||||
...state,
|
||||
prompt_editing: state.prompt_editing === false,
|
||||
});
|
||||
}}
|
||||
/>}
|
||||
/>
|
||||
<QueryList
|
||||
disabled={state.prompt_editing === false}
|
||||
id='prompt_filters'
|
||||
labelKey='prompt_filter'
|
||||
name={t('experimental.prompt_editing.prompt_filters')}
|
||||
labelKey='model.prompt'
|
||||
name={t('experimental.prompt_editing.filter')}
|
||||
query={{
|
||||
result: filters,
|
||||
selector: (f) => f.prompt,
|
||||
}}
|
||||
value={mustDefault(state.prompt_filter, '')}
|
||||
onChange={(prompt_filter) => {
|
||||
props.setExperimental({
|
||||
setState({
|
||||
...state,
|
||||
prompt_filter,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
<TextField
|
||||
disabled={state.prompt_editing === false}
|
||||
label={t('experimental.prompt_editing.remove_tokens')}
|
||||
variant='outlined'
|
||||
value={state.remove_tokens}
|
||||
onChange={(event) => {
|
||||
props.setExperimental({
|
||||
setState({
|
||||
...state,
|
||||
remove_tokens: event.target.value,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
<TextField
|
||||
disabled={state.prompt_editing === false}
|
||||
label={t('experimental.prompt_editing.add_suffix')}
|
||||
variant='outlined'
|
||||
value={state.add_suffix}
|
||||
onChange={(event) => {
|
||||
props.setExperimental({
|
||||
setState({
|
||||
...state,
|
||||
add_suffix: event.target.value,
|
||||
});
|
||||
}}
|
||||
|
|
|
@ -15,6 +15,7 @@ export interface QueryListFilter<T> {
|
|||
}
|
||||
|
||||
export interface QueryListProps<T> {
|
||||
disabled?: boolean;
|
||||
id: string;
|
||||
labelKey: string;
|
||||
name: string;
|
||||
|
@ -107,6 +108,7 @@ export function QueryList<T>(props: QueryListProps<T>) {
|
|||
return <FormControl>
|
||||
<InputLabel id={labelID}>{props.name}</InputLabel>
|
||||
<Select
|
||||
disabled={props.disabled}
|
||||
labelId={labelID}
|
||||
label={props.name}
|
||||
value={firstValidValue()}
|
||||
|
|
|
@ -106,11 +106,11 @@ export function Txt2Img() {
|
|||
<SizeControl />
|
||||
<HighresControl selectHighres={selectHighres} setHighres={setHighres} />
|
||||
<UpscaleControl selectUpscale={selectUpscale} setUpscale={setUpscale} />
|
||||
<VariableControl selectGrid={selectVariable} setGrid={setVariable} />
|
||||
<ExperimentalControl setExperimental={(props) => {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('setting experimental props', props);
|
||||
}} />
|
||||
<VariableControl selectGrid={selectVariable} setGrid={setVariable} />
|
||||
<Button
|
||||
variant='contained'
|
||||
onClick={() => generate.mutate()}
|
||||
|
|
|
@ -22,6 +22,20 @@ export const I18N_STRINGS_DE = {
|
|||
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: {
|
||||
add: 'Artikel hinzufügen',
|
||||
dest: 'Ordnernamen',
|
||||
|
|
|
@ -17,6 +17,20 @@ export const I18N_STRINGS_EN = {
|
|||
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: {
|
||||
add: 'Add',
|
||||
dest: 'Folder',
|
||||
|
@ -156,6 +170,12 @@ export const I18N_STRINGS_EN = {
|
|||
scribble: 'Scribble',
|
||||
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: {
|
||||
control: 'ControlNet',
|
||||
|
|
|
@ -22,6 +22,20 @@ export const I18N_STRINGS_ES = {
|
|||
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: {
|
||||
add: 'Agregar',
|
||||
dest: 'Nombre de la carpeta',
|
||||
|
|
|
@ -22,6 +22,20 @@ export const I18N_STRINGS_FR = {
|
|||
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: {
|
||||
add: 'ajouter',
|
||||
dest: 'nom de dossier',
|
||||
|
|
Loading…
Reference in New Issue