233 Followers
0 Following
0 Posts

[dev] New text model is still quite bad sorry - working on it

https://lemmy.world/post/37779986

[dev] New text model is still quite bad sorry - working on it - Lemmy.World

I didn’t expect it to take this long for me to get the new text model under control - especially the repetition and random fixations. 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 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 they’re dirt-cheap to run the servers for. 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 get them done.

[dev] New feature: Collaborate with others on your generator (realtime/live shared editing)

https://lemmy.world/post/24254881

[dev] New feature: Collaborate with others on your generator (realtime/live shared editing) - 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 the text cursors/carets of the other users. You can disable/invalidate the link, and regenerate a new one. Please let me know if there are any issues!

[dev] Why do we *still* not have better image generation?

https://lemmy.world/post/23831024

[dev] Why do we *still* not have better image generation? - 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 [https://huggingface.co/jimmycarter/LibreFLUX] 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 [https://huggingface.co/tencent/HunyuanVideo], which seems to be finetunable, and is quite fast with FastVideo [https://github.com/hao-ai-lab/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 [http://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).

[FAQ] Helping perchance as an experienced dev

https://lemmy.world/post/21553376

[FAQ] Helping perchance as an experienced dev - 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: Just have fun building stuff (plugins/generators/etc) that’s interesting/useful for you, and share your creations with friends or communities that might find it useful. That helps a lot! 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 [http://perchance.org/upload-plugin] and perchance.org/comments-plugin [http://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 [https://perchance.org/codemirror6-basic-html#edit] And I originally thought I’d use the same mixed parsing [https://codemirror.net/examples/mixed-language/] 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 [https://discuss.codemirror.net/t/template-style-language/5558] 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 [https://perchance.org/ai-roguelike] 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 who 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.

@[email protected] @[email protected] Heads up that I just got a support message from the email provider I use saying that it has been suspended for suspected spamming.

This happened several months ago, and I added stronger IP-based rate limits which apparently fixed it. Probably spammers or people doing a DDoS-type attack (spamming signup requests for emails in big public email lists) for whatever reason. I’ve added more guards, which will hopefully fix it, but it may be a few days before they allow sending signup emails again 🫠 So we may get a bunch of posts on Reddit and Lemmy about not being able to sign up - just letting y’all know

@VioneT - Lemmy.World

Doing Perchance.org [http://Perchance.org] things… Links - Perchance: vionet20-gens [https://perchance.org/vionet20-gens] - Mastodon: [email protected] [https://mastodon.social/@VioneT20] - Reddit: /u/VioneT20 [https://reddit.com/u/VioneT20]

[dev] Using `$meta`, you can now ~hide the header bar, and change its color/background, and add tags to your generator

https://lemmy.world/post/19200403

[dev] Using `$meta`, you can now ~hide the header bar, and change its color/background, and add tags to your generator - Lemmy.World

By “hide” I mean it shows a button in the top-right, which when clicked, shows the full header bar. #### Examples: * https://perchance.org/tags-and-header-meta-data-example [https://perchance.org/tags-and-header-meta-data-example] * https://perchance.org/header-background-image-example [https://perchance.org/header-background-image-example] Please let me know if you run into any issues or have feedback 🙏

[dev] signup issues should be fixed now - let me know if you still aren't getting verification email

https://lemmy.world/post/19182669

[dev] signup issues should be fixed now - let me know if you still aren't getting verification email - Lemmy.World

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

[plugin] favicon-plugin allows you to change the browser tab icon from the default perchance dice logo to a custom image (even live-updated/animated, or using outputs of text-to-image plugin, etc.)

https://lemmy.world/post/18803830

[plugin] favicon-plugin allows you to change the browser tab icon from the default perchance dice logo to a custom image (even live-updated/animated, or using outputs of text-to-image plugin, etc.) - Lemmy.World

See plugin page for details and examples: https://perchance.org/favicon-plugin [https://perchance.org/favicon-plugin]

@[email protected] @[email protected] I can’t recall exactly who had this problem (wanting to use comments plugin on plugin page, but not wanting to cause it as an import for users of your plugin). I’m sure a lot of people have had this issue, but pinging the two of you because I think you might have mentioned it before.
@VioneT - Lemmy.World

Doing Perchance.org [http://Perchance.org] things… Links - Perchance: vionet20-gens [https://perchance.org/vionet20-gens] - Mastodon: [email protected] [https://mastodon.social/@VioneT20] - Reddit: /u/VioneT20 [https://reddit.com/u/VioneT20]

The dynamic import plugin now recursively imports dependencies, so now it's just like a normal ('static') import. This unlocks a handy use case:

https://lemmy.world/post/18792280

The dynamic import plugin now recursively imports dependencies, so now it's just like a normal ('static') import. This unlocks a handy use case: - Lemmy.World

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 [https://perchance.org/import-only-in-html-panel-no-dependency-example#edit]