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}
+
+