Fun

Tanya, catgirls, and more fun with Z


Tanya 2, finally announced

For sometime in 2026.

Freelancers of Neptune, “revised”

Jacob Holo’s Freelancers of Neptune put a sexy catgirl on the cover (previously), which I appreciated, and rather emphatically made her not a haremette, which was also refreshing. Not only did she drive the hero crazy with her antics, she already had a boyfriend.

So he just released a “second edition” with a co-author who “added the spice” and turned it into something different:

Just remembered why I stopped reading Louie

TL/DR: in book 3 (my original notes), Merrill comes up with an incredibly stupid, guaranteed-to-backfire plan. Sure, it sets up Wacky Hijinks(TM), but the outcome was entirely predictable.

To get Rescued Runaway Young Heiress out of an arranged marriage, Louie pretends to her father that he “claimed his reward” after rescuing her from pimps/slavers. Merrill’s idea was that the threat of scandal would risk her reputation and call off the marriage, but she didn’t think it through, and nobody else spotted the flaw: her Daddy was marrying her off to advance his own position, and Louie is one of the most eligible bachelors in the kingdom.

He is, after all, the adopted son of one of the richest and most powerful wizards in the world, who’s also a personal friend and old adventuring companion of the king and the high priestess. Hell, the entire Thieves Guild is trying to figure out who his birth parents are, because he’s potentially that important. Whoopsie!

Destination: international waters

If we deport a convicted felon, and their home country won’t take them, I’m fine with just dropping them off near that country. Sink or swim, not our problem. If NGOs actually care, they can buy a fleet of patrol boats to fish them out of the water. If their home country has no seaports, or their crimes involved children, airdrop them.

More fun with Z

I fed a fresh batch of dynamic SF cheesecake prompts into my almost-ready-for-Github SwarmUI CLI to see what Z Image Turbo would do, and since it’s so much faster than Qwen, I’ve got just under a thousand images to play with already. Deathmatching them down to a reasonable number will be difficult, because the hit rate is so much better than Qwen.

I’ll limit myself to just a few for now:

(fingers are pretty good, but oversized heads are a risk…)

more...

Doors, edumacation, gratuitous AI, and useful AI


Door, More Door, Gone Door

(insert meme here)

The back door won’t be installed until Monday. They got the garage side door installed (including reusing my Level deadbolt, which is not compatible with the new front door), but the morning rain was more annoying than expected, to the point that they were having power-tool performance issues.

Downside: current forecast has snow on Sunday after several cold days, so there’s a good chance it will stick, which means I’ll be out there shoveling and salting the driveway first thing on Monday morning, so they can get their truck up my driveway. And they’ll be out there in their warm clothing.

(not an example of warm clothing, although for some reason I feel warmer…)

Remember the “Government-Owned Student Laptops” fad?

(classical reference, and whatever happened to Capitalist Lion anyway? Also Brian Tiemann; both of their sites went offline sometime after they went into the really-cool-car rental business)

Slashdot links to the long-term results of “One Laptop Per Child”:

Following students over time, we find no significant effects on primary and secondary completion, academic performance in secondary school, or university enrollment. Survey data indicate that computer access significantly improved students’ computer skills but not their cognitive skills; treated teachers received some training but did not improve their digital skills and showed limited use of technology in classrooms, suggesting the need for additional pedagogical support.

“Suggesting the need for additional pedagogical support” is industry-standard eduspeak for “that didn’t work either, let’s throw more money at it”.

X’s latest horror

Click on a tweet, and a bouncing speech bubble tries to get your attention with the words “Ask Grok to explain this post”. This is always annoying, but particularly stupid when the tweet consists of a picture of a pretty girl in a bikini.

The day I need AI to “explain” what that means, I’ll have been dead for two three six weeks.

Built RAM tough

The new hotness (new-as-in-Monday) for image generation is Flux 2, which will just-barely-work with 24 GB of VRAM and 64 GB of RAM. They’re promising not just improved quality at up to 4K resolution, but LLM-based prompt parsing that actually follows your instructions, even supporting JSON prompts that contain real structure for clearly separating multiple subjects, etc. They are not promising high-speed rendering; people with high-end hardware are seeing it use all of their VRAM and all of their RAM (90+ GB).

Of course, it still has to be trained on images that are tagged with the correct concepts, so I’ll be testing prompts that include things that have confused other models, like crown braids, crossbody purses, cigarette pants, poodle skirts, bird’s-eye views, etc.

My first quick tests using previously-generated random Qwen prompts did not produce promising results. I’m going to tinker with the prompt generator to use their JSON format, and see which of my dynamicprompts sets work well with it.

First try with JSON prompting:

(I updated my prompt generator to handle JSON output, and it’s a disgusting hack, but it works. The generator eats all of “{}[]#”, so to generate JSON, I’m embedding YAML in the YAML file as a string. The dynamicprompts library does its normal substitutions without interfering with the indentation, so the resulting string can be run through yaml.safe_load() and fed to json.dumps())

But wait, there’s more!

The even-newer hotness is Z-Image Turbo, which runs on much less expensive hardware, at ludicrous speeds. Not quite as sophisticated in its prompt-handling as Flux2, but at least as good as Qwen. In fact, I’m just feeding it the wildcard collections I made for Qwen and getting impressive results a lot faster. It occasionally produces terrible skin tones and extra legs, but so far it rarely fails a finger count, and it hasn't swapped the thumbs.

File under “no comment” that the body-type tagging trends a bit thicc, sometimes going all the way to chunky. They definitely included more “diversity” in their training data. Not necessarily a bad thing, but when I say “voluptuous figure”, I do not mean “cute fat chick”. I may have to significantly reduce the diversity in my dynamic prompts, because exaggerating descriptions to shove Qwen away from its defaults simply isn’t necessary with Z.

On the bright side, so far it has never produced a missing arm, leg, ear, wing, etc, something that ruined a lot of Qwen gens. It also doesn’t seem to have the issue where Qwen draws high-heel shoes and then decides it should also draw at least partial toes.

As a real bonus, this is just the turbo model. They’re promising a full base model and a full edit model soon.

(yes, there are a few finger-faults in here...)

more...

The door is a jar


They showed up this morning to start replacing my exterior doors, and the new front door is finished except for the interior trim. They might not make much progress Tuesday, unless the rain really does stop at noon, but with the big one out of the way, the other two should be done by Wednesday afternoon.

Which is good, since it looks like the temperature’s going to drop 20°F after that, making for a chilly Thanksgiving and Black Friday weekend.

(I’ll have to have the security company switch to wireless sensors for at least the front door; the way it’s made as one unit, complete with the giant half-round transom (which gave the crew a real challenge getting it into place), running the wire through it would be a lot of work and void the warranty)

From his lips to Cook’s ears…

Next year’s iOS and MacOS releases are supposed to be focused on quality. And “AI”. And removing all remnants of x86 CPU support (while still including some degree of software support). No news yet about hiring a team of user-interface designers to replace the idiots who inflicted Liquid Ass on the world.

Meanwhile, in a formerly-basic text editor…

Microsoft is improving Notepad with streaming GenAI, so you don’t have to stare at an empty window while it’s still making shit up.

(pro tip: do not ask Qwen Image for a “tractor beam” when you’re working with Legos)

Government verification

I went to login to my Social Security account. Not that I can retire any time in the next ten years, but with the increase in identity theft, not just by illegals, it’s good to check occasionally.

Years ago, I set up my “login.gov” account for TSA Pre and Global Entry. When I moved back to Ohio, I updated it with my new address and phone number, and today it correctly texted a 2FA code to my phone.

But it decided that using the common account to log into a different service (Social Security) required ID re-verification, so I let it take pictures of me and my passport, and once it processed those, it said I needed to login again, complete with 2FA. And it refused to accept my phone number as “associated with me”. I was forced to plug in and turn on my California phone so they could text a code to it. Three years after I changed the number in their system, and mere minutes after they’d used the current number to authenticate me.

Yeah, let’s trust the federal government with full control over every aspect of our lives; what could go wrong?

(not my actual roof vultures, who I’ve only gotten quick phone snapshots of a few times from the ground; the angle and perspective of this genai creation is nearly impossible to achieve outside of a studio with human-habituated birds. FYI, I was puzzled when I first tried to gen this pic, because I asked for buzzards and got falcons; turns out this is one of those America-versus-Europe things where we mean “turkey vulture” and they mean “pretty much any raptor”)

In other news, Napster still exists


But probably not for long

Initial optimism…

…crushed by correct parsing of the headline:

Microsoft and GitHub Preview New Tool That Identifies, Prioritizes, and Fixes Vulnerabilities With AI

I’m much more interested in “fixing AI vulnerabilities” than in “using AI to fix vulnerabilities”. It would be far more useful, and less frustrating for the poor suckers dealing with the mountain of hallucinated issues and gibberish pull requests.

Record Of Lodoss War, Louie, etc

An official English translation of the Sword World tabletop RPG is apparently on the way, says a tweet that doesn’t link to the publisher or their upcoming crowdfunding campaign.

TL/DR, the reason the Lodoss series has that title is that it was an Eighties thing in Japan to transcribe your RPG game and share the “replay” of your story; it literally started out as the record of the author’s campaign. The novels were cleaned up from that, and then he released his own game rules and setting. Later, the Rune Soldier novels were set on another continent in the same world; if you thought the anime felt like a classic RPG adventure, complete with a party consisting of a fighter, mage, thief, and wizard, correct!

In addition to the upcoming game release, the fan community has recently been cranking out fan-translations of the novels and manga. I read the first few Louie novels in Japanese way back when, first with OCRd scans and then with ripped Kindle editions, after running them through my assisted-reading scripts to add furigana and vocabulary lists. It was slow going, and I never finished the series, even though I got them all prepped. It’ll be interesting to see how the translators handled some of the lines that stumped me.

(actual recent fan-art, who’da thunkit?)

TL/DR or TL/AF?

Social media engagement-farming seems to be built on two premises: fraudbots pretending to be “just like you, only more extreme”, and manipulated sexypics designed to elicit a reflexive like/retweet. Neither seems to really work any more, even before this week’s proof that 99% of both groups are foreign-run bot farms; people were glancing at them and then moving on to the next rather than engaging.

I will never need this...


…and yet, I still kinda want one:

(you have to watch the video to really appreciate the restaurant-scale of it)

パクツイ

The word for the day is pakutsui = “pakuri (ripped-off/gobbled-up) + tweet”, for swiping someone else’s social-media post and pretending it’s your original work (I’ve never understood the use of the word “plagiarism” outside of school; if it isn’t actual copyright infringement, it’s at worst just a dick move). The word paku used to be best known for the mimetic usage paku-paku = “gobble-gobble” from Pac-man.

Successful failure!

I’ve been converting my quickie SwarmUI API script (done!) from Bash to Proper Python, with a simple OO wrapper to encapsulate connection variables, etc, and once I got the basic “gen an image” code working, I wanted to add the ability to ensure the output format was correct and included metadata. By default, the output’s in JPG with a filename containing a truncated prompt, complete with spaces. I hate whitespace in filenames, especially when you have to use them in a URL to download your results, so before I started with the Bash version, I fixed the default format server-side.

But in a generic library that might connect to other servers, I wanted to force it to use sensible names, write PNG output, and include full metadata. As usual for this API, the ChangeUserSettings call is basically undocumented, but for extra fun, it never fails, always returning {"success": true}.

You have to go read the server logs to find the clear-but-still-not-very-useful error messages. You have to use tcpdump -A to find out how it expects its arguments to be formatted. TL/DR, parse the JSON output of /API/GetUserSettings and build a “.”-separated fully-qualified setting name, like fileformat.imageformat.

(having to check the logs to find the failure code gave me a really bad flashback to writing test code for the original Ooma account-management service, which was accessed by a nasty mix of SOAP and XML services calls, all of which expected the client to do all data validation (yes, Samir, I’m pointing that finger at you); I wouldn’t have said this publicly back when that code was still in Production…)

Vibe me good and hard!

Writing this script for SwarmUI is actually a good example of where “vibe coding” will let you down: there is zero public code using this API outside of the Javascript used in the app itself and one extremely basic curl example in the docs (“get session id, generate image with default params, download results”). The only reason I got the existing script to work was because I wrote a minimal repeat-by and asked the devs on Discord.

To even have a chance at writing correct Python code for this, an LLM would have to ingest the entire repo, analyze a bunch of Javascript and C# code, and then repeatedly be fed server logs until it stopped getting errors. You’d either have to give it full control of your computer or spend valuable you-time acting as its hands while it played the two-steps-forward-six-fingers-back game of iterating over broken hallucinated code.

Or wait until I publish mine and the latest Github-scrapings get integrated into the latest models.

“It's always DNS!”


“…except when it’s a network engineer changing ‘unrelated’ firewall rules that just happen to block DNS on a Friday afternoon, without a code review or an approved ticket. Hypothetically speaking.”

Free Zorkmids!

With proof of pur– no, wait, just free-as-in-MIT-Licensed, for Zork I, II, and III.

tHisP@sswd1s$ecure

Allergist practice I went to yesterday had their own web site (I’d thought they were part of the general network, but no, just a partnership), and they set me up with an account. It had a pretty typical Javascript authenticator for its password rules, but it refused to accept my password. You must, it said, have letters and digits and one of a specific set of punctuation characters, but it refused to mark the “8-25 characters” requirement as met. Because I put a space in the password.

If they’d said “your password can’t have spaces in it”, I’d have just rolled my eyes and moved on, but no, it claimed I was failing the length check.

Not to pick on anyone, but…

There’s a lot of “digital art” being posted to the SwarmUI Discord that does absolutely nothing for me. Intricate and detailed, showing definite proficiency with advanced AI image-gen workflows, and… dead inside.

Me, I’m just playing with the shiny toy, but I see a lot of people (especially on Reddit) who think they’re Artists, and that anyone criticizing GenAI is some sort of frightened luddite. Yeah, that ain’t so, Yoko Ono.

(despite a prompt explicitly stating that the words were being spoken by the mad scientist, about 70% of the time the banana was talking, and in another 15% they were shouting together; sigh)

Quarterly Goals


My goal for the next season is “catch up on older shows while hoping there’s more to watch than just Frieren”. Maybe I’ll break down and try to watch the first season of Torture Princess, since the second season of that is airing, and it has at least one thing going for it.

Kicking it old-school

One of the windows at my house has shifted so much in its frame that it can’t make contact with the alarm sensor any more. While the alarm guy was checking things out for the door replacement next week, I asked him about turning on a bypass for that window. I’d managed to do it when I first moved in, but hadn’t kept links to the specific docs page I’d found for the unit.

He didn’t know either. He called a technician who was nearby, and the method he knew didn’t work. So he brought in his laptop, pulled out a console cable, logged into it directly, and set the bypass.

That didn’t work. So he called the senior tech, and she walked him through the 25-year-old GUI to the real manual bypass button.

That worked once, and then it re-enabled itself, so he called her back and she walked him through removing it from the set of active sensors. That worked.

The next-level hack would have been completely deleting that sensor from the config, but then they’d have had to redo the config when the window gets replaced (Spring, unless something else competes for my house budget).

While he was there, he also did something that another tech skipped three years ago when I moved in: configured the remote access so they can fix things like that directly from the office. It was originally set up to use a landline to call in alerts, but I don’t have one of those, so it now has a cellular modem that’s always online. It worked for calling in alarms, but they didn’t have the serial number and access code recorded, so they couldn’t connect to it.

A stroon by any other name…

Akebono Sangyo makes a popular line of clear plastic coffee servers whose Amazon listings announce they’re made of “stroon”. Not to be confused with the musical artist Stroon or a combination strainer/spoon, this is the romanized trade name ストロン, short for ストロントライタン = “Strong Tritan”, which has started showing up a lot recently in coffee gear. Wikipedia and “helpful” AIs that scrape it insist Tritan’s not safe for hot beverages, while the manufacturer and dozens of coffee companies say it’s both dishwasher and microwave-safe, and can handle boiling water as well as being tossed off a cliff.

Nice product, totally fake pictures

When my sister was in town a while back, we took our parents out for dinner at a nice Asian Fusian restaurant, and they served our bottle of saké in one of these:

It’s a nice-looking gadget for chilling drinks without diluting them, but when you look at the “real-life” pictures in the listing, every single one of them is a clumsy cut-and-paste job that doesn’t even deserve to be called “Photoshopping”.

Another MacOS Preview quirk…

This one isn’t new, but it’s been a low-key annoyance for years. If you tell it to open a bunch of files of the same type, say open *.png, you will often get two windows, with no obvious reason some of them ended up in the second one. Close the app, type the same command again, and all the images will load in one window so you can navigate between them. It doesn’t matter how many things you’re opening; could be 2, could be 200.

The app also sorts the images by the order they appear on the command line, and when it does the two-window thing, there’s not a consistent pattern to which ones end up where.

(grown-up Misty is unrelated, but the NPC gals in the new Pokemon game are getting a lot of attention for their sex appeal…)

Weekend roundup


I’ve got the home-security guy showing up Monday, an allergy-doc appointment on Thursday, two large book shelves to empty before next Monday when they start installing the new doors, a birthday party next Tuesday, and a whole house to clean before I start cooking for Thanksgiving. No pressure.

(the home-security guy is scoping out “how to make sure the sensors still work after they replace all the exterior doors and frames”)

Shared monitor nuisance

So far, the only downside of having my 4K vertical monitor attached to two Macs at the same time is that the Thunderbolt connection to my laptop doesn’t always notice when I turn the monitor on. I’d blame Apple’s QA department, but they haven’t had one in years.

Refined Waifus

I’m using my SwarmUI API script (now replaced with a full-featured Python version that can do a whole lot more) to re-gen my early 4K waifu wallpapers, and so far every pic is coming out obviously different but with better fingers and toes. The only real failures are ones where it decided she needed a larger head.

On a random side note, I’m glad I improved my image-posting workflow with deathmatch, because I recently noticed that Apple broke Preview.app more than usual. It used to be that dragging a thumbnail image into a Terminal window copied the full path followed by a backslash, while dragging the tiny icon out of the title bar copied the full path followed by a space. The tiny icon still works, but dragging the thumbnail now produces two copies of the path, the first one followed by a newline, the second by a space; this is spectacularly useless.

Grabbing a bunch of pics from a directory full of GenAI or traditional cheesecake is a lot easier since I added the “export current filtered view” function to deathmatch.

Cold comfort

I decided to try out James Hoffmann’s recent cold-brew coffee technique. It’s not like his “Ultimate X-brew Method” videos, which tend to draw out the tastes-nothing-like-coffee flavors that the modern specialty coffee enthusiast craves, and he even concluded that it produces better results with cheaper, darker roasts, but as techniques go it’s trivial, with only one trick: adding a few drops of beer fining agent to produce a cleaner brew without a filter.

I didn’t have any of that on-hand, and haven’t made it over to the homebrew store that’s about 1.5 miles away, but he insisted that the grounds would settle out pretty well even without that, and you could pour carefully. Which was mostly true, except for the layer on the top that I had to scoop off. I ended up pouring it through a V60 filter anyway; next time I’ll try the fining agent.

Of course, “next time” might be “Spring”, since he posted the video just in time for cold weather…

What coffee did I use?

Marisol’s Café, purchased from Marisol herself when I was at St. George’s Market in Belfast. Yes, the beans spent a year in the freezer. Still darn tasty. I don’t know how she brewed the samples she was handing out that day, but I don’t usually like black coffee, and it was so good I bought two bags.

Appreciating Ina

Ina Enohara is not the prettiest model working in Japan right now, but she’s one of the most appealing, because there’s so much personality coming through when her face lights up. Which happens a lot more often than with most of the competition.

It doesn’t hurt that she has giant soft natural breasts that match her body, but I would never have bothered learning her name if it weren’t for her smile.

(site obviously NSFW, and the usual shields-up warning applies)

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