[-] perchance@lemmy.world 7 points 3 weeks ago* (last edited 3 weeks ago)

For any website on the internet (not specific to perchance):

  • If you're not using a VPN, then your IP is visible to any webpage you visit. From your IP, the author of the page can guess at your country/state/region (definitely not street address or anything close to that, to be clear).
  • If you are using a reputable VPN, and you've got their browser extension installed, then it shouldn't be possible for anyone to see your IP, regardless of whether WebRTC is being used on the page (via peerjs or any other multiplayer/peer-to-peer type frameworks). For example, I know that the NordVPN browser extension enables WebRTC leak protection by default.
  • A side note just to clarify: peerjs is not a malicious script - it's used all over the internet for multiplayer games, video conferencing, and that type of thing.

TL;DR: If you want to hide your IP, you need to use a reputable VPN like NordVPN, and make sure you've got their browser extension installed. This applies to any website on the internet, not just perchance, to be clear.

[-] perchance@lemmy.world 6 points 2 months ago* (last edited 2 months ago)

If you change this:

<div id="popup1" class="overlay">

to this:

<div id="popup1" class="overlay" style=" z-index: 999;">

That should fix the popup/overlay issue.

And for the images not loading I think that's due to this: [mol=moles.consumableList, moles_select] since moles_select is a bunch of URLs on a single line which I don't think the image-layer-combiner-plugin supports. If you want a random number of moles then one way would be to ask an AI "Please make a javascript function called convertArrayOfImagesToSingleImage which takes an array of URLs and overlay them on a canvas so they turn them into a single layered PNG and return a PNG data URL" and then you'd use it like this or similar:

[mol=moles.consumableList, convertArrayOfImagesToSingleImage(moles_select.evaluateItem.split(" "))]

Edit: Actually tell the AI to implement convertArrayOfImagesToSingleImage by embedding the PNGs inside an SVG and return the data URL for the SVG. That way you don't have to deal with async stuff. Something like this might work:

function convertArrayOfImagesToSingleImage(pngUrls, width=1024, height=1024) {
  const images = pngUrls.map(url => `<image href="${url}" width="${width}" height="${height}" />`).join("\n  ");
  const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}">${images}</svg>`;
  return "data:image/svg+xml;charset=utf-8," + encodeURIComponent(svg);
}
[-] perchance@lemmy.world 5 points 2 months ago

This sounds like a false positive in the upload plugin sorry - it should not block NSFW - only illegal/virus/etc. If you're able to share via DM then I should be able to tweak the filter to fix it. You could also try randomly chopping out various parts of it to see if it'll upload without those parts, and then if you could let me know the specific words/phrases that are triggering it, that would be great.

[-] perchance@lemmy.world 7 points 2 months ago

Sorry about that - fixed. It was a false positive in the moderation system, and I've tweaked things to reduce the chance of this type of issue coming up again. Also thanks for the tip on the unban bug in the other thread - that should be fixed now (let me know if not ofc).

And thanks for the prompt length cutoff issue in reproduction in the other thread. That should be fixed tomorrow. Hopefully prompt weights too. But probably not negative prompts - I'm still trying to fix that. The "CFG burn" issues and related tendency to push stuff towards cartoon/anime won't be solved immediately either, but I am working on it.

36
submitted 5 months ago* (last edited 5 months ago) by perchance@lemmy.world to c/perchance@lemmy.world

I didn't expect it to take this long for me to get the new text model under control. It's much more intelligent in general, but the repetition and random fixations can get surprisingly bad.

Sorry about that. This is just a heads up that I'm still working on it, and it'll likely remain a bumpy ride for the next couple of months.

Thanks to those who have complained here and on reddit, especially the posts that give concrete examples of issues, and attempted workarounds, etc.

Please do keep posting any issues/discoveries, ideally with share links to give me specific examples that I can test.


Other news:

  • I'm still working on the next image gen update, and am hoping it will improve fine details, text rendering, and overall image quality. It should also be about 2x faster. If all goes well (which, from experience, it won't) I should be able to get that done in the next month or so.

  • For a long time I've been very close to shipping a multiplayer plugin and database plugin. I've actually made multiple 'ready to ship' draft plugins of both, but have been disatisfied with the design and ended up not publishing each time. Using these plugins won't trigger ads on the generator, so I need to be really careful about the overall architecture to ensure the the servers for them are dirt-cheap to run. I also want to make them fun/simple to use of course. Once I get text and images stable, I'm going to focus on these two plugins and finally get them done.

[-] perchance@lemmy.world 6 points 7 months ago

Thanks! Still a lot of work to do, but I'm getting there

[-] perchance@lemmy.world 8 points 10 months ago* (last edited 10 months ago)

Perchance does have IP-based abuse detection/mitigation in place for some aspects of the site, but it's not as easy as you might think, because some IPs are shared by hundreds of people (e.g. some university campuses), and others may even be shared by thousands of people (e.g. browser VPNs).

The proper solution here is to just make the moderation system bullet proof, so it's not possible to generate illegal content in the first place. I've temporarily paused work on text gen upgrade for a few days, and have been working on this today actually.

There's no simple fix, so all the issues won't go away over night, but it will iteratively improve over the next few weeks/months as I make improvements, catch edge cases, etc. Same with trolls on the comments plugin.

Note: If perchance were a big company with lots of revenue then this would be easy. There is no company, no subscription revenue, no plural developers - it's just one person running this whole site. So please keep that in mind when comparing perchance to other websites/companies who might be able to fix issues faster by throwing a few spare devs at it, or spend more money on a smarter AI model for the moderation system, etc. I will fix all this - it'll just take me a bit longer than it would for a company.

[-] perchance@lemmy.world 7 points 10 months ago

I'm assuming that you're talking about this as a non-generator-author. If you are an author you can ban people (see comments plugin page).

If you are not the author of the generator, it should ideally only take a few people in the chat to report them and they'll be banned (for an amount of time that depends on severity, 'recidivism', etc.).

That said, improving the comments plugin moderation system is pretty high on my todo list. Probably not in the next few weeks, but ideally within the next couple of months. I think it can be significantly improved by rewriting some of the core detection logic and upgrading the AI model that it uses.

[-] perchance@lemmy.world 6 points 10 months ago* (last edited 10 months ago)

It was an age-detection regex bug (oney in money, if you're curious - and I guess fishnet or something triggered nsfw). Should be fixed now - thank you. As mentioned to others in my DMs, fixing the filtering is very high on my todo list. The new model seems to be able to reliably produce images which bypass the old filtering system. I'll hopefully start on it today or tomorrow, but it will likely take several days to complete, and may require iterative tweaking over the next few weeks/months to reduce false positives/negatives.

To be very clear: Political stuff has always been and will always be allowed on perchance. If you notice any other issues like this, please report and I'll fix. But hopefully the filtering system overhaul will fix a lot of the current issues, and require less hacky/bug-prone stuff like regex-based detection. Current system is a pretty messy "defense-in-depth" type approach.

[-] perchance@lemmy.world 8 points 1 year ago* (last edited 1 year ago)

Yeah imo images have been pretty bad and out of date for like 1.5+ years now :') Everyone please leave perchance - it's embarrassing for me at this point.

Still working on getting the new model cheap enough to be free+unlimited, which I already knew would be the hard part, but it's still harder than I expected. The model is 10x larger, so need literally an order of magnitude of optimizations. If everything goes right (which it won't), the upgrade is a few weeks away(tm). Then text model upgrade.

Also, apologies @RudBo@lemmy.world and anyone else who had/has their gen incorrectly marked with "Content Warning" / age verification checkbox. Still lots of false positives due to ai based detection and bugs. For now, you might be able to move lists/things that are triggering false positives to another generator and import them. This stuff is needed due to ad network requirements. Mo website traffic, mo problems.

[-] perchance@lemmy.world 7 points 1 year ago* (last edited 1 year ago)

The current text generation model is quite bad in a lot of different ways that are unfortunately hard to fix. If you're talking about perchance.org/ai-character-chat then you could use custom code to do a replacement - you'd paste this in the custom code box in the character editor (click "show more" and scroll down):

oc.thread.on("MessageAdded", function({message}) {
  message.content = message.content.replaceAll("Katrice", "Katherine");
});

Alternatively, you could grit your teeth and bear it for another few months until I upgrade the text gen model - the new model will be a lot smarter and have fewer weird idiosyncrasies like this. Currently I'm finalizing the big image generation model upgrade, and working on a multiplayer plugin, and then next on the list is the text gen upgrade. Ideally I'll finish upgrading the text gen model some time during April.

[-] perchance@lemmy.world 6 points 1 year ago* (last edited 1 year ago)

The /generators page criticism is fair. I'd like to add some sorting/filtering options.

I'm not convinced by:

But now that the AI has been added as an actual part of the generator creation process [...] The fact that Perchance is forcing all this AI on us

You can turn off all the AI features (bug checker, autocomplete, ai helper). If you can't disable them, then that's a bug. If the ability to disable is not enough, and you instead want me to permanently prevent everyone else from using the AI editing features, then no, I'm not going to do that. I don't think this is a good suggestion.

An aside, to be clear: I don't care about the aesthetics or tribal noise-making around use of AI tools. I do care about making a platform that makes it easier for newbies to start creating fun/interesting/useful things (even if they're basic/slop/boring to more experience devs). So if your problem is the use of AI itself in creating generators, then you should expect things to get worse from here on out, so it might save you some pain to just bite the bullet and make it a "goodbye forever".[1] If your concern is the quality of generators on the /generators page, or the quality of the AI helper/autocomplete outputs, then these are both temporary issues.

[1] I have on my todo list a guide for 'migrating off perchance', but it's not exactly near the top. @VioneT@lemmy.world is probably already busy enough, but pinging in case they can or have already written a guide on this, or somewhat related (e.g. perhaps glitch.com intro). There are also some alternative random generator sites to look into listed on the /welcome page. If anyone knows of a new/unlisted one, I'm happy to add a link there.

[-] perchance@lemmy.world 7 points 1 year ago* (last edited 1 year ago)

Fair, sorry. I've taken it down. You mentioned in a comment in this thread that you'd be okay with me keeping it there if I added credit, which is nice of you. I think your profile (and your original nsfw version of this character) is probably too nsfw to link to unfortunately. A lot of the character cards and character card sites seem to be very heavy on the nsfw content.

I should probably create all the example characters from scratch with some help from Claude or R1. Some of them have already been almost completely rewritten and have different pics, but even then the original creator still deserves credit for the core idea.

(That said, I'll probably attempt to selfishly put off a re-write of the examples for now because at some point in the hopefully-very-near future I'll finish creating the "database plugin", and at that point the work to redo the examples would be wasted because the examples will be removed in favor of a community-contributed database of characters, implemented using that plugin.)

12
submitted 1 year ago* (last edited 1 year ago) by perchance@lemmy.world to c/perchance@lemmy.world

You can now click the gear icon in the text editor and create a "collab link" for your generator. If you share that link with others, they'll be able to edit/save the generator, and you'll be able to see each others text cursors/carets.

You can disable/invalidate the link, and regenerate a new one.

Please let me know if there are any issues! I may be able to improve the performance/latency of it after some more work on the server.

12
submitted 1 year ago* (last edited 1 year ago) by perchance@lemmy.world to c/perchance@lemmy.world

Several months ago I said new image generation quality would be coming soon. Then flux came out and I was like "oh cool, i'll just wait a month or so for community finetunes", and once again informed people that an image gen upgrade was not far off. But it turns out flux is really hard to finetune in its current form.

Aside: There have been attempts to fix this issue, but we're not quite there. I've been helping some people who are working on this (mainly dataset stuff, I'm no ML researcher), and progress is being made, but we're still at least a month away from 'serious' flux finetunes.

So base flux still doesn't know 'basic' stuff (e.g. doesn't even know most pokemon), and illustrious (another new model) requires a very specific prompting format.

While helping with the eventual open source flux finetune, I have also been attempting to put together a system that would intelligently route to the best model based on prompt content, and also generate tags for illustrious based on a natural language prompt, but it's still not good enough.

So Perchance images are atrociously bad at this point, and I considered just upgrading to SDXL, but this would likely mean two upgrades in a short period of time, both of which would require prompt engineering adjustments on the part of perchance generator devs. That would be annoying, and maybe more painful than just dealing with bad generation quality for another month or two.

In hindsight, I should have just upgraded to SDXL midway through 2024 (or even earlier). We may actually get another text gen upgrade before the image gen one at this rate. We're also getting close on video gen now with models like HunyuanVideo, which seems to be finetunable, and is quite fast with FastVideo.

Tangentially, I've been spending a lot of time on behind the scenes server stuff recently. For example, I've had to add filters to prevent people from uploading literal CSAM to perchance.org/upload - a problem that I naively did not consider when first creating the upload feature. This sort of work is annoying because it doesn't result in fun new features or plugins, but spending time on automating this sort of thing is important, because it ensures that e.g. using features like /upload doesn't require logging in, and doesn't e.g. require employing people for moderation. I'd much rather move a bit slower, and ensure perchance's sustainability and complete independence.

And tangential to that: One thing that I want to publicly promise, just so I can say "I told you so" in 20 years, is that Perchance will never "sell out" or "rug pull" in any sense of either phrase. It'll always be a bit weird. It'll never get investors, I'll never sell it, never require login, never send you emails (except e.g. password reset), never put ads on generators (unless it imports an AI/server-GPU-powered plugin), never add user-hostile social mechanics that try to increase 'engagement metrics', and so on. The OG devs here know this I hope, but there are newbies and non-devs here who think perchance is just another "AI site" that is burning investor money to keep it free, in preparation for a rugpull once they have market share. Perchance is a different kind of website. It's a public good that I maintain, not a "startup". The price you pay for this as someone who uses perchance is slower development, which I think is worth it, especially considering that it's always been like this, and people seem to like perchance (though I'm sure many wish I could fix/improve things faster).

So anyway, this was (supposed to be) just a quick post about what's been happening recently on the dev side of things. Apologies for the huge delay on the image gen side of things. Also sorry for the lack of response to a lot of posts and messages - I have a large backlog of stuff to get to (as usual, please feel free to ping me again and/or repost weekly).

4
submitted 1 year ago* (last edited 1 year ago) by perchance@lemmy.world to c/perchance@lemmy.world

I've received a few messages from experienced developers asking how they might be able to help improve Perchance. I typed out a decently long (but somewhat rambling and incomplete) response to a message just now and figured I might as well post it publicly for the benefit of others who are interested.

The TL;DR is probably: The most impactful thing that devs can do for the perchance community is to just have fun building things (generators/plugins/etc) that are interesting/useful to you, and then share your creations with friends or communities that might enjoy them. This is very helpful!

Message response below:


The Perchance site itself is really just a code editor with a sandboxed iframe (that the code is thrown into), and a mongodb server for accounts/generators, so not a lot of my dev time goes into that level of the platform. And the DSL/engine doesn't change much at this point (though an overhaul will likely come at some point), so most of my time is spent on creating plugins, examples/applications, and stuff like that.

I could add a bunch more features to the site, but I prefer to keep the foundation very simple, which is why I create plugins like perchance.org/upload-plugin and perchance.org/comments-plugin and so on. I.e. instead of adding comments as a "native" feature, I just add it as a plugin, which allows me to be more nimble and experimental.

There are limits to this, of course. One native feature that is sorely needed imo is collaborative editing - akin to Google Docs, so you can just share a link to start working on stuff with others. Another is optional AI-assisted code auto-completion. For both of those I need to upgrade to CodeMirror 6, but the Lezer stuff is kinda gnarly. If someone managed to get the Perchance DSL highlighted with CodeMirror 6 that would be very handy, but this is definitely not a "good first issue". I did spend one day on it, thinking that's all it'd take, but I now realize that it's something which I'll need to set aside several days for, and I've been putting it off.

Here's the basic setup for CodeMirror 6: https://perchance.org/codemirror6-basic-html#edit

And I originally thought I'd use the same mixed parsing approach that @codemirror/lang-html uses, except instead of the HTML script tags triggering the transition from non-JS text to JS-highlighted text, it'd be square brackets (and function headers), but I think the problem with that is that the HTML parser has the advantage that the closing script tag in HTML code always means "end of JS" (even if it's e.g. in the middle of a JS string! this can be somewhat surprising to many web devs), whereas closing square brackets can 'validly' occur in JS code without necessarily indicating the end of a square block. Someone here seems to have come to the conclusion that Lezer might not be a good fit for this sort of thing, and so a stream parser might be the way to go, but I'm not so sure, because IIUC, @codemirror/lang-javascript manages to do it with template strings. I.e. ${ to indicate start of JS, and } to indicate end. That's almost identical to what is needed for the Perchance DSL, so it seems like Lezer can do this. But maybe @codemirror/lang-javascript is doing some non-Lezer stuff, since IIRC there are some proprocessing/tokenization things you can do before it gets passed to Lezer. Either way, using the official JavaScript (or html/markdown/etc - which includes it as a sub-module) parser, with some minimal modifications, is probably the way to go, since I don't want to have to maintain a from-scratch lib of that level of complexity.

So that's one thing that comes to mind right now, but that said, probably the most helpful thing that community members can to do to help Perchance is to create generators/plugins/games/etc. An interesting one that I noticed a few days ago, as an example: https://perchance.org/ai-roguelike and another: https://perchance.org/infinitecraft-but-its-a-trading-card-game

The advantage of helping in this way is: 1) it's fun and you can just build stuff that's interesting to you, and 2) it doesn't require any coordination with me or anyone else. The latter point is pretty important because I'm a pretty solitary/hermit type of person, so it may be hard to get in contact with me for several weeks at a time.

I've spent quite a bit of time recently building generators to try and provide examples of games/experiences/tools that can be created with the AI plugins. The more people there are doing this, the more I can move down to the lower levels of Perchance. My bottleneck is currently at the higher "application" level, rather than the platform level, if that makes sense.

1
submitted 2 years ago* (last edited 2 years ago) by perchance@lemmy.world to c/perchance@lemmy.world

By "hide" I mean it shows a button in the top-right, which when clicked, shows the full header bar.

Examples:

Please let me know if you run into any issues or have feedback ๐Ÿ™

Edit: Also, for people who know some JavaScript, you can use the public generator list API to get generators with specific tags like this:

let data = await fetch(`https://perchance.org/api/getGeneratorList?tags=foo`).then(r => r.json()); // returns generators tagged 'foo'
let data = await fetch(`https://perchance.org/api/getGeneratorList?tags=foo%2Cbar`).then(r => r.json()); // foo AND bar
1
submitted 2 years ago* (last edited 2 years ago) by perchance@lemmy.world to c/perchance@lemmy.world

See plugin page for details and examples:

https://perchance.org/favicon-plugin

0
submitted 2 years ago* (last edited 2 years ago) by perchance@lemmy.world to c/perchance@lemmy.world

As usual, the Chrome team is leading the charge on some exciting new web platform tech. The goal is to release some prototypes and eventually write up the feature as a browser standard that would make its way into all browsers (i.e. not just Chrome).

The point is, it'd run completely on-device (no cloud access, works offline), so it'd be a very small model, but would likely still be smart enough for a lot of tasks - e.g. summarizing text, converting a list of words into a grammatically correct sentence/description, guessing an appropriate emotion based on some character dialogue, etc.

Article: https://developer.chrome.com/docs/ai/built-in

The key problem with these text generation models is how massive they are. They're so big that they could literally fill your entire device (for smart phones and cheap laptops, at least), and would bloat the initial browser download time from a few minutes to a few days for a lot of people.

Still, smaller models are getting surprisingly smart, and while they're still several times the size of the actual browser download itself, this download can be done in the background.

Either way, I'm excited about this new direction, because there are lots of tasks that don't require an extremely smart model, and so it's overkill to use /ai-text-plugin, especially since it means ads will be shown for non-logged-in users.

One problem that I do anticipate, is that the models will be extremely "safety-oriented", meaning refusal to even generate stuff like violence in a DnD fantasy adventure, and stuff like that. I know from experience that Google's Gemini models have false-positive-refusal rates that almost make them unusable even for many sfw tasks. There is a mention of LoRA fine-tuning in the article, which is very exciting and might help with that. If you're a web dev, you can use the links on the page to test their prototypes and give constructive+professional feedback on them. It'd be good for the health of the web platform to have some of the feedback be for use-cases like Perchance, and not just e.g. business applications.

Tangentially, builders here may also be interested in Transformers.js which allows you to run AI models in your browser. Ad-free AI plugins could already be created using this project, although for a lot of models the download times are a bit too long, and processing times also a bit too long (for mobile devices especially). Still, the situation is improving quite rapidly. /ai-character-chat already uses Transformers.js for text embedding.

1
submitted 2 years ago* (last edited 2 years ago) by perchance@lemmy.world to c/perchance@lemmy.world

For example, if you've made a world building religion generator, and you title it "The Arch Bible" or something like that (i.e. something that's more of a "brand" than a "description"), then people won't be able to use a web search engine to find it unless they already know its name. In other words, people don't search for "The Arch Bible" when they want to find a religion generator - they of course search something like "fantasy religion generator" or whatever - so make sure you put keywords like that in your $meta.title/$meta.description if you want to make it easy for others to find it.

Search engines heavily weight the page title in their search, so it definitely pays to have a $meta.title which appropriately summarizes what your generator does in a few words. It's fine to have something like "Fantasy Religion Generator - The Arch Bible" as your title - i.e. a description, plus a "brand". Just don't leave out the key descriptive terms.

I'm writing this post because I don't think people realize how the "popular" generators on Perchance actually tend to get popular - it's one of two things:

  1. (rare & temporary) The generator happened to go viral on social media somehow.
  2. (common & long-term) The generator's title and/or description was descriptive, and so random people around the world each day hit their page via a Google search, which can add up to thousands of visitors in just a few months if it's a popular "topic" that people search for.

Popular generators almost always get popular via #2, and #2 often eventually leads to #1 - i.e. people find it via a search engine, and then share it with their friends on social media, and then at some point (for whatever reason) it goes viral. I think people tend to incorrectly assume that #1 is the main factor in a generator's popularity (it can be, but it's rare).

TL;DR: Use appropriate descriptive terms in your title and description if you'd like your generator to become well known. Think about the sorts of keywords that people would type into a search engine to find your generator.

1
submitted 2 years ago* (last edited 2 years ago) by perchance@lemmy.world to c/perchance@lemmy.world

Note that the 'auto' checkbox doesn't actually clear variables - it just fully re-executes all the square/curly blocks in the HTML. So if you're doing stuff where your code needs variables to be "cleared"/fresh before the first generation, then you'll have noticed that you actually need to click the 'reload' button (or refresh the whole browser tab) to get your generator back to a completely "fresh" state. But, as the annoying message would inform you, clicking the reload button required saving your generator first. That's not required any more. I should have fixed this about 6 years ago. Took about 15 mins ๐Ÿ˜

1
submitted 2 years ago* (last edited 2 years ago) by perchance@lemmy.world to c/perchance@lemmy.world

Currently notifications aren't supported on mobile, and also you won't get notifications if you don't have a perchance comments section open somewhere on your computer. It doesn't matter which comments section you have open (i.e. it can be on any generator/page, regardless of which particular comments boxes that you've subscribed to), but it needs to be visible somewhere.

Also, some browsers will "hibernate" a tab that is backgrounded/inactive which will pause the notification script, so it's best to pull the browser tab out into its own browser window so that the tab is deemed "active"/visible by your browser - that way it won't "hibernate" the tab.

So, with the above caveats, you now have a crude way to get notified if someone comments on your generators! Or when people are active at your favorite hang out spot, etc. The caveats are annoying, but it's the first step! Please give feedback if there are any issues - I may not be able to fix them, or at least may not be able to fix them right away, but it'll be helpful to hear about the most annoying issues so I can plan future improvements here.

0
submitted 2 years ago* (last edited 2 years ago) by perchance@lemmy.world to c/perchance@lemmy.world

Example generators made with this plugin:

See the plugin page for more. There will probably be issues/bugs! Thank you in advance to the pioneers who test this and report bugs/issues in these first few days/weeks ๐Ÿซก

(It was actually possible to discover this plugin a few days ago, but no one made it through all the clues lol ^^ some people did at least figure out the first step)

view more: next โ€บ

perchance

0 post score
0 comment score
joined 2 years ago
MODERATOR OF