a3a6449786
feat(ui): versioned control layers metadata
2024-05-08 08:39:18 -04:00
e9d2ffe3d7
fix(ui): process control image on recall if no processed image
2024-05-08 08:39:18 -04:00
23ad6fb730
feat(ui): handle missing images/models when recalling control layers
2024-05-08 08:39:18 -04:00
00f36cb491
tidy(ui): clean up control layers graph builder
2024-05-08 08:39:18 -04:00
3f489c92c8
feat(ui): handle initial image layers in control layers helper
2024-05-08 08:39:18 -04:00
f147f99bef
feat(ui): better metadata labels for layers
2024-05-08 08:39:18 -04:00
6107e3d281
fix(ui): fix zControlAdapterBase schema weight
2024-05-08 08:39:18 -04:00
de33d6e647
fix(ui): metadata "Layers" -> "Layer"
2024-05-08 08:39:18 -04:00
e36e5871a1
chore(ui): lint
2024-05-08 08:39:18 -04:00
8b25c1a62e
tidy(ui): remove extraneous metadata handlers
2024-05-08 08:39:18 -04:00
dfbd7eb1cf
feat(ui): individual layer recall
2024-05-08 08:39:18 -04:00
b43b2714cc
feat(ui): add fracturedjsonjs
to pretty-serialize objects
...
In use on the metadata viewer - makes it sooo much easier on the eyes.
2024-05-08 08:39:18 -04:00
e537de2f6d
feat(ui): layers recall
...
This still needs some finessing - needs logic depending on the tab...
2024-05-08 08:39:18 -04:00
ccd399e277
feat(ui): add getIsVisible
to metadata handlers
2024-05-08 08:39:18 -04:00
bfad814862
fix(ui): fix IPAdapterConfigV2 schema weight
2024-05-08 08:39:18 -04:00
6e8b7f9421
feat(ui): write layers to metadata
2024-05-08 08:39:18 -04:00
e47629cbe7
feat(ui): add zod schema for layers array
2024-05-08 08:39:18 -04:00
e840de27ed
feat(ui): extend zod with a is
typeguard` method
...
Feels dangerous, but it's very handy.
2024-05-08 08:39:18 -04:00
8342f32f2e
refactor(ui): rewrite all types as zod schemas
...
This change prepares for safe metadata recall.
2024-05-08 08:39:18 -04:00
a7aa529b99
tidy(ui): "imageName" -> "name"
2024-05-08 08:39:18 -04:00
4adc592657
feat(ui): move strength to init image layer
...
This further splits the control layers state into its own thing.
2024-05-07 11:02:16 +10:00
e8d60e8d83
fix(ui): image metadata viewer stuck when spamming hotkey
2024-05-07 11:02:16 +10:00
886f5c90a3
feat(ui): move img2img strength out of advanced on canvas
2024-05-07 11:02:16 +10:00
5e684c11f1
Update invokeai_version.py
v4.2.0b2
2024-05-07 09:09:10 +10:00
72ce239592
revert(ui): remove floating viewer
...
There are unresolved platform-specific issues with this component, and its utility is debatable.
Should be easy to just revert this commit to add it back in the future if desired.
2024-05-06 19:00:07 -04:00
a826f8f8c5
fix(ui): show total layer count in control layers tab
2024-05-06 19:00:07 -04:00
b6c19a8e47
feat(ui): close viewer when adding a RG layer
2024-05-06 19:00:07 -04:00
67d6cf19c6
fix(ui): switch to viewer if auto-switch is enabled
2024-05-06 19:00:07 -04:00
a9bf651c69
chore(ui): bump all deps
2024-05-06 19:00:07 -04:00
3bd5d9a8e4
fix(ui): memoize FloatingImageViewer
...
Maybe this will fix @JPPhoto's issue?
2024-05-06 19:00:07 -04:00
6249982d82
fix(ui): stuck viewer when spamming toggle
...
There are a number of bugs with `framer-motion` that can result in sync issues with AnimatePresence and the conditionally rendered component.
You can see this if you rapidly click an accordion, occasionally it gets out of sync and is closed when it should be open.
This is a bigger problem with the viewer where the user may hold down the `z` key. It's trivial to get it to lock up.
For now, just remove the animation entirely.
Upstream issues for reference:
https://github.com/framer/motion/issues/2023
https://github.com/framer/motion/issues/2618
https://github.com/framer/motion/issues/2554
2024-05-06 19:00:07 -04:00
6b98dba71d
chore(ui): lint
2024-05-06 08:55:32 -04:00
c0065a65a0
feat(ui): floating viewer always shows progress, never shows metadata
2024-05-06 08:55:32 -04:00
cce3144c74
feat(ui): add floating image viewer
2024-05-06 08:55:32 -04:00
aab152a7e9
fix(ui): track mouse out flags correctly
2024-05-06 08:55:32 -04:00
c5b948bc3f
feat(ui): fade layer selection color
2024-05-06 08:55:32 -04:00
44ecddae2e
feat(ui): style Settings/Control Layers tabs like tabs
2024-05-06 08:55:32 -04:00
26847895b9
fix(ui): update hotkeys for viewer
2024-05-06 08:55:32 -04:00
e4a640f0a7
feat(ui): optimized rendering of selected layer
...
Instead of caching on every stroke, we can use a compositing rect when the layer is being drawn to improve performance.
2024-05-04 12:03:28 -04:00
b5b6a96d94
feat(ui): dynamic brush spacing
...
Scaled to 10% of brush size, clamped between 5px and 15px. This makes drawing feel a bit smoother, but maintains reasonable performance.
2024-05-04 12:03:28 -04:00
806a8f69c5
perf(ui): rerender of opacity sliders
2024-05-04 12:03:28 -04:00
ac0b9ba290
tidy(ui): $cursorPosition
-> $lastCursorPos
2024-05-04 12:03:28 -04:00
7ca613d41c
feat(ui): snap cursor pos when drawing rects
...
- Rects snap to stage edge when within a threshold (10 screen pixels)
- When mouse leaves stage, set last mousedown pos to null, preventing nonfunctional rect outlines
Partially addresses #6306 .
There's a technical challenge to fully address the issue - mouse event are not fired when the mouse is outside the stage. While we could draw the rect even if the mouse leaves, we cannot update the rect's dimensions on mouse move, or complete the drawing on mouse up.
To fully address the issue, we'd need to a way to forward window events back to the stage, or at least handle window events. We can explore this later.
2024-05-04 12:03:28 -04:00
5cb1ff8679
fix(ui): open viewer on image click, not select
2024-05-04 12:03:28 -04:00
8794b99d51
fix(ui): save upscaled images to gallery on canvas tab
2024-05-03 23:15:10 -04:00
6bdded85da
fix(ui): do not auto-hide next/prev image buttons
2024-05-03 23:15:10 -04:00
26613f10c7
feat(ui): close viewer when user switches tabs
2024-05-03 23:15:10 -04:00
6d2fe3b691
tidy(ui): clean up layer reset logic
2024-05-03 23:15:10 -04:00
2888845f7c
fix(ui): invalidate mask cache when moving layer
2024-05-03 23:15:10 -04:00
4beccea6e7
fix(ui): do not run HRO if using an initial image
2024-05-03 23:15:10 -04:00