2D vector & raster editor that melds traditional layers & tools with a modern node-based, non-destructive, procedural workflow. https://graphite.rs
Find a file
Keavon Chambers fe1a03fac7 Integrate Stable Diffusion with the Imaginate layer (#784)
* 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>
2022-10-18 22:33:27 -07:00
.deploy Rename deployment script 2022-02-03 18:29:02 -08:00
.github Skip cargo-about in CI to save 5 minutes (#409) 2021-12-20 02:22:19 -08:00
.vscode Move bezier-rs into libraries folder and deploy its interactive docs 2022-08-14 16:17:27 -07:00
docs Improve the website and readme with details and cleanup 2022-09-16 01:29:33 -07:00
editor Integrate Stable Diffusion with the Imaginate layer (#784) 2022-10-18 22:33:27 -07:00
frontend Integrate Stable Diffusion with the Imaginate layer (#784) 2022-10-18 22:33:27 -07:00
graphene Integrate Stable Diffusion with the Imaginate layer (#784) 2022-10-18 22:33:27 -07:00
libraries Rework DynAnyNode design to work with the borrow stack (#796) 2022-10-15 03:02:58 +02:00
node-graph Rework DynAnyNode design to work with the borrow stack (#796) 2022-10-15 03:02:58 +02:00
proc-macros Additional cleanup of prelude imports in editor codebase 2022-08-05 17:09:37 -07:00
website Add building instructions to the website contribute page 2022-10-14 10:09:37 -07:00
.editorconfig Move .editorconfig to root for GitHub tab rendering 2021-03-24 14:02:26 -07:00
.gitattributes Add npm start script alias for npm run serve 2022-01-12 06:14:32 -08:00
.gitignore Add frontend file structure docs and some related cleanup 2022-05-23 19:13:51 -07:00
.gitmodules Add dyn-any as a submodule 2022-08-02 11:52:08 +02:00
.nvmrc Switch to Node.js 16 LTS, upgrade TypeScript, ESLint, and other dependencies (#395) 2021-11-29 03:32:09 -08:00
about.hbs Do not silently install cargo-about. (#377) 2021-09-19 16:58:04 +02:00
about.toml Fix licenses (#765) 2022-08-27 21:49:19 +01:00
Cargo.lock Implement the initial Document Nodes system (#795) 2022-10-15 02:02:50 +02:00
Cargo.toml Some initial testing on dynamic nodes and composition 2022-09-28 18:47:34 +01:00
deny.toml Fix cargo-deny 2022-08-20 20:59:43 +01:00
LICENSE.txt Add Apache 2 license 2020-07-12 13:58:50 -07:00
package.json Add npm start script alias for npm run serve 2022-01-12 06:14:32 -08:00
README.md Improve the website and readme with details and cleanup 2022-09-16 01:29:33 -07:00
rustfmt.toml Upgrade rustfmt to 2021 edition 2021-11-02 20:08:39 -07:00

Graphite logo

Redefining state-of-the-art graphics editing.

Graphite is an in-development raster and vector 2D graphics editor that is free and open source. It is designed to be powered by a node graph compositing engine that supercharges your layer stack, providing a completely non-destructive editing experience.

Right now, Graphite is a lightweight vector graphics editor available for alpha testing in your web browser. The node system is in the prototype stage and will be usable in later 2022, while raster graphics editing and a native desktop application will come next year.

Learn more on the project website.

Please star this GitHub repository to help build momentum.

Discord

If the Graphite project strikes your fancy, join our Discord community to chat with the community and development team. You're invited to stop by just to lurk, ask questions, offer suggestions, or get involved in the project. We are seeking collaborators to help design and develop the software and this is where we communicate.

Building/Contributing

We need Rust and web developers! See instructions here for setting up the project and getting started.

We are also in search of artists to create beautiful sample work in Graphite and illustrations for the website and social media. Please get in touch if you are able to help out.

Design

The #1 priority for the Graphite software is providing a delightful user experience. Unlike some other open source applications, the UI, UX, and product design is not an afterthought, but a central guiding light in the software development process.

Below are some mockups demonstrating future goals for the user interface once nodes and raster photo editing is possible.

Graphite raster UI viewport mockup

Viewport interface mockup showcasing a photo editing project that utilizes Graphite's raster graphics pipeline, one of the upcoming roadmap milestones. Raster editing is not yet supported.

Graphite raster UI node graph mockup

Node graph mockup demonstrating how the layers directly correspond to nodes. Thick vertical (upward) lines represent compositing stacks and horizontal (rightward) links represent data flow connections.

Features/Roadmap

See the web page for this information.