import { Box, Flex, SimpleGrid } from '@invoke-ai/ui-library'; import { ControlNetOrT2IAdapterDefaultSettings } from 'features/modelManagerV2/subpanels/ModelPanel/ControlNetOrT2IAdapterDefaultSettings/ControlNetOrT2IAdapterDefaultSettings'; import { ModelConvertButton } from 'features/modelManagerV2/subpanels/ModelPanel/ModelConvertButton'; import { ModelEditButton } from 'features/modelManagerV2/subpanels/ModelPanel/ModelEditButton'; import { ModelHeader } from 'features/modelManagerV2/subpanels/ModelPanel/ModelHeader'; import { TriggerPhrases } from 'features/modelManagerV2/subpanels/ModelPanel/TriggerPhrases'; import { memo, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import type { AnyModelConfig } from 'services/api/types'; import { MainModelDefaultSettings } from './MainModelDefaultSettings/MainModelDefaultSettings'; import { ModelAttrView } from './ModelAttrView'; type Props = { modelConfig: AnyModelConfig; }; export const ModelView = memo(({ modelConfig }: Props) => { const { t } = useTranslation(); const withSettings = useMemo(() => { if (modelConfig.type === 'main' && modelConfig.base !== 'sdxl-refiner') { return true; } if (modelConfig.type === 'controlnet' || modelConfig.type === 't2i_adapter') { return true; } if (modelConfig.type === 'main' || modelConfig.type === 'lora') { return true; } return false; }, [modelConfig.base, modelConfig.type]); return ( {modelConfig.format === 'checkpoint' && modelConfig.type === 'main' && ( )} {modelConfig.type === 'main' && ( )} {modelConfig.type === 'main' && modelConfig.format === 'diffusers' && modelConfig.repo_variant && ( )} {modelConfig.type === 'main' && modelConfig.format === 'checkpoint' && ( <> )} {modelConfig.type === 'ip_adapter' && modelConfig.format === 'invokeai' && ( )} {withSettings && ( {modelConfig.type === 'main' && modelConfig.base !== 'sdxl-refiner' && ( )} {(modelConfig.type === 'controlnet' || modelConfig.type === 't2i_adapter') && ( )} {(modelConfig.type === 'main' || modelConfig.type === 'lora') && ( )} )} ); }); ModelView.displayName = 'ModelView';