diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json index 125554fc40..03e41fc571 100644 --- a/invokeai/frontend/web/public/locales/en.json +++ b/invokeai/frontend/web/public/locales/en.json @@ -653,6 +653,132 @@ "infillAndScaling": "Manage infill methods (used on masked or erased areas of the canvas) and scaling (useful for small bounding box sizes)." } }, + "popovers": { + "clipSkip": { + "heading": "CLIP Skip", + "paragraph": "Choose how many layers of the CLIP model to skip. Certain models are better suited to be used with CLIP Skip." + }, + "compositingBlur": { + "heading": "Blur", + "paragraph": "The blur radius of the mask." + }, + "compositingBlurMethod": { + "heading": "Blur Method", + "paragraph": "The method of blur applied to the masked area." + }, + "compositingCoherencePass": { + "heading": "Coherence Pass", + "paragraph": "Composite the Inpainted/Outpainted images." + }, + "compositingMode": { + "heading": "Mode", + "paragraph": "The mode of the Coherence Pass." + }, + "compositingSteps": { + "heading": "Steps", + "paragraph": "Number of steps in the Coherence Pass. Similar to Denoising Steps." + }, + "compositingStrength": { + "heading": "Strength", + "paragraph": "Amount of noise added for the Coherence Pass. Similar to Denoising Strength." + }, + "compositingMaskAdjustments": { + "heading": "Mask Adjustments", + "paragraph": "Adjust the mask." + }, + "controlNetBeginEnd": { + "heading": "Begin / End Step Percentage", + "paragraph": "Which parts of the denoising process will have the ControlNet applied. ControlNets applied at the start of the process guide composition, and ControlNets applied at the end guide details." + }, + "controlNetControlMode": { + "heading": "Control Mode", + "paragraph": "Lends more weight to either the prompt or ControlNet." + }, + "controlNetResizeMode": { + "heading": "Resize Mode", + "paragraph": "How the ControlNet image will be fit to the image generation Ratio" + }, + "controlNetToggle": { + "heading": "Enable ControlNet", + "paragraph": "ControlNets provide guidance to the generation process, helping create images with controlled composition, structure, or style, depending on the model selected." + }, + "controlNetWeight": { + "heading": "Weight", + "paragraph": "How strongly the ControlNet will impact the generated image." + }, + "dynamicPromptsToggle": { + "heading": "Enable Dynamic Prompts", + "paragraph": "Dynamic prompts allow multiple options within a prompt. Dynamic prompts can be used by: {option1|option2|option3}. Combinations of prompts will be randomly generated until the “Images” number has been reached." + }, + "dynamicPromptsCombinatorial": { + "heading": "Combinatorial Generation", + "paragraph": "Generate an image for every possible combination of Dynamic Prompt until the Max Prompts is reached." + }, + "infillMethod": { + "heading": "Infill Method", + "paragraph": "Method to infill the selected area." + }, + "lora": { + "heading": "LoRA", + "paragraph": "Weight of the LoRA. Higher weight will lead to larger impacts on the final image." + }, + "noiseEnable": { + "heading": "Enable Noise Settings", + "paragraph": "Advanced control over noise generation." + }, + "noiseUseCPU": { + "heading": "Use CPU Noise", + "paragraph": "Uses the CPU to generate random noise." + }, + "paramsCFGScale": { + "heading": "CFG Scale", + "paragraph": "Controls how much your prompt influences the generation process." + }, + "paramDenoisingStrength": { + "heading": "Denoising Strength", + "paragraph": "How much noise is added to the input image. 0 will result in an identical image, while 1 will result in a completely new image." + }, + "paramImages": { + "heading": "Images", + "paragraph": "Number of images that will be generated." + }, + "paramModel": { + "heading": "Model", + "paragraph": "Model used for the denoising steps. Different models are trained to specialize in producing different aesthetic results and content." + }, + "paramPositiveConditioning": { + "heading": "Positive Prompts", + "paragraph": "This is where you enter your positive prompts." + }, + "paramScheduler": { + "heading": "Scheduler", + "paragraph": "Scheduler defines how to iteratively add noise to an image or how to update a sample based on a model's output." + }, + "paramSeed": { + "heading": "Seed", + "paragraph": "Controls the starting noise used for generation. Disable “Random Seed” to produce identical results with the same generation settings." + }, + "paramNegativeConditioning": { + "heading": "Negative Prompts", + "paragraph": "This is where you enter your negative prompts." + }, + "paramSteps": { + "heading": "Steps", + "paragraph": "Number of steps that will be performed in each generation. Higher step counts will typically create better images but will require more generation time." + }, + "paramVAE": { + "heading": "VAE", + "paragraph": "Model used for translating AI output into the final image." + }, + "paramVAEPrecision": { + "heading": "VAE Precision", + "paragraph": "The precision used during VAE encoding and decoding. Fp16/Half precision is more efficient, at the expense of minor image variations." + }, + "scaleBeforeProcessing": { + "heading": "Scale Before Processing", + "paragraph": "Scales the selected area to the size best suited for the model before the image generation process." + } + }, "unifiedCanvas": { "layer": "Layer", "base": "Base", diff --git a/invokeai/frontend/web/src/common/components/IAIInformationalPopover.tsx b/invokeai/frontend/web/src/common/components/IAIInformationalPopover.tsx index 8f4e6428db..a5bc691bf6 100644 --- a/invokeai/frontend/web/src/common/components/IAIInformationalPopover.tsx +++ b/invokeai/frontend/web/src/common/components/IAIInformationalPopover.tsx @@ -17,12 +17,13 @@ import { useAppSelector } from '../../app/store/storeHooks'; import { systemSelector } from '../../features/system/store/systemSelectors'; interface Props extends PopoverProps { - heading: string; + heading?: string; paragraph: string; triggerComponent: ReactNode; image?: string; buttonLabel?: string; buttonHref?: string; + placement?: string; } function IAIInformationalPopover({ @@ -32,6 +33,7 @@ function IAIInformationalPopover({ buttonLabel, buttonHref, triggerComponent, + placement, }: Props) { const { shouldDisableInformationalPopovers } = useAppSelector(systemSelector); @@ -40,7 +42,7 @@ function IAIInformationalPopover({ } else { return ( {image && ( - {heading} - {paragraph} + {heading && {heading}} + {paragraph} {buttonLabel && ( - +