mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Merge branch 'main' into depth-anything
This commit is contained in:
commit
5a67bc68a1
@ -31,6 +31,7 @@ class WorkflowRecordOrderBy(str, Enum, metaclass=MetaEnum):
|
|||||||
class WorkflowCategory(str, Enum, metaclass=MetaEnum):
|
class WorkflowCategory(str, Enum, metaclass=MetaEnum):
|
||||||
User = "user"
|
User = "user"
|
||||||
Default = "default"
|
Default = "default"
|
||||||
|
Project = "project"
|
||||||
|
|
||||||
|
|
||||||
class WorkflowMeta(BaseModel):
|
class WorkflowMeta(BaseModel):
|
||||||
|
@ -110,7 +110,28 @@
|
|||||||
"somethingWentWrong": "Etwas ist schief gelaufen",
|
"somethingWentWrong": "Etwas ist schief gelaufen",
|
||||||
"copyError": "$t(gallery.copy) Fehler",
|
"copyError": "$t(gallery.copy) Fehler",
|
||||||
"input": "Eingabe",
|
"input": "Eingabe",
|
||||||
"notInstalled": "Nicht $t(common.installed)"
|
"notInstalled": "Nicht $t(common.installed)",
|
||||||
|
"advancedOptions": "Erweiterte Einstellungen",
|
||||||
|
"alpha": "Alpha",
|
||||||
|
"red": "Rot",
|
||||||
|
"green": "Grün",
|
||||||
|
"blue": "Blau",
|
||||||
|
"delete": "Löschen",
|
||||||
|
"or": "oder",
|
||||||
|
"direction": "Richtung",
|
||||||
|
"free": "Frei",
|
||||||
|
"save": "Speichern",
|
||||||
|
"preferencesLabel": "Präferenzen",
|
||||||
|
"created": "Erstellt",
|
||||||
|
"prevPage": "Vorherige Seite",
|
||||||
|
"nextPage": "Nächste Seite",
|
||||||
|
"unknownError": "Unbekannter Fehler",
|
||||||
|
"unsaved": "Nicht gespeichert",
|
||||||
|
"aboutDesc": "Verwenden Sie Invoke für die Arbeit? Dann siehe hier:",
|
||||||
|
"localSystem": "Lokales System",
|
||||||
|
"orderBy": "Ordnen nach",
|
||||||
|
"saveAs": "Speicher als",
|
||||||
|
"updated": "Aktualisiert"
|
||||||
},
|
},
|
||||||
"gallery": {
|
"gallery": {
|
||||||
"generations": "Erzeugungen",
|
"generations": "Erzeugungen",
|
||||||
@ -701,7 +722,8 @@
|
|||||||
"invokeProgressBar": "Invoke Fortschrittsanzeige",
|
"invokeProgressBar": "Invoke Fortschrittsanzeige",
|
||||||
"mode": "Modus",
|
"mode": "Modus",
|
||||||
"resetUI": "$t(accessibility.reset) von UI",
|
"resetUI": "$t(accessibility.reset) von UI",
|
||||||
"createIssue": "Ticket erstellen"
|
"createIssue": "Ticket erstellen",
|
||||||
|
"about": "Über"
|
||||||
},
|
},
|
||||||
"boards": {
|
"boards": {
|
||||||
"autoAddBoard": "Automatisches Hinzufügen zum Ordner",
|
"autoAddBoard": "Automatisches Hinzufügen zum Ordner",
|
||||||
@ -809,7 +831,8 @@
|
|||||||
"canny": "Canny",
|
"canny": "Canny",
|
||||||
"hedDescription": "Ganzheitlich verschachtelte Kantenerkennung",
|
"hedDescription": "Ganzheitlich verschachtelte Kantenerkennung",
|
||||||
"scribble": "Scribble",
|
"scribble": "Scribble",
|
||||||
"maxFaces": "Maximal Anzahl Gesichter"
|
"maxFaces": "Maximal Anzahl Gesichter",
|
||||||
|
"resizeSimple": "Größe ändern (einfach)"
|
||||||
},
|
},
|
||||||
"queue": {
|
"queue": {
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
@ -999,5 +1022,27 @@
|
|||||||
"selectLoRA": "Wählen ein LoRA aus",
|
"selectLoRA": "Wählen ein LoRA aus",
|
||||||
"esrganModel": "ESRGAN Modell",
|
"esrganModel": "ESRGAN Modell",
|
||||||
"addLora": "LoRA hinzufügen"
|
"addLora": "LoRA hinzufügen"
|
||||||
|
},
|
||||||
|
"accordions": {
|
||||||
|
"generation": {
|
||||||
|
"title": "Erstellung",
|
||||||
|
"modelTab": "Modell",
|
||||||
|
"conceptsTab": "Konzepte"
|
||||||
|
},
|
||||||
|
"image": {
|
||||||
|
"title": "Bild"
|
||||||
|
},
|
||||||
|
"advanced": {
|
||||||
|
"title": "Erweitert"
|
||||||
|
},
|
||||||
|
"control": {
|
||||||
|
"title": "Kontrolle",
|
||||||
|
"controlAdaptersTab": "Kontroll Adapter",
|
||||||
|
"ipTab": "Bild Beschreibung"
|
||||||
|
},
|
||||||
|
"compositing": {
|
||||||
|
"coherenceTab": "Kohärenzpass",
|
||||||
|
"infillTab": "Füllung"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -606,6 +606,10 @@
|
|||||||
"desc": "Send current image to Image to Image",
|
"desc": "Send current image to Image to Image",
|
||||||
"title": "Send To Image To Image"
|
"title": "Send To Image To Image"
|
||||||
},
|
},
|
||||||
|
"remixImage": {
|
||||||
|
"desc": "Use all parameters except seed from the current image",
|
||||||
|
"title": "Remix image"
|
||||||
|
},
|
||||||
"setParameters": {
|
"setParameters": {
|
||||||
"desc": "Use all parameters of the current image",
|
"desc": "Use all parameters of the current image",
|
||||||
"title": "Set Parameters"
|
"title": "Set Parameters"
|
||||||
@ -1222,6 +1226,7 @@
|
|||||||
"useCpuNoise": "Use CPU Noise",
|
"useCpuNoise": "Use CPU Noise",
|
||||||
"cpuNoise": "CPU Noise",
|
"cpuNoise": "CPU Noise",
|
||||||
"gpuNoise": "GPU Noise",
|
"gpuNoise": "GPU Noise",
|
||||||
|
"remixImage": "Remix Image",
|
||||||
"useInitImg": "Use Initial Image",
|
"useInitImg": "Use Initial Image",
|
||||||
"usePrompt": "Use Prompt",
|
"usePrompt": "Use Prompt",
|
||||||
"useSeed": "Use Seed",
|
"useSeed": "Use Seed",
|
||||||
@ -1703,6 +1708,7 @@
|
|||||||
"workflowLibrary": "Library",
|
"workflowLibrary": "Library",
|
||||||
"userWorkflows": "My Workflows",
|
"userWorkflows": "My Workflows",
|
||||||
"defaultWorkflows": "Default Workflows",
|
"defaultWorkflows": "Default Workflows",
|
||||||
|
"projectWorkflows": "Project Workflows",
|
||||||
"openWorkflow": "Open Workflow",
|
"openWorkflow": "Open Workflow",
|
||||||
"uploadWorkflow": "Load from File",
|
"uploadWorkflow": "Load from File",
|
||||||
"deleteWorkflow": "Delete Workflow",
|
"deleteWorkflow": "Delete Workflow",
|
||||||
@ -1715,6 +1721,7 @@
|
|||||||
"workflowSaved": "Workflow Saved",
|
"workflowSaved": "Workflow Saved",
|
||||||
"noRecentWorkflows": "No Recent Workflows",
|
"noRecentWorkflows": "No Recent Workflows",
|
||||||
"noUserWorkflows": "No User Workflows",
|
"noUserWorkflows": "No User Workflows",
|
||||||
|
"noWorkflows": "No Workflows",
|
||||||
"noSystemWorkflows": "No System Workflows",
|
"noSystemWorkflows": "No System Workflows",
|
||||||
"problemLoading": "Problem Loading Workflows",
|
"problemLoading": "Problem Loading Workflows",
|
||||||
"loading": "Loading Workflows",
|
"loading": "Loading Workflows",
|
||||||
|
@ -118,7 +118,14 @@
|
|||||||
"advancedOptions": "Opzioni avanzate",
|
"advancedOptions": "Opzioni avanzate",
|
||||||
"free": "Libero",
|
"free": "Libero",
|
||||||
"or": "o",
|
"or": "o",
|
||||||
"preferencesLabel": "Preferenze"
|
"preferencesLabel": "Preferenze",
|
||||||
|
"red": "Rosso",
|
||||||
|
"aboutHeading": "Possiedi il tuo potere creativo",
|
||||||
|
"aboutDesc": "Utilizzi Invoke per lavoro? Guarda qui:",
|
||||||
|
"localSystem": "Sistema locale",
|
||||||
|
"green": "Verde",
|
||||||
|
"blue": "Blu",
|
||||||
|
"alpha": "Alfa"
|
||||||
},
|
},
|
||||||
"gallery": {
|
"gallery": {
|
||||||
"generations": "Generazioni",
|
"generations": "Generazioni",
|
||||||
@ -521,7 +528,8 @@
|
|||||||
"customConfigFileLocation": "Posizione del file di configurazione personalizzato",
|
"customConfigFileLocation": "Posizione del file di configurazione personalizzato",
|
||||||
"vaePrecision": "Precisione VAE",
|
"vaePrecision": "Precisione VAE",
|
||||||
"noModelSelected": "Nessun modello selezionato",
|
"noModelSelected": "Nessun modello selezionato",
|
||||||
"conversionNotSupported": "Conversione non supportata"
|
"conversionNotSupported": "Conversione non supportata",
|
||||||
|
"configFile": "File di configurazione"
|
||||||
},
|
},
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"images": "Immagini",
|
"images": "Immagini",
|
||||||
@ -660,7 +668,9 @@
|
|||||||
"lockAspectRatio": "Blocca proporzioni",
|
"lockAspectRatio": "Blocca proporzioni",
|
||||||
"swapDimensions": "Scambia dimensioni",
|
"swapDimensions": "Scambia dimensioni",
|
||||||
"aspect": "Aspetto",
|
"aspect": "Aspetto",
|
||||||
"setToOptimalSizeTooLarge": "$t(parameters.setToOptimalSize) (potrebbe essere troppo grande)"
|
"setToOptimalSizeTooLarge": "$t(parameters.setToOptimalSize) (potrebbe essere troppo grande)",
|
||||||
|
"boxBlur": "Box",
|
||||||
|
"gaussianBlur": "Gaussian"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"models": "Modelli",
|
"models": "Modelli",
|
||||||
@ -794,7 +804,9 @@
|
|||||||
"invalidUpload": "Caricamento non valido",
|
"invalidUpload": "Caricamento non valido",
|
||||||
"problemDeletingWorkflow": "Problema durante l'eliminazione del flusso di lavoro",
|
"problemDeletingWorkflow": "Problema durante l'eliminazione del flusso di lavoro",
|
||||||
"workflowDeleted": "Flusso di lavoro eliminato",
|
"workflowDeleted": "Flusso di lavoro eliminato",
|
||||||
"problemRetrievingWorkflow": "Problema nel recupero del flusso di lavoro"
|
"problemRetrievingWorkflow": "Problema nel recupero del flusso di lavoro",
|
||||||
|
"resetInitialImage": "Reimposta l'immagine iniziale",
|
||||||
|
"uploadInitialImage": "Carica l'immagine iniziale"
|
||||||
},
|
},
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"feature": {
|
"feature": {
|
||||||
@ -899,7 +911,8 @@
|
|||||||
"loadMore": "Carica altro",
|
"loadMore": "Carica altro",
|
||||||
"mode": "Modalità",
|
"mode": "Modalità",
|
||||||
"resetUI": "$t(accessibility.reset) l'Interfaccia Utente",
|
"resetUI": "$t(accessibility.reset) l'Interfaccia Utente",
|
||||||
"createIssue": "Segnala un problema"
|
"createIssue": "Segnala un problema",
|
||||||
|
"about": "Informazioni"
|
||||||
},
|
},
|
||||||
"ui": {
|
"ui": {
|
||||||
"hideProgressImages": "Nascondi avanzamento immagini",
|
"hideProgressImages": "Nascondi avanzamento immagini",
|
||||||
|
@ -32,6 +32,7 @@ import { memo, useCallback } from 'react';
|
|||||||
import { useHotkeys } from 'react-hotkeys-hook';
|
import { useHotkeys } from 'react-hotkeys-hook';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import {
|
import {
|
||||||
|
PiArrowsCounterClockwiseBold,
|
||||||
PiAsteriskBold,
|
PiAsteriskBold,
|
||||||
PiDotsThreeOutlineFill,
|
PiDotsThreeOutlineFill,
|
||||||
PiFlowArrowBold,
|
PiFlowArrowBold,
|
||||||
@ -129,6 +130,16 @@ const CurrentImageButtons = () => {
|
|||||||
|
|
||||||
useHotkeys('p', handleUsePrompt, [metadata]);
|
useHotkeys('p', handleUsePrompt, [metadata]);
|
||||||
|
|
||||||
|
const handleRemixImage = useCallback(() => {
|
||||||
|
// Recalls all metadata parameters except seed
|
||||||
|
recallAllParameters({
|
||||||
|
...metadata,
|
||||||
|
seed: undefined,
|
||||||
|
});
|
||||||
|
}, [metadata, recallAllParameters]);
|
||||||
|
|
||||||
|
useHotkeys('r', handleRemixImage, [metadata]);
|
||||||
|
|
||||||
const handleUseSize = useCallback(() => {
|
const handleUseSize = useCallback(() => {
|
||||||
recallWidthAndHeight(metadata?.width, metadata?.height);
|
recallWidthAndHeight(metadata?.width, metadata?.height);
|
||||||
}, [metadata?.width, metadata?.height, recallWidthAndHeight]);
|
}, [metadata?.width, metadata?.height, recallWidthAndHeight]);
|
||||||
@ -231,6 +242,14 @@ const CurrentImageButtons = () => {
|
|||||||
onClick={handleLoadWorkflow}
|
onClick={handleLoadWorkflow}
|
||||||
isLoading={getAndLoadEmbeddedWorkflowResult.isLoading}
|
isLoading={getAndLoadEmbeddedWorkflowResult.isLoading}
|
||||||
/>
|
/>
|
||||||
|
<IconButton
|
||||||
|
isLoading={isLoadingMetadata}
|
||||||
|
icon={<PiArrowsCounterClockwiseBold />}
|
||||||
|
tooltip={`${t('parameters.remixImage')} (R)`}
|
||||||
|
aria-label={`${t('parameters.remixImage')} (R)`}
|
||||||
|
isDisabled={!metadata?.positive_prompt}
|
||||||
|
onClick={handleRemixImage}
|
||||||
|
/>
|
||||||
<IconButton
|
<IconButton
|
||||||
isLoading={isLoadingMetadata}
|
isLoading={isLoadingMetadata}
|
||||||
icon={<PiQuotesBold />}
|
icon={<PiQuotesBold />}
|
||||||
|
@ -24,6 +24,7 @@ import { memo, useCallback } from 'react';
|
|||||||
import { flushSync } from 'react-dom';
|
import { flushSync } from 'react-dom';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import {
|
import {
|
||||||
|
PiArrowsCounterClockwiseBold,
|
||||||
PiAsteriskBold,
|
PiAsteriskBold,
|
||||||
PiCopyBold,
|
PiCopyBold,
|
||||||
PiDownloadSimpleBold,
|
PiDownloadSimpleBold,
|
||||||
@ -127,6 +128,14 @@ const SingleSelectionMenuItems = (props: SingleSelectionMenuItemsProps) => {
|
|||||||
recallAllParameters(metadata);
|
recallAllParameters(metadata);
|
||||||
}, [metadata, recallAllParameters]);
|
}, [metadata, recallAllParameters]);
|
||||||
|
|
||||||
|
const handleRemixImage = useCallback(() => {
|
||||||
|
// Recalls all metadata parameters except seed
|
||||||
|
recallAllParameters({
|
||||||
|
...metadata,
|
||||||
|
seed: undefined,
|
||||||
|
});
|
||||||
|
}, [metadata, recallAllParameters]);
|
||||||
|
|
||||||
const handleChangeBoard = useCallback(() => {
|
const handleChangeBoard = useCallback(() => {
|
||||||
dispatch(imagesToChangeSelected([imageDTO]));
|
dispatch(imagesToChangeSelected([imageDTO]));
|
||||||
dispatch(isModalOpenChanged(true));
|
dispatch(isModalOpenChanged(true));
|
||||||
@ -187,6 +196,19 @@ const SingleSelectionMenuItems = (props: SingleSelectionMenuItemsProps) => {
|
|||||||
>
|
>
|
||||||
{t('nodes.loadWorkflow')}
|
{t('nodes.loadWorkflow')}
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
<MenuItem
|
||||||
|
icon={
|
||||||
|
isLoadingMetadata ? <SpinnerIcon /> : <PiArrowsCounterClockwiseBold />
|
||||||
|
}
|
||||||
|
onClickCapture={handleRemixImage}
|
||||||
|
isDisabled={
|
||||||
|
isLoadingMetadata ||
|
||||||
|
(metadata?.positive_prompt === undefined &&
|
||||||
|
metadata?.negative_prompt === undefined)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{t('parameters.remixImage')}
|
||||||
|
</MenuItem>
|
||||||
<MenuItem
|
<MenuItem
|
||||||
icon={isLoadingMetadata ? <SpinnerIcon /> : <PiQuotesBold />}
|
icon={isLoadingMetadata ? <SpinnerIcon /> : <PiQuotesBold />}
|
||||||
onClickCapture={handleRecallPrompt}
|
onClickCapture={handleRecallPrompt}
|
||||||
|
@ -15,7 +15,7 @@ export type XYPosition = z.infer<typeof zXYPosition>;
|
|||||||
export const zDimension = z.number().gt(0).nullish();
|
export const zDimension = z.number().gt(0).nullish();
|
||||||
export type Dimension = z.infer<typeof zDimension>;
|
export type Dimension = z.infer<typeof zDimension>;
|
||||||
|
|
||||||
export const zWorkflowCategory = z.enum(['user', 'default']);
|
export const zWorkflowCategory = z.enum(['user', 'default', 'project']);
|
||||||
export type WorkflowCategory = z.infer<typeof zWorkflowCategory>;
|
export type WorkflowCategory = z.infer<typeof zWorkflowCategory>;
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
|
@ -81,6 +81,11 @@ export const useHotkeyData = (): HotkeyGroup[] => {
|
|||||||
() => ({
|
() => ({
|
||||||
title: t('hotkeys.generalHotkeys'),
|
title: t('hotkeys.generalHotkeys'),
|
||||||
hotkeyListItems: [
|
hotkeyListItems: [
|
||||||
|
{
|
||||||
|
title: t('hotkeys.remixImage.title'),
|
||||||
|
desc: t('hotkeys.remixImage.desc'),
|
||||||
|
hotkeys: [['R']],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: t('hotkeys.setPrompt.title'),
|
title: t('hotkeys.setPrompt.title'),
|
||||||
desc: t('hotkeys.setPrompt.desc'),
|
desc: t('hotkeys.setPrompt.desc'),
|
||||||
|
@ -13,6 +13,8 @@ import {
|
|||||||
InputRightElement,
|
InputRightElement,
|
||||||
Spacer,
|
Spacer,
|
||||||
} from '@invoke-ai/ui';
|
} from '@invoke-ai/ui';
|
||||||
|
import { useStore } from '@nanostores/react';
|
||||||
|
import { $projectId } from 'app/store/nanostores/projectId';
|
||||||
import {
|
import {
|
||||||
IAINoContentFallback,
|
IAINoContentFallback,
|
||||||
IAINoContentFallbackWithSpinner,
|
IAINoContentFallbackWithSpinner,
|
||||||
@ -62,6 +64,7 @@ const WorkflowLibraryList = () => {
|
|||||||
const [order_by, setOrderBy] = useState<WorkflowRecordOrderBy>('opened_at');
|
const [order_by, setOrderBy] = useState<WorkflowRecordOrderBy>('opened_at');
|
||||||
const [direction, setDirection] = useState<SQLiteDirection>('ASC');
|
const [direction, setDirection] = useState<SQLiteDirection>('ASC');
|
||||||
const [debouncedQuery] = useDebounce(query, 500);
|
const [debouncedQuery] = useDebounce(query, 500);
|
||||||
|
const projectId = useStore($projectId);
|
||||||
|
|
||||||
const queryArg = useMemo<Parameters<typeof useListWorkflowsQuery>[0]>(() => {
|
const queryArg = useMemo<Parameters<typeof useListWorkflowsQuery>[0]>(() => {
|
||||||
if (category === 'user') {
|
if (category === 'user') {
|
||||||
@ -142,13 +145,8 @@ const WorkflowLibraryList = () => {
|
|||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
|
|
||||||
const handleSetUserCategory = useCallback(() => {
|
const handleSetCategory = useCallback((category: WorkflowCategory) => {
|
||||||
setCategory('user');
|
setCategory(category);
|
||||||
setPage(0);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const handleSetDefaultCategory = useCallback(() => {
|
|
||||||
setCategory('default');
|
|
||||||
setPage(0);
|
setPage(0);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
@ -158,21 +156,31 @@ const WorkflowLibraryList = () => {
|
|||||||
<ButtonGroup>
|
<ButtonGroup>
|
||||||
<Button
|
<Button
|
||||||
variant={category === 'user' ? undefined : 'ghost'}
|
variant={category === 'user' ? undefined : 'ghost'}
|
||||||
onClick={handleSetUserCategory}
|
onClick={handleSetCategory.bind(null, 'user')}
|
||||||
isChecked={category === 'user'}
|
isChecked={category === 'user'}
|
||||||
>
|
>
|
||||||
{t('workflows.userWorkflows')}
|
{t('workflows.userWorkflows')}
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
{projectId ? (
|
||||||
variant={category === 'default' ? undefined : 'ghost'}
|
<Button
|
||||||
onClick={handleSetDefaultCategory}
|
variant={category === 'project' ? undefined : 'ghost'}
|
||||||
isChecked={category === 'default'}
|
onClick={handleSetCategory.bind(null, 'project')}
|
||||||
>
|
isChecked={category === 'project'}
|
||||||
{t('workflows.defaultWorkflows')}
|
>
|
||||||
</Button>
|
{t('workflows.projectWorkflows')}
|
||||||
|
</Button>
|
||||||
|
) : (
|
||||||
|
<Button
|
||||||
|
variant={category === 'default' ? undefined : 'ghost'}
|
||||||
|
onClick={handleSetCategory.bind(null, 'default')}
|
||||||
|
isChecked={category === 'default'}
|
||||||
|
>
|
||||||
|
{t('workflows.defaultWorkflows')}
|
||||||
|
</Button>
|
||||||
|
)}
|
||||||
</ButtonGroup>
|
</ButtonGroup>
|
||||||
<Spacer />
|
<Spacer />
|
||||||
{category === 'user' && (
|
{category !== 'default' && (
|
||||||
<>
|
<>
|
||||||
<FormControl isDisabled={isFetching} w={64} minW={56}>
|
<FormControl isDisabled={isFetching} w={64} minW={56}>
|
||||||
<FormLabel>{t('common.orderBy')}</FormLabel>
|
<FormLabel>{t('common.orderBy')}</FormLabel>
|
||||||
@ -228,7 +236,7 @@ const WorkflowLibraryList = () => {
|
|||||||
</Flex>
|
</Flex>
|
||||||
</ScrollableContent>
|
</ScrollableContent>
|
||||||
) : (
|
) : (
|
||||||
<IAINoContentFallback label={t('workflows.noUserWorkflows')} />
|
<IAINoContentFallback label={t('workflows.noWorkflows')} />
|
||||||
)}
|
)}
|
||||||
<Divider />
|
<Divider />
|
||||||
{data && (
|
{data && (
|
||||||
|
@ -52,7 +52,7 @@ const WorkflowLibraryListItem = ({ workflowDTO }: Props) => {
|
|||||||
{workflowDTO.name || t('workflows.unnamedWorkflow')}
|
{workflowDTO.name || t('workflows.unnamedWorkflow')}
|
||||||
</Heading>
|
</Heading>
|
||||||
<Spacer />
|
<Spacer />
|
||||||
{workflowDTO.category === 'user' && (
|
{workflowDTO.category !== 'default' && (
|
||||||
<Text
|
<Text
|
||||||
fontSize="sm"
|
fontSize="sm"
|
||||||
variant="subtext"
|
variant="subtext"
|
||||||
@ -81,7 +81,7 @@ const WorkflowLibraryListItem = ({ workflowDTO }: Props) => {
|
|||||||
</Text>
|
</Text>
|
||||||
)}
|
)}
|
||||||
<Spacer />
|
<Spacer />
|
||||||
{workflowDTO.category === 'user' && (
|
{workflowDTO.category !== 'default' && (
|
||||||
<Text
|
<Text
|
||||||
fontSize="sm"
|
fontSize="sm"
|
||||||
variant="subtext"
|
variant="subtext"
|
||||||
@ -104,7 +104,7 @@ const WorkflowLibraryListItem = ({ workflowDTO }: Props) => {
|
|||||||
>
|
>
|
||||||
{t('common.load')}
|
{t('common.load')}
|
||||||
</Button>
|
</Button>
|
||||||
{workflowDTO.category === 'user' && (
|
{workflowDTO.category !== 'default' && (
|
||||||
<Button
|
<Button
|
||||||
flexShrink={0}
|
flexShrink={0}
|
||||||
colorScheme="error"
|
colorScheme="error"
|
||||||
|
File diff suppressed because one or more lines are too long
@ -33,12 +33,12 @@ classifiers = [
|
|||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
# Core generation dependencies, pinned for reproducible builds.
|
# Core generation dependencies, pinned for reproducible builds.
|
||||||
"accelerate==0.25.0",
|
"accelerate==0.26.1",
|
||||||
"basicsr==1.4.2",
|
"basicsr==1.4.2",
|
||||||
"clip_anytorch==2.5.2", # replacing "clip @ https://github.com/openai/CLIP/archive/eaa22acb90a5876642d0507623e859909230a52d.zip",
|
"clip_anytorch==2.5.2", # replacing "clip @ https://github.com/openai/CLIP/archive/eaa22acb90a5876642d0507623e859909230a52d.zip",
|
||||||
"compel==2.0.2",
|
"compel==2.0.2",
|
||||||
"controlnet-aux==0.0.7",
|
"controlnet-aux==0.0.7",
|
||||||
"diffusers[torch]==0.25.0",
|
"diffusers[torch]==0.25.1",
|
||||||
"invisible-watermark==0.2.0", # needed to install SDXL base and refiner using their repo_ids
|
"invisible-watermark==0.2.0", # needed to install SDXL base and refiner using their repo_ids
|
||||||
"mediapipe==0.10.7", # needed for "mediapipeface" controlnet model
|
"mediapipe==0.10.7", # needed for "mediapipeface" controlnet model
|
||||||
"numpy==1.26.3", # >1.24.0 is needed to use the 'strict' argument to np.testing.assert_array_equal()
|
"numpy==1.26.3", # >1.24.0 is needed to use the 'strict' argument to np.testing.assert_array_equal()
|
||||||
@ -52,7 +52,7 @@ dependencies = [
|
|||||||
"torchmetrics==0.11.4",
|
"torchmetrics==0.11.4",
|
||||||
"torchsde==0.2.6",
|
"torchsde==0.2.6",
|
||||||
"torchvision==0.16.2",
|
"torchvision==0.16.2",
|
||||||
"transformers==4.36.2",
|
"transformers==4.37.0",
|
||||||
|
|
||||||
# Core application dependencies, pinned for reproducible builds.
|
# Core application dependencies, pinned for reproducible builds.
|
||||||
"fastapi-events==0.10.0",
|
"fastapi-events==0.10.0",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user