Hacker Dudes// alternate deck. same feed.
FEED ~14/h Δ0 ────:──── LINK ░ SIGNAL
92%
SPOOLED 0/45 CYCLE 61339.694.118.40
A practical guide to AI image generation, from diffusion to agentsdanielball.com
284pts/94 comments/6d/─
by westsmith / hn> / « feed
▲▼ westsmith19:23 hn>

I wrote this after a few weeks of experimenting with image models through APIs, mostly to work out what’s actually cheap and reliable. Every image in it came from those experiments and cost about a penny each. The bits I found most interesting were why “describe the camera” works better than “describe the view”, and how poorly general models handle exact structure like sprite sheets. Happy to answer questions.

▲▼ vunderba20:12 hn>

Nice article. There's another option for pixel art that's recently been coming into vogue as tool usage improves in LLMs which is procedural graphics.

I actually experimented with creating a set of skills around rendering early AGI style EGA graphical scenes, and it worked surprisingly well.

So rather than storing full bitmaps, you instead store sequences of simple drawing instructions designed to recreate some specific scene - like you would an SVG.

As a result you end up sidestepping a lot of the problems with larger generative models, which can have issues with grid alignment, palette choices, and high-frequency noise.

https://github.com/scpedicini/agi-stylist

https://kq-styles.specr.net

▲▼ thijson20:53 hn>

Looks great. This could be a form of image compression.

▲▼ corysama16:04 hn>

Several Amiga/DOS era games used a similar system for image compression.

▲▼ westsmith08:58 hn>

Neat! I've followed you on Github. I like the idea of going to the past to see what works and adapting it for the LLM age. Nice work!

▲▼ vunderba14:19 hn>

Thanks! Yeah, I started building it because I read an interview with the original creators of King’s Quest, Ken and Roberta Williams where they mentioned in passing that it was too expensive (in the 80s) from a storage perspective to store entire bitmaps for each scene, so instead they'd just store a series of very simple drawing instructions and render on demand.

I’m super excited to see more LLM-driven procedural graphics stuff in the future!

▲▼ armcat06:34 hn>

This is very cool! I will try your method for background and tile creation in the asset-generation tool I've built [1]. Would your procedural method work for animations as well, like sprites?

[1] https://github.com/acatovic/ai-game-studio

▲▼ vunderba23:26 hn>

Hey armcat! I haven’t tried it extensively for generating sprite sheets, but here’s a quick attempt I made along with the prompt.

It works okay but you'd probably have to do a little bit of coaxing to get it to come out exactly right.

https://imgpb.com/TdaKjZK

▲▼ satvikpendem07:08 hn>

Exactly, turn something nondeterministic into something more deterministic and AI does a great job at that.

▲▼ nonethewiser07:56 hn>

I suspect your picscript language is an entirely unnecessary abstraction and the prompt (ie the model) is doing all the work.

▲▼ badsectoracula08:09 hn>

How so? Judging from the examples the model does seem to take advantage of the language (creates and uses reusable elements) and AFAICT the language itself compiles down to "real" Sierra PIC commands so in theory it can be used with a Sierra PIC viewer/engine.

─ 3 more ─
▲▼ bananaflag12:13 hn>

Here AGI means Adventure Game Interpreter.

▲▼ publlus_enigma13:59 hn>

AGI is here ... And always has been (Ken sent me).

▲▼ tonmoy06:51 hn>

I have been asking opus 5.5 to write python to create logos. It is more consistent and easier to control than gen AI for this purpose

▲▼ tkdb13:04 hn>

How much aesthetic freedom are you giving to opus?

The technical ability of anthropic models continue to steadily improve, but I still find the creative and compositional choices to fall far short of anything I would ever use.

▲▼ tonmoy02:43 hn>

Oh no, I have full creative control. I have to literally specify which fonts to use, where to place a shape etc. But I can ask it to pick a good color palette, put some kind of procedural texture etc. All of this would have taken me a day in photoshop, but with Claude I can give the instructions and let it use Python

▲▼ doginasuit13:32 hn>

I've been using it to generate animated svgs. I made a breakthrough in asking it to create bones/rigging and movement with a python library and apply the result to the svg.

▲▼ turbobutton06:54 hn>

Related question: Whenever I try to run Image generation locally, be it with Flux or Qwen, I seem to be getting results that are about 1-2 years behind what ChatGPT can produce today - and take up to 5 minutes for a single image. Is this a hardware problem (running it on a decent windows gaming PC), a configuration problem or just the reality of what local models can deliver at the moment on consumer hardware?

▲▼ satvikpendem07:08 hn>

Look into r/StableDiffusion and follow their prompts and download their ComfyUI workflows.

▲▼ turbobutton07:14 hn>

Thanks, I've done that, but with mixed results. I've also tried comfyui wrappers and alternatives that try to hide the complexity and just set sensible defaults, but I'm beginning to suspect its ultimately a consumer hardware vs million dollar NVidia server question.

─ 1 more ─
▲▼ Karuma07:45 hn>

You can get results a billion times better than the horrible, disgusting look of ChatGPT in less than a couple of seconds with a model like Krea or MOSS, and ComfyUI. With just a 8GB VRAM GPU or so...

Just visit Civitai, look at the pages for the base models, filter for images with the ComfyUI workflow in them, then you can just download and drag and drop them onto your local ComfyUI app.

▲▼ user4392809:40 hn>

I found that for Qwen Image 2.1 the prompt enhancer makes a big difference.

It won't bridge the gap to gpt-image-2.5 though, and it's going to slow down the process further.

With a 4090, Qwen Image 2.1 Turbo takes around 15s per image, depending on the resolution. That's without the prompt enhancer.

▲▼ zf0000209:55 hn>

Configuration and maybe prompting problem in my experience. Are you doing the prompting or are you letting claude or something do it?

▲▼ ThrowawayTestr11:34 hn>

SwarmUI makes things a lot easier. Kroma generates an image in about 90s with a 4070.

▲▼ Mashimo12:14 hn>

With my gamer 4060 ti 16gb it takes around 20 or 30 seconds for flux 1024x1024 image. At least that's how I remember it.

▲▼ FeepingCreature14:10 hn>

If you're on a GPU and take five minutes for an image, something is wrong: either you're not actually running on GPU, or you're generating at way too high resolution. Open models work best at not far above 1024x1024.

▲▼ vunderba15:18 hn>

> Whenever I try to run Image generation locally, be it with Flux or Qwen, I seem to be getting results that are about 1-2 years behind what ChatGPT can produce today.

At the risk of stating the obvious, you can't really compare local models to proprietary frontier models. For all we know, those models are heavily subsidized and have trillions more parameters than the smaller, modest ones you can run on a single GPU.

I've been running a prompt-adherence benchmark site [1] all the way back since the days of SDXL. If you look at the progress dropdown, I do think the gap is closing.

June of this year saw the release of some of the biggest open-weight bangers (Krea 2, Ideogram 4, and the kind of slept-on Boogu-Image 0.1), though the license terms can be kind of meh.

The best locally hosted model scores 8 out of 15, while the proprietary ones score 12 out of 15 on the text-to-image metric. If you want something that can reasonably decent for local gen while still being relatively small for modest GPUs, take a look at the recently released Moss-Image model [2]. But if you're expecting results at a level of something like GPT-Image-2.5 Sunburst, you're going to be disappointed.

[1] - https://genai-showdown.specr.net

[2] - https://huggingface.co/Comfy-Org/MOSS-Image

▲▼ chrisinnes16:35 hn>

Thank you for this, I'm a bit behind the times now on local generations and tend to use nano banana pro now when i generate although i used to use stable diffusion and automatic1111 way back, dabbled in everything around and Midjourney 3 onwards. The website shows me clearly where things are at. I expect I'd still like playing with Midjourney for more artistic styled work but it was the cost that drove me away.

─ 1 more ─
▲▼ Lerc07:14 hn>

Are control nets not being used much anymore? I haven't seen anything that provides a similar level of composition control, and yet I do not see them being referenced much at all.

▲▼ search_facility09:00 hn>

They are used a lot, and modern edit models kind of support base cases - depth, canny, openpose - as a reference image. I mean they understand "use image 2 as depth map", result indeed have same depth, etc. But interpretation sometimes arbitrary to model.

For the tasks where several control nets should be adhered (depth and canny and segmentation) dreaded SDXL is still unmatched. SDXL also the only one handling influence weight for each control net normally, this ability completely vanished on modern models

Control nets in early post-SDXL models like ZIT or Flux kind of work too, but still much worse in quality when combined. I suspect pure diffusion architecture of SDXL is really favorable to mixing control signals with precision, DITs probably can be trained to similar level for mixing signals - but it is much harder and never seen in practice. At least every post-SDXL model I tried is trained with single one in mind, judging from my attempts. This rant is from personal expirience.

▲▼ __bias07:32 hn>

These models always create pixel art that looks like garbage because the people using it don't know enough about the medium to properly judge the output. This article is no exception. If you want pixel art for your project then learn or hire someone with that expertise

▲▼ sheepscreek08:32 hn>

Are you saying people unfamiliar with the 'pixel arts' can't enjoy it their own way?

I don't think the author is posing as a professional. These models are like having a 3D printer at home. Very handy in a pinch, but what they make doesn't replace the real thing.

▲▼ stymaar08:42 hn>
>Are you saying people unfamiliar with the 'pixel arts' can't enjoy it their own way?

The problem isn't that they look shitty to pixel artists or experts, they look shitty for anyone with a bit of observation.

It's junk art the same way Mc Donald's is junk food.

─ 5 more ─
▲▼ Aerroon08:49 hn>

But if the user thinks it looks fine, then won't most players think the same?

I just don't get the complaints about "use proper art" when it comes to games. Most of the time the game has some other, far more glaring, visual issues (anti-aliasing, clipping, icons-not-matching-items).

▲▼ tuna7409:26 hn>

You don't want to anti-alias when having pixel art.

─ 1 more ─
▲▼ IsTom10:30 hn>
>But if the user thinks it looks fine, then won't most players think the same?

I have a suspicion that when you're looking at (and generating, because you then look at the results) AI generated images and text more you get desensitized and are more likely to say that something looks okay when to other people it won't.

─ 1 more ─
▲▼ __bias22:01 hn>

It's not about what looks fine, it's about having professional standards and understanding the contours of the medium as we know they exist today. Settling is lazy, and these people are hoisting that laziness and lack of concern for visual polish on the public. Instead of getting a high quality product from someone who built up an understanding and expertise, we get poorly considered slop, and more of it too. These people aren't serious about creating a cultural artifact, they just want to get to the end goal as quickly as possible so they can sell it.

─ 1 more ─
▲▼ 59percentmore12:38 hn>

As soon as artists stop blacklisting devs for using AI placeholders, we can get right on that.

▲▼ orbital-decay13:12 hn>

People aren't using it wrong (although it's true most users have no taste), it's just the model devs don't care and generally have no idea about pixel art at all. The model just needs to be trained by someone knowledgeable. For example Retro Diffusion worked pretty well for its era - no mixels, proper palettes, etc.

▲▼ kouteiheika09:02 hn>
>For example Retro Diffusion worked pretty well for its era - no mixels, proper palettes, etc.

That's the wrong layer to tackle this problem. Or I should say: that's necessary, but not sufficient. Yes, the model should be trained to roughly generate something which looks like pixel art (i.e. with a concrete pixel size, reduced/consistent-ish palette, etc.), but enforcing that should be done deterministically in post-processing.

─ 3 more ─
▲▼ perching_aix13:49 hn>

how will they tell that the person hired did a good job if they can't tell if the ai cocks up?

▲▼ __bias22:07 hn>

That's the point of hiring an expert isn't it?

─ 1 more ─
▲▼ kakapo567213:52 hn>

Isn't that a good thing? Since these models generate garbage output of very low quality, they will never compete with the high quality generated only by human artists. Therefore this is a passing fad and human artists will always dominate.

The worst result would be if these models were any good vs being absolute slop. Then human artists would need to worry. But in fact there is no need to worry at all, as surely people (aside from a few people with bad taste) will clearly see the difference.

▲▼ glimshe18:12 hn>

A substantial percentage of AI criticism can boil down to some form of gatekeeping. Maybe AI can't draw a true Scotsman but many will still enjoy the result.

▲▼ __bias22:04 hn>

The problem is that it clogs up the ecosystem of human practitioners that it stole from to exist in the first place.

▲▼ armcat08:40 hn>

You mentioned in your README that it was tested with GLM-5.3 but this is not a multi-modal model. Did you mean GLM-5.3-Flash?

▲▼ mochacosine120612:22 hn>

Claude, turn this into a skill.

▲▼ tkdb12:58 hn>

One of the better TLDR's I've seen recently.

▲▼ JohnQPulp13:58 hn>
>Use the same style suffix and seed for every asset in a category so the batch doesn’t drift.

This part's a little confusing to me. What does "suffix" mean in this context? (Is it referring to just like the style-instructions boilerplate text you might include with each image?)

And then also: does locking a set seed really have an effect one way or other for consistency? Wouldn't changing the prompt text even if only slightly have just as much a randomization effect as changing the seed, making fixing it or using a random seed both functionally the same? Or is that not how the latest models work?

▲▼ jrm414:08 hn>

Great article -- and maybe this is just me -- but I do find the primacy of the online services interesting. Me and my 16gb vram card can get most of this done at home for "free."

▲▼ duskdozer14:24 hn>

When your work depends on people using online LLM services, you probably don't want to encourage people to use their own hardware.

▲▼ tech_army14:38 hn>

Good content. Found it helpful

▲▼ demibabs14:41 hn>

Seems like an interesting article but I can’t be bothered to wade through all the Claudish to get to it

▲▼ grumpy_coder16:26 hn>

All of that still reads as a non-professional messing about at ten different things.

If we want to use a pixel art generator commercially we need 'practical guide' to making a small change to one animation, two months after creating the original character.

We need images generated in psd layers, with actual text using a font.

Sticking to the brand palette religiously.

▲▼ joe_the_user16:47 hn>

My guess would be that "professional" essentially translates to consistent, reliable and structured in the fashion a given industry expects. In this sense, everything AI/LLMs do is going to be "non-professional". Even when they solve frontier level math problems, the mathematicians agree "this is a terrible proof" (this goes against how the field does things). These things is always inconsistent/unreliable/unstructured but sometimes not too inconsistent etc to be useful. "How do use" tip sheets are also going to a list of ad-hoc observations, many of which its easy to get after X many tries with the generator - but that OK, essentially what you want is ways to save yourself time screwing around.

These thing may reach your standard consistent at some point, maybe. It's not important since before and after this point, they will require "messing around" to produce something useful but they can produce something if you need "good enough" but if you demand actually good, they won't arrive ever.

▲▼ ethanj801116:27 hn>

I don't think this told me anything, and it reads like basically something I could have asked claude to whip up for me.

▲▼ syshyk16:31 hn>

Which is half of these new websites these days.

▲▼ n3ur0n17:56 hn>

Had exactly the same reaction. A one shot Claude prompt could have given me this.

▲▼ fsloth16:58 hn>

I think this is missing a nice hack.

Learn to draw.

Then ask the model to restyle the image.

You can get wonderful photographs with the exact composition and scene you want for all sorts of use cases.

Second hack.

Model the scene you want from low resolution geometry (boxes, spheres etc) for the composition. Then use that to ground the generated image (ie give it as reference) and ask the model to re-imagine it in the style you want.

▲▼ micromacrofoot18:18 hn>

You don't even need to be able to draw well, so learning basic composition may suffice

▲▼ zer0tonin18:22 hn>

Better hack: learn to draw. End of the story.

▲▼ fsloth18:44 hn>

Not really sure why removing the AI component would make anything better. They are a new modality for art and expression.

─ 11 more ─
▲▼ mikeaskew418:29 hn>

Boy are we all gonna be disappointed when it never learns to draw.

▲▼ croisillon21:07 hn>

Related:

AI-generated posters don’t have to be horrible, 990 comments https://news.ycombinator.com/item?id=49764791

▲▼ praveen992021:58 hn>

One hack I used for generating sprite sheets for a 2d game I’m developing is.. I asked a video generator model to generate a video of required character doing some action and splitting the frames.

Generating grid is cheap but inconsistency creeps up very quickly.

▲▼ Lammy01:39 hn>
>Pixel art is a style, not a format

― person who has never attempted to program for a specific retro system.

Peep the graphics hardware limitations of the Nintendo Famicom/NES, for example: https://noelberry.ca/posts/nes/index.html

You can see these limitations guiding the designs of actual retro games if you know what to look for.

Example: In CAPCOM's Mega Man (1987), the famous “Yellow Devil” boss fight plays the way it does because only the moving chunks of the Devil's body are composed of Sprite tiles. When one of those chunks reaches the opposite side of the screen, that part of the Devil's body becomes drawn with Background tiles instead: https://www.youtube.com/watch?v=8RbPqqPrL_M

This is also why the Devil, Dragon, and Wily boss fights (anything larger than a regular Robot Master) take place entirely in a black void — the Background layer is exhausted drawing the bosses and there's nothing left over for actual play-area background.