Fun

Today I Learned...


…that most image-generation models have no idea what spin-the-bottle looks like, and neither do prompt-enhancing LLMs. Not even just the part about spinning a bottle.

Jumping under the bandwagon…

I still haven’t done anything with GenAI video, but I finally broke down and made a song using my parody lyrics. The tune and rhythm aren’t anywhere close to the original song, of course, but this was a lot closer than the first eight attempts (several of which were wasted by having to phonetically spell certain words).

[Update: okay, this one is better, at least for pronunciations.]

(Grandpa Snazzy is unrelated, and cleaned up surprisingly well, given that I used Flux.2-Dev to restore and upscale him based on a PDF scanned from a 1932 Ecuadorian art/culture newspaper)

Mixed 1girl With Extra Sauce


Today’s illustrations are brought to you by “crossing the streams”. I used a vision model to extract categorized descriptions of the elements in ~5,000 pictures (roughly half GenAI, half Japanese cheesecake), then selected random lines from each category, ran them through a prompt enhancer, and fed them back into SwarmUI. Many of the results were “more chaotic” than usual…

The Register was not terribly helpful

So I’m reading an article about an actively-exploited Nginx security hole that’s apparently been around for many years (since version 0.6.27), and while they mention the CVE in the article, they don’t bother to link to it or even vaguely describe the exploit. Or mention the mitigation steps.

The workaround?

To mitigate this vulnerability, use named captures instead of
unnamed captures in rewrite definitions.  
For example, the following rewrite directive uses unnamed PCRE
capture groups, $1 and $2:  

rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;  

To mitigate this vulnerability for this example, replace $1 and $2
with the appropriate named captures, $user_id and $section:  

rewrite ^/users/(?<user_id>[0-9]+)/profile/(?<section>.*)$ /profile.php?id=$user_id&tab=$section last;

Unrelated,

Pizza Hut sued for requiring AI in stores.

Among its flaws is granting DoorDash drivers way too much info about the store’s internal operations, including orders other than the one they were sent to pick up. A popular trick is picking up one order, then waiting around in the parking lot because they knew other orders were coming out soon, with the result that the first order is delivered late and cold.

At least when I was working the ovens at Domino’s in the Eighties, we could smack a driver who tried to “optimize” his trips this way.

Cloud Save And Die

Something I’m seeing pop up on xTwitter recently is complaints from people whose Google/Microsoft/Apple accounts have been permanently closed because they turned on cloud backups. No explanation, no warning, no recourse. (example)

Why? Because your cloud storage is scanned for various categories of “objectionable” material, the (increasingly “AI-driven”) scanners are fallible, the process is fully automated, and the providers have no customer service to speak of.

Because these accounts are monolithic, you don’t just lose your cloud storage, you lose email, calendar, purchases (excuse me, “licenses”), etc. Not for sharing the detected material with anyone, simply for possessing it.

Several of the people complaining have been manga artists, and it’s easy to see how common material legally distributed in Japan could trigger an AI trained in California or China.

Inventory not found

Eric Raymond has whipped his captive AI into creating a new project that assembles the output of (almost) every package manager on your Unix/Linux system. It doesn’t do Python’s pip, however, apparently due to the simple fact that none of the pip tools will report the description of the package. To be fair, doing so looks something like this:

for i in $(find $(pip list -v --no-index --format=json 2>/dev/null | 
    jq -c -r '.[]|.location' | sort -u) -type f -name METADATA | sort) ; do
    echo $(TZ= stat -f %Sm -t %Y-%m-%dT%H:%M:%SZ $i) \
        $(awk '/^Name:/{n=$2}/^Summary:/{$1=""; s=$0}END{print n,"pip",s}' $i |
        tr -d '\015')
done

(it ended up about 65 lines in Python, so I sent him a patch)

Oh, why not?

More random gals after the jump.

more...

Wet hump day


On the bright side, the 24 hours of thunderstorms dropped the temperature by 15°F.

“Welcome to the party, pal!”

An announced feature in iOS 27 (which I thought was going to be the “stability-focused” release) is the ability to use the currently-laughable GenAI “Image Playground” app to make… wallpaper.

Ten bucks says it’ll suck until Apple finally buys somebody else’s image-generation app.

(the one time I tried this app, it absolutely refused to draw a catgirl; Apple’s just been phoning it in on AI and Siri since the beginning)

Speaking of wallpaper…

When I ask Klein to generate SF-ish wallpaper in widescreen format, around 10% of the time it reveals that its training material included a lot of watermarked screenshots and promo pics from games, including Korean and Chinese games.

So I use the base2edit SwarmUI extension, telling Klein to perform the following edits on every image: “Remove all watermarks, logos, and signatures from the bottom edge of the image. Remove all black borders from the edges of the image.” It seems to work pretty well.

I really need to run a large batch of cheesecake with “Remove all extra limbs. Add all missing limbs. Ensure each human hand with visible fingers has four fingers and a thumb on the correct side, and that each human foot with visible toes has five toes with the big toe on the correct side.”

Mostly to see if it actually works, or if it’s just one of those magic-feather things. 😁

(I can get Klein to generate a fantastic futuristic scene, but it still populates it with contemporary cars, sigh)

Laser-focused on security…

A new Windows zero-day exploit is based on a security hole Microsoft claimed they fixed six years ago. Not clear if they accidentally reintroduced it due to incompetence, or simply never fixed it, also due to incompetence.

Remain calm. All is well!


Dam furriners!

Seems someone wanted to blow up a dam in Alabama.

(I have no idea what species this gal is, but… I’d hit that)

On the bright side…

Even the village idiot joined this 9-0 Supreme Court decision that freight brokers who use shady illegal trucking companies can be prosecuted sued for the damage and injuries they cause.

(the big-eye look doesn’t always work out…)

The obvious solution!

It never occurred to me until just now, but if you buy a robot waifu in Japan and she gets broken, of course you repair her with kintsugi!

Linux Of The Day: Pop!_OS

First things first: the Macbook’s wifi just worked in the live-boot environment. Crazy, I know. Of course, the GUI started out in dank dark mode with tap-to-click enabled, but both settings were easily fixed in the control panel, and I didn’t even have to reverse the scrolling direction on the touchpad. They offer a variety of options for menu bar and app launcher, but the default was an obviously Mac-derived menu at top, dock at bottom.

Even in “light” mode, the default (and only installed) color scheme for the terminal was black text on a medium-gray background. Opaque, fortunately, so I could read it despite the skittle-text.

Since the live-boot environment looked promising, I launched the actual installer, selected a standard install, and hit “Go”. It exited.

TL/DR, it dumps core while trying to find a disk to install on (despite the GUI and CLI tools allowing me to partition and format the drive). There are no command-line options. Google found nothing useful.

[Update: the root cause of the core dump was that the Macbook has two NVME devices. This didn't bother any other distro, but the PopOS installer probed the second one, didn't find a valid partition table, tried to create one, and failed. Because the second device was only 8K in size. So I opened a terminal window and ran sudo rm -f /dev/nvme0n2. The installer no longer saw the mystery disk, and proceeded normally. Now to find out if they correctly handle sleep!]

[Update: no, they do not, which I expected. Still, this is pretty much the most successful desktop Linux install on this hardware, so I'll stop for now.]

Patch and patch some more


Another day, another kernel patch

Linux server up to date after the latest privilege-escalation vulnerability? Nazzo fast, Guido.

“He chose… poorly.”

Farm Harem Never lead actor:

When we were deciding on direction with this series with the director, in the original source material, the harem aspect with the girls was strongly pushed in the manga. In the anime, we decided that we should try to pull back from the harem aspect and focus on the slow life aspect of the series so we can make it a more easy-to-watch experience.

Unrelated, I swear

I sometimes wish Amazon would tell me which of my purchases it thinks a recommendation is related to…

Yet Another Linux Distro: Bazzite

This one is optimized for gaming, which means proprietary driver support. So, while it couldn’t load the Mac-specific wireless driver in the install environment, it worked once it was finished. Oddly, though, the USB ethernet adapter does not work. It’s detected as a network interface, but NetworkManager wants nothing to do with it, and there isn’t a real network control panel in the KDE GUI environment. I can do this shit from the command line (Fedora-based, by the way), but “less-sophisticated users” cannot.

Also, defaults to dark mode, and the terminal had dark tinyfonts on a translucent dark background, and switching to a black-on-white theme did not change the automatic text-color-coding, so much of it was unreadable. This does nothing to dispel the stereotype that Linux developers live in dark caves and feed on the flesh of the Eloi. I do not want Skittle-text in my terminal windows. Ever.

For even more fun, the flatpack app-manager Bazaar that’s installed by default on the toolbar does not work. The icon bounces a few times when you launch it, and then it silently fails. Manually running sudo /usr/sbin/bazaar works fine, and got Brave and 1Password installed.

The most annoying thing, though, was that it was configured to try to sleep after N minutes, even plugged in. Which causes it to lock up when it wakes and can’t read the disk. Sigh. Easy to disable from the control panel, at least.

Reviving an obsolete PC


That’s obsolete as in Microsoft refuses to allow me to install a supported OS on perfectly good hardware.

Fuck legibility!

Just installed Ubuntu 25 on an old PC (that might still have enough GPU power to run LLMs faster than a Mac Mini with an M4 Pro…), and the Terminal app does not grok the concept of black text on any color background. It’s fucking dark mode everywhere, and the “palettes” were designed by people who think low contrast is virtuous.

I’ll have to construct a legible display with stone knives and bearskins, like our primitive ancestors did.

As for performance, the graphics card is an old RTX 2060 with 6 GB of VRAM, and running Z-Image Turbo, it created a 1024x1024 catgirl in 27 seconds, compared to my current RTX 4090 at 3.8 seconds with the same settings.

I haven’t tested LM Studio yet, because they distribute it as an Appimage file that I can’t even open on Ubuntu 25, and it turns out they only support 20 and 22. Guess I’ll reinstall with 22, sigh…

(Ubuntu 22.04.5 does not install, sigh. The installer just sits and spins, and Ctrl-Alt-T does not pull up a terminal to see what’s going on, if anything; I’m getting flashbacks to the first time I tried Ubuntu and had it fail miserably)

Live by the chatbot, die by the chatbot

It’s not as efficient as X’s community notes, but when AI over-enthusiast Alex Tabarrok rewrote history with “research” provided by an AI, he was refuted in the comments by someone who consulted the exact same AI.

My new favorite 4K wallpaper…

Made with Klein-9b, upscaled 2x with the SwarmUI SeedVR2 extension.

A wide environmental portrait featuring a cheerful, elegant, tall, Western European woman in her early twenties with a slender figure, steel gray eyes, lobed ears, snub nose, tapered chin, chiseled jaw, round cheeks, low forehead, and a round face shape, wearing runway/editorial makeup that complements her healthy brown skin and caramel brown hair styled with a scarf wrap. She is situated within a darkening, richly detailed interior space enveloped in the soft, deep hues of twilight, mimicking the epic scale and dramatic flair characteristic of Don Lawrence’s sci-fi/fantasy work. The scene is bathed in highly detailed gouache painting style with hyper-detailed realism. Dramatic volumetric lighting casts deep shadows contrasting against pockets of warm, saturated light emanating from unknown sources. She wears a form-fitting jumpsuit in iridescent teal and magenta, featuring segmented panels of brushed bronze and deep violet, accented with wrist-mounted utility bands of pale yellow, holding a handheld scanner emitting soft cyan light, and incorporating several dangling technological attachments made of clear resin elements. The background subtly suggests the impossible geometries of a tidal power station structure, its metallic components intricately twisted within a space that hints at quantum foam instability, all rendered with meticulous care for textures—wood grain, aged metal, or complex fabrics—under an overall color palette that is vibrant and intensely saturated, evoking a grand and adventurous atmosphere.

Although I wouldn’t say no to this one…

A 23-year-old sexy Greek woman with a fit figure, dark green eyes, rounded helix ears, short nose, round chin, soft jaw, dimpled cheeks, and a widow’s peak forehead, sporting a triangle face shape, sophisticated polished makeup, healthy caramel skin, and red auburn hair styled in a rocker shag with messy layers, looks cheerful while standing near a colossal, spiraling ramp structure that dominates the scene, forming multiple intersecting pathways ascending vertically around a central axis point; these ramps appear to transition between parallel realities. The ground plane is a merged landscape of flatlands composed primarily of uniform grey regolith, sharply contrasted by veins and patches of dark, textured volcanic rock formations creating intricate geometric patterns across the floor, with visible areas beneath demonstrating phase transitions within an energetic quantum field in shifting, probabilistic colors. Unstable crystalline clouds with distinct sharp geometric facets float above the ground, catching ambient light dramatically. She wears a vibrant cerulean jumpsuit made of iridescent material, accented with panels of lime green stretch fabric featuring hot pink geometric piping, and is accessorized with a wrist-mounted communicator displaying soft yellow light and a hip-attached datapad with visible switches and dials. The scene is rendered as a highly detailed digital painting in the style of Gediminas Pranckevicius, capturing a medium shot within an indoor atmosphere bathed in fading daylight; though the ramps suggest epic surrealism, the overall composition utilizes muted colors and an earthy palette to evoke hushed introspection, with dramatic atmospheric light filtering through unseen openings casting long, soft shadows across surfaces.

Ex Post Taxto


I got a small-but-pleasant surprise when I did my taxes. The new exterior doors I bought last year qualified for an energy-saving tax reduction. Not huge, but worth the hassle of filling out the form.

Dear Amazon,

Can you please stop pretending that “top picks for you” is not just an excuse to shove paid promotions in our faces? It’s bad enough that you constantly fill it with seasonal promotions of things you know I won’t buy, but putting Lena Dunham’s new book at the top of the list was just mean.

After God’s Favored Appraiser comes Oblivious Saint Maid

The author of Appraiser must be feeling pretty good, with two adaptations back-to-back. The summer show will be Heroine? Saint? No, I’m an All-Works Maid (And Proud of It)!, in which a Japanese girl who was super-duper smart and accomplished in her first life finds herself reborn into a game world as the heroine, with the possibly-novel twist that she doesn’t know anything about the game or her role in it, so she indulges her long-held desire to become Super-Maid, totally screwing up the plot. Which was already going off the rails thanks to two other isekai’d teens who did play the game. More arrivals keep remembering their Earth pasts and trying to either take over as the main character or just change their fates, while Our Insanely OP Clueless Heroine just focuses on maidly perfection.

This season’s Foodie Maid has been doing a promotion with the Victorian-maid café I mentioned recently, who’s been getting a lot of visibility thanks to auto-translation on xTwitter. I wouldn’t be surprised if they hooked up with this show as well.

(fan-artists appreciate how Nagi rocks a maid costume)

Fuel for the fire

Or more precisely, lack of fuel. My co-workers in Belfast worked from home on Tuesday, to avoid the traffic-blocking protests. I liked the farmer who rode his bicycle to protest, because he couldn’t afford the fuel to bring his tractor.

(this LoRA is basically limited to drawing Sexy Grownup Misty, not that there’s anything wrong with that…)

More fun with image-gen previews

One of the lesser-used features of Flux.2 and its derivatives is that it was allegedly trained on structured JSON prompts. The examples make it seem like there’s a schema you should follow, but it turns out that’s not so. I took one of my recent ~500-word paragraph prompts and told the offline LLM Gemma 4 to analyze it and convert it to JSON, without specifying any particular structure.

I fed the resulting prompt to Flux.2-Klein-9b and got a quite surprising result: the animated WEBP preview showed the post and composition settling down much faster than with a text prompt. The pose was stable right away, and by 20 steps it was done adding background elements, and just steadily added details.

The minor downside is that running the 31B version of Gemma 4 on my Mac Mini took 3+ minutes per prompt, which does not scale. I’ll have to look for smaller, faster models that are still smart enough to do the analysis and generate valid JSON. In my experience, the various methods of uncensoring reduce the formatting accuracy, so I might have to tinker with the prompting to avoid frightening the horses.

The major downside is that SwarmUI insists on parsing your prompts to apply its own features, with no way to bypass it. I’d say about 20% of my batch of LLM-generated JSON prompts tripped over this, using strings that triggered an attempt to convert words to a floating-point number.

3D girl seeks new position

Jun Amaki is leaving the modeling business soon. So, what are her plans?

Auto-translation from xTwitter:

Benefits of dating me ↓💕

・Natural I-cup
・Petite with a baby face
・Sweet voice
・Can cook
・Always full of charm
・Surprisingly domestic

Drawbacks ↓

・Suddenly becoming lazy
・Breasts too big and getting stared at by people
・Too much of a spoiled baby
・Bad sleeping habits
・Getting full super quick

Not seeing much of a downside here…

LLM Free-Rein Images


Space Fantasies

If I run Flux.2-Klein-9b at the recommended settings (CFG 1, 8 steps, 1024x1024-ish resolutions), it takes about 6 seconds to generate an image on my RTX 4090. This is fast enough to tinker with a dynamic prompt, run off a few hundred results, quickly reject the (9% at 8 steps) anatomy fails, and then pick out some that look pretty good. It’s a better use of my gaming PC right now than killing time grinding in Diablo IV or hunting for something new to play.

But since I already have hundreds of GenAI SF cover gals lying around waiting to be deathmatched, today we’re going to look at what happens when I really lean into letting LLMs enhance prompts.

I made the changes to my LLM-prompt-enhancing script to run multiple system prompts across the same string in order rather than invoking it multiple times in a pipeline, and it improved the stability, but it looks like the occasional crash is actually caused by a recent update to the engine under the hood (llama.cpp), so I still have to occasionally restart the script, whether it’s talking to the PC or the Mac Mini. Even on the gaming PC, it takes about as long to do a complex prompt enhancement as it does to generate the resulting image, so I just let them both run while I did other things, and occasionally kicked off a new batch.

Perhaps I gave it a bit too much freedom…

(more after the jump)

50s Backyard Pinups

For a change of pace, I abandoned my wildcard sets and just fed the LLM brief descriptions. The base prompt was simple enough:

A mid-century catalog illustration featuring a @<makeover:pretty young woman>@ wearing @<fashion: sexy lingerie from the 1950s>@, serving cocktails outdoors in the back yard of a 1950s suburban home. The image is composed to emphasize the setting as much as the woman.

There are a total of 4 LLM invocations: the two targeted ones listed above, the standard enhancement prompt recommended by Z-Image Turbo, and a cleanup pass I’ve named “legal review” that adjusts ages to cut down on random lolis.

(more after the jump)

Bumping the resolution 25% and adding 4 refining steps increased the generation time to a whopping 9.5 seconds, so after I’d made a bunch of those, I made a slight change to the theme.

Vintage Cherry Blossoms

A mid-century Japanese catalog illustration featuring a @<makeover:pretty young Japanese woman>@ wearing @<fashion: sexy lingerie from the 1950s>@, serving cocktails outdoors under a blossoming Japanese cherry tree in the Spring. The image is composed to emphasize the setting as much as the woman.

more...

“Need a clue, take a clue,
 got a clue, leave a clue”