github invoke-ai/InvokeAI v6.14.0-rc2
InvokeAI 6.14.0 (release candidate 2)

pre-release4 hours ago

This is a big release that adds many new user visible features including:

  • Video generation support via Wan 2.2.
  • Krea.2-Turbo and Raw model support
  • Flux.2 Dev support
  • Ernie Turbo model support
  • Ideogram 4 support
  • Anima controlnets and inpainting
  • Flux.2 PiD support (super resolution up to 4K)
  • Multi-GPU support
  • Native Intel XPU support

Video Generation

You can now generate short videos using the Wan 2.2 video model. We support text-to-video, image-to-video (use a still image to initiate the video), and image-to-image-video (interpolate video between two images). Video generation is available through the workflow editor, and includes a series of template workflows that allow you to generate videos and concatenate them together into longer productions. See Video Generation to get started.

New models

We now provide support for Krea.2-Turbo, Krea.2-Raw, Ernie Image Turbo, and Ideogram 4.

These are pure text-to-image models (no image editing capabilities). and LoRA/ControlNet/IPAdapter support is being rolled out in stages. Not all LoRAs will currently load. Please report those that don't in Issues.

Current capabilities are:

Model Text-to-Image Image-to-Image Inpainting Outpainting Negative Prompting Reference Images Regional Guidance LoRAs ControlNets
Krea-2-Turbo ⚠️ needs CFG > 1 (off-spec for Turbo) ⚠️ positive only
Krea-2-Raw ✅ (CFG > 1) ⚠️ positive only
Ernie-Image-Turbo ✅ (CFG > 1)
Ideogram-4 ⚠️ prompt + bbox only
Anima ✅ (CFG > 1) ✅ pos + neg
Flux.2 Dev ✅ (CFG > 1) ✅ pos + neg

Notes

  • Krea-2-Turbo vs Krea-2-Raw — identical feature support; they share one graph builder. The difference is sampling: Turbo is the distilled checkpoint (~8 steps, guidance disabled, fixed mu), Raw is undistilled (~28 steps, CFG ~4.5, dynamic mu).
  • Krea-2 negative prompting — honored only when CFG > 1. The variant does not gate CFG, so the negative prompt is live on Turbo too, but Turbo is meant to run with guidance off; raising CFG to reach the negative prompt is off-spec and degrades output.
  • Krea-2 regional guidance — regional positive text only. Regional negative prompts, auto-negative, and regional reference images raise "unsupported" warnings on canvas. The denoise node supports masked negative conditioning in workflows; the canvas graph does not wire it.
  • Ernie-Image-Turbo — text-to-image only. The denoise node has no denoise_mask input, so masked modes are impossible and image-to-image is not offered; any non-txt2img mode is rejected at graph build. Global negative prompt and the built-in prompt enhancer are supported.
  • Ideogram-4 — text-to-image only; raster layers or inpaint masks with content block generation before enqueue. There is no negative prompt at any CFG: the sampler uses asymmetric CFG with a zeroed unconditional branch, so the denoise node has no negative conditioning input. Regional guidance contributes a positive prompt plus a bounding box to the structured JSON caption; regional negatives, auto-negative, and reference images are dropped with warnings.
  • Anima ControlNets — via kohya-ss's ControlNet-LLLite adapters (8–66 MB), available as one-click starter installs: sketch (mixed scribble/HED/lineart/grayscale), depth, scribble, lineart, and pose. Control layers work the same way as for other model families. Note that the depth/scribble/lineart/pose adapters were trained on the Preview3 build and are weaker on Anima Base 1.0 — the mixed-conditioning sketch adapter is the strongest general-purpose choice. Each LLLite model may be applied only once per generation. A separate LLLite Inpaint Adapter (Advanced settings) conditions the model on surrounding image content during inpainting/outpainting for cleaner seams.
  • Reference images — unsupported across all five. Anima is explicitly rejected in the canvas validators; the other four have no IP-adapter model config for their base and no IP-adapter wiring in their graph builders.

Multi-GPU Support

If you are lucky enough to have two or more GPUs installed in your system, you can configure InvokeAI to parallelize generation across the GPUs. Two or more queued generation jobs will execute simultaneously on the GPUs, and the preview screen will be split into tiles to show you the progress of each rendering job. This also works when multiple users are logged in: the system will split GPU time fairly among users in a round-robin fashion. If only one generation is queued, then its model's text encoder will be run on one GPU and the denoiser will run on another, thereby preventing the denoiser from evicting the encoder from VRAM and speeding up the rendering of subsequent images (credits to jacid23 for this concept).

Other Features

  • Performance improvements:
    • We have improved the VRAM consumption estimates for multiple models, which should reduce the number of OOMs.
    • VAEs can now be run on the CPU, reducing the amount of VRAM contention, similar to the text encoders. You can set this option by selecting the VAE in the Model Manager.
    • Improved support for LoRA sliders. We now support UNet-only sliders. In addition, you can now edit the sliders' min, max and default values from within the Model Manager.
  • Canvas improvements:
    • Pressure-sensitive brush opacity on tablets and touch screens.
    • Fine-grid hint added to move tool.
    • A new transparency lock for Gradients and Shapes.
    • Clip Strokes have been extended to the Bbox and Rect/Oval shapes.
  • Workflow management:
    • Graph execution has been optimized, speeding up complex workflows.
    • There is now a LoRA collection picker node which allows you to stack multiple LoRAs together without adding additional nodes.
    • You can now call one workflow from another, making it easier to create and maintain complex workflows.

And lots more! See below for a complete list of What's New in this release.

Installation and Upgrading

See Installation for various ways to install and run InvokeAI.

What's Changed Since 6.14 Release Candidate 1

  • Feat(canvas): Add temporary bbox move with C key hold by @DustyShoe in #9104
  • docs(canvas): add documentation about generation bounding box behavior by @DustyShoe in #9435
  • fix(backend): ignore ComfyUI model_sampling keys when loading Anima checkpoints by @kappacommit in #9404
  • Serialize imports behind startup restoration by @JPPhoto in #9433
  • ui: translations update from weblate by @weblate in #9445
  • tests: relax 5s pytest-timeout marks that flake on slow CI runners by @lstein in #9448
  • feat(multi-gpu): mark the remaining text encoders as idle-GPU offloadable by @Pfannkuchensack in #9428
  • Feature: HiDiffusion integration by @DustyShoe in #8787
  • fix: don't hold VRAM in an idle server (CUDA context at startup) by @lstein in #9447
  • feat(ui): raise dimension slider max to 2048 by @lstein in #9446
  • chore(docs): Update sponsor list by @lstein in #9455
  • Fix HiDiffusion with SDXL ControlNet by @DustyShoe in #9454
  • ci: check aarch64 dependency resolution in uv-lock-checks by @stellarfeline in #9357
  • ci: keep pins.json in sync with pyproject.toml by @lstein in #9351
  • docs: fix $Home -> ~ in Linux/macOS manual install command by @latent-9 in #9425
  • docs: fix typo 'teh' to 'the' in controlLayers/README.md by @lunar-me in #9471
  • docs: fix typo 'outut' to 'output' in api/README.md by @lunar-me in #9472
  • docs: fix spelling 'approachs' to 'approaches' in gallery/README.md by @lunar-me in #9473
  • perf(db): streamline gallery membership queries by @dexhunter in #9385
  • ci: attach provenance and SBOM attestations to the published container by @kobihikri in #9398
  • Feat: flux2 dev support by @Pfannkuchensack in #9234
  • fix(fp8): resolve compute dtype instead of reading model.dtype by @Pfannkuchensack in #9412
  • fix(model-loaders): stop materializing scaled-fp8 checkpoints in float32 by @Pfannkuchensack in #9429
  • fix(ui): seed Wan params fields in the v3->v4 persist migration (release-upgrade params wipe) by @lstein in #9408
  • fix(download): finalize completed range resumes by @ShiroKSH in #9432
  • Declare networkx as a runtime dependency by @DustyShoe in #9457
  • ci(pins): make the python-classifier check advisory, not fatal by @lstein in #9466
  • fix(api): run single-video delete/update off the event loop by @lstein in #9392
  • fix(video): enforce one absolute deadline for streaming frame decode by @lstein in #9393
  • perf(boards): batch the owner lookup in admin board listings by @lstein in #9395
  • feat: Adding Support for SD.Next Quantization Engine (SDNQ) (Flux1&Flux2klein4B/9B&Z-Image) by @Pfannkuchensack in #9228
  • docs: expand the testing guide with frontend commands by @wunianze666-netizen in #9294
  • fix(session queue): count only rows actually transitioned by a bulk cancel by @lstein in #9387
  • docs(config): disclose legacy device precedence in generation_devices auto copy by @lstein in #9388
  • fix(model cache): release shared weights when a cache goes away by @lstein in #9403
  • Add seeded Text LLM sampling by @JPPhoto in #9451
  • fix(download): remove the download_queue REST API; block non-public URLs for server-side downloads by @lstein in #9492
  • [Fix]: generator node connectored to batch node by @dunkeroni in #9453
  • Add opt-in PiD memory optimizations by @JPPhoto in #9460
  • Fix image move recovery for unsupported thumbnail modes by @JPPhoto in #9497
  • Feat: pid followup by @Pfannkuchensack in #9474
  • Disable thinking in LLMs so prompt expansion will work properly with thinking models by @shanedk in #9380
  • Fix collector scoping and invocation validation by @JPPhoto in #9483
  • fix(canvas): restore eyedropper hotkey after tool changes by @DustyShoe in #9482
  • fix(wan): pair Wan 2.2 A14B GGUF experts by wiring, not just filename by @Pfannkuchensack in #9505
  • feat: add native Intel XPU (torch.xpu) device support by @LexiconCode in #9401
  • Support single-file Wan 2.2 checkpoints by @lstein in #9503

New Contributors

What's Changed Since 6.13.7

  • chore(version): bump version by @lstein in #9318
  • Add crash-recoverable image storage maintenance for moving existing images into the active image_subfolder_strategy by @JPPhoto in #9165
  • feat(lora): per LoRA-model configurable weight range by @lstein in #9154
  • fix(qwen): estimate Qwen Image VAE working memory so the cache frees room before decode/encode by @lstein in #9305
  • Add database migration discovery and graph-based precedence by @JPPhoto in #9319
  • Creation of Videos help document by @sarashinai in #6235
  • [feat] Round robin job scheduling in multiuser mode by @lstein in #9086
  • docs: add 3d party GPU hosting services by @lstein in #9299
  • fix(qwen): remap legacy single-file VL encoder keys under transformers 5.x by @Pfannkuchensack in #9333
  • Improve image collection chaining by @JPPhoto in #9168
  • Feature: Add the ability to call a saved workflow from another by @JPPhoto in #9093
  • feat(nodes): Add a LoRA collection picker node that selects and applies an indefinite number of LoRAs by @lstein in #9259
  • fix(ui): make punctuation hotkeys layout-independent by @DustyShoe in #9174
  • feat(anima) - Anima Performance Improvements by @kappacommit in #9220
  • chore(docs): make sponsor button more visible by @lstein in #9340
  • test(model-loaders): add regression tests for checkpoint key-remapping by @Pfannkuchensack in #9336
  • fix(ui): clarify model defaults toast by @YUHAO-corn in #9198
  • Chore(development): broaden codeowners by @lstein in #9329
  • chore(release): bump version to 6.14.0-alpha by @lstein in #9335
  • Feat:(mm) model settings export metadata thumbnail by @Pfannkuchensack in #9188
  • docs: fix git-lfs link formatting in dev environment guide by @wunianze666-netizen in #9322
  • Fix workflow library unsupported badge by @JPPhoto in #9341
  • Fix nested collector iteration scope by @JPPhoto in #9343
  • fix: bump launcher ROCm torch index from rocm6.3 to rocm7.1 by @chejh-amd in #9337
  • Handle missing queue items in session failure by @mickr777 in #9350
  • perf: reduce PNG encoding time for high-entropy images by @dexhunter in #9346
  • Fix session processor crash when a queue item is deleted while running by @lstein in #9352
  • feat(anima): Anima Controlnets + Inpainting Adapter by @kappacommit in #9284
  • chore(docs): Add sponsors who made $15/mo or higher recurring donations by @lstein in #9354
  • fix: scope socket events and queue UI per user in multiuser mode by @lstein in #9358
  • feat: support deployment behind a reverse proxy under a sub-path by @Pfannkuchensack in #9306
  • feat(deps): resolve torch from PyPI on linux/aarch64 to enable ARM64 installs and Docker builds by @stellarfeline in #9095
  • feat(flux2): add regional prompting for FLUX.2 Klein by @Pfannkuchensack in #9255
  • feat(vae): support running VAEs on CPU via cpu_only setting by @Pfannkuchensack in #9293
  • fix(text-tool): preserve logical size when committing HiDPI text by @DustyShoe in #9111
  • fix(ui): match Z-Image variant when defaulting Qwen3 source by @lstein in #9221
  • fix(canvas): add fine-grid hint to move tool by @DustyShoe in #9227
  • security: validate custom node pack names by @Ersa-tech in #9256
  • Feat(canvas): Add transparency lock for Gradients and Shapes. Extend Clip Strokes to Bbox to Rect/Oval shapes. by @DustyShoe in #9250
  • fix(api): require auth on model-manager and app-info endpoints (#9365) by @lstein in #9367
  • fix(tests): deflake custom-nodes uninstall test (global shutil.rmtree patch) by @lstein in #9369
  • fix(lora): correctly detect flattened layer keys in LayerPatcher by @Pfannkuchensack in #9295
  • Docs: new model integration guide by @Pfannkuchensack in #9301
  • feat: t5 encoder gguf support by @Pfannkuchensack in #9324
  • feat(qwen3): bundle Qwen3 tokenizer for offline single-file/GGUF encoders by @Pfannkuchensack in #9338
  • Fix graph stall for collectors downstream of empty iterators by @JPPhoto in #9349
  • Fix: Anima regional prompting should mirror width/height calculation for correct mask size by @FrankBro in #9356
  • Fix: compute device partial load by @Pfannkuchensack in #9375
  • Feat(canvas): add pressure dependent opacity for brush by @DustyShoe in #9232
  • security: enforce multifile download path boundary by @Ersa-tech in #9258
  • chore(sponsors): add new sponsor by @lstein in #9386
  • Fix (UI): Extend input draggability fix to all browsers by @ufuksarp in #9100
  • ci: raise python-tests job timeout to 30 minutes by @lstein in #9391
  • Feat(model support): ideogram4 support by @Pfannkuchensack in #9303
  • fix(workflows): preserve core_metadata recall fields across workflow roundtrip by @Pfannkuchensack in #9162
  • fix(docs): correct Text Tool development link by @DustyShoe in #9377
  • feat: Video generation by @lstein in #9163
  • feat(Model Support): add Krea-2-Turbo/Raw model + LoRA support by @Pfannkuchensack in #9304
  • Optimize iterator graph materialization by @JPPhoto in #9355
  • feat: multi-GPU parallel session execution by @lstein in #9263
  • Feat: Add PiD (Pixel Diffusion Decoder) 4× super-resolution decode for FLUX / FLUX.2 / SD3 / SDXL / Z-Image / Qwen-Image by @Pfannkuchensack in #9281
  • fix(mm): estimate standalone-root submodel size instead of zero by @Pfannkuchensack in #9405
  • Krea 2: Support multiple conditionings by @JPPhoto in #9406
  • feat: add System Prompts library for Expand Prompt button by @Pfannkuchensack in #9152
  • feat: ernie image/turbo by @Pfannkuchensack in #9115
  • feat(model-manager): identify UNet-only SDXL LoRAs (e.g. slider LoRAs) by @Pfannkuchensack in #9383
  • feat(prompt): show phase + token progress for LLM prompt expansion by @Pfannkuchensack in #9204
  • Krea 2 regional prompting by @JPPhoto in #9407

New Contributors

Full Changelog: v6.13.7...v6.14.0-rc2

Don't miss a new InvokeAI release

NewReleases is sending notifications on new releases.