* Create asynchronous rust imaginate node
* Make a first imaginate request via rust
* Implement parsing of imaginate API result image
* Stop refresh timer from affecting imaginate progress requests
* Add cargo-about clarification for rustls-webpki
* Delete imaginate.ts and all uses of its functions
* Add imaginate img2img feature
* Fix imaginate random seed button
* Fix imaginate ui inferring non-custom resolutions
* Fix the imaginate progress indicator
* Remove ImaginatePreferences from being compiled into node graph
* Regenerate imaginate only when hitting button
* Add ability to terminate imaginate requests
* Add imaginate server check feature
* Do not compile wasm_bindgen bindings in graphite_editor for tests
* Address some review suggestions
- move wasm futures dependency in editor to the future-executor crate
- guard wasm-bindgen in editor behind a `wasm` feature flag
- dont make seed number input a slider
- remove poll_server_check from process_message function beginning
- guard wasm related code behind `cfg(target_arch = "wasm32")` instead
of `cfg(test)`
- Call the imaginate idle states "Ready" and "Done" instead of "Nothing
to do"
- Call the imaginate uploading state "Uploading Image" instead of
"Uploading Input Image"
- Remove the EvalSyncNode
* Fix imaginate host name being restored between graphite instances
also change the progress status texts a bit.
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Generalize PenColorType -> ToolColorType
* impl default for ToolColorOptions
* Add stroke color option to the freehand tool
* Consolidate working color update messages
* Update tool working colours when switching tools
* Update working colors on tool activation
* Add stroke color option to line tool
* Add fill color option to freehand tool
* Add tool color options to spline tool
* Fix freehand tool
* Add color options to text
* Add tool color/weight options to rectangle
* Add tool color/weight options to ellipse
* Add tool color/weight options to shape
* Fix spline default fill/stroke
* Reorder widgets and code cleanup
* Add CustomColor icon
* Fix warnings
* Change color defaults to secondary fill, primary stroke
* Fix spacing between brush options number inputs
* Add toolbar color option to brush
* Implement allowNone on color input widget
* Rearrange widget and remove X from brush
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Implement download/copy ImageFrame layer output
* Add note about black transparency when copying
* Introspect node graph output type to conditionally disable the download button
---------
Co-authored-by: Dennis Kobert <dennis@kobert.dev>
* Add basic layout - WIP
* Add color input min-width -> 80px
* First pass implementation - WIP
* Allow fill to be None
* Fix null Fill color
* refactor fill and stroke options into struct
* toolbar progress - WIP
* Switch is_working_color bool to PenColorType enum
* Add todo
* Add WorkingColorChanged event
* remove unused import
* Add WorkingColor[Primary/Secondary] icons
* Allow new strokes to have no color
* Set to base color when X is pressed (as per req)
* Improve icons for new UI layout design
* Add radio buttons
* Fix menu bar Edit12px -> Edit
* Add tooltips to radio buttons
* Make the color selector only on custom
* Fix edit icon correctly this time (whoops)
* Fix working colors icons
* Changes to improve the UX
* Remove lines obviated by Default::default()
* Make Eyedropper tool use working_color_changed event
* Fix tests
---------
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Migrate webpack to parcel
* Always colour shell output
* Fix typos
* Fix updateImage function having undefined editorInstance
* Readd webpack for deployment builds (licence checker)
* Only use webpack for license generation
* Re add typscript support
* Fix cloudlare deploy
* Bump wasm-pack version
* Update ci script
* Print versions in ci script
* Use optional-dependencies for wasm-pack
* Execute wget after rust install
* Finding wasm-opt version
* Print wasm-opt version
* Revert test?
* Try to revert
* Deploy cloudflare via github actions
* Fix indentation in ci script
* Change project to graphite-dev
* Trigger ci
* Parcel ci (#1152)
* CI Test
* Add write permissions for pr
* Manually add cloudflare ci comment to prs
* Unskip cargo about
* Make compile on new versions of npm
* Add deployment script to rebuild editor.graphite.rs on tag creation
* Remove deploy script
* Comment out unused Svelte props causing warnings
* Many small fixes, including fixing @ imports
---------
Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Migrated the import shortcut used in Svelte from @ to @graphite for better future package compatibility
Co-authored-by: Andre Roelofs <andreroelofsai@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Update GPU and quantization to new node system
Squashed commit of the following:
commit 3b69bdafed79f0bb1279609537a8eeead3f06830
Author: Dennis Kobert <dennis@kobert.dev>
Date: Sun Mar 5 11:37:17 2023 +0100
Disable dev tools by default
commit dbbbedd68e48d1162442574ad8877c9922d40e4a
Merge: b1018eb5 a8f6e11e
Author: Dennis Kobert <dennis@kobert.dev>
Date: Sun Mar 5 10:45:00 2023 +0100
Merge branch 'vite' into tauri-restructure-lite
commit b1018eb5ee56c2d23f9d5a4f034608ec684bd746
Merge: 3195833e 0512cb24
Author: Dennis Kobert <dennis@kobert.dev>
Date: Fri Mar 3 17:06:21 2023 +0100
Merge branch 'master' into tauri-restructure-lite
commit 3195833e4088a4ed7984955c72617b27b7e39bfc
Author: Dennis Kobert <dennis@kobert.dev>
Date: Fri Mar 3 17:06:02 2023 +0100
Bump number of samples
commit 3e57e1e3280759cf4f75726635e31d2b8e9387f9
Author: Dennis Kobert <dennis@kobert.dev>
Date: Fri Mar 3 16:55:52 2023 +0100
Move part of quantization code to gcore
commit 10c15b0bc6ffb51e2bf2d94cd4eb0e24d761fb6f
Merge: 2b3db45a 8fe8896c
Author: Dennis Kobert <dennis@kobert.dev>
Date: Fri Mar 3 14:28:56 2023 +0100
Merge remote-tracking branch 'origin/master' into tauri-restructure-lite
commit 2b3db45aee44a20660f0b1204666bb81e5a7e4b6
Author: Dennis Kobert <dennis@kobert.dev>
Date: Fri Mar 3 14:17:11 2023 +0100
Fix types in node registry
commit 9122f35c0ba9a86255709680d744a48d3c7dcac4
Merge: 26eefc43 2cf4ee0f
Author: Dennis Kobert <dennis@kobert.dev>
Date: Fri Mar 3 01:04:55 2023 +0100
Merge remote-tracking branch 'origin/master' into tauri-restructure-lite
commit 26eefc437eaad873f8d38fdb1fae0a1e3ec189e4
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Mar 2 23:05:53 2023 +0100
Add Quantize node to document_node_types
commit 3f7606a91329200b2c025010d4a0cffee840a11c
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Mar 2 17:47:51 2023 +0100
Add quantization nodes to node registry
commit 22d8e477ef79eef5b57b1dc9805e41bbf81cae43
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Mar 2 17:13:28 2023 +0100
Introduce scopes (#1053)
* Implement let binding
* Add lambda inputs
* Fix tests
* Fix proto network formatting
* Generate a template Scoped network by default
* Add comment to explain the lambda parameter
* Move binding wrapping out of the template
* Fix errors cause by image frames
commit 9e0c29d92a164d4a4063e93480e1e289ef5243fe
Author: Alexandru Ică <alexandru@seyhanlee.com>
Date: Thu Mar 2 15:55:10 2023 +0200
Make use of ImageFrame in the node system more extensively (#1055) (#1062)
Make the node system use ImageFrame more extensively (#1055)
commit 5912ef9a1a807917eeb90c1f4835bd8a5de9c821
Author: Dennis Kobert <dennis@kobert.dev>
Date: Wed Mar 1 16:15:21 2023 +0100
Split quantization into multiple nodes
commit 285d7b76c176b3e2679ea24eecb38ef867a79f3b
Author: Dennis Kobert <dennis@kobert.dev>
Date: Mon Feb 27 12:35:57 2023 +0100
Fix gpu support
commit e0b6327eebba8caf7545c4fedc6670abc4c3652e
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Feb 16 22:08:53 2023 +0100
Don't watch frontend files when using tauri
commit 58ae146f6da935cfd37afbd25e1c331b615252da
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Feb 16 21:48:54 2023 +0100
Migrate vue code base to vite
commit f996390cc312618a60f98ccb9cd515f1bae5006d
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Feb 16 19:34:33 2023 +0100
Start migrating vue to use vite
commit 29d752f47cfd1c74ee51fac6f3d75557a378471c
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Feb 16 19:00:53 2023 +0100
Kill cargo watch process automatically
commit 4d1c76b07acadbf609dbab7d57d9a7769b81d4b5
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Feb 16 17:37:27 2023 +0100
Start playing around with vite infrastructure
commit 8494f5e9227aa433fd5ca75b268a6a96b2706b36
Author: Locria Cyber <74560659+locriacyber@users.noreply.github.com>
Date: Thu Jan 19 18:40:46 2023 +0000
Fix import style and eslint rules
commit 92490f7774a7351bb40091bcec78f79c28704768
Author: Locria Cyber <74560659+locriacyber@users.noreply.github.com>
Date: Thu Jan 19 18:25:09 2023 +0000
Fix icons
commit dc67821abad87f8ff780b12ae96668af2f7bb355
Author: Locria Cyber <74560659+locriacyber@users.noreply.github.com>
Date: Thu Jan 19 18:20:48 2023 +0000
Add license generator with rollup
commit 441e339d31b76dac4f91321d39a39900b5a79bc1
Author: Locria Cyber <74560659+locriacyber@users.noreply.github.com>
Date: Thu Jan 19 18:14:22 2023 +0000
Use eslint --fix to fix TS-in-svelte type imports. Now it compiles.
commit 2e847d339e7dcd51ed4c4677ed337c1e20636724
Author: Locria Cyber <74560659+locriacyber@users.noreply.github.com>
Date: Thu Jan 19 17:31:49 2023 +0000
Remove webpack and plugins
commit 3adab1b7f40ff17b91163e7ca47a403ef3c02fbc
Author: Dennis Kobert <dennis@kobert.dev>
Date: Thu Mar 2 16:10:19 2023 +0100
Fix errors cause by image frames
commit 4e5f838995e213b4696225a473b9c56c0084e7a8
Author: Alexandru Ică <alexandru@seyhanlee.com>
Date: Thu Mar 2 15:55:10 2023 +0200
Make use of ImageFrame in the node system more extensively (#1055) (#1062)
Make the node system use ImageFrame more extensively (#1055)
commit 1d4b0e29c693a53c068f1a30f0e857a9c1a59587
Author: Dennis Kobert <dennis@kobert.dev>
Date: Wed Mar 1 15:13:51 2023 +0100
Update node graph guide readme with new syntax (#1061)
commit 6735d8c61f5709e22d2b22abd037bab417e868d6
Author: Rob Nadal <Robnadal44@gmail.com>
Date: Tue Feb 28 18:59:06 2023 -0500
Bezier-rs: Add function to smoothly join bezier curves (#1037)
* Added bezier join
* Stylistic changes per review
commit cd1d7aa7fbcce39fbbf7762d131ee16ad9cb46dd
Author: Dennis Kobert <dennis@kobert.dev>
Date: Wed Feb 22 23:42:32 2023 +0100
Implement let binding
Add lambda inputs
Fix tests
Fix proto network formatting
Generate a template Scoped network by default
Add comment to explain the lambda parameter
Move binding wrapping out of the template
* Update package-lock.json
* Regenerate package-lock.json and fix lint errors
* Readd git keep dir
* Revert change to panic.ts
* Fix clippy warnings
* Apply code review
* Clean up node_registry
* Fix test / spriv -> spirv typos
* Use builder pattern for widgets
* Arguments to new function
* Add node graph when dragging in image
* Fix duplicate import
* Skip processing under node graph frame if unused
* Reduce node graph rerenders
* DUPLICATE ALL frontend changes into other frontend
* DUPLICATE more changes to another frontend
* Code review
* Allow importing SVG files as bitmaps
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Do not select layer immediatly on drag
* Add LayerReferenceInput MVP widget
* Properties Panel
* Fix dragging marker flicker
* Change mask shape to outline
* Add mask rendering
* Simplify select code
* Remove colours
* Fix inpaint/outpaint and rearrage widget UX
* Add mask blur and mask starting fill parameters
* Guard for the case when the layer is missing
* Add icon to LayerReferenceInput to finalize its UI
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Add gradient stops
* Better step adding
* Steps can be dragged past each other
* Swapping and switching gradient/fill
* Fix convert to gradient
* Skip non finite transforms for overlays
Co-authored-by: Keavon Chambers <keavon@keavon.com>
* Update the Imaginate feature server API
* Change connection status strategy to prevent console errors
* Possible CORS fix? Maybe revert.
* Update to the final API and fix bugs
* Organize persistence.ts
* Switch to simpler promise handling
* Switch document list storage from localStorage to IndexedDB
* Track document auto-save status to avoid re-auto-saving unnecessarily
* Add button to clear storage on crash
* Bump document version and test file
* Switch to IDB-Keyval instead of raw IDB transactions
* Add cancel hint to Eyedropper tool
* Improve eyedropper overlay CSS
* Make CSS for transparent checkered background reusable
* Add color choice preview to color picker
* Draw text and markers as contrasting white or black
* Add reactive color updating and new/initial swapping
* Add Hex, RGB, HSV, and Opacity inputs
* Add none color and preset buttons
* Add eyedropper button and fix alignment (now visually done)
* Wire up none colors through the backend and style the ColorInput widget
* Add color info chip to ColorInput widget
* Fix all UX bugs
* Add more tooltips
* Fix FloatingMenu recursive loop
* Prevent mouse stray from closing color picker while dragging pickers
Closes#703
* Fix deselect all layers shortcut
* Add temporary eyedropper for Chromium browsers and a coming soon fallback
* Move FloatingMenu template component
* Rewrite the ColorPicker component so it's not horrifically bad code
* Move FloatingMenu into the ColorPicker component
* Little Imaginate fixes
* Add todo
* Add AI Artist layer
* WIP add a button to download the rendered folder under an AI Artist layer
* Successfully download the correct image
* Break out image downloading JS into helper function
* Change file download from using data URLs to blob URLs
* WIP rasterize to blob
* Remove dimensions from AI Artist layer
* Successfully draw rasterized image on layer after calculation
* Working txt2img generation based on user prompt
* Add img2img and the main parameters
* Fix ability to rasterize multi-depth documents with blob URL images by switching them to base64
* Fix test
* Rasterize with artboard background color
* Allow aspect ratio stretch of AI Artist images
* Add automatic resolution choosing
* Add a terminate button, and make the lifecycle more robust
* Add negative prompt
* Add range bounds for parameter inputs
* Add seed
* Add tiling and restore faces
* Add server status check, server hostname customization, and resizing layer to fit AI Artist resolution
* Fix background color of infinite canvas rasterization
* Escape prompt text sent in the JSON
* Revoke blob URLs when cleared/replaced to reduce memory leak
* Fix welcome screen logo color
* Add PreferencesMessageHandler
* Add persistent storage of preferences
* Fix crash introduced in previous commit when moving mouse on page load
* Add tooltips to the AI Artist layer properties
* Integrate AI Artist tool into the raster section of the tool shelf
* Add a refresh button to the connection status
* Fix crash when generating and switching to a different document tab
* Add persistent image storage to AI Artist layers and fix duplication bugs
* Add a generate with random seed button
* Simplify and standardize message names
* Majorly improve robustness of networking code
* Fix race condition causing default server hostname to show disconnected when app loads with AI Artist layer selected (probably, not confirmed fixed)
* Clean up messages and function calls by changing arguments into structs
* Update API to more recent server commit
* Add support for picking the sampling method
* Add machinery for filtering selected layers with type
* Replace placeholder button icons
* Improve the random icon by tilting the dice
* Use selected_layers() instead of repeating that code
* Fix borrow error
* Change message flow in progress towards fixing #797
* Allow loading image on non-active document (fixes#797)
* Reduce code duplication with rasterization
* Add AI Artist tool and layer icons, and remove ugly node layer icon style
* Rename "AI Artist" codename to "Imaginate" feature name
Co-authored-by: otdavies <oliver@psyfer.io>
Co-authored-by: 0hypercube <0hypercube@gmail.com>
* IPP for Mac, flawed initial experiments
* Cleanup and progress, but not compiling yet
* Fix error and rename nonmac -> standard
* Extentd ipp macros to accomodate mac input
* Add Mac versions of shortcuts; refactor and document the input mapper macros
* Change frontend styling for user input labels in floating menus
* Additional macro documentation
* A little more documentation
* Improve entry macro syntax
* Move input mapper macros to a separate file
* Adapt the keyboard shortcuts to the user's OS
* Display keyboard shortcuts in the menu bar based on OS
* Change Input Mapper macro syntax from {} to ()
* Fix esc key bug in Vue
* Tweaks
* Interim solution for Mac-specific hints
* Feed tooltip input hotkeys from their actions
* Fix hotkeys for tools because of missing actions
* Make Vue respect Ctrl/Cmd differences per platform
* Remove commented lines
* Code review pass by me
* Code review suggestions with TrueDoctor
* Turn FutureKeyMapping struct into ActionKeys enum which is a bit cleaner
* Add serde derive attributes for message discriminants
* Re-add serde deserialize
* Fix not mutating ActionKeys conversion; remove custom serializer
* Add serde to dev dependencies
Co-authored-by: Dennis <dennis@kobert.dev>
* unfinished implementation
* Add frontend for the empty panel screen
* Add an icon for Folder based on NodeFolder
* fixed messages causing peicees of ui not to render on new document
* Standardize nextTick syntax
* WIP generisization of component subscriptions (not compiling yet)
* Fix crash when loading font and there is no active document
* Only advertise tool actions with a document
* Fix failure to create new document
* Initalise the properties panel
* Fix highlight tab, canvas jump, warns and layer tree
* Fix tests
* Possibly fix some things?
* Move WorkingColors layout definition to backend
* Standardize action macro formatting
* Provide typing for widgets in TS/Vue and associated cleanup
* Fix viewport positioning initialization
* Fix menu bar init at startup not document creation
* Fix no viewport bounds bug
* Change !=0 to >0
* Simplify the init system
Closes#656
Co-authored-by: Keavon Chambers <keavon@keavon.com>
Co-authored-by: 0hypercube <0hypercube@gmail.com>