mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
update translations, change config value to be dimension instead of total pixels
This commit is contained in:
parent
90ec757802
commit
2cff20f87a
@ -1673,6 +1673,8 @@
|
|||||||
},
|
},
|
||||||
"upscaling": {
|
"upscaling": {
|
||||||
"creativity": "Creativity",
|
"creativity": "Creativity",
|
||||||
|
"exceedsMaxSize": "Upscale settings exceed max size limit",
|
||||||
|
"exceedsMaxSizeDetails": "Max upscale limit is {{maxUpscaleDimension}}x{{maxUpscaleDimension}} pixels. Please try a smaller image or decrease your scale selection.",
|
||||||
"structure": "Structure",
|
"structure": "Structure",
|
||||||
"upscaleModel": "Upscale Model",
|
"upscaleModel": "Upscale Model",
|
||||||
"postProcessingModel": "Post-Processing Model",
|
"postProcessingModel": "Post-Processing Model",
|
||||||
@ -1680,8 +1682,6 @@
|
|||||||
"postProcessingMissingModelWarning": "Visit the <LinkComponent>Model Manager</LinkComponent> to install a post-processing (image to image) model.",
|
"postProcessingMissingModelWarning": "Visit the <LinkComponent>Model Manager</LinkComponent> to install a post-processing (image to image) model.",
|
||||||
"missingModelsWarning": "Visit the <LinkComponent>Model Manager</LinkComponent> to install the required models:",
|
"missingModelsWarning": "Visit the <LinkComponent>Model Manager</LinkComponent> to install the required models:",
|
||||||
"mainModelDesc": "Main model (SD1.5 or SDXL architecture)",
|
"mainModelDesc": "Main model (SD1.5 or SDXL architecture)",
|
||||||
"outputTooLargeShort": "Output is too large to upscale",
|
|
||||||
"outputTooLarge": "Max upscale limit is 10,000x10,000 pixels. Please try a smaller image or decrease your scale selection.",
|
|
||||||
"tileControlNetModelDesc": "Tile ControlNet model for the chosen main model architecture",
|
"tileControlNetModelDesc": "Tile ControlNet model for the chosen main model architecture",
|
||||||
"upscaleModelDesc": "Upscale (image to image) model",
|
"upscaleModelDesc": "Upscale (image to image) model",
|
||||||
"missingUpscaleInitialImage": "Missing initial image for upscaling",
|
"missingUpscaleInitialImage": "Missing initial image for upscaling",
|
||||||
|
@ -65,7 +65,7 @@ export type AppConfig = {
|
|||||||
*/
|
*/
|
||||||
shouldUpdateImagesOnConnect: boolean;
|
shouldUpdateImagesOnConnect: boolean;
|
||||||
shouldFetchMetadataFromApi: boolean;
|
shouldFetchMetadataFromApi: boolean;
|
||||||
maxUpscalePixels?: number;
|
maxUpscaleDimension?: number;
|
||||||
allowPrivateBoards: boolean;
|
allowPrivateBoards: boolean;
|
||||||
disabledTabs: InvokeTabName[];
|
disabledTabs: InvokeTabName[];
|
||||||
disabledFeatures: AppFeature[];
|
disabledFeatures: AppFeature[];
|
||||||
|
@ -212,11 +212,11 @@ const createSelector = (templates: Templates) =>
|
|||||||
} else if (activeTabName === 'upscaling') {
|
} else if (activeTabName === 'upscaling') {
|
||||||
if (!upscale.upscaleInitialImage) {
|
if (!upscale.upscaleInitialImage) {
|
||||||
reasons.push({ content: i18n.t('upscaling.missingUpscaleInitialImage') });
|
reasons.push({ content: i18n.t('upscaling.missingUpscaleInitialImage') });
|
||||||
} else if (config.maxUpscalePixels) {
|
} else if (config.maxUpscaleDimension) {
|
||||||
const upscaledPixels =
|
const upscaledPixels =
|
||||||
upscale.upscaleInitialImage.width * upscale.scale * upscale.upscaleInitialImage.height * upscale.scale;
|
upscale.upscaleInitialImage.width * upscale.scale * upscale.upscaleInitialImage.height * upscale.scale;
|
||||||
if (upscaledPixels > config.maxUpscalePixels) {
|
if (upscaledPixels > config.maxUpscaleDimension) {
|
||||||
reasons.push({ content: i18n.t('upscaling.outputTooLargeShort') });
|
reasons.push({ content: i18n.t('upscaling.exceedsMaxSize') });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!upscale.upscaleModel) {
|
if (!upscale.upscaleModel) {
|
||||||
|
@ -8,14 +8,14 @@ import type { ImageDTO } from 'services/api/types';
|
|||||||
const createIsTooLargeToUpscaleSelector = (imageDTO?: ImageDTO) =>
|
const createIsTooLargeToUpscaleSelector = (imageDTO?: ImageDTO) =>
|
||||||
createMemoizedSelector(selectUpscalelice, selectConfigSlice, (upscale, config) => {
|
createMemoizedSelector(selectUpscalelice, selectConfigSlice, (upscale, config) => {
|
||||||
const { upscaleModel, scale } = upscale;
|
const { upscaleModel, scale } = upscale;
|
||||||
const { maxUpscalePixels } = config;
|
const { maxUpscaleDimension } = config;
|
||||||
|
|
||||||
if (!maxUpscalePixels || !upscaleModel || !imageDTO) {
|
if (!maxUpscaleDimension || !upscaleModel || !imageDTO) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const upscaledPixels = imageDTO.width * scale * imageDTO.height * scale;
|
const upscaledPixels = imageDTO.width * scale * imageDTO.height * scale;
|
||||||
return upscaledPixels > maxUpscalePixels;
|
return upscaledPixels > maxUpscaleDimension * maxUpscaleDimension;
|
||||||
});
|
});
|
||||||
|
|
||||||
export const useIsTooLargeToUpscale = (imageDTO?: ImageDTO) => {
|
export const useIsTooLargeToUpscale = (imageDTO?: ImageDTO) => {
|
||||||
|
@ -18,6 +18,7 @@ export const UpscaleWarning = () => {
|
|||||||
const [modelConfigs, { isLoading }] = useControlNetModels();
|
const [modelConfigs, { isLoading }] = useControlNetModels();
|
||||||
const disabledTabs = useAppSelector((s) => s.config.disabledTabs);
|
const disabledTabs = useAppSelector((s) => s.config.disabledTabs);
|
||||||
const shouldShowButton = useMemo(() => !disabledTabs.includes('models'), [disabledTabs]);
|
const shouldShowButton = useMemo(() => !disabledTabs.includes('models'), [disabledTabs]);
|
||||||
|
const maxUpscaleDimension = useAppSelector((s) => s.config.maxUpscaleDimension);
|
||||||
const isTooLargeToUpscale = useIsTooLargeToUpscale(upscaleInitialImage || undefined);
|
const isTooLargeToUpscale = useIsTooLargeToUpscale(upscaleInitialImage || undefined);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -43,11 +44,13 @@ export const UpscaleWarning = () => {
|
|||||||
|
|
||||||
const otherWarnings = useMemo(() => {
|
const otherWarnings = useMemo(() => {
|
||||||
const _warnings: string[] = [];
|
const _warnings: string[] = [];
|
||||||
if (isTooLargeToUpscale) {
|
if (isTooLargeToUpscale && maxUpscaleDimension) {
|
||||||
_warnings.push(t('upscaling.outputTooLarge'));
|
_warnings.push(
|
||||||
|
t('upscaling.exceedsMaxSizeDetails', { maxUpscaleDimension: maxUpscaleDimension.toLocaleString() })
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return _warnings;
|
return _warnings;
|
||||||
}, [isTooLargeToUpscale, t]);
|
}, [isTooLargeToUpscale, t, maxUpscaleDimension]);
|
||||||
|
|
||||||
const handleGoToModelManager = useCallback(() => {
|
const handleGoToModelManager = useCallback(() => {
|
||||||
dispatch(setActiveTab('models'));
|
dispatch(setActiveTab('models'));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user