perchance

joined 1 year ago
MODERATOR OF
[–] [email protected] 2 points 20 hours ago* (last edited 19 hours ago)

Nope, it's not malware or "shady" - it's a very widely used bot-prevention service by Cloudflare, a reputable company, and it's specifically designed to be privacy-preserving: https://blog.cloudflare.com/turnstile-private-captcha-alternative/

An example of the (scary sounding) "fingerprinting" you mention is checking whether the browser viewport is actually being rendered into pixels (as opposed to it being a "headless" machine with no actual rendering, which is a sign of a bot). These sorts of checks are harmless, and they make things like Perchance's AI plugins possible when they otherwise wouldn't be.

The modern internet is built upon bot and fraud prevention mechanisms. The economics of the internet wouldn't work at all without them. You're free to block scripts on your machine of course, but "begging website administrators to remove these scripts from their websites" is plainly naive, and wastes the time of said admins.

I'm not adding paid features to Perchance. It'll always be completely free. This means bot prevention checks are required for generators that import ad supported plugins (i.e. AI plugins). You have very specific requirements, so you should use a paid service instead of Perchance. (Though note, to get through the checkout of said paid service, Stripe will run a bot/fraud check against your browser and your IP, let alone getting your credit card number which is obviously tied directly to you. Maybe find one that accepts crypto - or even better, support open source by joining the local ML community: reddit.com/r/LocalLLaMA)

[–] [email protected] 2 points 1 day ago* (last edited 1 day ago)

It's definitely possible, since all the code for generators on Perchance is openly available and downloadable, but currently there's unfortunately no "one-click" way to do this right now - and it still would require a bit of coding knowledge at this point.

I think I wrote a comment related to this a few months back - basically you'd need to use something like ollama or llama.cpp or tabbyAPI or Aphrodite or vLLM or TGI (....etc) to run the AI text gen model (and for image gen, ComfyUI or Forge WebUI). Unfortunately even a top-of-the-line gaming GPU like a 4090 is not enough to run 70B text gen models fully in VRAM, so it may be slow. And then you'd need swap out some code in perchance.org/ai-text-plugin and perchance.org/text-to-image-plugin so that it references your localhost API instead of Perchance's server. You'd just fork the plugins, make the changes, then swap out the imports of the ai plugin for your new copies in the gens you want to self-host.

Someone in the community with some coding experience could do the work to make this easier for non-coders, and hopefully they share it in this forum if they do. I'll likely get around to implementing something eventually, but probably won't have time in the near future.

[–] [email protected] 2 points 2 days ago* (last edited 2 days ago) (1 children)

I've just updated the dynamic import plugin so it's a bit more helpful with the error message. Looks like you're passing undefined to dynamicImport.

The error messages in Perchance are, in general, atrociously unhelpful. I really need to overhaul it so bugs like this are easier for you to find. From some fiddling with Chrome DevTools, it looks like the first instance of this type of error is occurring on this line:

dynamicImport(document.i, 'preload');

i.e. document.i is undefined when that runs.

[–] [email protected] 1 points 2 days ago (2 children)

@[email protected] You also mentioned people asking for resources button on Discord. What are the most common reasons people used the resource button? E.g. upload, plugins, templates, ...? And is it frequency-of-access that makes the current situation annoying, or is it that newbies aren't able to find plugins/templates/etc. in the first place?

[–] [email protected] 2 points 2 days ago (4 children)

Thanks! I've adjusted the wording here - let me know if you have better wording ideas or any other feedback. Also, if you find extreme differences with the same seed (like, entirely different image composition/structure), I'd love to see examples of that, since there might be ways to reduce it.

[–] [email protected] 1 points 4 days ago

I just tested and it seems to be working for me. Could you DM me a link to a character that has this issue? You can remove all irrelevant details, of course - e.g. description, image, etc. - just make sure to test that it's still not working once you've trimmed out all those details. Note that the "character share link" feature doesn't share any chats - only the character itself.

[–] [email protected] 2 points 6 days ago* (last edited 6 days ago)

Hi, assuming you're talking about an image generator, please DM me the generator URL and/or the words/patterns they're using to get around the blocks that are in place for this. I'll adjust the regex replacements for the text to image plugin based on that

[–] [email protected] 1 points 6 days ago (1 children)

Thank you for reporting! Sorry about that - it's fixed now.

[–] [email protected] 1 points 1 week ago* (last edited 1 week ago) (1 children)

Thank you 🫡 I will eventually get around to all your great suggestions (and the feedback from other users here) once I've got a handle on this issue and a few other important things. As always, feel free to re-ping me in comments and/or repost your most important feature requests and bug reports (once every couple of weeks or so) so I can bump them up the priority list.

[–] [email protected] 4 points 1 week ago* (last edited 1 week ago) (3 children)

Yes, sorry about this. This is priority number 1 for me right now - I've been working for the last few days on fixing this. It has turned out to be harder to fix than I anticipated. Some sort of GPU memory error due to particular driver versions or something. That said, I should be able to fix it within the next day and a half (~36 hours from the time of this comment) unless something goes terribly wrong. I'm going to upgrade the whole stack, which should fix this issue, and also give a bit of a performance boost (slightly faster text generation) as a bonus.

[–] [email protected] 2 points 1 week ago* (last edited 1 week ago)

i have been informed that malware can be embedded within favicons

You have unfortunately been misinformed on this matter. From the perspective of web browsers, favicons are just images, and will never be executed as code. You might be thinking of web-application-specific exploits - e.g. related to vulnerable WordPress favicon plugins or something. This is not at all relevant to Perchance. Using this plugin is completely safe.

That said, I appreciate the concern!

[–] [email protected] 1 points 1 week ago (1 children)

Hmm I can't replicate this, but I did just try a quick adjustment based on a hunch, which might fix it. Can you check? If it doesn't work, can you let me know which browser + device you're using?

 

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,bar`).then(r => r.json()); // foo AND bar
 

I think I got to the root of what was causing this. If anyone is still having issues signing up, please comment here.

 

See plugin page for details and examples:

https://perchance.org/favicon-plugin

 

As was noted on the plugin page, this was on the roadmap, but not yet supported. I've added support now thanks to a prod from @wthit56 so you can treat it just like you would a normal 'static' import.

One nice use case that this properly/robustly unlocks is the situation where you e.g. have a plugin that you've made, and you want to import the comments plugin so people can chat about your plugin and ask questions, but you don't want to cause all importers of your plugin to automatically get the comments plugin as a dependency.

If you just dynamically import the plugin in your HTML panel, then importers of your plugin won't get the comments plugin as a dependency. Example:

https://perchance.org/import-only-in-html-panel-no-dependency-example#edit

(Reminder that, as mentioned on the dynamic import plugin page, you should only use the dynamic import plugin in very particular scenarios, like this one, or e.g. when you have hundreds of imports but only a subset of those imports tend to get used by any particular user of your generator. Regular imports will generally allow for much faster generator loading, since all the data is preloaded.)

 

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.

 

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.

view more: next ›