fix(ui): disabled global IP adapters used for generation

This commit is contained in:
psychedelicious
2024-09-07 22:18:08 +10:00
parent 4cb5854990
commit 8d87549ebe
2 changed files with 13 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
import type { CanvasIPAdapterState, IPAdapterConfig } from 'features/controlLayers/store/types';
import type { CanvasIPAdapterState } from 'features/controlLayers/store/types';
import type { Graph } from 'features/nodes/util/graph/generation/Graph';
import type { BaseModelType, Invocation } from 'services/api/types';
import { assert } from 'tsafe';
@@ -13,7 +13,7 @@ export const addIPAdapters = (
collector: Invocation<'collect'>,
base: BaseModelType
): AddIPAdaptersResult => {
const validIPAdapters = ipAdapters.filter((entity) => isValidIPAdapter(entity.ipAdapter, base));
const validIPAdapters = ipAdapters.filter((entity) => isValidIPAdapter(entity, base));
const result: AddIPAdaptersResult = {
addedIPAdapters: 0,
@@ -50,10 +50,10 @@ const addIPAdapter = (entity: CanvasIPAdapterState, g: Graph, collector: Invocat
g.addEdge(ipAdapterNode, 'ip_adapter', collector, 'item');
};
export const isValidIPAdapter = (ipAdapter: IPAdapterConfig, base: BaseModelType): boolean => {
const isValidIPAdapter = ({ isEnabled, ipAdapter }: CanvasIPAdapterState, base: BaseModelType): boolean => {
// Must be have a model that matches the current base and must have a control image
const hasModel = Boolean(ipAdapter.model);
const modelMatchesBase = ipAdapter.model?.base === base;
const hasImage = Boolean(ipAdapter.image);
return hasModel && modelMatchesBase && hasImage;
return isEnabled && hasModel && modelMatchesBase && hasImage;
};

View File

@@ -3,10 +3,10 @@ import type { CanvasManager } from 'features/controlLayers/konva/CanvasManager';
import { getPrefixedId } from 'features/controlLayers/konva/util';
import type {
CanvasRegionalGuidanceState,
IPAdapterConfig,
Rect,
RegionalGuidanceIPAdapterConfig,
} from 'features/controlLayers/store/types';
import { isValidIPAdapter } from 'features/nodes/util/graph/generation/addIPAdapters';
import type { Graph } from 'features/nodes/util/graph/generation/Graph';
import type { BaseModelType, Invocation } from 'services/api/types';
import { assert } from 'tsafe';
@@ -234,3 +234,11 @@ export const addRegions = async (
return results;
};
const isValidIPAdapter = (ipAdapter: IPAdapterConfig, base: BaseModelType): boolean => {
// Must be have a model that matches the current base and must have a control image
const hasModel = Boolean(ipAdapter.model);
const modelMatchesBase = ipAdapter.model?.base === base;
const hasImage = Boolean(ipAdapter.image);
return hasModel && modelMatchesBase && hasImage;
};