-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A fun tool for painting things #64
Conversation
Signed-off-by: Victor Seiji Hariki <[email protected]>
From yesterday night, just finished some final touches; should be enough for some cool things. Signed-off-by: Victor Seiji Hariki <[email protected]>
i could kiss you this is exactly what i was envisioning with my //todo sketch tools like cmon my perspective might be wrong but it took this and a simple prompt of "a cabin" and gave me this, it even tried to match the lighting and shadows literally divine and i haven't even looked at the code yet, i've just played with it and am in love, easily approved lmao |
lol the auto-color-brush mask definitely gets eaten by overmask, terribly sorry about that :badpokerface: |
upscaler select no longer escapes floating control panel boundary, simple "reset to defaults" button to clear localstorage if desired, maybe get prettier action to stop complaining about where i put the ref :|
Signed-off-by: Victor Seiji Hariki <[email protected]>
Signed-off-by: Victor Seiji Hariki <[email protected]>
Signed-off-by: Victor Seiji Hariki <[email protected]>
Signed-off-by: Victor Seiji Hariki <[email protected]>
These last two commits add just actions (rename/delete) to resources, and updates the connection status indicator a bit |
hah, my last commit was to just ensure that |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minus the unsolved mask brush being left behind if a color brush is "undone" instead of erased, this is all magnificent and too much fun
[edit] is there any way to unselect a style? might need a "none" option added back in
|
||
ovCtx.fill(); | ||
state.movecb = (evn) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
eventually everything in this app is going to be handled in a callback ;)
That was kind of deliberate, as we kinda stablished that the history does nothing to the mask with our previous features. There's also the thing about mixing history and non-history items in the mask layer, as that would be a big no-no. We could try implementing mask brush history as well, now that I know how to deal with undoable brushes (that required both dynamic layers and the command history).
That's a good point! I did not have much time to test those features, as you can see by my very professional and clear commit titles. It seems you have developed a fix! I'll give that a look as soon as I can. |
totally agreed re: "idempotency" of masks and really solid point about mixed mask layer history 😬 i just foresee a potential user (read as: me) undoing a sketch and getting the mask results unexpectedly down the line lol, but that sounds like a job for docs more than anything ;)
lmao have you seen some of the garbage i emit |
Signed-off-by: Victor Seiji Hariki <[email protected]>
Signed-off-by: Victor Seiji Hariki <[email protected]>
selectedString != "None" | ||
? localStorage.setItem("promptStyle", JSON.stringify(selectedString)) | ||
: localStorage.setItem("promptStyle", "[]"); | ||
localStorage.setItem("promptStyle", JSON.stringify(selectedString)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, my naming conventions were not really clear... selectedString is actually an array of strings. This comparison may have worked due to automagic JavaScript casting, but I wouldn't bet on the consistency of that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would you believe i never even considered that multiple styles were even applicable at the same time
like i know there's two style selects in A1111 that can be used simultaneously but i seriously didn't bring the concept over somehow
Now sliders can have a better precision when editing text than when dragging. Signed-off-by: Victor Seiji Hariki <[email protected]>
Signed-off-by: Victor Seiji Hariki <[email protected]>
This last one is quite interesting. I felt the mouse wheel was lonely on the dream() tools. So, I did something with it. Adds dream reticle size separated from Stable Diffusion resolution. That makes it possible to manually do what full resolution inpainting does, and makes us able to better add smaller details to a scene. Also makes it possible to replicate auto high res fix for txt to image functionality. Specific region inpainting: Peek.2022-12-03.10-14.mp4Big image generation, then local upscaling: Peek.2022-12-03.10-19.mp4But basically, this functionality gives us much more freedom to generate images and insert them into the world. Obs: Please don't mind that it always generates women. For some reason, the Beautiful # styles I have always end up doing women unless I specify. |
we should add a settings page to allow people to customize what they want to save and other things Signed-off-by: Victor Seiji Hariki <[email protected]>
Signed-off-by: Victor Seiji Hariki <[email protected]>
Signed-off-by: Victor Seiji Hariki <[email protected]>
decoupling the requested generation resolution from the resultant output resolution is super clever, my only complaint is that i'll have to rewrite some readme fundamentals lol
lmao are you implying i don't have gigabytes of models dedicated to summoning bespoke waifu from the latent void ;) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all systems go minus dream.js:432 and :434 :)
selectedString != "None" | ||
? localStorage.setItem("promptStyle", JSON.stringify(selectedString)) | ||
: localStorage.setItem("promptStyle", "[]"); | ||
localStorage.setItem("promptStyle", JSON.stringify(selectedString)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would you believe i never even considered that multiple styles were even applicable at the same time
like i know there's two style selects in A1111 that can be used simultaneously but i seriously didn't bring the concept over somehow
Signed-off-by: Victor Seiji Hariki <[email protected]>
Signed-off-by: Victor Seiji Hariki <[email protected]>
Will merge here then |
omg you even added error handling for failed dreams you are a hero |
A tool to use your master Microsoft Paint® artist skills to help you on your Stable Diffusion endeavors.
Not much to say about it, really. Other than, the color picker of browsers doesn't seem to pick colors correctly with the stacked canvas system we are using, so we'll have to make our own.
Basically, the mask brush tool but for the image layer. When painting, it also (optionally) paints the equivalent mask (though I did not check if that works well with the blur):
Peek.2022-12-01.18-41.mp4
Also works to give some better initial instructions
Peek.2022-12-01.18-58.mp4
Someone with a better drawing hand than I would probably do a much better job at this.