mirror of
https://github.com/invoke-ai/InvokeAI.git
synced 2026-02-16 22:01:32 -05:00
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.
98 lines
2.1 KiB
TypeScript
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;
|
|
};
|