Skip to content
6 changes: 6 additions & 0 deletions docs/installation/quick_start.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ Hardware requirements vary significantly depending on model and image output siz
- Memory: At least 32GB RAM.
- Disk: 10GB for base installation plus 200GB for models.

=== "Z-Image Turbo - 1024x1024"
- GPU: Nvidia 20xx series or later, 8GB+ VRAM.
- Memory: At least 16GB RAM.
- Disk: 10GB for base installation plus 35GB for models.


More detail on system requirements can be found [here](./requirements.md).

## Step 2: Download and Set Up the Launcher
Expand Down
5 changes: 5 additions & 0 deletions docs/installation/requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ The requirements below are rough guidelines for best performance. GPUs with less
- Memory: At least 32GB RAM.
- Disk: 10GB for base installation plus 200GB for models.

=== "Z-Image Turbo - 1024x1024"
- GPU: Nvidia 20xx series or later, 8GB+ VRAM.
- Memory: At least 16GB RAM.
- Disk: 10GB for base installation plus 35GB for models.

!!! info "`tmpfs` on Linux"

If your temporary directory is mounted as a `tmpfs`, ensure it has sufficient space.
Expand Down
1 change: 1 addition & 0 deletions invokeai/backend/model_manager/load/load_default.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ def _load_and_cache(self, config: AnyModelConfig, submodel_type: Optional[SubMod

config.path = str(self._get_model_path(config))
self._ram_cache.make_room(self.get_size_fs(config, Path(config.path), submodel_type))
self._logger.info(f"Loading model '{stats_name}' into RAM cache..., config={config}")
loaded_model = self._load_model(config, submodel_type)

self._ram_cache.put(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ def _load_from_singlefile(
# Some weights of the model checkpoint were not used when initializing CLIPTextModelWithProjection:
# ['text_model.embeddings.position_ids']

self._logger.info(f"Loading model from single file at {config.path} using {load_class.__name__}")
with SilenceWarnings():
pipeline = load_class.from_single_file(config.path, torch_dtype=self._torch_dtype)

Expand Down
9 changes: 9 additions & 0 deletions invokeai/backend/model_manager/starter_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -890,10 +890,19 @@ class StarterModelBundle(BaseModel):
flux_krea_quantized,
]

zimage_bundle: list[StarterModel] = [
z_image_turbo_quantized,
z_image_qwen3_encoder_quantized,
z_image_controlnet_union,
z_image_controlnet_tile,
flux_vae,
]

STARTER_BUNDLES: dict[str, StarterModelBundle] = {
BaseModelType.StableDiffusion1: StarterModelBundle(name="Stable Diffusion 1.5", models=sd1_bundle),
BaseModelType.StableDiffusionXL: StarterModelBundle(name="SDXL", models=sdxl_bundle),
BaseModelType.Flux: StarterModelBundle(name="FLUX.1 dev", models=flux_bundle),
BaseModelType.ZImage: StarterModelBundle(name="Z-Image Turbo", models=zimage_bundle),
}

assert len(STARTER_MODELS) == len({m.source for m in STARTER_MODELS}), "Duplicate starter models"
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import type { SystemStyleObject } from '@invoke-ai/ui-library';
import { Box, Button, Flex, Heading, Tab, TabList, TabPanel, TabPanels, Tabs, Text } from '@invoke-ai/ui-library';
import { Box, Flex, Heading, Tab, TabList, TabPanel, TabPanels, Tabs } from '@invoke-ai/ui-library';
import { useStore } from '@nanostores/react';
import { $installModelsTabIndex } from 'features/modelManagerV2/store/installModelsStore';
import { StarterModelsForm } from 'features/modelManagerV2/subpanels/AddModelPanel/StarterModels/StarterModelsForm';
import { memo, useCallback } from 'react';
import { memo } from 'react';
import { useTranslation } from 'react-i18next';
import { PiCubeBold, PiFolderOpenBold, PiInfoBold, PiLinkSimpleBold, PiShootingStarBold } from 'react-icons/pi';
import { PiCubeBold, PiFolderOpenBold, PiLinkSimpleBold, PiShootingStarBold } from 'react-icons/pi';
import { SiHuggingface } from 'react-icons/si';

import { HuggingFaceForm } from './AddModelPanel/HuggingFaceFolder/HuggingFaceForm';
Expand All @@ -24,17 +24,21 @@ export const InstallModels = memo(() => {
const { t } = useTranslation();
const tabIndex = useStore($installModelsTabIndex);

const onClickLearnMore = useCallback(() => {
window.open('https://support.invoke.ai/support/solutions/articles/151000170961-supported-models');
}, []);
{
/* TO DO: This click target points to an out-of-date invokeai.ai URL. Reinstate when there is an updated web link. */
}
// const onClickLearnMore = useCallback(() => {
// window.open('https://support.invoke.ai/support/solutions/articles/151000170961-supported-models');
// }, []);

return (
<Flex layerStyle="first" borderRadius="base" w="full" h="full" flexDir="column" gap={4}>
<Flex alignItems="center" justifyContent="space-between">
<Heading fontSize="xl">{t('modelManager.addModel')}</Heading>
<Button alignItems="center" variant="link" leftIcon={<PiInfoBold />} onClick={onClickLearnMore}>
{/* TO DO: This button points to an out-of-date invokeai.ai URL. Reinstate when there is an updated web link. */}
{/* <Button alignItems="center" variant="link" leftIcon={<PiInfoBold />} onClick={onClickLearnMore}>
<Text variant="subtext">{t('modelManager.learnMoreAboutSupportedModels')}</Text>
</Button>
</Button> */}
</Flex>
<Tabs
variant="line"
Expand Down