Skip to content
Open
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
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Invoke saves projects automatically on the server, so there is no Save button to
| Panel layout and floating widgets | Saved layout presets |
| Prompt history, and the Invoke routing (source and destination) | Preferences, theme and hotkeys |
| Widget settings, such as gallery filters | Boards in the Library |
| Project settings: **Use CPU noise**, **Antialias progress images** and the Preview's progress image toggle | Generate recipes |
| Project settings: **Use CPU noise**, the **NSFW checker** and **Invisible watermark** output filters, **Antialias progress images** and the Preview's progress image toggle | Generate recipes |
| The project's boards and the images and videos on them | |

In **Settings**, a badge next to each option says where it is stored: **Saved with this project**, **Saved with this widget in this project**, or **Saved in your preferences** for options that follow you across projects.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ Selecting a FLUX.1 model applies these defaults:
- **Scheduler** — Euler, Heun (2nd order; better quality at about twice the time per step) or LCM (for few
steps).
- **Size** — width and height must be multiples of 16.
- **DyPE** — Dynamic Position Extrapolation for sizes above the 1024px training resolution: *Auto* turns it on
above 1536px, *Area* by image area, *4K optimized* is a fixed tuning, and *Manual* exposes the magnitude
(**λs**, 0–8) and decay speed (**λt**; about 2 for 4K, 1 around 2K–3K, 0.5 just above native). Off by
default; recorded in metadata and restored by Recall All.
- **Negative prompt** — FLUX.1 has no negative prompt in the Generate tab or on the Canvas.

Text-to-image, image-to-image, inpainting and outpainting all work with dev and schnell models on the
Expand Down Expand Up @@ -159,5 +163,4 @@ Decode](/users-guide/image-generation/advanced-topics/pid-decode/).
| **FLUX Redux**, **FLUX IP-Adapter**, **FLUX ControlNet**, **Control LoRA - FLUX**, **FLUX Fill Conditioning** | Conditioning for the features above |

In workflows, **FLUX Denoise** also exposes **CFG Scale** with a negative conditioning input (CFG is off at
the default of 1.0), and a **DyPE** preset for resolutions above the model's native size: *Auto
(>1536px)*, *Area (auto)*, *4K Optimized* or *Manual*.
the default of 1.0), and the same **DyPE** preset, scale and exponent as the Generate panel.
Original file line number Diff line number Diff line change
Expand Up @@ -132,20 +132,20 @@ Krea-2 can transfer the *look* of a reference image — palette, texture, render
driving the content. There is **no adapter model and no LoRA**: the reference's attention keys and values
are spliced into the target's, so it works with any Krea-2 checkpoint out of the box.

On the canvas, add a **Reference Image** while a Krea-2 model is selected, pick an image, and set **Style
Strength**. In the workflow editor the same thing is the **Style Reference - Krea-2** node, feeding the
**Style Reference** input of **Denoise - Krea-2**.
In the Generate panel, add a **Reference Image** while a Krea-2 model is selected, pick an image (cropping
it if you like), and set **Style strength**. The reference applies to Generate and to every Canvas mode. In
the workflow editor the same thing is the **Style Reference - Krea-2** node, feeding the **Style Reference**
input of **Denoise - Krea-2**.

- **Style Strength** is the one knob you need. `1.0` is the recommended setting; the slider goes to `2.0`
- **Style strength** is the one knob you need. `1.0` is the recommended setting; the slider goes to `2.0`
for a heavier effect. `0` disables the reference entirely and costs nothing.
- The remaining node inputs (block range, key/value scaling, AdaIN strengths) are for tuning and should be
left at their defaults. Style Strength already modulates several of them.
- Style Strength is recorded in image metadata, so you can see what a given image was generated with. It has
no recall button of its own — the reference image itself is not part of the metadata.
left at their defaults. Style strength already modulates several of them.
- The reference image and its Style strength are recorded in image metadata, so **Recall All** and **Remix
Image** restore them along with the rest of the recipe.

:::caution[One reference, matching size, roughly 2x runtime]
- **Exactly one** reference image is used. If several are enabled on the canvas, only the first is applied
and the others are flagged with a warning.
- **Exactly one** reference image is used; the Generate panel accepts a single Krea-2 reference.
- The reference must be encoded at **the same width and height as the denoise node** — its image tokens are
appended to the target's. On the canvas this is wired up for you. In the workflow editor, set the same
width and height on both nodes, or the denoise node will refuse the reference.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ generation to **4** or **8** steps. Use the one that matches your model variant,
- **Steps:** 4 or 8, matching the LoRA
- **CFG Scale:** 1

The LoRAs are trained for a fixed schedule shift of `3`. In the workflow editor, set **Shift** on the
**Denoise - Qwen Image** node to `3.0` when using them; leave it empty for the base model's default
schedule. The Generate tab does not expose this setting.
The LoRAs are trained for a fixed schedule shift of `3`. Turn on the **Shift** override in the Generate
panel's Render section when using them (it starts at `3`), and leave it off for the base model's default
schedule. In the workflow editor the same thing is the **Shift** input of **Denoise - Qwen Image**.

## Image editing with reference images

Expand Down Expand Up @@ -143,4 +143,7 @@ Decoder Qwen-Image (2K to 4K)* decoders (including an int8 build of the latter)
| **Latents to Image - Qwen-Image + PiD (4x SR)** | PiD super-resolution decode |

The **Prompt - Qwen Image** node also has a **Quantization** option (`none`, `int8`, `nf4`) that
quantizes the Qwen2.5-VL encoder on load to reduce its VRAM use.
quantizes the Qwen2.5-VL encoder on load to reduce its VRAM use. The Generate panel offers the same choice
as **Encoder quantization** under **Advanced**, applied to both prompt encoders. The saving has a cost: a
quantized encoder cannot stay in the model cache, so it is loaded from disk for every prompt it encodes, twice
per generation when CFG is above 1. Leave it at `none` if the bf16 encoder fits.
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,9 @@ Selecting a Z-Image model applies these defaults:
- **Prompt weighting**: Compel-style [prompt syntax](/users-guide/image-generation/advanced-prompt-syntax/#attention-weighting) does not
apply to Z-Image. Write prompts in plain language.

In the workflow editor, **Denoise - Z-Image** also has a **Shift** input that overrides the timestep
shift. Leave it blank to have it calculated from the image size, which is the recommended setting.
- **Shift**: the Render section's **Shift** override fixes the timestep shift of the sampling schedule.
Leave the override off to have it calculated from the image size, which is the recommended setting; the
override starts at `3`. In the workflow editor the same thing is the **Shift** input of **Denoise - Z-Image**.

## ControlNet

Expand Down Expand Up @@ -130,14 +131,16 @@ Collection - Z-Image**.

## Seed Variance Enhancer

Z-Image Turbo tends to produce similar images across different seeds. The **Seed Variance Enhancer -
Z-Image** node, available in the workflow editor only, adds reproducible, seed-based noise to the prompt
conditioning to increase variety:
Z-Image Turbo tends to produce similar images across different seeds. **Seed variance**, next to the seed
in the Generate panel's Render section, adds reproducible, seed-based noise to the prompt conditioning to
increase variety:

- **Strength**: `0` is off, `0.1` (the default) is subtle, `0.5` is strong.
- **Randomize Percent**: the share of embedding values that receive noise (default `50`).
- **Variance strength**: `0` is off, `0.1` (the default) is subtle, `0.5` is strong.
- **Randomized channels**: the share of embedding values that receive noise (default `50%`).

Connect it between **Prompt - Z-Image** and the denoise node's positive conditioning.
Both settings are recorded in image metadata and restored by Recall All. In the workflow editor the same
thing is the **Seed Variance Enhancer - Z-Image** node, connected between **Prompt - Z-Image** and the
denoise node's positive conditioning.

## PiD decoding

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,16 @@ The **Seed** sets the starting noise for the image. The same model, prompt, seed
* **Seed mode** sets how seeds are chosen: **Random** picks a fresh starting seed each time you press Invoke, **Fixed** reuses the seed in the field, and **Increment** and **Decrement** use successive seeds, counting up or down by one. A line under the field shows the seeds the next batch will use.
* **Recent seeds** shows thumbnails of recent images. Click one to reuse its seed; the mode switches to Fixed.

### Model-specific options

Some families add their own controls to the Render section:

* **DyPE** (FLUX.1) — position extrapolation for sizes above the 1024px training resolution. **Auto** turns it on above 1536px, **Area** by image area and **4K optimized** is a fixed tuning; **Manual** exposes the **scale (λs)** and **exponent (λt)**.
* **Shift** (Z-Image, Qwen Image) — an override for the sampling schedule's timestep shift, from 0.1 to 10. Left on auto, the model derives it from the image size; Qwen Image's Lightning LoRAs are trained for `3`.
* **Seed variance** (Krea-2, Z-Image) — perturbs the prompt conditioning so nearby seeds give more varied images; **Variance strength** and **Randomized channels** set how much.
* **Conditioning rebalance** (Krea-2) — see [Krea-2](/users-guide/models/local-models/krea-2/).
* **Low-noise guidance** (Wan) — guidance for the low-noise expert; left unset, it reuses the main guidance.

### Negative prompt

A negative prompt lists what you do *not* want in the image, such as *blurry, watermark, extra fingers*. Models that support one show a **+ Negative prompt…** button under the prompt; click it to open the box, and click **Turn off negative prompt** to hide it again without losing the text.
Expand All @@ -60,8 +70,11 @@ The **Advanced** section appears for models with extra options, and its header c
* **HiDiffusion** — improves structure at large sizes for SD 1.5 and SDXL; see [HiDiffusion](/users-guide/image-generation/advanced-topics/hidiffusion/).
* **Color compensation** — SDXL only.
* **PiD Decode** — decodes the image at up to four times its size; see [PiD Super-Resolution Decode](/users-guide/image-generation/advanced-topics/pid-decode/).
* **Encoder quantization** — Qwen Image only; quantizes the Qwen VL text encoder to 8-bit or 4-bit on load to save VRAM. A quantized encoder cannot stay in the model cache, so it is loaded from disk on every generation, twice when CFG is above 1.
* **Seamless tiling** — makes the image tile along the X axis, the Y axis, or both.

Two output filters live in **Settings** under **Project** rather than in the panel, because they apply to every image the project's Generate panel and Canvas produce: the **NSFW checker** blurs images it flags as explicit, and the **Invisible watermark** stamps every saved image. Both are off by default. Upscale results, workflow runs and images from external models are not filtered.

### Resetting to defaults

Each model has recommended settings, which you can change in the Model Manager. **Reset all to model defaults**, the ↺ button in the Generate panel's title bar, applies them: size, steps, CFG or guidance, scheduler and VAE settings. Your prompts are left alone. The button is disabled when your settings already match the defaults.
Expand Down Expand Up @@ -102,6 +115,7 @@ What a reference does, and what options it has, depends on the model family:
| **FLUX.1** | An IP-Adapter, or a **FLUX Redux** model, which transfers the reference's content. | IP-Adapter options as above, or **Image influence** (Lowest to Highest) for Redux. |
| **FLUX.1 Kontext** | Kontext edits or recombines the reference images according to your prompt. | None beyond the model. |
| **FLUX.2, Qwen Image Edit** | The model reads the references directly and uses them as your prompt instructs, for example *put the jacket from the first image on the person in the second*. | None. |
| **Krea-2** | One reference's look — palette, texture, rendering — is transferred into the image while the prompt keeps driving the content; see [Krea-2](/users-guide/models/local-models/krea-2/#style-reference). | **Style strength** (0–2; 0 turns the reference off). |

Reference images require an extra model for SD 1.5, SDXL and FLUX.1 (an IP-Adapter or FLUX Redux model). These are available as starter models in the Model Manager, and an installed IP-Adapter is selected automatically.

Expand Down
3 changes: 3 additions & 0 deletions invokeai/backend/architectures/defs/krea_2.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
dimension_grid=16,
guidance_label="CFG",
scheduler_set="flow",
# Training-free style reference: shared-KV attention splices one reference's keys and
# values into the target, so there is no adapter model and exactly one image.
max_reference_images=1,
supports_regional_guidance=True,
),
VaeFacet(
Expand Down
6 changes: 5 additions & 1 deletion invokeai/backend/image_util/invisible_watermark.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,11 @@ def add_watermark(cls, image: Image.Image, watermark_text: str) -> Image.Image:
encoder = WatermarkEncoder()
encoder.set_watermark("bytes", watermark_text.encode("utf-8"))
bgr_encoded = encoder.encode(bgr, "dwtDct")
return Image.fromarray(cv2.cvtColor(bgr_encoded, cv2.COLOR_BGR2RGB)).convert("RGBA")
watermarked = Image.fromarray(cv2.cvtColor(bgr_encoded, cv2.COLOR_BGR2RGB))
# The watermark lives in the color channels. Carry the source alpha over, so a masked Canvas result keeps
# its transparent surround instead of becoming an opaque rectangle; an image without alpha stays opaque.
watermarked.putalpha(image.convert("RGBA").getchannel("A"))
return watermarked

@classmethod
def decode_watermark(cls, image: Image.Image, length: int = 8) -> str:
Expand Down
Loading
Loading