![](https://lemmy.world/pictrs/image/1a6bfb01-d7bb-4b30-a85b-ca12d89bedaa.jpeg)
![](https://lemmy.world/pictrs/image/fe882c27-7ec3-429e-a086-03d5a3efb517.png)
There is no native image upscaler in Perchance. You can download the image, then upscale it in other services.
Doing Perchance.org things…
Links
There is no native image upscaler in Perchance. You can download the image, then upscale it in other services.
Something like that too. Though, I don’t have any VPN enabled (on Microsoft Edge, Windows 10), I guess they are quite limiting the free tier API now i.e. there is a limit to consecutive requests.
@perchance@lemmy.world - 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 :)
Without padding, you can’t really see the background on the generation iframe
, but it applies nonetheless:
It’s because the message is split by the whitespaces, meaning ‘living room’ would be split to ‘living’ and ‘room’. You could remove the .split(...).map(...)
and just normalize the message with .toLowerCase()
i.e. message.content.toLowerCase()
then it should work for the ‘living room’.
Here’s a code that might be what you want:
const backgroundUrls = {
'beach': 'https://user-uploads.perchance.org/file/a4c99b37a4d466b9a3fac8c9864d92b7.webp',
'cottages': 'https://user-uploads.perchance.org/file/13a5f82ae06233afcd35df95c5ffe806.webp',
// Add more background keywords and URLs as needed
};
const avatarUrls = {
'ramon': 'https://user-uploads.perchance.org/file/c986b9d02086c6cf9833761199d2fc52.webp',
'kylie': 'https://user-uploads.perchance.org/file/a6ba77a96dfd17a50101eba227435c07.webp',
// Add more avatar keywords as needed
};
oc.thread.on("MessageAdded", function({message}) {
if (message.author == 'user') { // you can change which reply can trigger the code, currently it is the user triggering the code
let words = message.content.split(/[\s+']/gm).map(a => a.toLowerCase()) // just separates the text into words
let foundBG = Object.keys(backgroundUrls).find((a) => words.includes(a)); // finds the keyword that is found on the message
let foundAVATAR = Object.keys(avatarUrls).find((a) => words.includes(a));
if (foundBG) oc.thread.messages.at(-1).scene = { 'background': {'url': backgroundUrls[foundBG]} }; // if a background keyword is found, change the bg
if (foundAVATAR) oc.character.avatar.url = avatarUrls[foundAVATAR]; // if an avatar keyword is found, change the avatar
message.expectsReply = false; // this just tells the AI not to reply to the user's message (remove if you need the AI to reply)
}
});
Images are from my unfinished VN: a-trip-to-the-beach :)
Not sure if you knew, but you can navigate to the galleries via the menu when saving the image to the gallery, even if there isn’t a gallery element on the page. But yes, it could save some space on the server if we can disable the gallery.
I don’t think it was implemented. Only the data.inputs
on the onFinish
was added.
Ah, .sentenceCase
is used to only capitalize the 1st letter of the sentence. You might want to use .titleCase
to capitalize each word.
I didn’t intend the comment to mean that the ‘this issue should be ignored’ but just stating an observation on the generators that I’ve seen in Perchance (maybe I intended it unconsciously, so sorry), but I get what you mean that it is quite limiting not to be able to use the regular ways of accessing/manipulating the DOM.
🔥🔥