Doing Perchance.org things…
Links
For example on the /minimal
generator we have the list:
listnames
animal
adjective
verb
location
then on the javascript:
let x = listnames; // you can also use listnames.selectOne, if you only want it to have a single item and you have to reload the page to randomize it again.
// This would get a 'random' value from the `listnames`.
alert((y = x.selectOne) + ':' + root[y]);
// would give a random item from any of the list
Thanks! Added to the prompt guide.
It should retrieve the list directly with:
// Perchance
PerchanceListA
a
b
c
---
// HTML
<script>
let x = PerchanceListA
// if you want a more 'understandable code'
// let x = root.PerchanceListA // since all Perchance lists are under the 'root' variable.
// also with this, you would overwrite the value of list 'x' if you have one.
</script>
[x]
A reference old post about it: https://lemmy.world/post/2560700
But maybe can be pushed up on the list since the little image emoji is also just a temp solution. @[email protected]
You can hover on the small 🖼️ on the description to show the $meta.image
, but yeah. On the remix of generators that I made, you can hover directly on the image to show the $meta.image
.
If I understand correctly, you have something like:
val
-1
0
1
entries
a
b
c
d
e
f
g
h
i
j
k
l
m
Then based on the val
, you would have to select: (a) if val = -1, only from a to k, (b) from b to l, © from c to m.
Here is my solution: https://perchance.org/8horj02y80
First, we select the val
, and then base the range from it. Since it is from 1-11, etc, we can have the base to be 2-12, then add (subtract) the modifier to have 1-11 for -1, 2-12 for 0, and 3-13 for +1, by having a min and max variables:
modOut
Modifier: [mod = val.selectOne] | Min: [min = 2 + mod] | Max: [max = 12 + mod]
Then, to create a ‘dynamic’ range, we use JavaScript’s Template Literals, to create a dynamic Perchance Shorthand List:
random = [`{${min}-${max}}`]
Essentially, the template literal would be evaluated first, so if we have min
as 3 and max
as 13, then it would be {3-13}
, and then Perchance would evaluate that into a random number between that range.
We can now then use that value to select the item from our list, in which we can do in many ways:
.selectAll[index-1]
since the arrays are accessed with zero-start indexing.entryOut
Selection: [x = random.evaluateItem] | Entry: [entries.selectAll[x-1].upperCase]
entries
a ^[x == 1]
b ^[x == 2]
c ^[x == 3]
d ^[x == 4]
e ^[x == 5]
f ^[x == 6]
g ^[x == 7]
h ^[x == 8]
i ^[x == 9]
j ^[x == 10]
k ^[x == 11]
l ^[x == 12]
m ^[x == 13]
where x
is selected before selecting the entry:
entryOut
Selection: [x = random.evaluateItem] | Entry: [entries.upperCase]
Possibly also $meta.tags
so we can specify some tags for the generators. @[email protected]
Looks alright on Firefox Mobile.
There is no native image upscaler in Perchance. You can download the image, then upscale it in other services.
@[email protected] - There’s seems to be a fetch POST
problem again as of now.
Hello, you can check the changes here: https://perchance.org/vgs5qtexr3
First, you don’t need to have multiple layers per color. You can just have one layer, on the generator its called base
, then under it, is the images per color, then you can use Perchance’s dynamic odds to select the correct image.
output
[x = base.evaluateItem] [imageLayerCombiner(data)] ^[clicked == "lion"] // selects the base, then uses it for the selections.
data
...
layers
...
base // base layer
filter = [baseFilters.evaluateItem]
https://i.imgur.com/B6nOqdc.png^[x == 'blank'] //blank
https://i.imgur.com/4sFFKFS.png^[x == 'brownpinkBase']
https://i.imgur.com/xxCVLzl.png^[x == 'redBase']
https://i.imgur.com/IstBWcB.png^[x == 'blueBase']
https://i.imgur.com/JIPN8jR.png^[x == 'lavendarBase']
https://i.imgur.com/ZFlZfFp.png^[x == 'gingerBase']
https://i.imgur.com/fpAEPbi.png^[x == 'goldBase']
...
base // a separate list to select the base.
blank
redBase
blueBase
brownpinkBase
lavendarBase
gingerBase
goldBase
baseFilters // List of filter per base, selected with the dynamic odds.
hue-rotate({0-40}deg) saturate({0-100}%) brightness({50-150}%)^[x == 'brownpinkBase']
hue-rotate({0-10}deg) saturate({50-120}%) brightness({50-150}%)^[x == 'redBase']
hue-rotate({0-35}deg) saturate({50-120}%) brightness({50-130}%)^[x == 'blueBase']
hue-rotate({0-50}deg) saturate({50-120}%) brightness({50-130}%)^[x == 'lavendarBase']
hue-rotate({0-20}deg) saturate({50-100}%) brightness({50-100}%)^[x == 'gingerBase']
hue-rotate({0-10}deg) saturate({50-120}%) brightness({50-110}%)^[x == 'goldBase']
Saw this while looking at the code:
...
// NOTE: triggering change/input events like this doesn't trigger addEventListener handlers - like those added via initHandlers, above, but
// for now this is a happy accident because it's not for modifiers to not show up until you've actually typed something - reduces UI
// complexity on first impression.
...
So, I think it is not intended to not show the modifiers on load, but it gives a good UI.
The modifiers only shows upon user input on the description after the reload.
I mean, do you use the ‘brain’ icon for an AI to rewrite the prompt? If so, you need to re-add the (saveTitle:::...) (saveDescription:::...)
after it
Are you using the ‘auto improve’? it might be removing the saveTitle
and saveDescription
What browser and device/operating system are you using? it works for me on Windows 10, Microsoft Edge
Edit: Also tested it on Chrome, Firefox, Opera GX and all works.
Try this simple prompt: A red ball (saveTitle:::Hello) (saveDescription:::This is a test description)
Can you link the generator that you are using? I was able to save the picture to the gallery with the specified title and description on the prompt (tested on ai-text-to-image-generator, ai-character-generator and text2image-generator).
Second this, so we can probably use ‘anime’ keywords in a ‘realistic’ model :)
@[email protected] pinging dev!
Also side note, there was a post on Reddit, requesting to ‘clear’ the message input after sending a ‘command’. Ex. you typed
/ai [your instruction]
, then after sending the message, the command is still on the input box. I think they want to ‘clear’ the input box even after using a command, maybe an option to clear after sending the command or have the input stay on the input box.Also, possibly any way to add custom shortcuts through the Custom Code? So that we could ‘bake in’ the shortcuts to the characters instead of on the threads. Just a thought.