Feat/canvas#9
Open
joshistoast wants to merge 100 commits into
Open
Conversation
- Canvas invokes now dispatch resolved generate metadata with the compiled graph: - prompt node ids - seed node id - resolved generate values, including resolved seed - Canvas queue snapshots now persist that metadata under `snapshot.generate`. - Runtime now submits canvas queue items through the generate-style batch path, so backend receives seed/prompt `batch.data`. - Workflow queue items still use the workflow submission path. - Added a tested fallback for older persisted canvas queue items that lack `snapshot.generate`, using their saved generate widget state instead of backend primitive defaults. - Updated stale canvas queue comments.
getQueueItemResultImages()` now supports filtering result images by graph source node id. - Filtering correctly uses backend `prepared_source_mapping`, because `session.results` keys can be prepared execution ids, not source node ids. - Generate/canvas queue result routing now only reads the compiled output node: `canvas_output`. - Workflow routing remains unchanged and still scans workflow outputs, then filters non-intermediate images. - Both final batch routing and partial gallery routing use the same result-node policy.
- staging area uses new shared canvasoptionsbor component - avoid tool use while staging is active - hold c key to temp use bbox - color picker while holding alt
right click on a layer row item shows the options
- cancel button on in-progress staging items - redesigned layer context menus - use prompt textarea on regional guidance layer properties - handle spaces in regional guidance properties popover
- Added `CanvasEngine.exportLayerPixels(layerId, options?)`. - Returns status-based results: `ok`, `missing`, `disabled`, `unsupported`, `empty`, `not-ready`. - Reused this primitive from existing generation and PSD rasterization paths. - Added tests for: - visible layer export - hidden layer refusal unless `includeDisabled` - refusing export while cache rasterization is in-flight
Added `CanvasEngine.exportBakedLayerBlob()`. - Added `save-to-assets` to the layer context action registry. - Wired the menu action to: - bake the layer with transform/adjustments - encode it as PNG - upload via existing `uploadGalleryImage(file, 'none')` - Uses `includeDisabled: true` so hidden layers can still be saved.
- Added `CanvasEngine.cropLayerToBbox(layerId)`.
- Crops by baking the layer into the current bbox:
- raster/control layers become bbox-sized paint sources
- inpaint/regional masks get bbox-sized mask bitmaps
- transform resets to identity
- raster adjustments/control filter config are cleared after baking to
avoid double-processing
- cropped pixels persist through the existing bitmap-store path
- Added `crop-to-bbox` context-menu action.
- Disabled crop when no engine is attached or the layer is locked.
- Wired the menu action to `engine.cropLayerToBbox`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds canvas functionality to the v7 shell. This uses a new and custom engine that behaves closer to photoshop using a bitmap.
Related Issues / Discussions
QA Instructions
Merge Plan
Checklist
What's Newcopy (if doing a release after this PR)