Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
7269 commits
Select commit Hold shift + click to select a range
4fd5cd2
ui: translations update from weblate (#8924)
weblate Feb 28, 2026
ec46b5c
Fix: Replace deprecated huggingface_hub.get_token_permission() with w…
Pfannkuchensack Feb 28, 2026
54c1609
Filter non-transformer keys from Z-Image checkpoint state dicts (#8918)
Pfannkuchensack Feb 28, 2026
445c6a3
Fix(MM): Fixed incorrect advertised model size for Z-Image Turbo (#8934)
DustyShoe Mar 2, 2026
6fe7910
fix(model-install): persist remote access_token for resume after rest…
DustyShoe Mar 2, 2026
6b57b00
feat(MM):model settings export import (#8872)
Pfannkuchensack Mar 2, 2026
c7bdaf9
Fix: Shut down the server with one keyboard interrupt (#94) (#8936)
lstein Mar 6, 2026
67669b7
QoL: Persist selected board and most recent image across browser sess…
lstein Mar 6, 2026
94e04b1
Fix race condition in download queue when concurrent jobs share desti…
lstein Mar 6, 2026
fcdcd7f
Prompt Attention Fixes (#8860)
joshistoast Mar 7, 2026
df225d3
Fix model reidentify losing path and failing on IP Adapters (#8941)
Pfannkuchensack Mar 7, 2026
3d81eda
perf(flux2): optimize cache locking in Klein encoder to fix #7513 (#8…
girlyoulookthebest Mar 7, 2026
274d9b3
fix(model_manager): detect Flux 2 Klein LoRAs in Kohya format with tr…
Pfannkuchensack Mar 7, 2026
b8b6798
ui: translations update from weblate (#8946)
weblate Mar 7, 2026
62b7c7a
Added SQL injection tests (#8873)
JPPhoto Mar 7, 2026
2d1dbce
Add user management UI for admin and regular users (#106) (#8937)
lstein Mar 8, 2026
e74d8ab
Fix(gallery): Re-add image browsing with arrow keys (#8874)
DustyShoe Mar 9, 2026
863fa50
Doc: update multiuser mode documentation (#8953)
lstein Mar 9, 2026
2179d93
docs: Fix typo in README.md - 'easy' should be 'ease' (#8948)
haosenwang1018 Mar 9, 2026
f01cbd3
docs: Fix typo in contributing guide - remove extra 'the' (#8949)
haosenwang1018 Mar 9, 2026
c8ac303
ui: translations update from weblate (#8947)
weblate Mar 9, 2026
cd47b3b
Feature: Make strict password checking optional (#8957)
lstein Mar 10, 2026
a7b367f
fix: only delete individual LoRA file instead of entire parent direct…
Pfannkuchensack Mar 10, 2026
bba207a
fix(ui): IP adapter / control adapter model recall for reinstalled mo…
Pfannkuchensack Mar 11, 2026
dc5007f
Fix/model cache Qwen/CogView4 cancel repair (#8959)
JPPhoto Mar 15, 2026
b120ef5
ui: translations update from weblate (#8956)
weblate Mar 15, 2026
17da6bb
Fix(UI): Replace boolean submenu icon with PiIntersectSquareBold (#8962)
dunkeroni Mar 15, 2026
438515b
Chore: Bump version to 6.12.0 (#8981)
lstein Mar 24, 2026
f7aa5fc
Add chaining to Collect node (#8933)
JPPhoto Mar 24, 2026
d32f6b5
ui: translations update from weblate (#8985)
weblate Mar 24, 2026
7f2878f
Fix(frontend): Make ordering of multiple FLUX.2 reference images dete…
lstein Mar 24, 2026
ab6f186
chore: bump version to 6.12.0.post1 (#8990)
lstein Mar 26, 2026
6963cd9
Fix SIGINT shutdown during active inference (#8993)
JPPhoto Mar 28, 2026
ed268b1
Feature (frontend): Add invisible watermark decoder node. (#8967)
lstein Apr 4, 2026
474d85e
feat: add bulk reidentify action for models (#8951) (#8952)
Pfannkuchensack Apr 4, 2026
05f4deb
Feat(Canvas): Add button to hide preview stage thumbnails (#8963)
DustyShoe Apr 4, 2026
5596fa0
Upgrade spandrel version (#8996)
JPPhoto Apr 5, 2026
41a5425
Fix workflows info copy focus (#9015)
JPPhoto Apr 5, 2026
471ab9d
feat: add Inpaint Mask as drag & drop target on canvas (#8942)
Pfannkuchensack Apr 5, 2026
82f3dc9
Fix to retain layer opacity on mode switch. (#8879)
DustyShoe Apr 5, 2026
be015a5
Run vitest during frontend build (#9022)
JPPhoto Apr 5, 2026
01c67c5
Fix (multiuser): Ask user to log back in when security token has expi…
lstein Apr 6, 2026
e6f2980
Added `If` node and ability to link an `Any` output to a node input i…
JPPhoto Apr 6, 2026
32002bd
ui: translations update from weblate (#8992)
weblate Apr 6, 2026
ae42182
fix: detect Z-Image LoRAs with transformer.layers prefix (#8986)
Pfannkuchensack Apr 7, 2026
f08b802
feat: add support for OneTrainer BFL Flux LoRA format (#8984)
Pfannkuchensack Apr 7, 2026
dbbf289
fix: detect FLUX.2 Klein 9B Base variant via filename heuristic (#9011)
Pfannkuchensack Apr 7, 2026
80be1b7
fix: correct inaccurate download size estimates in starter models (#8…
Pfannkuchensack Apr 7, 2026
60d0bcd
Feature(UI): Canvas Workflow Integration - Run Workflow on Raster Lay…
Pfannkuchensack Apr 7, 2026
f0d09c3
feat: add Anima model support (#8961)
4pointoh Apr 9, 2026
5f35d0e
feat(frontend): suppress tooltips on touch devices (#9001)
lstein Apr 9, 2026
d4c0e63
ui: translations update from weblate (#9028)
weblate Apr 9, 2026
ee60097
Broaden text encoder partial-load recovery (#9034)
JPPhoto Apr 10, 2026
d4104be
`graph.py` refactoring and `If` node optimization (#9030)
JPPhoto Apr 10, 2026
06eff38
fix(ui): replace all hardcoded frontend strings with i18n translation…
Pfannkuchensack Apr 10, 2026
a2e4fbb
fix: patch openapi-typescript enum generation to match OpenAPI schema…
lstein Apr 10, 2026
3c9b282
Redesign Model Manager Installation Queue (#8910)
joshistoast Apr 10, 2026
a350712
feat: add configurable shift parameter for Z-Image (#9004)
Pfannkuchensack Apr 10, 2026
b42274a
Feat[model support]: Qwen Image — full pipeline with edit, generate L…
lstein Apr 12, 2026
33ec16d
Feature: Shared/private workflows and image boards in multiuser mode …
lstein Apr 13, 2026
dd05606
Added workflow connectors (#9027)
JPPhoto Apr 14, 2026
9d62bfd
Feature: Add optional setting to prune queue on startup (#8861)
DustyShoe Apr 14, 2026
441821c
Feat(canvas): Add Lasso Tool with Freehand and Polygon modes (#8908)
DustyShoe Apr 14, 2026
06a1881
feat(ui): group nodes by category in add-node dialog (#8912)
Pfannkuchensack Apr 14, 2026
acd4157
feat(ui): add canvas project save/load (.invk format) (#8917)
Pfannkuchensack Apr 14, 2026
1b50c1a
Feat(UI): Replace prompt window resize handle with bottom edge drag h…
DustyShoe Apr 14, 2026
37ff6c3
ui: translations update from weblate (#9036)
weblate Apr 14, 2026
ce89667
List Supported Models In Readme (#9038)
kappacommit Apr 14, 2026
e252a5b
fix(multiuser): make preexisting workflows visible after migration (#…
lstein Apr 14, 2026
3fc981f
ui: translations update from weblate (#9051)
weblate Apr 14, 2026
9643b13
Docs Overhaul (#8896)
joshistoast Apr 17, 2026
7eaf1d5
New Documentation Fixes (#9061)
joshistoast Apr 17, 2026
b513a3d
Revert "New Documentation Fixes (#9061)" (#9065)
lstein Apr 17, 2026
3c17a56
Revert "Revert "New Documentation Fixes (#9061)" (#9065)" (#9066)
lstein Apr 18, 2026
63a1fe5
fix(docs): deployment paths mismatch (#9067)
joshistoast Apr 18, 2026
8cdc8c8
fix(docs): urls respect baseurl + better deployment scheduling (#9069)
joshistoast Apr 18, 2026
5436ced
fix(docs): deploy targets (#9070)
joshistoast Apr 19, 2026
0f8dce0
fix anima model auto-selection (#9035)
kappacommit Apr 19, 2026
ec5f22b
fix(docs): address bad links (#9074)
joshistoast Apr 19, 2026
6d5a788
ui: translations update from weblate (#9075)
weblate Apr 19, 2026
f621bc8
fix(docs): anticipate more redirects and update more links (#9076)
joshistoast Apr 20, 2026
9deb545
External models (Gemini Nano Banana & OpenAI GPT Image) (#8633) (#8884)
CypherNaught-0x Apr 20, 2026
ab3494f
perf(canvas): detach hidden layers from DOM, throttle onscreen checks…
Pfannkuchensack Apr 20, 2026
5867556
feat(canvas): add per-layer lock transparency option (#8943)
Pfannkuchensack Apr 20, 2026
eaa42bf
Chore: Code cleanup (#8998)
DustyShoe Apr 20, 2026
0d7205f
Handle mixed-dtype mismatches in autocast linear and conv wrappers (#…
JPPhoto Apr 20, 2026
c550ce3
fix(ui): FLUX.2 Klein VAE/Qwen3 readiness checks and diffusers source…
lstein Apr 20, 2026
d7d623e
Fix: Preserve reference image panel state and selection on recall (#9…
ufuksarp Apr 20, 2026
b2d79dc
feat:(model-manager) add sorting capabilities for models (#9024)
skunkworxdark Apr 21, 2026
3e31861
translationBot(ui): update translation (Italian) (#9078)
weblate Apr 21, 2026
e521817
Fix Z-Image LoRA detection for Kohya and ComfyUI formats (#9007)
Pfannkuchensack Apr 21, 2026
18af72c
fix: remove directory entry sizes from directory_size() to report acc…
kuishou68 Apr 21, 2026
c83f293
fix(flux2-vae): support FLUX.2 small-decoder VAE variant (#9032)
Pfannkuchensack Apr 21, 2026
4546b5f
feat(ui): show progress bar animation while models are loading (#9058)
Pfannkuchensack Apr 22, 2026
33c288a
remove anima denoise case (#9072)
dunkeroni Apr 22, 2026
5a0818a
Prevent stale queue snapshots from regressing workflow completion sta…
JPPhoto Apr 23, 2026
c3f4763
fix(ui): stabilize workflow node execution state updates (#9029)
JPPhoto Apr 25, 2026
0531108
Fix graph execution state resume after JSON round-trip (#9042)
JPPhoto Apr 25, 2026
dd5758b
fix: SDXL DoRA LoRA fails with enable_partial_loading=true (#9063)
Pfannkuchensack Apr 25, 2026
e77c0d1
feat: Add virtual boards that dynamically group images by date (#8971)
Pfannkuchensack Apr 26, 2026
f9f2a32
Feat(UI): Add LLM-powered prompt expansion and image-to-prompt featur…
Pfannkuchensack Apr 27, 2026
9a90430
fix(flux2): remove inert guidance UI, add Klein 4B Base variant, fix …
Pfannkuchensack Apr 27, 2026
3bde35b
Align DyPE with paper (#8980)
JPPhoto Apr 27, 2026
29741dd
Fix lazy If branch pruning and skipped-parent handling in graph runti…
JPPhoto Apr 27, 2026
0a09452
feat(ui): add canvas snapshot save/restore functionality (#8978)
GGSSKK Apr 27, 2026
eb15a4e
feat(recall): support direct model reference images in recall API (#9…
lstein Apr 27, 2026
62d21a5
chore(agents): Ensure that coding agents use pnpm rather than npm (#8…
lstein Apr 27, 2026
6190bca
feat: add Custom Node Manager (#9047)
Pfannkuchensack Apr 27, 2026
eac4f47
feat(mm): add editable source_url field to model config (#8997)
Pfannkuchensack Apr 27, 2026
47d0952
fix(multiuser): redact other users' current-item identifiers from que…
lstein Apr 30, 2026
ca0582e
fix node corner radius (#9102)
JPPhoto May 1, 2026
ec256b5
fix connector node hit targets (#9105)
JPPhoto May 5, 2026
d608e6e
Feat(canvas): Add hotkey for Merge Down and Merge Visible layers (#9106)
DustyShoe May 5, 2026
1af9cac
Feat(Canvas): Add canvas zoom on Ctrl/Cmd+MMB drag. (#8965)
DustyShoe May 5, 2026
68ed0f9
fix connector context menu handling (#9107)
JPPhoto May 5, 2026
d50c898
fix(mm): identify Qwen2.5/Qwen3 causal LMs as Text LLM, not Qwen3 enc…
Pfannkuchensack May 5, 2026
73d4633
feat(apionly): add Alibaba Cloud Models (#9055)
Pfannkuchensack May 5, 2026
fcf3aca
feat(config): enable partial model loading by default (#9092)
Pfannkuchensack May 6, 2026
29c95b5
Fix connector handle size + change move cursor (#9128)
JPPhoto May 6, 2026
c9e2dcc
feat(ui): drag-and-drop reordering for reference images (#9081)
lstein May 6, 2026
18b98e7
feat(apionly): seedream provider (#9054)
Pfannkuchensack May 7, 2026
825c8b6
fix(UI): keep resize handle out of prompt textarea (#9119)
DustyShoe May 7, 2026
3af0c22
fix tooltip display on desktop (#9129)
JPPhoto May 7, 2026
8c17fbe
feat: add configurable image subfolder strategies (#8969)
Pfannkuchensack May 7, 2026
883ef1a
chore: remove ad-hoc planning and PR review markdown files (#9132)
Pfannkuchensack May 8, 2026
4fc2bcf
fix(ui): wrap starter bundle buttons instead of overflowing (#9131)
lstein May 8, 2026
b9bd8ef
Fix docs rate limit action error (#9098)
joshistoast May 8, 2026
51f528c
Feat:(model) qwen image vae checkpoint (#9108)
Pfannkuchensack May 8, 2026
fcc0881
fix(mm): support ComfyUI bundled checkpoint format for Anima model id…
kappacommit May 8, 2026
25bbf32
feat(model): Add ER SDE / DPM++ 2M Scheduler Support For Anima (#9125)
kappacommit May 8, 2026
aa865f6
feat: add image subfolder strategy setting UI (#9133)
JPPhoto May 8, 2026
413ea2d
ui: translations update from weblate (#9088)
weblate May 9, 2026
5645592
Feat(canvas): add contextual tool hints to header bar (#9117)
DustyShoe May 11, 2026
f99858b
Add OKLab and Oklch image utilities and nodes, refactor color space n…
JPPhoto May 11, 2026
f9f2c65
docs: add Plausible analytics to invoke.ai site (#9140)
Pfannkuchensack May 11, 2026
0f937ce
feat(docs): upgrade deps, add translation page, fix bad links (#9157)
joshistoast May 12, 2026
6f42ad0
feat: add per-model FP8 layerwise casting for VRAM reduction (#8945)
Pfannkuchensack May 12, 2026
71b06e7
Revert "feat(docs): upgrade deps, add translation page, fix bad links…
joshistoast May 12, 2026
acd1211
feat(docs): upgrade deps, add translation page, fix bad links (#9160)
joshistoast May 12, 2026
8f46d8b
fix(qwen): fix ghosting artifacts Qwen Image Edit (#9155)
lstein May 13, 2026
932eeed
Feat(canvas): Replace Rectangle tool with new Shapes tool (#9082)
DustyShoe May 14, 2026
af59924
Remove optimized image-to-image toggle from UI for Z-Image (#9114)
ufuksarp May 14, 2026
72ae6ad
feat(mm): swap Anima Preview 3 starter for Anima Base 1.0 (#9172)
kappacommit May 15, 2026
2ea2596
fix(docs): clarify Shapes tool description (#9176)
DustyShoe May 15, 2026
d157302
ui: translations update from weblate (#9178)
weblate May 15, 2026
66bb051
Add OpenAPI schema check workflow (#9177)
JPPhoto May 15, 2026
a79606a
docs: Add multiuser documentation and reposition Workflows (#9099)
lstein May 15, 2026
064e1f7
fix(mm): show Anima Qwen3 0.6B encoders in Model Manager list (#9173)
kappacommit May 15, 2026
04d476d
chore: openapi.json (#9181)
JPPhoto May 15, 2026
71102ef
fix(mm): support diffusers FLUX LoRAs on NF4/8-bit quantized base mod…
Pfannkuchensack May 15, 2026
b75eaaa
ui: translations update from weblate (#9185)
weblate May 15, 2026
9a1e284
fix(anima): correct RoPE configuration to match the reference model (…
kappacommit May 16, 2026
e7a11a0
Add the `frontend-openapi` target to Makefile (#9184)
JPPhoto May 16, 2026
3fec11a
docs: add lasso tool and gradient guides (#9175)
DustyShoe May 16, 2026
61d1eaa
feat(anima): Make Anima respect the `precision` property in Invoke.ya…
kappacommit May 17, 2026
028c976
fix(external-providers): admin guard, validation, locale keys (#9171)
Pfannkuchensack May 18, 2026
993c681
docs: load Plausible on invoke.ai (custom), not ghpages (#9161)
Pfannkuchensack May 18, 2026
4f134a7
feat(mm): add gpt-image-2 as a starter model (#9096)
stellarfeline May 18, 2026
5f2c5c3
fix(metadata): recall z_image_shift correctly (#9139)
Pfannkuchensack May 18, 2026
a73bee6
translationBot(ui): update translation files (with lint fix) (#9205)
lstein May 18, 2026
8fdb514
fix(anima): ignore community checkpoint pos_embedder runtime buffers …
lstein May 18, 2026
d8ed28e
Remove OpenAPI target (#9203)
JPPhoto May 18, 2026
19007a1
Add universal noise and optional denoiser noise inputs (#9044)
JPPhoto May 18, 2026
9622900
docs: cover Canvas, Workflow, Gallery, and Model Manager features (#9…
Pfannkuchensack May 19, 2026
a06c1bd
fix(i18n): replace "(s)" parenthetical plurals flagged by Weblate (#9…
lstein May 22, 2026
3e72b88
Harden/router auth and bugfixes (#9200)
Pfannkuchensack May 22, 2026
b4224d9
fix(ui): auto-add newly created boards (#9193)
YUHAO-corn May 22, 2026
7859d3f
feat(nodes): add Save Image (Gallery + File Export) node (#9077)
Pfannkuchensack May 26, 2026
e5dac65
fix(canvas): restore toolbar option layout and control alignment (#9…
DustyShoe May 26, 2026
811103e
fix(fp8): route ModelMixin through hook-based path to survive partial…
Pfannkuchensack May 26, 2026
af37c23
Docs: Housekeeping + Remove docs-old (#9166)
joshistoast May 26, 2026
6ca800f
fix(flux): support .weight variant for attention norm parameter mappi…
Fortyseven May 26, 2026
34dd3ee
(UI): add latents preview estimation to anima denoise (#9219)
dunkeroni May 27, 2026
e854ab4
fix(docs): encourage uv sync over uv pip install (#9238)
joshistoast May 27, 2026
4992985
Prep PR for v6.13.0 (#9134)
lstein May 27, 2026
b82b277
chore(version): bump to 6.13.0.post1 (#9242)
lstein May 27, 2026
5bd1f7e
docs(fp8): refresh FP8 Storage page after hook-based loader change (#…
Pfannkuchensack May 29, 2026
435e843
fix(ui): require metadata handler success for some mode (#9197)
YUHAO-corn May 31, 2026
307d793
chore(github): update actions from deprecated node-20 versions (#9149)
keturn May 31, 2026
32b672f
fix(ci/cd): fix typegen test failure introduced by PR 9209 (#9260)
lstein May 31, 2026
0963bb6
fix(openapi): normalize Path defaults to POSIX in schema generation (…
Pfannkuchensack May 31, 2026
3540520
feat(app): parallel multi-GPU session execution
lstein Jun 1, 2026
6bb89d6
fix(tests): restore global device after multi-GPU cache routing test
lstein Jun 1, 2026
a3be444
chore(ui): regenerate openapi schema and frontend types for generatio…
lstein Jun 1, 2026
be54889
fix(ui): regenerate openapi.json with uv to match CI generator
lstein Jun 1, 2026
81c6104
chore(ci): update cached-lfs-checkout from deprecated node 20 version…
keturn Jun 1, 2026
a119b50
fix(model-manager): serialize model construction against VRAM moves t…
lstein Jun 2, 2026
7011446
fix(backend): fix outpainting crash caused by model download collisions
lstein Jun 2, 2026
a1fe375
fix(backend): make DiskImageFileStorage thread-safe for parallel sess…
lstein Jun 2, 2026
3db88d5
feat(ui): stack per-session progress bars during parallel generation
lstein Jun 2, 2026
351758c
fix(ui): make $progressEvents module-local to satisfy knip
lstein Jun 2, 2026
4f6613f
fix(ui): cap stacked tab progress bars to fit below the tab label
lstein Jun 2, 2026
2a65c4a
feat(config): support "auto" generation_devices to use all GPUs by de…
lstein Jun 2, 2026
4209780
chore(frontend): typegen+openapi
lstein Jun 3, 2026
914c577
docs(multi-gpu): add configuration information
lstein Jun 3, 2026
a928a75
chore(frontend): typegen + openapi again
lstein Jun 3, 2026
cf04eff
feat(model manager): external providers UI/UX tweaks (#9237)
joshistoast Jun 3, 2026
5e4e864
Merge branch 'main' into lstein/feat/multi-gpu
lstein Jun 3, 2026
48458c1
feat(settings): add Generation Devices selector to Settings dialog
lstein Jun 3, 2026
5100605
feat(settings): boldface the restart notice on Generation Devices
lstein Jun 3, 2026
200b3a3
feat(settings): show GPU name in Generation Devices badges
lstein Jun 3, 2026
cdcf7df
chore(frontend): openapi
lstein Jun 3, 2026
18f69bc
Support Hugging Face blob file URLs (#9167)
C2015 Jun 3, 2026
e5aead5
docs(external): correct mode tables and add Edit Mode plan (#9222)
Pfannkuchensack Jun 3, 2026
db0b08b
Fix(model install): wait for startup restore before imports (#9239)
JPPhoto Jun 5, 2026
3247696
feat(anima): bundle T5-XXL tokenizer, remove t5_encoder_model input (…
kappacommit Jun 5, 2026
75f1992
feat(lora): support PEFT named-adapter LoRAs (e.g. Klein 9B) (#9252)
Pfannkuchensack Jun 5, 2026
d521ba4
Merge branch 'main' into lstein/feat/multi-gpu
lstein Jun 5, 2026
134eeb6
Fix progress preview gallery selection (#9217)
JPPhoto Jun 6, 2026
df83fd0
Fix: add SD negative prompt graph wiring and history (#9243)
DustyShoe Jun 6, 2026
0df229f
fix(ci): repair wrapped ENABLE_ANALYTICS expression in deploy-docs wo…
lstein Jun 7, 2026
ff93d89
Fix workflow execution state reconciliation (#9199)
JPPhoto Jun 11, 2026
837a877
ci: use uv.lock when running tests (#9214)
keturn Jun 11, 2026
ec0b1e7
ci: run pytest via uv run to fix venv PATH breakage (#9286)
lstein Jun 11, 2026
72cee9f
fix(lora): sidecar-patch fp8 weights to avoid float8 add crash (#9246)
lstein Jun 11, 2026
42c7e73
docs: Updated uvicorn URL in documentation (#9230)
fishd72 Jun 11, 2026
8cef3cf
feat(multi-gpu): surface per-session GPU number in logs and UI
lstein Jun 12, 2026
3353e5a
Merge remote-tracking branch 'upstream/main' into lstein/feat/multi-gpu
lstein Jun 12, 2026
de66582
docs: add graph execution example to API guide (#9276)
wunianze666-netizen Jun 21, 2026
190ec2b
feat: ⬆️ Upgrade to React 19 (#8708)
joshistoast Jun 22, 2026
c48dfc8
Merge branch 'main' into lstein/feat/multi-gpu
lstein Jun 23, 2026
3c04ea8
fix(multiuser): restore X/Y queue badge and redacted queue entries fo…
lstein Jun 23, 2026
88b3479
Route Z-Image ControlNet diagnostics through logging (#9298)
lstein Jun 24, 2026
f6e8460
Update ROCm to 7.1 (supersedes #8867) (#9297)
lstein Jun 24, 2026
407d24c
fix(db): repair model_relationships foreign keys broken by migration …
Pfannkuchensack Jun 24, 2026
d911dce
Fix python tests on CUDA (#9215)
JPPhoto Jun 24, 2026
5c464f8
feat(mm): add Qwen Image single-file checkpoint loader with fp8 suppo…
Pfannkuchensack Jun 24, 2026
ed49fab
fix(flux2): strip reference-image tokens from Heun preview latents (#…
Pfannkuchensack Jun 24, 2026
c300a16
Merge branch 'main' into lstein/feat/multi-gpu
lstein Jun 24, 2026
1f55a4f
feat(multi-gpu): show per-device names in startup log and progress ci…
lstein Jun 25, 2026
8fec6ad
fix(ui): keep main panel reachable on small screens (#9144)
lstein Jun 25, 2026
c627b24
fix(ui): add missing canvas-workflow-integration log namespace transl…
Pfannkuchensack Jun 25, 2026
77a4d65
fix(gallery): traverse image subfolders when finding orphaned db entr…
lstein Jun 25, 2026
9c1e516
Merge branch 'main' into lstein/feat/multi-gpu
JPPhoto Jun 25, 2026
a1fde96
feat(model-cache): share one CPU copy of model weights across per-GPU…
lstein Jun 26, 2026
fbd95a8
fix(session-queue): cancel all in-progress items in bulk-cancel APIs …
lstein Jun 26, 2026
ed2a330
fix(multi-gpu): address review findings (cancel race, bulk delete, de…
lstein Jun 26, 2026
57e1e79
fix(ci): ruff format + make CPU-incompatible device test mock CUDA
lstein Jun 26, 2026
2d3802a
fix(multi-gpu): stop RAM blowup/swapping during concurrent generations
lstein Jun 26, 2026
6903911
fix(qwen-image): reserve VAE working memory so decode/encode don't OOM
lstein Jun 27, 2026
3e917dd
fix(flux2): tile reference-image VAE encode to avoid VRAM OOM
lstein Jun 27, 2026
902c77d
fix(multi-gpu): query execution device for VRAM-in-use accounting
lstein Jun 27, 2026
aa6fec8
fix(qwen-image): calibrate VAE working-memory estimate to the 3D-conv…
lstein Jun 27, 2026
43a46bd
feat(qwen-image): honor force_tiled_decode in the l2i node
lstein Jun 27, 2026
b84d450
fix(ui): stop progress disk flashing during indeterminate phases
lstein Jun 27, 2026
c7d37c7
feat(api): append mode for recalled reference images (+ fix recall so…
lstein Jun 28, 2026
67e2989
fix: honor empty-string metadata overrides (supersedes 9283) (#9309)
lstein Jun 28, 2026
6323873
Fix: z-image regional guidance split mismatch (#9273)
Pfannkuchensack Jun 28, 2026
b275c38
Merge branch 'main' into lstein/feat/multi-gpu
lstein Jun 28, 2026
4dccb13
feat(multi-gpu): offload text encoders to idle GPUs
lstein Jun 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 3 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
*
!invokeai
!pyproject.toml
!uv.lock
!docker/docker-entrypoint.sh
!LICENSE

**/dist
**/node_modules
**/__pycache__
**/*.egg-info
**/*.egg-info
3 changes: 3 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
b3dccfaeb636599c02effc377cdd8a87d658256c
218b6d0546b990fc449c876fb99f44b50c4daa35
182580ff6970caed400be178c5b888514b75d7f2
8e9d5c1187b0d36da80571ce4c8ba9b3a37b6c46
99aac5870e1092b182e6c5f21abcaab6936a4ad1
4 changes: 3 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@
# Only affects text files and ignores other file types.
# For more info see: https://www.aleksandrhovhannisyan.com/blog/crlf-vs-lf-normalizing-line-endings-in-git/
* text=auto
docker/** text eol=lf
docker/** text eol=lf
tests/test_model_probe/stripped_models/** filter=lfs diff=lfs merge=lfs -text
tests/model_identification/stripped_models/** filter=lfs diff=lfs merge=lfs -text
24 changes: 24 additions & 0 deletions .github/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Agent Instructions

## Package Management

This project uses **pnpm** exclusively for package management in the frontend (`invokeai/frontend/web/`).

- ✅ Use `pnpm` commands (e.g., `pnpm install`, `pnpm run`)
- ❌ Never use `npm` or `yarn` commands
- ❌ Never suggest creating or using `package-lock.json` or `yarn.lock`
- ✅ The lock file is `pnpm-lock.yaml`

Use the following pnpm commands for typical operations:

- pnpm -C invokeai/frontend/web install
- pnpm -C invokeai/frontend/web build
- pnpm -C invokeai/frontend/web lint:tsc
- pnpm -C invokeai/frontend/web lint:dpdm
- pnpm -C invokeai/frontend/web lint:eslint
- pnpm -C invokeai/frontend/web lint:prettier

## Project Structure

- Backend: Python in `invokeai/`
- Frontend: TypeScript/React in `invokeai/frontend/web/` (uses pnpm)
38 changes: 18 additions & 20 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,32 +1,30 @@
# continuous integration
/.github/workflows/ @lstein @blessedcoolant @hipsterusername @ebr
/.github/workflows/ @lstein @blessedcoolant

# documentation
/docs/ @lstein @blessedcoolant @hipsterusername @Millu
/mkdocs.yml @lstein @blessedcoolant @hipsterusername @Millu
# documentation - anyone with write privileges can review
/docs/

# nodes
/invokeai/app/ @Kyle0654 @blessedcoolant @psychedelicious @brandonrising @hipsterusername
/invokeai/app/ @blessedcoolant @lstein @dunkeroni @JPPhoto

# installation and configuration
/pyproject.toml @lstein @blessedcoolant @hipsterusername
/docker/ @lstein @blessedcoolant @hipsterusername @ebr
/scripts/ @ebr @lstein @hipsterusername
/installer/ @lstein @ebr @hipsterusername
/invokeai/assets @lstein @ebr @hipsterusername
/invokeai/configs @lstein @hipsterusername
/invokeai/version @lstein @blessedcoolant @hipsterusername
/pyproject.toml @lstein @blessedcoolant
/docker/ @lstein @blessedcoolant
/scripts/ @lstein @blessedcoolant
/installer/ @lstein @blessedcoolant
/invokeai/assets @lstein @blessedcoolant
/invokeai/configs @lstein @blessedcoolant
/invokeai/version @lstein @blessedcoolant

# web ui
/invokeai/frontend @blessedcoolant @psychedelicious @lstein @maryhipp @hipsterusername
/invokeai/backend @blessedcoolant @psychedelicious @lstein @maryhipp @hipsterusername
/invokeai/frontend @blessedcoolant @lstein @dunkeroni

# generation, model management, postprocessing
/invokeai/backend @damian0815 @lstein @blessedcoolant @gregghelt2 @StAlKeR7779 @brandonrising @ryanjdick @hipsterusername
/invokeai/backend @lstein @blessedcoolant @dunkeroni @JPPhoto @Pfannkuchensack

# front ends
/invokeai/frontend/CLI @lstein @hipsterusername
/invokeai/frontend/install @lstein @ebr @hipsterusername
/invokeai/frontend/merge @lstein @blessedcoolant @hipsterusername
/invokeai/frontend/training @lstein @blessedcoolant @hipsterusername
/invokeai/frontend/web @psychedelicious @blessedcoolant @maryhipp @hipsterusername
/invokeai/frontend/CLI @lstein
/invokeai/frontend/install @lstein
/invokeai/frontend/merge @lstein @blessedcoolant
/invokeai/frontend/training @lstein @blessedcoolant
/invokeai/frontend/web @blessedcoolant @lstein @dunkeroni @Pfannkuchensack
26 changes: 20 additions & 6 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,20 @@ body:
- label: I have searched the existing issues
required: true

- type: dropdown
id: install_method
attributes:
label: Install method
description: How did you install Invoke?
multiple: false
options:
- "Invoke's Launcher"
- 'Stability Matrix'
- 'Pinokio'
- 'Manual'
validations:
required: true

- type: markdown
attributes:
value: __Describe your environment__
Expand Down Expand Up @@ -76,26 +90,26 @@ body:
attributes:
label: Version number
description: |
The version of Invoke you have installed. If it is not the latest version, please update and try again to confirm the issue still exists. If you are testing main, please include the commit hash instead.
placeholder: ex. 3.6.1
The version of Invoke you have installed. If it is not the [latest version](https://github.com/invoke-ai/InvokeAI/releases/latest), please update and try again to confirm the issue still exists. If you are testing main, please include the commit hash instead.
placeholder: ex. v6.0.2
validations:
required: true

- type: input
id: browser-version
attributes:
label: Browser
description: Your web browser and version.
description: Your web browser and version, if you do not use the Launcher's provided GUI.
placeholder: ex. Firefox 123.0b3
validations:
required: true
required: false

- type: textarea
id: python-deps
attributes:
label: Python dependencies
label: System Information
description: |
If the problem occurred during image generation, click the gear icon at the bottom left corner, click "About", click the copy button and then paste here.
Click the gear icon at the bottom left corner, then click "About". Click the copy button and then paste here.
validations:
required: false

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Project-Documentation
url: https://invoke-ai.github.io/InvokeAI/
url: https://invoke.ai/
about: Should be your first place to go when looking for manuals/FAQs regarding our InvokeAI Toolkit
- name: Discord
url: https://discord.gg/ZmtBAhwWhy
Expand Down
12 changes: 6 additions & 6 deletions .github/actions/install-frontend-deps/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ description: Installs frontend dependencies with pnpm, with caching
runs:
using: 'composite'
steps:
- name: setup node 18
uses: actions/setup-node@v4
- name: setup node 22
uses: actions/setup-node@v6
with:
node-version: '18'
node-version: '22'

- name: setup pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v6
with:
version: 8
version: 10
run_install: false

- name: get pnpm store directory
Expand All @@ -20,7 +20,7 @@ runs:
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV

- name: setup cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
Expand Down
4 changes: 3 additions & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

## QA Instructions

<!--WHEN APPLICABLE: Describe how we can test the changes in this PR.-->
<!--WHEN APPLICABLE: Describe how you have tested the changes in this PR. Provide enough detail that a reviewer can reproduce your tests.-->

## Merge Plan

Expand All @@ -18,4 +18,6 @@

- [ ] _The PR has a short but descriptive title, suitable for a changelog_
- [ ] _Tests added / updated (if applicable)_
- [ ] _❗Changes to a redux slice have a corresponding migration_
- [ ] _Documentation added / updated (if applicable)_
- [ ] _Updated `What's New` copy (if doing a release after this PR)_
62 changes: 30 additions & 32 deletions .github/workflows/build-container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ on:
tags:
- 'v*.*.*'
workflow_dispatch:
inputs:
push-to-registry:
description: Push the built image to the container registry
required: false
type: boolean
default: false

permissions:
contents: write
Expand All @@ -39,27 +45,36 @@ jobs:
steps:
- name: Free up more disk space on the runner
# https://github.com/actions/runner-images/issues/2840#issuecomment-1284059930
# the /mnt dir has 70GBs of free space
# /dev/sda1 74G 28K 70G 1% /mnt
# According to some online posts the /mnt is not always there, so checking before setting docker to use it
run: |
echo "----- Free space before cleanup"
df -h
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
sudo swapoff /mnt/swapfile
sudo rm -rf /mnt/swapfile
if [ -f /mnt/swapfile ]; then
sudo swapoff /mnt/swapfile
sudo rm -rf /mnt/swapfile
fi
if [ -d /mnt ]; then
sudo chmod -R 777 /mnt
echo '{"data-root": "/mnt/docker-root"}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
fi
echo "----- Free space after cleanup"
df -h

- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v6

- name: Docker meta
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
images: |
ghcr.io/${{ github.repository }}
${{ env.DOCKERHUB_REPOSITORY }}
tags: |
type=ref,event=branch
type=ref,event=tag
Expand All @@ -71,50 +86,33 @@ jobs:
latest=${{ matrix.gpu-driver == 'cuda' && github.ref == 'refs/heads/main' }}
suffix=-${{ matrix.gpu-driver }},onlatest=false

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v4
with:
platforms: ${{ env.PLATFORMS }}

- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

# - name: Login to Docker Hub
# if: github.event_name != 'pull_request' && vars.DOCKERHUB_REPOSITORY != ''
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build container
timeout-minutes: 40
id: docker_build
uses: docker/build-push-action@v4
uses: docker/build-push-action@v7
with:
context: .
file: docker/Dockerfile
platforms: ${{ env.PLATFORMS }}
push: ${{ github.ref == 'refs/heads/main' || github.ref_type == 'tag' }}
build-args: |
GPU_DRIVER=${{ matrix.gpu-driver }}
push: ${{ github.ref == 'refs/heads/main' || github.ref_type == 'tag' || github.event.inputs.push-to-registry }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: |
type=gha,scope=${{ github.ref_name }}-${{ matrix.gpu-driver }}
type=gha,scope=main-${{ matrix.gpu-driver }}
cache-to: type=gha,mode=max,scope=${{ github.ref_name }}-${{ matrix.gpu-driver }}

# - name: Docker Hub Description
# if: github.ref == 'refs/heads/main' || github.ref == 'refs/tags/*' && vars.DOCKERHUB_REPOSITORY != ''
# uses: peter-evans/dockerhub-description@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# repository: ${{ vars.DOCKERHUB_REPOSITORY }}
# short-description: ${{ github.event.repository.description }}
# cache-from: |
# type=gha,scope=${{ github.ref_name }}-${{ matrix.gpu-driver }}
# type=gha,scope=main-${{ matrix.gpu-driver }}
# cache-to: type=gha,mode=max,scope=${{ github.ref_name }}-${{ matrix.gpu-driver }}
45 changes: 0 additions & 45 deletions .github/workflows/build-installer.yml

This file was deleted.

Loading