psychedelicious
cd136194ad
fix(ui): prevent drag of progress images
2025-06-26 19:50:36 +10:00
psychedelicious
2e2ac71278
feat: canvas flow rework (wip)
2025-06-26 19:50:36 +10:00
psychedelicious
db4220fb20
feat: canvas flow rework (wip)
2025-06-26 19:50:36 +10:00
psychedelicious
e16414b452
tidy(ui): app layout components
2025-06-26 19:50:36 +10:00
psychedelicious
5dbc2a74a2
feat: canvas flow rework (wip)
2025-06-26 19:50:36 +10:00
psychedelicious
ad736bc190
feat: canvas flow rework (wip)
2025-06-26 19:50:35 +10:00
psychedelicious
0e9b71801a
feat: canvas flow rework (wip)
2025-06-26 19:50:35 +10:00
psychedelicious
c9042e52d4
feat: canvas flow rework (wip)
2025-06-26 19:50:35 +10:00
psychedelicious
8a78e37634
feat: canvas flow rework (wip)
2025-06-26 19:50:35 +10:00
psychedelicious
5e93f58530
wip progress events
2025-06-26 19:50:35 +10:00
psychedelicious
a3851e0b08
refactor(ui): canvas flow (wip)
2025-06-26 19:50:35 +10:00
psychedelicious
579318af70
fix(ui): remove unused sessionId field from type
2025-06-26 19:50:35 +10:00
psychedelicious
7a5fa25b48
feat(ui): support bookmarking an entity when adding it
2025-06-26 19:50:34 +10:00
psychedelicious
7308428f32
wip
2025-06-26 19:50:34 +10:00
psychedelicious
4dc3f1bcee
refactor(ui): canvas flow (wip)
2025-06-26 19:50:34 +10:00
psychedelicious
faeb5f0c3b
refactor(ui): canvas flow (wip)
2025-06-26 19:50:34 +10:00
psychedelicious
d985dfe821
refactor(ui): canvas flow events (wip)
2025-06-26 19:50:34 +10:00
psychedelicious
ce5ae83689
refactor(ui): canvas flow (wip)
2025-06-26 19:50:34 +10:00
psychedelicious
c0428ee7ef
refactor(ui): canvas flow (wip)
2025-06-26 19:50:34 +10:00
psychedelicious
aa3b2106d4
refactor(ui): canvas flow (wip)
2025-06-26 19:50:34 +10:00
psychedelicious
cf2d67ef3d
refactor(ui): canvas flow (wip)
2025-06-26 19:50:33 +10:00
psychedelicious
c4d1e78f59
fix(ui): circular import issue
2025-06-26 19:50:33 +10:00
psychedelicious
02e4a3aa82
refactor(ui): params state zodification
2025-06-26 19:50:33 +10:00
psychedelicious
a0b0c30be9
refactor(ui): move params state to big file of canvas zod stuff
2025-06-26 19:50:33 +10:00
psychedelicious
5c4cbc7fa2
refactor(ui): zod-ify params slice state
2025-06-26 19:50:33 +10:00
psychedelicious
5f2f12f803
refactor(ui): org state in prep for new flow
2025-06-26 19:50:33 +10:00
psychedelicious
668c475271
feat(ui): default canvas tool is move
2025-06-26 19:49:01 +10:00
psychedelicious
53a3dc52bc
feat(ui): viewer is a modal (wip)
2025-06-26 19:49:01 +10:00
Mary Hipp Rogers
979bd33dfb
fix 1:1 ratio ( #8127 )
...
Co-authored-by: Mary Hipp <maryhipp@Marys-Air.lan >
2025-06-25 19:39:21 -04:00
Mary Hipp Rogers
2ad5b5cc2e
Flux Kontext UI support ( #8111 )
...
* add support for flux-kontext models in nodes
* flux kontext in canvas
* add aspect ratio support
* lint
* restore aspect ratio logic
* more linting
* typegen
* fix typegen
---------
Co-authored-by: Mary Hipp <maryhipp@Marys-Air.lan >
2025-06-25 09:39:57 -04:00
Kent Keirsey
6a78739076
Change save button to Invoke Blue
2025-06-20 15:07:40 +10:00
psychedelicious
31584daabe
feat(ui): display canvas spinner during compositing operations
2025-06-06 20:50:02 +10:00
psychedelicious
a6cb522fed
feat(ui): add bboxUpdated callback to transformer, use it to fit layer to stage when creating new canvas from an image
...
When a layer is initialized, we do not yet know its bbox, so we cannot fit the stage view to the layer. We have to wait for the bbox calculation to finish. Previously, we had no way to wait unti lthat bbox calculation was complete to take an action.
For example, this means we could not fit the layers to the stage immediately after creating a new layer, bc we don't know the dimensions of the layer yet.
This callback lets us do that. When creating a new canvas from an image, we now...
- Register a bbox update callback to fit the layers to stage
- Layer is created
- Canvas initializes the layer's entity adapter module (layer's width and height are set to zero at this point)
- Canvas calculates the bbox
- Bbox is updated (width and height are now correct)
- Callback is ran, fitting layer to stage
2025-06-06 20:50:02 +10:00
psychedelicious
f70be1e415
feat(ui): animate stage fit operations (e.g. fit layers to stage)
2025-06-06 20:50:02 +10:00
psychedelicious
a2901f2b46
feat(ui): add method to stage to fit to union of bbox and layers
...
This ensures that _both_ bbox and layers are visible
2025-06-06 20:50:02 +10:00
psychedelicious
b61c66c3a9
feat(ui): add spinner indicator to canvas during rasterizing operations and while pending rect calculations
2025-06-06 20:50:02 +10:00
psychedelicious
c77f9ec202
feat(ui): add hook to get all entity adapters in array
2025-06-06 20:50:02 +10:00
dunkeroni
bc67d5c841
add invert logic to grayscale mask composite
2025-05-30 11:19:37 +10:00
psychedelicious
a2d8261d40
feat(ui): canvas scroll scale snap
2025-05-27 13:10:57 +10:00
psychedelicious
bce88a8873
perf(ui): lazy mount scale slider popover
2025-05-27 13:10:57 +10:00
psychedelicious
b37e1a3ad6
feat(ui): do not round scale
...
Makes it a lot smoother, don't think it breaks anything...
2025-05-27 13:10:57 +10:00
psychedelicious
35a088e0a6
perf(ui): optimize <CanvasToolbarScale />
2025-05-27 13:10:57 +10:00
psychedelicious
b936cab039
feat(ui): add computed for stage scale
2025-05-27 13:10:57 +10:00
psychedelicious
34e4093408
fix(ui): revert snapping logic, doesn't work w/ certain input devices
2025-05-27 13:10:57 +10:00
psychedelicious
6fa46d35a5
feat(ui): inpaint mask settings layout
2025-05-27 07:28:47 +10:00
psychedelicious
b2a2b38ea8
feat(ui): split inpaint mask setting selectors to avoid manual memoization
2025-05-27 07:28:47 +10:00
dunkeroni
12934da390
Use Optional instead of Nullable for mask settings
2025-05-27 07:28:47 +10:00
dunkeroni
231bc18188
remove buttons, change denoise limit format
2025-05-27 07:28:47 +10:00
dunkeroni
3f727e24b1
change default noise level to 0.15
2025-05-27 07:28:47 +10:00
dunkeroni
e9ce2ed5f2
inpaint mask sliders compatible with outpainting
2025-05-27 07:28:47 +10:00