Ryan Dick
714dd5f0be
Update FluxControlnetModel to work with both XLabs and InstantX.
2024-10-10 07:59:29 -04:00
Ryan Dick
2f4d3cb5e6
Add unit test to test the full flow of loading an InstantX ControlNet from a state dict.
2024-10-10 07:59:29 -04:00
Ryan Dick
1cdd501a0a
Add unit test for infer_flux_params_from_state_dict(...).
2024-10-10 07:59:29 -04:00
Ryan Dick
03cf953398
First pass of utility function to infer the FluxParams from a state dict.
2024-10-10 07:59:29 -04:00
Ryan Dick
24c115663d
Add unit test for convert_diffusers_instantx_state_dict_to_bfl_format(...) and fix a few bugs.
2024-10-10 07:59:29 -04:00
Ryan Dick
a9e7ecad49
Finish first draft of convert_diffusers_instantx_state_dict_to_bfl_format(...).
2024-10-10 07:59:29 -04:00
Ryan Dick
76f4766324
WIP - implement convert_diffusers_instantx_state_dict_to_bfl_format(...).
2024-10-10 07:59:29 -04:00
Ryan Dick
3dfc242f77
(minor) rename other_forward() -> forward()
2024-10-10 07:59:29 -04:00
Ryan Dick
1e43389cb4
Add utils for detecting XLabs ControlNet vs. InstantX ControlNet from
...
state dict.
2024-10-10 07:59:29 -04:00
Ryan Dick
cb33de34f7
Migrate DiffusersControlNetFlux from diffusers-style to BFL-style.
2024-10-10 07:59:29 -04:00
Ryan Dick
7562ea48dc
Improve typing of zero_module().
2024-10-10 07:59:29 -04:00
Ryan Dick
83f4700f5a
Use top-level torch import for all torch stuff.
2024-10-10 07:59:29 -04:00
Ryan Dick
704e7479b2
Remove DiffusersControlNetFlux.from_transformer(...).
2024-10-10 07:59:29 -04:00
Ryan Dick
5f44559f30
Fixup typing around DiffusersControlNetFluxOutput.
2024-10-10 07:59:29 -04:00
Ryan Dick
7a22819100
Remove gradient checkpointing from DiffusersControlNetFlux.
2024-10-10 07:59:29 -04:00
Ryan Dick
70495665c5
Remove FluxMultiControlNetModel
2024-10-10 07:59:29 -04:00
Ryan Dick
ca30acc5b4
Remove LoRA stuff from DiffusersCotnrolNetFlux.
2024-10-10 07:59:29 -04:00
Ryan Dick
8121843d86
Remove logic for modifying attn processors from DiffusersControlNetFlux.
2024-10-10 07:59:29 -04:00
Ryan Dick
bc0ded0a23
Rename FluxControlNetModel -> DiffusersControlNetFlux
2024-10-10 07:59:29 -04:00
Ryan Dick
30f6034f88
Start updating imports for FluxControlNetModel
2024-10-10 07:59:29 -04:00
Ryan Dick
7d56a8ce54
Copy model from 99f608218c/src/diffusers/models/controlnet_flux.py
2024-10-10 07:59:29 -04:00
Ryan Dick
e7dc439006
Rename ControlNetFlux -> XLabsControlNetFlux
2024-10-10 07:59:29 -04:00
Ryan Dick
93e98a1f63
Add support for FLUX controlnet weight, begin_step_percent and end_step_percent.
2024-10-10 07:59:29 -04:00
Ryan Dick
0f93deab3b
First pass at integrating FLUX ControlNets into the FLUX Denoise invocation.
2024-10-10 07:59:29 -04:00
Ryan Dick
3f3aba8b10
Add FLUX XLabs ControlNet model probing.
2024-10-10 07:59:29 -04:00
Ryan Dick
0b84f567f1
Fix type errors and imporve docs for ControlNetFlux.
2024-10-10 07:59:29 -04:00
Ryan Dick
69c0d7dcc9
Remove gradient checkpointing from ControlNetFlux.
2024-10-10 07:59:29 -04:00
Ryan Dick
5307248fcf
Remove ControlNetFlux logic related to attn processor overrides.
2024-10-10 07:59:29 -04:00
Ryan Dick
2efaea8f79
Remove duplicate FluxParams class.
2024-10-10 07:59:29 -04:00
Ryan Dick
c1dfd9b7d9
Fix FLUX module imports for ControlNetFlux.
2024-10-10 07:59:29 -04:00
Ryan Dick
c594ef89d2
Copy ControlNetFlux model from 47495425db/src/flux/controlnet.py.
2024-10-10 07:59:29 -04:00
psychedelicious
236c065edd
fix(ui): respect grid size when fitting layer to box
2024-10-10 07:43:46 -04:00
psychedelicious
1f5d744d01
fix(ui): disable canvas-related image context menu items when canvas is busy
2024-10-10 07:43:46 -04:00
psychedelicious
b36c6af0ae
feat(ui): add new img2img canvas from image functionality
...
This replicates the img2img flow:
- Reset the canvas
- Resize the bbox to the image's aspect ratio at the optimal size for the selected model
- Add the image as a raster layer
- Resizes the layer to fit the bbox using the 'fill' strategy
After this completes, the user can immediately click Invoke and it will do img2img.
2024-10-10 07:43:46 -04:00
psychedelicious
4e431a9d5f
feat(ui): add a mutex to CanvasEntityTransformer to prevent concurrent operations
2024-10-10 07:43:46 -04:00
psychedelicious
48a8232285
feat(ui): add entity adapter init callbacks
...
If an entity needs to do something after init, it can use this system. For example, if a layer should be transformed immediately after initializing, it can use an init callback.
2024-10-10 07:43:46 -04:00
psychedelicious
94007fef5b
tidy(ui): remove unused reducer
2024-10-10 07:43:46 -04:00
psychedelicious
9e6fb3bd3f
feat(ui): add hooks for new layer/canvas from image & use them
2024-10-10 07:43:46 -04:00
psychedelicious
8522129639
tidy(ui): "syncCache" -> "syncKonvaCache"
...
Reduce confusion w/ the many other caches
2024-10-10 17:45:05 +11:00
psychedelicious
15033b1a9d
fix(ui): prevent edge case where layers get cached while hidden
2024-10-10 17:45:05 +11:00
psychedelicious
743d78f82b
feat(ui): more debug info for canvas adapters
2024-10-10 17:45:05 +11:00
psychedelicious
06a434b0a2
tidy(ui): clean up awkward selector in CanvasEntityAdapterBase
2024-10-10 17:45:05 +11:00
psychedelicious
7f2fdae870
perf(ui): optimized object rendering
...
- Throttle opacity and compositing fill rendering to 100ms
- Reduce compositing rect rendering to minimum
2024-10-10 17:45:05 +11:00
psychedelicious
00be03b5b9
perf(ui): hide offscreen & uninteractable layers
2024-10-10 17:45:05 +11:00
psychedelicious
0f98806a25
fix(ui): deprecated konva attr
2024-10-10 17:45:05 +11:00
psychedelicious
0f1541d091
perf(ui): disable perfect draw for all shapes
...
This feature involves a certain amount of extra work to ensure stroke and fill with partial opacity render correctly together. However, none of our shapes actually use that combination of attributes, so we can disable this for a minor perf boost.
2024-10-10 17:45:05 +11:00
psychedelicious
c49bbb22e5
feat(ui): track whether entities intersect the bbox
2024-10-10 17:45:05 +11:00
psychedelicious
7bd4b586a6
feat(ui): track whether entities are on-screen or off-screen
2024-10-10 17:45:05 +11:00
psychedelicious
754f049f54
feat(ui): getScaledStageRect returns snapped values
2024-10-10 17:45:05 +11:00
psychedelicious
883beb90eb
refactor(ui): do not rely on konva internal canvas cache for layer previews
...
Instead of pulling the preview canvas from the konva internals, use the canvas created for bbox calculations as the preview canvas.
This doesn't change perf characteristics, because we were already creating this canvas. It just means we don't need to dip into the konva internals.
It fixes an issue where the layer preview didn't update or show when a layer is disabled or otherwise hidden.
2024-10-10 17:45:05 +11:00