mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-04-23 03:00:31 -04:00
feat(ui): use revised filters
- Add backcompat for cnet model default settings - Default filter selection based on model type - Updated UI components to use new filter nodes - Added handling for failed filter executions, preventing filter from getting stuck in case it failed for some reason - New translations for all filters & fields
This commit is contained in:
committed by
Kent Keirsey
parent
561db0751b
commit
9f06a9b03c
@@ -1,6 +1,12 @@
|
||||
import { createSelector, type Selector } from '@reduxjs/toolkit';
|
||||
import { EMPTY_ARRAY } from 'app/store/constants';
|
||||
import type { RootState } from 'app/store/store';
|
||||
import { useMemo } from 'react';
|
||||
import { modelConfigsAdapterSelectors, useGetModelConfigsQuery } from 'services/api/endpoints/models';
|
||||
import {
|
||||
modelConfigsAdapterSelectors,
|
||||
selectModelConfigsQuery,
|
||||
useGetModelConfigsQuery,
|
||||
} from 'services/api/endpoints/models';
|
||||
import type { AnyModelConfig } from 'services/api/types';
|
||||
import {
|
||||
isClipEmbedModelConfig,
|
||||
@@ -54,3 +60,46 @@ export const useIPAdapterModels = buildModelsHook(isIPAdapterModelConfig);
|
||||
export const useEmbeddingModels = buildModelsHook(isTIModelConfig);
|
||||
export const useVAEModels = buildModelsHook(isVAEModelConfig);
|
||||
export const useFluxVAEModels = buildModelsHook(isFluxVAEModelConfig);
|
||||
|
||||
// const buildModelsSelector =
|
||||
// <T extends AnyModelConfig>(typeGuard: (config: AnyModelConfig) => config is T): Selector<RootState, T[]> =>
|
||||
// (state) => {
|
||||
// const result = selectModelConfigsQuery(state);
|
||||
// if (!result.data) {
|
||||
// return EMPTY_ARRAY;
|
||||
// }
|
||||
// return modelConfigsAdapterSelectors.selectAll(result.data).filter(typeGuard);
|
||||
// };
|
||||
// export const selectSDMainModels = buildModelsSelector(isNonRefinerNonFluxMainModelConfig);
|
||||
// export const selectMainModels = buildModelsSelector(isNonRefinerMainModelConfig);
|
||||
// export const selectNonSDXLMainModels = buildModelsSelector(isNonSDXLMainModelConfig);
|
||||
// export const selectRefinerModels = buildModelsSelector(isRefinerMainModelModelConfig);
|
||||
// export const selectFluxModels = buildModelsSelector(isFluxMainModelModelConfig);
|
||||
// export const selectSDXLModels = buildModelsSelector(isSDXLMainModelModelConfig);
|
||||
// export const selectLoRAModels = buildModelsSelector(isLoRAModelConfig);
|
||||
// export const selectControlNetAndT2IAdapterModels = buildModelsSelector(isControlNetOrT2IAdapterModelConfig);
|
||||
// export const selectControlNetModels = buildModelsSelector(isControlNetModelConfig);
|
||||
// export const selectT2IAdapterModels = buildModelsSelector(isT2IAdapterModelConfig);
|
||||
// export const selectT5EncoderModels = buildModelsSelector(isT5EncoderModelConfig);
|
||||
// export const selectClipEmbedModels = buildModelsSelector(isClipEmbedModelConfig);
|
||||
// export const selectSpandrelImageToImageModels = buildModelsSelector(isSpandrelImageToImageModelConfig);
|
||||
// export const selectIPAdapterModels = buildModelsSelector(isIPAdapterModelConfig);
|
||||
// export const selectEmbeddingModels = buildModelsSelector(isTIModelConfig);
|
||||
// export const selectVAEModels = buildModelsSelector(isVAEModelConfig);
|
||||
// export const selectFluxVAEModels = buildModelsSelector(isFluxVAEModelConfig);
|
||||
|
||||
export const buildSelectModelConfig = <T extends AnyModelConfig>(
|
||||
key: string,
|
||||
typeGuard: (config: AnyModelConfig) => config is T
|
||||
): Selector<RootState, T | null> =>
|
||||
createSelector(selectModelConfigsQuery, (result) => {
|
||||
if (!result.data) {
|
||||
return null;
|
||||
}
|
||||
return (
|
||||
modelConfigsAdapterSelectors
|
||||
.selectAll(result.data)
|
||||
.filter(typeGuard)
|
||||
.find((m) => m.key === key) ?? null
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user