Hi~!
I’m getting familiar with Perchance and the text to image plugin, so I modified a script from the guides to test tags blending a bit more. I’m trying to visualize task blending, but when the prompt is not fixed (contains other lists that are being evaluated than the blended tags). In that case, I would like in each row to only change the blended tags, and to keep the same seed and evaluations of the other lists the same (e.g., here I want the same animal). But I didn’t manage to do that yet, as the animals are changing within the same row. I wonder if there is a way to partially evaluate the prompt a first time for each row and a second time for the blended tag.
Another way would be to do string formatting to handle the tag blending instead of using perchance lists (with a trick like this: blending_value = [blending_values.selectAll[counter]]
), but I didn’t see a part about that in the guides, and I’m not familiar with JavaScript at all.
Do you have some solutions for this?
Here’s the generator I started: https://perchance.org/7zk7cvxzzl
I coded it to blend 2 dimensions of tags within a matrix, I use only 1 dimension here, so it should not be relevant.
Notes: The idea behind this is to visualize the tag blending on a sample of the possible prompts rather than a fixed one. Here, there are 6 animals, so we could try them all on a bunch of seed, but in practice, it’s not doable, that’s why I’m doing the sampling in the first place.
Perchance is built on JS. Code blocks are
[JavaScript expressions]
. Functions just havefn() => JavaScript code
in them. Plus, you could just put a script tag in the HTML of the page and put JS direct in there if you wanted to. So yeah, you can do loops as usual. 👍This also means you can call something like the image generator with just a simple js object, normal strings, and so on. Which can make things a lot easier and encapsulated.
Personally, I’d write the image function as not changing values, and just creating the needed HTML and returning that. But you can do things however you want to.
I’m not sure I fully understood, but I got the jist ;p
To generate a random value from a list, access it with
.selectOne
to get a random item, or.evaluateItem
to get a finalised string value. And store that in a variable. So likerow_animal = animals.evaluateItem
. Then use that in the prompt you send to the image generator function. If you want that to change between rows, after a row ends just run that code again to grab a new random item.Thank you, I didn’t understand everything in the last part, but I’ll rewrite that stuff with proper JavaScript then, it shouldn’t be that hard!