I03 — Four press photos, a carousel ready to post
The photos of an event arrive in the evening; the carousel should be out before the morning. It needs a cover that stops the thumb, slides that look like one story and not four photographers, and words: a caption per slide, a text for the post, hashtags, and — for everyone who reads with a screen reader — an alt text per picture. In two languages, for this account.
This example does it in one run from four photos and two lines. The model draws a cover with its title in it; the deterministic steps give every slide the same look, size, number and mark; a vision model looks at the photos and writes the words, as data the publishing tool can read.
The exact graph is the workflow (as a diagram).
The case
Section titled “The case”A science account posts a recap of a night launch from NASA’s press photos — on the pad, lift-off, the reflection in the water, the ascent — credited to NASA.
| Input | Who provides it | Reference run |
|---|---|---|
| Photo 1–4 | the photo desk, in story order | NASA press photos of the Artemis I launch |
| Event | the editor | Artemis I lifts off |
| Where and When | the editor | Kennedy Space Center · 16 November 2022 |
| Account Mark | the account | its orbit mark, an SVG |
What it shows
Section titled “What it shows”- A cover with words in it. A Text Template writes the brief from the two lines; Image Transform on GPT Image 2 redraws the last photo as a vintage travel poster with the title and the line in it, spelled as given and kept clear of the edges; Topaz doubles it. The cover is then placed whole on the slide — a finished page is never cropped and never gets a badge over its words.
- One look for four photographers. The same Curves on every photo, the same 1080 × 1350 frame, a number top right and the mark bottom left: four photos read as one story (Consistency and brand).
- Words that come from the pictures. Image Analysis reads the four photos in one question and returns JSON: per slide an alt text (at most 160 characters) and a caption in English and Italian, then the post in both languages and eight hashtags. The question says to describe only what is visible and not to invent people, names or numbers.
- Almost all of it free. Ten credits buy the cover; everything else — look, sizes, numbers, marks, the sheet — costs nothing, and the words a few hundredths of a credit.
The workflow, step by step
Section titled “The workflow, step by step”| Phase | Steps | What they do here |
|---|---|---|
| A — cover | A1 Write the Cover Brief, A2 Poster Cover, Text by the Model, A3 Cover Upscaled × 2 |
the brief from Event and Where and When; GPT Image 2 Edit, quality: medium, 3:4; Topaz × 2 in illustration mode |
| B — slides | B0 Mark at 90 px; B1 Cover on 1080 × 1350, Never Cropped; per photo Bka House Look, Bkb 1080 × 1350, Bkc Number k/5, Bkd Sign Slide k |
the cover placed whole on a cream slide; each photo graded, cut to 4:5, numbered with Text on Image, signed with Overlay |
| C — words | C1 Write the Question, C2 Captions, Alt Texts and Post |
the question from the two lines; Image Analysis with the four photos, response_format: json_object |
| D — approval | D1 Contact Sheet |
a Grid of the five slides |
The reference run
Section titled “The reference run”
The words, as delivered (the JSON), begin:
{ "slides": [ { "alt_text_en": "A tall white-and-orange rocket begins lifting from a launch tower at night, surrounded by bright flames and billowing smoke.", "caption_en": "Fire blooms beneath the white-and-orange rocket as it rises from the tower into the night.", "caption_it": "Il fuoco fiorisce sotto il razzo bianco e arancione mentre si solleva dalla torre nella notte." }, … ], "post_en": "A night launch turns the pad into a sea of fire. Smoke billows outward as the rocket climbs. Photos: NASA", "post_it": "Un lancio notturno trasforma la rampa in un mare di fuoco. Il fumo si espande mentre il razzo sale. Photos: NASA", "hashtags": ["#ArtemisI", "#NASA", "#RocketLaunch", "#Spaceflight", "#MoonMission", "#NightLaunch", "#SpacePhotography", "#KennedySpaceCenter"]}| Output | Result |
|---|---|
slide_1 |
the cover, 1080 × 1350 — full size |
slide_2 … slide_5 |
the four photos, 1080 × 1350, numbered and signed |
captions |
JSON: four slides with alt text and captions in two languages, the post in two languages, eight hashtags |
contact_sheet |
the five slides side by side, for approval |
10.1 credits: 5 for the cover, 5 for Topaz, 0.08 for the words. The words change a little at every run; read them before posting, as you would a colleague’s.
Adapt it
Section titled “Adapt it”- Another event. The workflow knows nothing about rockets: a match, a concert, a product launch, a graduation — change the photos and the two lines.
- Another look. The cover’s style is a sentence of
A1; the house look is the Curves ofBka, or a LUT of your own. - More slides. Add a photo input and a branch of four
Bsteps, and one more picture toC2; or move to a template when the count varies (Layouts, batches and codes). - Other languages. Ask
C2for them; the vision model writes many.
Install it
Section titled “Install it”node madoo-install-example.mjs i03-event-carousel --api <your Madoo API URL> --key <key.json> --run --save carouselPhotos: NASA/Joel Kowsky, Artemis I launch, Kennedy Space Center, 16 November 2022 (NASA images, public domain). The account and its mark are invented for this example and are not affiliated with NASA. The cover and the words were made by the models named.