diff --git a/invokeai/frontend/web/src/features/ui/components/tabs/ModelManager/subpanels/ModelManagerPanel/ModelList.tsx b/invokeai/frontend/web/src/features/ui/components/tabs/ModelManager/subpanels/ModelManagerPanel/ModelList.tsx index 4a12aad0bf..93cef98f80 100644 --- a/invokeai/frontend/web/src/features/ui/components/tabs/ModelManager/subpanels/ModelManagerPanel/ModelList.tsx +++ b/invokeai/frontend/web/src/features/ui/components/tabs/ModelManager/subpanels/ModelManagerPanel/ModelList.tsx @@ -3,7 +3,7 @@ import { EntityState } from '@reduxjs/toolkit'; import IAIButton from 'common/components/IAIButton'; import IAIInput from 'common/components/IAIInput'; import { forEach } from 'lodash-es'; -import type { ChangeEvent } from 'react'; +import type { ChangeEvent, PropsWithChildren } from 'react'; import { useCallback, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { @@ -44,13 +44,7 @@ const ModelList = (props: ModelListProps) => { return ( - + setModelFormatFilter('all')} @@ -83,35 +77,39 @@ const ModelList = (props: ModelListProps) => { {['all', 'diffusers'].includes(modelFormatFilter) && filteredDiffusersModels.length > 0 && ( - - - Diffusers - - {filteredDiffusersModels.map((model) => ( - - ))} - + + + + Diffusers + + {filteredDiffusersModels.map((model) => ( + + ))} + + )} {['all', 'checkpoint'].includes(modelFormatFilter) && filteredCheckpointModels.length > 0 && ( - - - Checkpoint - - {filteredCheckpointModels.map((model) => ( - - ))} - + + + + Checkpoint + + {filteredCheckpointModels.map((model) => ( + + ))} + + )} @@ -143,3 +141,24 @@ const modelsFilter = ( }); return filteredModels; }; + +const StyledModelContainer = (props: PropsWithChildren) => { + return ( + + {props.children} + + ); +}; diff --git a/invokeai/frontend/web/src/features/ui/components/tabs/ModelManager/subpanels/ModelManagerPanel/ModelListItem.tsx b/invokeai/frontend/web/src/features/ui/components/tabs/ModelManager/subpanels/ModelManagerPanel/ModelListItem.tsx index 3d2126dce7..24842d8eb2 100644 --- a/invokeai/frontend/web/src/features/ui/components/tabs/ModelManager/subpanels/ModelManagerPanel/ModelListItem.tsx +++ b/invokeai/frontend/web/src/features/ui/components/tabs/ModelManager/subpanels/ModelManagerPanel/ModelListItem.tsx @@ -20,6 +20,13 @@ type ModelListItemProps = { setSelectedModelId: (v: string | undefined) => void; }; +const modelBaseTypeMap = { + 'sd-1': 'SD1', + 'sd-2': 'SD2', + sdxl: 'SDXL', + 'sdxl-refiner': 'SDXLR', +}; + export default function ModelListItem(props: ModelListItemProps) { const isBusy = useAppSelector(selectIsBusy); const { t } = useTranslation(); @@ -76,7 +83,7 @@ export default function ModelListItem(props: ModelListItemProps) { bg: isSelected ? 'accent.400' : 'base.100', color: isSelected ? 'base.50' : 'base.800', _hover: { - bg: isSelected ? 'accent.500' : 'base.200', + bg: isSelected ? 'accent.500' : 'base.300', color: isSelected ? 'base.50' : 'base.800', }, _dark: { @@ -84,15 +91,34 @@ export default function ModelListItem(props: ModelListItemProps) { bg: isSelected ? 'accent.600' : 'base.850', _hover: { color: isSelected ? 'base.50' : 'base.100', - bg: isSelected ? 'accent.550' : 'base.800', + bg: isSelected ? 'accent.550' : 'base.700', }, }, }} onClick={handleSelectModel} > - - {model.model_name} - + + + { + modelBaseTypeMap[ + model.base_model as keyof typeof modelBaseTypeMap + ] + } + + + {model.model_name} + +