Closed altoiddealer closed 2 months ago
Guess I really should merge #14
Please give the draggable-regions branch a try
Implementation is not exactly the same as MultiDiffusion
for better or for worse
Please give the draggable-regions branch a try
Implementation is not exactly the same as
MultiDiffusion
~for better or for worse~
Unfortunately, it seems quite buggy, and I much prefer the current implementation in the main branch.
I suggest checking the document first, since well, all of what you said are already mentioned https://github.com/Haoming02/sd-forge-couple/tree/draggable-regions?tab=readme-ov-file#advanced-mapping
I suggest checking the document first, since well, all of what you said are already mentioned https://github.com/Haoming02/sd-forge-couple/tree/draggable-regions?tab=readme-ov-file#advanced-mapping
Read the Readme!? haha
Welp, you got me there. And Now that I understand the usage, it is very nice.
You should add those very important control details in the UI somewhere... otherwise, people like me who think this stuff is all self-explanatory will be scratching their heads
You should add those very important control details in the UI somewhere
Though yeah, I'll probably add like a triangle or something at the bottom right corner
If a UI has up and down arrows above a grid, I think most users will assume they mean "move row up/down" and not even bother looking at the tooltips. Instead, they'll wonder why there's no "add" button :p
Also, there's no reason for only allowing resize using the bottom right corner. Imagine if windows in an operating system worked that way - would be pretty annoying, no? MultiDiffusion (and my fork) let you drag any corner and any side.
@altoiddealer: I invite you to try my version of a draggable box UI as well. It should be understandable without reading a manual, and makes it easier to see which prompt belongs to which region (screenshot). In addition, it doesn't require you to cover the whole image with regions.
(I previously created a pull request to make this UI official, but Haoming02 sadly doesn't want to merge it. Maybe you can still convince him otherwise heh)
At least the main feature, the actual mapping, works now, while those can be added/changed in later versions. :P
Btw, the last time I tried it, both your fork and MultiDiffusion suffer from the same problem: When 2 masks are on top of each other, you can't really choose which one to move, right?
And ah yes, TypeScript, the language where you need thousands of lines across muiltiple files just to do something that, realistically, only requires few hundred lines in JavaScript... I'll learn TS someday, but that day is not today. (esp. when my main job isn't even web dev) Sorry.
I didn’t try that fork yet (been busy today) but I can see that it really simplifies the complexity of this. I think I phrased that appropriately...
Definitely pros and cons.
Full 8 Directional Resizing has been implemented~
Hints for the corresponding prompt has been implemented~
If you click a prompt textbox in my fork, the corresponding region will be brought to the front. If you click a partially overlapped region, it will be brought to the front. And if the corner/side you want to drag isn't overlapped, you can immediately start dragging without having to select anything.
What's more, if you click a region, it'll automatically put focus on the corresponding prompt textbox. No need to count rows and find the matching line in the main prompt.
Region prompts are stored in the infotext together with the positions/sizes. There's a small bug where you first have to switch to the Advanced tab and only then load the infotext into the UI - but other than that, you can restore all the information from both an image and from your last generation. The latter doesn't work in the current official version btw.
Typescript isn't hard, and the main reason my fork contains more code is that it does more. And sure, type annotations aren't needed for a small project like this, but they still save you both time and frustration.
Anyway, good to see improvements being made, even if it's just replicating what's already there.
EDIT sorry, just read your reply again and overlooked something you said. That all sounds very good!
I don't really want to chime in on the language topic because i'm not by any means a dev but just your casual tester :D I just tested the draggable-regions branch for a bit and it works well. (SDXL Lightning)
What i just found out is that you always need an extra generation for it to apply the last change in a regional prompt. So i think something is gone wrong. For example: i change the prompt from "jungle" to "desert" and it doesn't apply it in the next generation, only in the one afterwards.
If the problem is about their fork, please open an issue on their fork instead :) If the problem also happens here, do open a new issue~
Oh god i totally mixed them up, all those branches :] Sorry and thanks for your work
@MoreColors123 That's because the canvas only got updated with the new prompt when clicking outside the textbox. I made it update on every keypress instead, which fixes the problem.
Heya, I've been meaning to suggest this... and I was reminded by the fact that you actually just pushed a "Draw the regions" update.
The Multidiffusion extension for A1111 has a very sweet "draw your regions" feature in its Regional Prompt Control panel.
I'm just mentioning this in case you haven't seen it before... if you have not, I strongly recommend you check it out.