Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion invokeai/frontend/web/public/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1989,7 +1989,7 @@
"fluxDevLicense": {
"heading": "Non-Commercial License",
"paragraphs": [
"FLUX.1 [dev] models are licensed under the FLUX [dev] non-commercial license. To use this model type for commercial purposes in Invoke, visit our website to learn more."
"This model is licensed for non-commercial use only. FLUX.1 [dev] models use the FLUX.1 [dev] Non-Commercial License, and FLUX.2 Klein 9B uses the FLUX.2 Non-Commercial License."
]
},
"optimizedDenoising": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { useTranslation } from 'react-i18next';
import { MdMoneyOff } from 'react-icons/md';
import { useMainModels } from 'services/api/hooks/modelsByType';
import { useSelectedModelConfig } from 'services/api/hooks/useSelectedModelConfig';
import { type AnyModelConfig, isFluxDevMainModelConfig } from 'services/api/types';
import { type AnyModelConfig, isNonCommercialMainModelConfig } from 'services/api/types';

export const MainModelPicker = memo(() => {
const { t } = useTranslation();
Expand All @@ -23,8 +23,8 @@ export const MainModelPicker = memo(() => {
[dispatch]
);

const isFluxDevSelected = useMemo(
() => selectedModelConfig && isFluxDevMainModelConfig(selectedModelConfig),
const isNonCommercialSelected = useMemo(
() => selectedModelConfig && isNonCommercialMainModelConfig(selectedModelConfig),
[selectedModelConfig]
);

Expand All @@ -33,7 +33,7 @@ export const MainModelPicker = memo(() => {
<InformationalPopover feature="paramModel">
<FormLabel>{t('modelManager.model')}</FormLabel>
</InformationalPopover>
{isFluxDevSelected && (
{isNonCommercialSelected && (
<InformationalPopover feature="fluxDevLicense" hideDisable={true}>
<Flex justifyContent="flex-start">
<Icon as={MdMoneyOff} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { useTranslation } from 'react-i18next';
import { MdMoneyOff } from 'react-icons/md';
import { useMainModels } from 'services/api/hooks/modelsByType';
import { useSelectedModelConfig } from 'services/api/hooks/useSelectedModelConfig';
import { type AnyModelConfig, isFluxDevMainModelConfig } from 'services/api/types';
import { type AnyModelConfig, isNonCommercialMainModelConfig } from 'services/api/types';

export const InitialStateMainModelPicker = memo(() => {
const { t } = useTranslation();
Expand All @@ -22,16 +22,16 @@ export const InitialStateMainModelPicker = memo(() => {
[dispatch]
);

const isFluxDevSelected = useMemo(
() => selectedModelConfig && isFluxDevMainModelConfig(selectedModelConfig),
const isNonCommercialSelected = useMemo(
() => selectedModelConfig && isNonCommercialMainModelConfig(selectedModelConfig),
[selectedModelConfig]
);

return (
<FormControl orientation="vertical" alignItems="unset">
<FormLabel display="flex" fontSize="md" gap={2}>
{t('common.selectYourModel')}{' '}
{isFluxDevSelected && (
{isNonCommercialSelected && (
<InformationalPopover feature="fluxDevLicense" hideDisable={true}>
<Flex justifyContent="flex-start">
<Icon as={MdMoneyOff} />
Expand Down
8 changes: 8 additions & 0 deletions invokeai/frontend/web/src/services/api/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,14 @@ export const isFluxDevMainModelConfig = (config: AnyModelConfig): config is Main
return config.type === 'main' && config.base === 'flux' && config.variant === 'dev';
};

export const isFlux2Klein9BMainModelConfig = (config: AnyModelConfig): config is MainModelConfig => {
return config.type === 'main' && config.base === 'flux2' && config.name.toLowerCase().includes('9b');
};

export const isNonCommercialMainModelConfig = (config: AnyModelConfig): config is MainModelConfig => {
return isFluxDevMainModelConfig(config) || isFlux2Klein9BMainModelConfig(config);
};

export const isFluxFillMainModelModelConfig = (config: AnyModelConfig): config is MainModelConfig => {
return config.type === 'main' && config.base === 'flux' && config.variant === 'dev_fill';
};
Expand Down
Loading