233 Followers
0 Following
4 Posts

Ah good point! Sorry for the delay here, I’ve just added the ability to write imageOptions as a function - so you should now be able to just replace your original imageOptions with something like this:

imageOptions() => gs = input.Gscale.evaluateItem; return { guidanceScale: gs, saveDescription: `Guidance Scale is ${gs}`, // ... etc. };
I’m not sure which generator you’re talking about here. I don’t think I’ve substantially changed the UI of any of my own generators recently. Note that anyone can create their own generator on Perchance, so you might have been using someone else’s. Can you share a link?
Hmm I wasn’t able to reproduce this. I made a character with just oc.window.show() in custom code and opened it on Android Chrome, and closed the window with the button, and I was still able to scroll down the chat feed. Can you share more details (and/or a character share link) so I can reproduce?
Fixed, thanks! I’ve just removed that old default regex filter list entirely since it’s literally one character to work around the blocked words, and I can’t defend against that without even more false positives like your example. We have the (much more intelligent) report system now, so it’s less needed I think. Generator devs can of course add their own custom regex filters, like before.

Yeah I agree it’s confusing for newbies. The choice to make the tags separate from the comments plugin is partly to avoid centralizing plugin stuff, and partly to reduce the chance of accidental deanonymization/identity-linking - same idea behind why people get a new/separate comments plugin tag for each generator they visit.

The reasons I added the tag btw were:

  • To make impersonation harder/less-disruptive in galleries that people use to chat.
  • The tag was, in effect, already “visible” to non-newbies - e.g. by using the block button and seeing which images disappear, or via browser’s “inspect element” debugging tool, or by activating moderation view (which anyone can do) and double-clicking on an image. So by not displaying the tag, the interface was giving users the false impression that each image post was completely/independently anonymous, which is bad.
  • It wouldn’t be too hard for me to add a way for the comments plugin to be used as ‘auth’ for other plugins, so that if you have a username on the comments plugin, you could use it to “prove” who you are to other plugins like the text to image plugin, which could then sign/tag the image with your username. That would be one way to keep the plugins composable rather than coupled/centralized, and would allow people to opt-in to deanonymization/identity-linking.

    Sorry for the delay on this, it’s a good question. I’m assuming you’re talking about using this plugin: perchance.org/t2i-framework-plugin-v2

    If so, I’ve just added a settings.beforeGenerate function to make this easy to do:

    settings beforeGenerate() => gs = input.Gscale.evaluateItem; imageOptions guidanceScale = [gs] saveDescription = Guidance Scale is [gs]

    That beforeGenerate function runs right after the user clicks the generate button, but before any images are actually generated, so you can use it to do any preprocessing work, like in this example where we create a variable with a specific guidanceScale value that’ll be used in multiple other places in your code during the later phases.

    I’ve added example usage at the bottom of the settings in this generator: perchance.org/ai-text-to-image-generator#edit

    Let me know if you notice any bugs or have any issues with it.

    T2i Framework Plugin V2

    This should do the trick:

    [tooltip("<img style=\"height:12px\" src=\"[buy.Cons.PowerCharge.img]\"/>", "example text")]

    There are a couple of gotchas here which are easy to trip on:

    • Since we’re writing code inside a square block, we don’t need to backlash before the equals signs.
    • Since we’re using quotes-within-quotes, we need to put backslashes before the inner quotes.

    For the second issue, you can actually use single quotes for the outer quotes instead, which means you don’t need to backslash the inner quotes:

    [tooltip('<img style="height:12px" src="[buy.Cons.PowerCharge.img]"/>', "example text")]

    Pro tip: This, btw, is just regular JavaScript stuff (the syntax/code inside square blocks is always just executed as JavaScript), rather than anything specific to the perchance engine itself, so you can ask an AI something like:

    why isn’t this javascript working? tooltip(<img style="height:12px" src="[buy.Cons.PowerCharge.img]"/>, example text)

    And it should give you an answer even if it doesn’t know anything about perchance (though it may be a bit confused by [buy.Cons.PowerCharge.img] because that’s perchance syntax, and it probably expects to see a plain https url there in place of that).

    Thanks for your detailed investigation here. I’m not sure, but I think editing “hidden from AI” / etc. is actually just triggering a re-render, which “shows” the issue, rather than actually causes it.

    One possibility is that you’re using some custom code in that character that (likely via oc.messageRenderingPipeline) purposefully/inadvertantly edits the prompt inside the <image>…</image> tag, which would cause a mismatch.

    I was thinking I could match it via a heuristic like just checking (imgN:0) if the initial __savedImages exact-prompt-match fails, but I think that would mean editing the message to change an image prompt wouldn’t work - i.e. it’d just load the stale one rather than loading the new one. I could maybe make imgN increment for any prompt that’s manually edited, but I haven’t thought that through fully and my suspicion is that that gets a bit iffy. I think we do need to keep exact-match, and if so, then any custom code that ‘renders’ a message (oc.messageRenderingPipeline) shouldn’t touch anything inside <image> tags. Same goes for custom code that edits the actual content of a message of course.

    sometimes generates images with a completely empty prompt

    Thanks! Fixed.

    Thanks for letting me know about this! I think I’ve fixed it (for now, at least) by optimizing away some bottlenecks. I’m overdue a server upgrade for the comments plugin, so if you continue to get problems, please let me know and I’ll expedite the move to a larger server.
    Thanks! I think this is fixed now (assuming you meant tabbed-comments-plugin-v1)