refactor controlnet mode options

pull/330/head
Abdullah Alfaraj 2023-07-12 21:41:33 +03:00
parent 33157603d1
commit 0e382c60eb
2 changed files with 39 additions and 20 deletions

View File

@ -616,27 +616,42 @@ export default class ControlNetUnit extends React.Component<
</SpCheckBox> </SpCheckBox>
{this.props.appState.controlnetApiVersion > 1 && ( {this.props.appState.controlnetApiVersion > 1 && (
<sp-radio-group <sp-radio-group
id={`rgControlNetMode_${this.props.index}`}
style={{ display: 'flex' }} style={{ display: 'flex' }}
selected={
this.props.appState.controlNetUnitData[
this.props.index
].control_mode
}
onClick={(event: any) => {
this.props.appState.controlNetUnitData[
this.props.index
].control_mode = event.target.value
}}
> >
<sp-label slot="label"> <sp-label slot="label">
{Locale('Control Mode')} {Locale('Control Mode')}
</sp-label> </sp-label>
<sp-radio checked value="0"> {controlnetModes.map(
{Locale('Balanced')} (mode: ControlnetMode, index: number) => {
</sp-radio> console.log('mode:', mode, ' index:', index)
return (
<sp-radio <sp-radio
title="My prompt is more important" key={`mode-${index}`}
value="1" checked={
this.props.appState
.controlNetUnitData[
this.props.index
].control_mode === mode
? true
: void 0
}
value={`${mode}`}
> >
{Locale('My prompt is more important')} {Locale(mode)}
</sp-radio>
<sp-radio
title="ControlNet is more important"
value="2"
>
{Locale('ControlNet is more important')}
</sp-radio> </sp-radio>
)
}
)}
</sp-radio-group> </sp-radio-group>
)} )}

View File

@ -23,6 +23,13 @@ export const DefaultControlNetUnitData = {
auto_image: true, auto_image: true,
} }
export const controlnetModes = [
'Balanced',
'My prompt is more important',
'ControlNet is more important',
] as const
export type ControlnetMode = (typeof controlnetModes)[number]
export interface controlNetUnitData { export interface controlNetUnitData {
enabled: boolean enabled: boolean
input_image: string input_image: string
@ -44,10 +51,7 @@ export interface controlNetUnitData {
guidance_end: number guidance_end: number
guessmode: boolean guessmode: boolean
control_mode: control_mode: ControlnetMode
| 'Balanced'
| 'My prompt is more important'
| 'ControlNet is more important'
pixel_perfect: boolean pixel_perfect: boolean
auto_image: boolean // sync CtrlNet image with sd input image auto_image: boolean // sync CtrlNet image with sd input image
} }