@@ -17,13 +17,18 @@ import type { MainModelConfig, Qwen3EncoderModelConfig, VAEModelConfig } from 's
1717
1818/**
1919 * Z-Image VAE Model Select - uses FLUX VAE models
20+ * Disabled when Qwen3 Source is selected (mutually exclusive)
2021 */
2122const ParamZImageVaeModelSelect = memo ( ( ) => {
2223 const dispatch = useAppDispatch ( ) ;
2324 const { t } = useTranslation ( ) ;
2425 const zImageVaeModel = useAppSelector ( selectZImageVaeModel ) ;
26+ const zImageQwen3SourceModel = useAppSelector ( selectZImageQwen3SourceModel ) ;
2527 const [ modelConfigs , { isLoading } ] = useFluxVAEModels ( ) ;
2628
29+ // Disable when Qwen3 Source is selected
30+ const isDisabled = zImageQwen3SourceModel !== null ;
31+
2732 const _onChange = useCallback (
2833 ( model : VAEModelConfig | null ) => {
2934 if ( model ) {
@@ -43,14 +48,15 @@ const ParamZImageVaeModelSelect = memo(() => {
4348 } ) ;
4449
4550 return (
46- < FormControl minW = { 0 } flexGrow = { 1 } gap = { 2 } >
51+ < FormControl minW = { 0 } flexGrow = { 1 } gap = { 2 } isDisabled = { isDisabled } >
4752 < FormLabel m = { 0 } > { t ( 'modelManager.zImageVae' ) } </ FormLabel >
4853 < Combobox
4954 value = { value }
5055 options = { options }
5156 onChange = { onChange }
5257 noOptionsMessage = { noOptionsMessage }
5358 isClearable
59+ isDisabled = { isDisabled }
5460 placeholder = { t ( 'modelManager.zImageVaePlaceholder' ) }
5561 />
5662 </ FormControl >
@@ -61,13 +67,18 @@ ParamZImageVaeModelSelect.displayName = 'ParamZImageVaeModelSelect';
6167
6268/**
6369 * Z-Image Qwen3 Encoder Model Select
70+ * Disabled when Qwen3 Source is selected (mutually exclusive)
6471 */
6572const ParamZImageQwen3EncoderModelSelect = memo ( ( ) => {
6673 const dispatch = useAppDispatch ( ) ;
6774 const { t } = useTranslation ( ) ;
6875 const zImageQwen3EncoderModel = useAppSelector ( selectZImageQwen3EncoderModel ) ;
76+ const zImageQwen3SourceModel = useAppSelector ( selectZImageQwen3SourceModel ) ;
6977 const [ modelConfigs , { isLoading } ] = useQwen3EncoderModels ( ) ;
7078
79+ // Disable when Qwen3 Source is selected
80+ const isDisabled = zImageQwen3SourceModel !== null ;
81+
7182 const _onChange = useCallback (
7283 ( model : Qwen3EncoderModelConfig | null ) => {
7384 if ( model ) {
@@ -87,14 +98,15 @@ const ParamZImageQwen3EncoderModelSelect = memo(() => {
8798 } ) ;
8899
89100 return (
90- < FormControl minW = { 0 } flexGrow = { 1 } gap = { 2 } >
101+ < FormControl minW = { 0 } flexGrow = { 1 } gap = { 2 } isDisabled = { isDisabled } >
91102 < FormLabel m = { 0 } > { t ( 'modelManager.zImageQwen3Encoder' ) } </ FormLabel >
92103 < Combobox
93104 value = { value }
94105 options = { options }
95106 onChange = { onChange }
96107 noOptionsMessage = { noOptionsMessage }
97108 isClearable
109+ isDisabled = { isDisabled }
98110 placeholder = { t ( 'modelManager.zImageQwen3EncoderPlaceholder' ) }
99111 />
100112 </ FormControl >
@@ -105,13 +117,19 @@ ParamZImageQwen3EncoderModelSelect.displayName = 'ParamZImageQwen3EncoderModelSe
105117
106118/**
107119 * Z-Image Qwen3 Source Model Select - Diffusers Z-Image models for fallback
120+ * Disabled when VAE or Qwen3 Encoder is selected (mutually exclusive)
108121 */
109122const ParamZImageQwen3SourceModelSelect = memo ( ( ) => {
110123 const dispatch = useAppDispatch ( ) ;
111124 const { t } = useTranslation ( ) ;
112125 const zImageQwen3SourceModel = useAppSelector ( selectZImageQwen3SourceModel ) ;
126+ const zImageVaeModel = useAppSelector ( selectZImageVaeModel ) ;
127+ const zImageQwen3EncoderModel = useAppSelector ( selectZImageQwen3EncoderModel ) ;
113128 const [ modelConfigs , { isLoading } ] = useZImageDiffusersModels ( ) ;
114129
130+ // Disable when VAE or Qwen3 Encoder is selected
131+ const isDisabled = zImageVaeModel !== null || zImageQwen3EncoderModel !== null ;
132+
115133 const _onChange = useCallback (
116134 ( model : MainModelConfig | null ) => {
117135 if ( model ) {
@@ -131,14 +149,15 @@ const ParamZImageQwen3SourceModelSelect = memo(() => {
131149 } ) ;
132150
133151 return (
134- < FormControl minW = { 0 } flexGrow = { 1 } gap = { 2 } >
152+ < FormControl minW = { 0 } flexGrow = { 1 } gap = { 2 } isDisabled = { isDisabled } >
135153 < FormLabel m = { 0 } > { t ( 'modelManager.zImageQwen3Source' ) } </ FormLabel >
136154 < Combobox
137155 value = { value }
138156 options = { options }
139157 onChange = { onChange }
140158 noOptionsMessage = { noOptionsMessage }
141159 isClearable
160+ isDisabled = { isDisabled }
142161 placeholder = { t ( 'modelManager.zImageQwen3SourcePlaceholder' ) }
143162 />
144163 </ FormControl >
0 commit comments