šŸ‘‹šŸ»  Hello!

Thanks for visiting! You'll find a bunch of musings I've been writing around these parts since the early 2000's. Lately, I've been reviewing a lot of books. But I also write about code and my experiments using generative AI. But really, you're just here to see pictures of Benson.

Blog Posts

Implementing and testing a “poor man’s prompt expansion” model for Stable Diffusion

Various Stable Diffusion models massively benefit from verbose prompt descriptions that contain a variety of additional descriptors. Much recent research has gone into training text generation models for expanding existing Stable Diffusion prompts with relevant and context appropriate descriptors.

Since it isn’t feasible to run LLMs and text generation models inside most users’ web browsers at this time, I present my ā€œPoor Man’s Prompt Expansion Modelā€œ. It uses a number of examples I’ve acquired from Fooocus and Hugging Face to generate completely random (and absolutely not context appropriate) prompt expansions.

(For those interested in following along at home, you can checkout the gist for this script on GitHub).

How does it work?

We iterate through a list of an absolute crap ton of prompt descriptors that I’ve sourced from other (smarter) systems that tokenize user prompts and attempt to come up with context appropriate responses. We’re not going to do that, because we’re going to go into full chaos mode:

  1. Iterate through a list of source material and split up everything separated by a comma.
  2. Add the resulting list to a new 1-dimensional array.
  3. Now, build a new descriptive prompt by looping through the list until we get a random string of descriptors that are between 175 and 220 characters long.
  4. Once that’s done, return the result to the user.
  5. Create a new prompt.

For our experiment, we’re going to lock all image generation parameters and seed, so we theoretically get the same image given the exact same parameters.

Ready?

Here is our base prompt and the result:

Happy penguins having a beer

Not bad! Now, let’s go full chaos mode with a new prompt using the above rules and check out the result:

Happy penguins having a beer, silent, 4K UHD image, 8k, professional photography, clouds, gold, dramatic light, cinematic lighting, creative, pretty, artstation, award winning, pure, trending on artstation, airbrush, cgsociety, glowing

That’s fun! (I’m not sure what the ā€œsilentā€ descriptor means, but hey!) Let’s try another:

Happy penguins having a beer, 8k, redshift, illuminated, clear, elegant, creative, black and white, masterpiece, great power, pinterest, photorealistic, award winning, vray, enchanted, complex, excellent composition, beautiful composition

I think we just created an advertisement for a new type of beverage! It nailed the ā€œblack and whiteā€, though I’m not sure how that penguin turned into a bottle. What else can we make?

Happy penguins having a beer, volumetric lighting, Digital, intricate, awesome, futuristic, cartoon artstyle, vector, solid, detailed, dramatic light, realistic photograph, wonderful colors, dramatic atmosphere

The dude in the middle is planning on having aĀ good night. Definitely some ā€œwonderful colorsā€. Not so much realistic photo or vector, but fun! One last try:

Happy penguins having a beer, 35mm, surreal, amazing, Trending on Artstation HQ, matte painting hyperrealistic, full focus, very inspirational, pixta.jp, aesthetic, 8k, black and white, reflected on the matrix studio background, awesome

As you can see, you can get a wide variety of image styles by simply mixing a bunch of descriptive elements to an image prompt.

I’ve wanted to implement a feature like this on ArtBot for a long time. (Essentially, if the user allows it, automatically append these descriptions behind the scenes when an image is requested). Perhaps this will come soon.

TIL: The coastline paradox and Baader-Meinhof phenomenon

ā€œUh, what?ā€ you say.

A few weeks ago, I read a post on Hacker News about something called ā€œthe coastline paradox.ā€ Despite my geology background, I hadn’t heard of this before.

The measured length of the coastline depends on the method used to measure it and the degree of cartographic generalization. Since a landmass has features at all scales, from hundreds of kilometers in size to tiny fractions of a millimeter and below, there is no obvious size of the smallest feature that should be taken into consideration when measuring, and hence no single well-defined perimeter to the landmass.

Essentially, the smaller unit of measurement you use to try and measure something with a fractal pattern, the longer it becomes.

So, I’m currently reading a book called ā€œReading the Rocksā€ by Marcia Bjornerud and there is an entire section devoted to the coastline paradox, which I just learned about.

Mandelbrot’s point was simple: If you use a very long stick to measure a coastline, you will capture the broadest arcs but miss the fjords, firths, and coves, and you will conclude that the coastline is not terribly long. As you use shorter and shorter rulers, however, the coast actually stretches. Mandelbrot named such stretchy features fractals…

Neat!

This brings up the second TIL:Ā What is the phenomenon called when you hear something for the first time and then suddenly start seeing or hearing it everywhere?

It’s the Baader-Meinhof phenomenon, also known as the frequency illusion:

The frequency illusion (also known as the Baader-Meinhof phenomenon) is a cognitive bias in which a person notices a specific concept, word, or product more frequently after recently becoming aware of it.

Well, here’s to seeing more coastline paradoxes.

Cool dad, sad dad

A few years ago, I got a new longboard for Christmas. The kids and I went out in the neighborhood and I decided I was going to be cool and ride my board as we walked around.

I immediately fall off and nearly sprain my wrist. To this day, our oldest still brings it up.

This past Christmas, we got some rad new scooters for the little ones and decided to take them around the block for a spin. It’s been awhile since I’ve ridden my board so I grab it and walk out the door.

ā€œBe careful and don’t fall, Dad!ā€ she says.

Listen here, kiddo. I may have a few more grey hairs than I did in the past, but I can still do this. Don’t worry!

Not even 2 doors down the street, I eat it and sprain my wrist.

I guess it’s going to be awhile yet before I can do this…

Ā 

My 2023 Reading List

I didn’t do a great job of reviewing every book I read this year, but still read a good number of books this year. My Goodreads goal was 24 books and I hit 30.

This is down from 40 in 2022, 56 in 2021, and 60(!) in 2020. Kind of an interesting correlation between the pandemic years and what has happened as we’ve come out of various lockdowns (e.g., more activity outside is less time reading inside).

Anyway, this year’s list of books is below. My favorites wereĀ The Making of the Atomic BombĀ andĀ Tracers in the Dark. My least favorite was easilyĀ Blindsight.

My top music of 2023

Chuck Ragan of Hot Water Music (taken by me)

It’s time for the yearly (semi-yearly?) update of my favorite bands according to Last.FM. It is kind of all over the place this year!

1. Chuck Ragan
2. The Glitch Mob
3. Creedence Clearwater Revival
4. Vansire
5. The Lawrence Arms
6. AFI
7. The Interrupters
8. Deer Tick
9. Two Gallants
10. The Rolling Stones

Book Review: The Explosive Child

This was one of the first books I’ve read that so specifically addressed the unique difficulties we’ve been encountering with one of our kids, and the insight it provided was eye-opening and validating.

Dr. Greene’s descriptions of some scenarios people encounter at home were strikingly accurate. It kind of shook me up with how absolutely on the mark some of these descriptions and scenarios were. For me, the scenarios depicted weren’t just abstract concepts but felt like real-life situations that played out in our home.

It had some interesting ideas and strategies for navigating situations that might cause these explosions that I can’t wait to try. Namely, a concept called ā€œcollaborative problem solvingā€, which involves validating your child’s feelings and concerns and then working with them to come up with a solution.

The book is refreshingly honest about the complexity of these challenges, acknowledging that there’s no magic solution or quick fix. Even though there is no silver bullet, it definitely gives me hope that the light at the end of the tunnel isn’t an oncoming train.

I found ā€œThe Explosive Childā€ to be an insightful and valuable resource.