feat(ui): add nodesAllowlist to config

This commit is contained in:
psychedelicious 2023-09-07 11:11:34 +10:00 committed by Kent Keirsey
parent cc92ce3da5
commit 74cc409c72
4 changed files with 18 additions and 7 deletions

View File

@ -14,10 +14,11 @@ export const addReceivedOpenAPISchemaListener = () => {
const schemaJSON = action.payload;
log.debug({ schemaJSON }, 'Received OpenAPI schema');
const { nodesAllowlist, nodesDenylist } = getState().config;
const nodeTemplates = parseSchema(
schemaJSON,
getState().config.nodesDenylist
nodesAllowlist,
nodesDenylist
);
log.debug(

View File

@ -50,7 +50,8 @@ export type AppConfig = {
disabledFeatures: AppFeature[];
disabledSDFeatures: SDFeature[];
canRestoreDeletedImagesFromBin: boolean;
nodesDenylist: string[];
nodesAllowlist: string[] | undefined;
nodesDenylist: string[] | undefined;
sd: {
defaultModel?: string;
disabledControlNetModels: string[];

View File

@ -61,13 +61,21 @@ const isNotInDenylist = (schema: InvocationSchemaObject) =>
export const parseSchema = (
openAPI: OpenAPIV3.Document,
nodesDenylistExtra: string[] = []
nodesAllowlistExtra: string[] | undefined = undefined,
nodesDenylistExtra: string[] | undefined = undefined
): Record<string, InvocationTemplate> => {
const filteredSchemas = Object.values(openAPI.components?.schemas ?? {})
.filter(isInvocationSchemaObject)
.filter(isNotInDenylist)
.filter(
(schema) => !nodesDenylistExtra.includes(schema.properties.type.default)
.filter((schema) =>
nodesAllowlistExtra
? nodesAllowlistExtra.includes(schema.properties.type.default)
: true
)
.filter((schema) =>
nodesDenylistExtra
? !nodesDenylistExtra.includes(schema.properties.type.default)
: true
);
const invocations = filteredSchemas.reduce<

View File

@ -15,7 +15,8 @@ export const initialConfigState: AppConfig = {
'perlinNoise',
'noiseThreshold',
],
nodesDenylist: [],
nodesAllowlist: undefined,
nodesDenylist: undefined,
canRestoreDeletedImagesFromBin: true,
sd: {
disabledControlNetModels: [],