- Left/Right navigates carousel slides (instant jump, loops)
- Up/Down navigates between generation batches
- Opening a specific image correctly highlights it in the carousel via initialIndex
- Add galleryModalLightboxNavPrev/Next signals so TextToImage can provide its
own bundle navigation callbacks independently of the gallery's item list
- Fix: gallery nav callbacks were undefined for TextToImage-opened lightboxes
since generated batches are not in the gallery's flatFilteredItems
- move a lot of "deprecated" crates so we don't use them
- kill several dead crates
- rename crates to be more semantic/clear
- roll back broken sha3 version bump
Paint/Mask cursor now draws properly regardless of canvas scale and drag
offset.
Inpainting now has its own brush with add and subtract actions.
A total node array is used for ordered-rendering of nodes, which fixes
the layer forward/backward operations.
3D nodes and drawings on the canvas were missing from the reference
image sent to the model in the default generation path. The fix mirrors
the Nano Banana Pro approach: render a composite of the base image and
the draw layer, upload it via uploadSceneSnapshot, and pass it as
scene_image_media_token rather than putting editedImageToken in
image_media_tokens.
Possible problem in our Seedance 2.0 provider means we need a backup.
This is here in case we need it.
Muapi is inferior for several reasons:
- Videos contain watermarks
- Videos cost 2x as much
- Not as many aspect ratio controls
- Not as many duration controls
- No starting frame / ending frame
- No video references
- No audio references
It does seem fast, however.
Generous use of caching used for react elements. Made a pretty
significant difference too.
Minor refactor to move helper functions outside instead of within
component tree.
3D objects can now be drag-n-dropped from gallery onto 2D canvas, with
support for scale, rotation and FOV changes.
History is tracks so changes support undo/redo as well.