diff --git a/typescripts/controlnet/ControlNetUnit.tsx b/typescripts/controlnet/ControlNetUnit.tsx index ae7cb18..2a8ac69 100644 --- a/typescripts/controlnet/ControlNetUnit.tsx +++ b/typescripts/controlnet/ControlNetUnit.tsx @@ -616,27 +616,42 @@ export default class ControlNetUnit extends React.Component< {this.props.appState.controlnetApiVersion > 1 && ( { + this.props.appState.controlNetUnitData[ + this.props.index + ].control_mode = event.target.value + }} > {Locale('Control Mode')} - - {Locale('Balanced')} - - - {Locale('My prompt is more important')} - - - {Locale('ControlNet is more important')} - + {controlnetModes.map( + (mode: ControlnetMode, index: number) => { + console.log('mode:', mode, ' index:', index) + return ( + + {Locale(mode)} + + ) + } + )} )} diff --git a/typescripts/controlnet/store.ts b/typescripts/controlnet/store.ts index 4cea5e2..2a42711 100644 --- a/typescripts/controlnet/store.ts +++ b/typescripts/controlnet/store.ts @@ -23,6 +23,13 @@ export const DefaultControlNetUnitData = { 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 { enabled: boolean input_image: string @@ -44,10 +51,7 @@ export interface controlNetUnitData { guidance_end: number guessmode: boolean - control_mode: - | 'Balanced' - | 'My prompt is more important' - | 'ControlNet is more important' + control_mode: ControlnetMode pixel_perfect: boolean auto_image: boolean // sync CtrlNet image with sd input image }