this post was submitted on 20 Nov 2025
74 points (98.7% liked)

GenZedong

4962 readers
49 users here now

This is a Dengist community in favor of Bashar al-Assad with no information that can lead to the arrest of Hillary Clinton, our fellow liberal and queen. This community is not ironic. We are Marxists-Leninists.

See this GitHub page for a collection of sources about socialism, imperialism, and other relevant topics.

This community is for posts about Marxism and geopolitics (including shitposts to some extent). Serious posts can be posted here or in /c/GenZhou. Reactionary or ultra-leftist cringe posts belong in /c/shitreactionariessay or /c/shitultrassay respectively.

We have a Matrix homeserver and a Matrix space. See this thread for more information. If you believe the server may be down, check the status on status.elara.ws.

Rules:

founded 5 years ago
MODERATORS
 

edit: get the script for yourself here https://codeberg.org/CritBase111/Comicify

Someone sent me the comic you see attached to the post, and I thought, hey, that seems like something you could automate. Put 4 images in a folder, run a script, and it automatically lays them out in a 2x2 grid.

With Crush and deepseek it basically writes itself. I'm actually kinda surprised at how well it's doing. There was just one bug that I sent to Claude to fix.

I'm putting the examples in an imgur link because they're still quite heavy on disk space and I don't want to overwhelm the server: https://imgur.com/a/bTiHV4b (yes the pictures make it kinda hard to understand but I'll try to make a real comic with it eventually)

It's difficult to get other people hyped about a work in progress lol but hopefully this makes sense.

It's a python script and this is how you'd run it:

options:
  -h, --help            show this help message and exit
  --folder FOLDER       Path to folder containing comic panels
  --panels {1,2,3,4}    Number of panels to arrange (1-4). Not required when using --all
  --gutter GUTTER       Gutter size between panels in pixels (default: 15)
  --border BORDER       Border size around panels in pixels (default: 0)
  --border-color BORDER_COLOR
                        Border color (CSS color name or hex code, default: black)
  --gutter-color GUTTER_COLOR
                        Background/gutter color (CSS color name, hex code, or "transparent"|"none", default: white)
  --margin MARGIN       Margin multiplier relative to gutter size (default: 2.0, meaning 2x gutter)
  --layout {horizontal,vertical,h,v}
                        Layout direction for 2 and 3-panel comics (default: horizontal). Use "h" or "v" as shorthand.
                        For 4-panel, use "h" or "v" for linear layouts, omit for 2x2 grid.
  --all                 Generate all possible combinations (1, 2, 3, 4 panels with all layouts)

Examples:
  python Comicify.py --folder "Comics/My first comic" --panels 4
  python Comicify.py --folder "Comics/My first comic" --panels 4 --gutter 20
  python Comicify.py --folder "Comics/My first comic" --panels 4 --layout h
  python Comicify.py --folder "Comics/My first comic" --panels 2 --layout v
  python Comicify.py --folder "Comics/My first comic" --all
  python Comicify.py --folder "Comics/My first comic" --panels 3 --gutter-color none

If this doesn't speak to you basically you would download the .py file, and run one of the examples above. The --all flag makes all possible outputs (1, 2, 3 or 4 panel in all layouts). I also plan on adding "--reverse" to handle right-to-left order. you can see the examples in the imgur link, I included the sample code for some of them.

Deepseek wrote all of this, and it only costs like... a dollar or so. It's not the best at coding but it's so, so cheap that I fear I may spend all my savings on it lol. I didn't write a single line of code, just told it what I wanted (with more or less details) and it got it right on the first try. Now I'm just adding new functionalities to it.

I think one HUGE thing with LLM coding is it can go beyond what you know, so even if you can code it can do things you wouldn't necessarily do or know about.

I think this has uses for agitprop, if you want to make quick memes in a comic format for online or offline use. This is just one part of potentially a much bigger pipeline - I was thinking of having a simple gui afterwards you can send the output to, where you can add speech bubble stickers and write into them too, or like for one panel comics just write under it. Also with LLMs you can easily transpose this code to use javascript instead, or whatever else you want.

Oh if you send me a few pictures to comicify I can run them and show you the results. Script will not be available for download until it's fully ready.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] Tabitha@hexbear.net 5 points 2 days ago (1 children)

I'm confused, is the art itself AI generated, or did you just ask an AI to assemble the paneling?

[โ€“] CriticalResist8@lemmygrad.ml 7 points 2 days ago* (last edited 2 days ago)

So there's 3 layers basically:

  • The paneling is handled by a plain python script (comicify. py), it's what assembles the images into the various layouts.
  • The script can use any image files you want as long as it's a png, jpeg, and so on.
  • The code for the script was written with an LLM (Deepseek), through an agentic client. An agentic client gives the LLMs tools to work on a codebase and basically understand it better and have some agency. So if you use deepseek on the web interface, it follows the User prompt -> Assistant generation -> Stop process. 1 input, 1 output, wait. You can make deepseek on the web interface code a script, but then you have to save the code, run it, report back any errors, repeat. With an agent, it takes care of debugging, figuring out the problems it comes across, etc. It does a lot more operations but it fixes everything by itself, and it's also able to work on more than one file at a time. It's kinda like having your own dev.

The images in the imgur link (the cats on the sofa) were quickly AI generated so I could have same resolution images for the prototype script, before I integrated resolution handling.

What we have now after all the LLM work has been done is a python script that you can run on your machine, and this is what produced the imgur link examples (and the other examples in this thread) - no AI is called by the script, it's plain python :)

The comic attached to the post is the one that gave me the idea for this script.