diff --git a/invokeai/backend/model_manager/load/model_loaders/z_image.py b/invokeai/backend/model_manager/load/model_loaders/z_image.py index 2668607a7d..c0ccc0c161 100644 --- a/invokeai/backend/model_manager/load/model_loaders/z_image.py +++ b/invokeai/backend/model_manager/load/model_loaders/z_image.py @@ -379,7 +379,8 @@ class Qwen3EncoderCheckpointLoader(ModelLoader): """Class to load single-file Qwen3 Encoder models for Z-Image (safetensors format).""" # Default HuggingFace model to load tokenizer from when using single-file Qwen3 encoder - DEFAULT_TOKENIZER_SOURCE = "Qwen/Qwen2.5-3B" + # Must be Qwen3 (not Qwen2.5) to match Z-Image's text encoder architecture and special tokens + DEFAULT_TOKENIZER_SOURCE = "Qwen/Qwen3-4B" def _load_model( self, @@ -543,7 +544,8 @@ class Qwen3EncoderGGUFLoader(ModelLoader): """Class to load GGUF-quantized Qwen3 Encoder models for Z-Image.""" # Default HuggingFace model to load tokenizer from when using GGUF Qwen3 encoder - DEFAULT_TOKENIZER_SOURCE = "Qwen/Qwen2.5-3B" + # Must be Qwen3 (not Qwen2.5) to match Z-Image's text encoder architecture and special tokens + DEFAULT_TOKENIZER_SOURCE = "Qwen/Qwen3-4B" def _load_model( self, diff --git a/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx b/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx index cf6fcf1c52..0b55f5db09 100644 --- a/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx +++ b/invokeai/frontend/web/src/features/settingsAccordions/components/GenerationSettingsAccordion/GenerationSettingsAccordion.tsx @@ -4,7 +4,7 @@ import { EMPTY_ARRAY } from 'app/store/constants'; import { createMemoizedSelector } from 'app/store/createMemoizedSelector'; import { useAppSelector } from 'app/store/storeHooks'; import { selectLoRAsSlice } from 'features/controlLayers/store/lorasSlice'; -import { selectIsCogView4, selectIsFLUX, selectIsSD3 } from 'features/controlLayers/store/paramsSlice'; +import { selectIsCogView4, selectIsFLUX, selectIsSD3, selectIsZImage } from 'features/controlLayers/store/paramsSlice'; import { LoRAList } from 'features/lora/components/LoRAList'; import LoRASelect from 'features/lora/components/LoRASelect'; import ParamCFGScale from 'features/parameters/components/Core/ParamCFGScale'; @@ -29,6 +29,7 @@ export const GenerationSettingsAccordion = memo(() => { const isFLUX = useAppSelector(selectIsFLUX); const isSD3 = useAppSelector(selectIsSD3); const isCogView4 = useAppSelector(selectIsCogView4); + const isZImage = useAppSelector(selectIsZImage); const selectBadges = useMemo( () => @@ -66,7 +67,7 @@ export const GenerationSettingsAccordion = memo(() => { - {!isFLUX && !isSD3 && !isCogView4 && } + {!isFLUX && !isSD3 && !isCogView4 && !isZImage && } {isFLUX && modelConfig && !isFluxFillMainModelModelConfig(modelConfig) && } {!isFLUX && }