Repository navigation
Open
Description
Is there an existing issue for this problem?
- I have searched the existing issues
Version number
v7.0.0-alpha.4-post1 (main)
What happened
In the move from InvokeAI v6 (webv1) to v7 (webv2), two related metadata regressions were introduced for Canvas generations and parameter recall:
- Canvas & Control Layer metadata is no longer recorded on generated images when generating on the v7 Canvas (ControlNets, T2I-Adapters, ControlLoRAs, Fun-ControlNet-Union, ControlNet-LLLite, mask-based Regional Guidance, and Canvas layer state).
- Frontend parameter recall (
imageRecall.ts) no longer displays or recalls Control / Canvas metadata and dropped fallback parsers for historic v4, v5, and v6 metadata schemas, meaning users cannot inspect or recall adapters and settings from either newly generated v7 Canvas images or their existing v4–v6 image galleries.
1. What Is Missing in v7 Metadata Recording (compileCanvasGraph.ts & CoreMetadataInvocation)
- Control Layers (ControlNet, T2I-Adapter, ControlLoRA, Fun-ControlNet-Union, ControlNet-LLLite) are not recorded in
core_metadata:CoreMetadataInvocation(invokeai/app/invocations/metadata.py) no longer has inputs forcontrolnets,t2iAdapters, or Canvas control layers (onlyanima_inpaint_adapter/anima_inpaint_adapter_weightfor Anima's inpaint adapter).compileCanvasGraph.tsandaddControlLayers.ts(invokeai/frontend/webv2/src/features/generation/core/canvas/) wire the control adapter nodes intodenoise_latents, but write nothing tocore_metadata.- Furthermore,
graph.tswirescore_metadatadirectly intocanvas_output.metadata(bypassingdenoise_latents). Even with PR feat(nodes): add native metadata input and output across denoise invocations #10083 adding nativecontrolnetsandt2iAdaptersserialization on all denoise nodes (denoise_latents.metadata), Canvas/Generate graphs overwritecanvas_output.metadatawithcore_metadata.
- Mask-Based Regional Guidance is not recorded:
- While layout-prompt models (
ideogram-4,moss-image,flux3) record their assembled layout caption incore_metadata(ideogram4_caption,moss_image_layout_prompt,flux3_caption), mask-based Regional Guidance compiled byaddRegionalGuidance.tsfor SD1.5, SDXL, FLUX, Z-Image, Anima, and Krea-2 records none of the regional prompts, masks, or regional reference images incore_metadata.
- While layout-prompt models (
- Canvas Layer State (
controlLayers,regionalGuidance,inpaintMasks,rasterLayers):- In v6 (
webv1/src/features/controlLayers/store/selectors.ts),selectCanvasMetadatarecordedcanvas_v2_metadata(controlLayers,inpaintMasks,rasterLayers,regionalGuidance) on generated images, andCanvasLayers(webv1/src/features/metadata/parsing.tsx) displayed the layer count and recalled them viacanvasMetadataRecalled. In v7, none of this Canvas layer state is recorded or recallable.
- In v6 (
2. Missing Frontend Recall & Historic Metadata Format Support (v4 / v5 / v6 -> v7)
Users have large existing image libraries generated in InvokeAI v4, v5, and v6 (as well as node workflows). While backend workflow nodes (metadata_to_ip_adapters, metadata_to_controlnets, metadata_to_t2i_adapters in PR #10083) support multi-version recall across v4, v5/v6, and v7 schemas, the v7 frontend (invokeai/frontend/webv2/src/workbench/image-actions/imageRecall.ts) lacks both UI recall for Control/Canvas layers and fallback parsers for historic metadata formats:
| Metadata Feature | v7 Schema | v5 / v6 Schema (canvas_v2_metadata) |
v4 / Legacy Workflow Schema | Current v7 Frontend (imageRecall.ts) Status |
|---|---|---|---|---|
| Reference Images / IP-Adapter | ref_images (config.image.original.image) |
canvas_v2_metadata.referenceImages.entities (ipAdapter.image) |
ipAdapters (ip_adapter_model, image, begin_step_percent, end_step_percent) |
Only parses v7 ref_images; fails to recall v5/v6 canvas_v2_metadata.referenceImages and v4 ipAdapters (whereas v6 parsing.tsx had a fallback parser). |
| ControlNets & ControlLoRAs | controlnets (emitted by denoise nodes in #10083; missing from core_metadata) |
canvas_v2_metadata.controlLayers (controlAdapter.type === 'controlnet' | 'control_lora') |
controlnets (control_model, image, control_weight, begin_step_percent, end_step_percent, control_mode) |
Not displayed in Metadata Viewer and not recallable. |
| T2I-Adapters | t2iAdapters (emitted by denoise nodes in #10083; missing from core_metadata) |
canvas_v2_metadata.controlLayers (controlAdapter.type === 't2i_adapter') |
t2iAdapters (t2i_adapter_model, image, weight, begin_step_percent, end_step_percent) |
Not displayed in Metadata Viewer and not recallable. |
| Regional Guidance | ideogram4_caption / moss_image_layout_prompt / flux3_caption (layout bases only; mask bases unrecorded) |
canvas_v2_metadata.regionalGuidance (positivePrompt, negativePrompt, referenceImages, mask objects) |
N/A | Not displayed in Metadata Viewer and not recallable. |
Canvas Layer State & Denoising strength |
strength written to core_metadata on Canvas img2img/inpaint/outpaint |
canvas_v2_metadata.rasterLayers, canvas_v2_metadata.inpaintMasks, strength |
strength, init_image |
strength and Canvas layers are not recallable in imageRecall.ts. |
What you expected to happen
- Scope & Expectations — Staging Area / Direct Generation vs. Flattened Canvas Export:
- In Scope (Staging Area & Direct-to-Gallery Generations): Metadata recording and recall should be complete whenever an image is produced by a generation run — i.e., when generating with destination set to Gallery, or when saving an individual generated candidate from the Canvas Staging Area to the Gallery. Each staged candidate is the direct output of a single
compileCanvasGraphexecution with well-defined model, prompt, seed,strength, Control Layers, Reference Images, and Regional Guidance parameters. - Out of Scope (Saving the Flattened Canvas Document on Its Own): Saving/exporting the composited Canvas raster layers outside the staging area is a document export that may combine manual brush edits, imported assets, and multiple separate generation passes, so it is not expected to carry single-generation metadata.
- In Scope (Staging Area & Direct-to-Gallery Generations): Metadata recording and recall should be complete whenever an image is produced by a generation run — i.e., when generating with destination set to Gallery, or when saving an individual generated candidate from the Canvas Staging Area to the Gallery. Each staged candidate is the direct output of a single
- Record Control & Canvas Metadata in v7:
- Record active Control Layers (ControlNet, T2I-Adapter, ControlLoRA, Fun-ControlNet-Union, ControlNet-LLLite) and Regional Guidance in
core_metadatawhen compiling Canvas graphs (or routecore_metadatathroughdenoise_latents.metadataso denoise-emittedcontrolnets/t2iAdaptersare preserved oncanvas_output).
- Record active Control Layers (ControlNet, T2I-Adapter, ControlLoRA, Fun-ControlNet-Union, ControlNet-LLLite) and Regional Guidance in
- Display & Recall Control / Canvas Metadata in v7 UI:
- Display used Control Adapters, Regional Guidance, and
strengthin the v7 Metadata Viewer. - Support recalling Control Layers, Regional Guidance, and
strengthback into the Canvas / Generate UI.
- Display used Control Adapters, Regional Guidance, and
- Preserve Backward-Compatible Recall for v4, v5, and v6 Images:
- Add fallback parsers in
imageRecall.tsfor:canvas_v2_metadata.referenceImages.entitiesand v4ipAdapters-> v7referenceImagescanvas_v2_metadata.controlLayersand v4/v7controlnets/t2iAdapters-> v7 Canvas Control Layerscanvas_v2_metadata.regionalGuidance-> v7 Canvas Regional Guidance layers
- Add fallback parsers in
Additional context
- Related PR: feat(nodes): add native metadata input and output across denoise invocations #10083 (Stage 1: Unify metadata across all 19 denoise invocations, including
controlnets,t2iAdapters, and v7ref_imagesserialization on denoise nodes and v4/v5/v6/v7 recall inmetadata_to_ip_adapters,metadata_to_controlnets, andmetadata_to_t2i_adapters). - Related Discord
#developer-forumdiscussion: https://discord.com/channels/1020123559063990373/1564749303069544558
Metadata
Metadata
Assignees
Labels
No labels
Activity
skunkworxdark commentedon Nov 3, 2026
Cross-referencing PR #10127 ("Restore Canvas metadata and recall parity"), which was opened right around the same time and directly addresses nearly everything described in this issue!
Covered by #10127
compileCanvasGraph.ts): Recordscanvas_v3_metadata,control_layers(all 7 control layer types:controlnet,t2i_adapter,control_lora,qwen_image_control,flux2_control,z_image_control,anima_lllite), legacy-compatiblecontrolnetsandt2iAdapters, andregions(both layout and mask-based Regional Guidance).previewMetadata.ts): Displayscontrol_layers,controlnets,t2iAdapters,regions,canvas_v3_metadata, andcanvas_v2_metadatasummaries.canvasRecall.ts,legacyCanvasMetadata.ts): Restorescanvas_v3_metadata, converts v5/v6canvas_v2_metadata(rasterizing legacy Konva layers, masks, control layers, and regional guidance into v7CanvasDocumentContractV3layers), and restores denoisingstrength.saveCanvasToGallery.ts): Records authoredcanvas_v3_metadatalayers while intentionally omittingseedandgeneration_mode.Remaining Fallback Items Not Covered in #10127
controlnetsandt2iAdaptersrecall incanvasRecall.ts:#10127displays top-levelcontrolnetsandt2iAdaptersinpreviewMetadata.ts, butcanvasRecall.tscurrently only checks'canvas_v3_metadata' in metadata || 'canvas_v2_metadata' in metadata || 'control_layers' in metadata.canvasRecall.tsfor standalone top-levelcontrolnetsandt2iAdapters(whencontrol_layers,canvas_v2_metadata, andcanvas_v3_metadataare absent) will allow recalling ControlNets/T2I-Adapters from v4 images as well as v7 node workflows (emitted by backend denoise nodes in feat(nodes): add native metadata input and output across denoise invocations #10083).ref_images) fallback inimageRecall.tsfor v5/v6 and v4:#10127converts regional reference images insidecanvas_v2_metadata.regionalGuidance, whileimageRecall.tscurrently only checks top-levelmetadata.ref_imagesfor global Reference Images.imageRecall.tsto readcanvas_v2_metadata.referenceImages.entities(v5/v6 global reference images) and top-levelmetadata.ipAdapters(v4 IP-Adapters) whenmetadata.ref_imagesis absent will complete historic Reference Image recall across v4–v6.joshistoast commentedon Nov 3, 2026
Your remaining items should be addressed, check again whenever is convenient
skunkworxdark commentedon Nov 3, 2026
@joshistoast Just reviewed the latest commits (
5cce3c79f3&b832cf9cb8) on #10127 — both remaining items (standalonecontrolnets/t2iAdaptersrecall with frame-fitting and Gallery dimension hydration, plus globalref_imagesfallbacks forcanvas_v2_metadata.referenceImagesand v4ipAdapters) are completely covered and also align cleanly with the backend workflow metadata emitted in #10083. Thank you for the super fast turnaround!