Files
InvokeAI/invokeai/frontend/web/src/features/nodes/util/fieldValueBuilders.ts
psychedelicious 8e90f9024d feat(ui): remove isRefinerAvailable state, update refiner node
We can derive `isRefinerAvailable` from the query result (eg are there any refiner models installed). This is a piece of server state, so by using the list models response directly, we can avoid needing to manually keep the client in sync with the server.

Created a `useIsRefinerAvailable()` hook to return this boolean wherever it is needed.

Also updated the main models & refiner models endpoints to only return the appropriate models. Now we don't need to filter the data on these endpoints.
2023-07-26 14:46:38 +10:00

98 lines
2.1 KiB
TypeScript

import { InputFieldTemplate, InputFieldValue } from '../types/types';
export const buildInputFieldValue = (
id: string,
template: InputFieldTemplate
): InputFieldValue => {
const fieldValue: InputFieldValue = {
id,
name: template.name,
type: template.type,
};
if (template.inputRequirement !== 'never') {
if (template.type === 'string') {
fieldValue.value = template.default ?? '';
}
if (template.type === 'integer') {
fieldValue.value = template.default ?? 0;
}
if (template.type === 'float') {
fieldValue.value = template.default ?? 0;
}
if (template.type === 'boolean') {
fieldValue.value = template.default ?? false;
}
if (template.type === 'enum') {
if (template.enumType === 'number') {
fieldValue.value = template.default ?? 0;
}
if (template.enumType === 'string') {
fieldValue.value = template.default ?? '';
}
}
if (template.type === 'array') {
fieldValue.value = template.default ?? 1;
}
if (template.type === 'image') {
fieldValue.value = undefined;
}
if (template.type === 'image_collection') {
fieldValue.value = [];
}
if (template.type === 'latents') {
fieldValue.value = undefined;
}
if (template.type === 'conditioning') {
fieldValue.value = undefined;
}
if (template.type === 'unet') {
fieldValue.value = undefined;
}
if (template.type === 'clip') {
fieldValue.value = undefined;
}
if (template.type === 'vae') {
fieldValue.value = undefined;
}
if (template.type === 'control') {
fieldValue.value = undefined;
}
if (template.type === 'model') {
fieldValue.value = undefined;
}
if (template.type === 'refiner_model') {
fieldValue.value = undefined;
}
if (template.type === 'vae_model') {
fieldValue.value = undefined;
}
if (template.type === 'lora_model') {
fieldValue.value = undefined;
}
if (template.type === 'controlnet_model') {
fieldValue.value = undefined;
}
}
return fieldValue;
};