
Benson really loves his pillows.
life, coding, technology, outdoors, photography
Benson really loves his pillows.
My Mastodon landscape painting bot, Mr. RossBot keeps kicking along, generating some fun landscape art. Itās been powered by the AI Horde (the open source project behind ArtBot) and has tried to utilize whatever image models provided by the API to the best of its abilities.
For the most part, the code behind it is a bunch of spaghetti that looks like this:
An update to the AI Horde late last year added support for SDXL. However, the SDXL model on the Horde did not use a refiner. Because of this, images tended to come out a bit soft and lacked texture.
You can see examples of this in my announcement post about Mr. RossBot being back, here. See also:
More recently, the Horde added support for a new image model: AlbedoBaseXL. Itās an SDXL model that has a refiner baked in. Now images will come out a lot sharper looking.
Coincidentally, I was also playing around with various prompts and discovered I could get much better image results that look more painterly (rather than simple digital renderings) by utilizing the following prompt:
A beautiful oil painting of [LITERALLY_ANYTHING], with thick messy brush strokes.
And that is it! No more messy appending various junk to the end of the prompt to attempt to get what I want. The results speak for themselves and are pretty awesome, I think!
Iāve been doing web development professionally for about 10 years now and just discovered something new. (I love it when this happens!)
Today, I learned about local overrides in Chrome. Local overrides are a powerful feature within Chromeās Developer Tools that allow developers to make temporary changes to a web pageās files (CSS, JavaScript, images, etc.) directly within the browser.
These changes are saved to your local filesystem, allowing you to experiment with modifications without affecting the live website. This is especially useful for testing, debugging, and experimenting with different designs or functionalities.
Hereās how you can use local overrides in Chrome:
Local overrides are a temporary way to experiment with web page modifications. They donāt affect the actual files on the web server, so other users wonāt see these changes. This feature is highly useful for developers and designers to test changes without deploying them to a live server.
About 2 years ago, I found one of these cheesy sites that lists whatever fake holiday happened to be celebrated that day (e.g., āNational Avocado Toast Dayā)
I ended up starting every daily standup meeting with a call out to whatever the day was. This went on for about a year before I switched to a different internal team. One that didnāt have much in the way of daily meetings.
A few weeks ago, I made a move back to my original team, only to find that they have kept the tradition alive over the past year!
Amazing.
And with that: Happy Museum Selfie Day!
Created with DALL-E 3
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:
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.
ā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.
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ā¦
Ā
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.
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
Took the little ones over to Tunnel Tops Park for the first time. That was just a fantastic public space.