Images,
and the systems
that make them.

artist-led imaging systems by Dominic Hawgood

Creative technologist, bridging creative and engineering. I design, build and consult on AI workflows and systems for studios, agencies, production companies and image‑led brands.

Study 02 — liquid chrome folding into a seam
Typewriter Scans — land shell

01 / typewriter scans

Neandertal — the cave mouth, light dropping through the opening

03 / neandertal

02 / comfy bridge

Restoration Engine — a portrait restored from a low-resolution source

05 / restoration engine

Portrait Performance System — a head in profile, the fitted head's normal map on the left meeting the finished render on the right

06 / portrait performance

Casting Out the Self — the scanned Buddha head, in profile

casting out the self

Chasing Demons in the Night

chasing demons in the night

The Anointing Water

the anointing water

Under the Influence

under the influence

Archive, 2012–2020→

[fig. 1]generated from brief [doc. 1]

A generated frame — the character striding away across rock

03 / system · prompt compilation

Banana Stack

contents
7 stills · 6 references · 1 film · 1 canvas · 1 figure · 1 brief
models
Gemini 2.5 Pro · Nano Banana 2.1 · Gemini 3 Pro Image
made with
ComfyUI · Python · Cursor · Antigravity · Comfy Bridge

Banana Stack is a prompt compilation system: a suite of custom ComfyUI nodes that turns a creative brief into an executable image instruction. The brief is the only interface. The system reasons over the whole brief, resolves its constraints through an explicit hierarchy and compiles a single instruction, so the user never assembles a prompt.

self-initiated · not commissioned by or affiliated with Nike

[fig. 2]banana stack · 1:00

The film runs one brief through the nodes: the brief read field by field, compiled into a single instruction, and the images it produced. It is not a free-form creative assistant. Statements in a brief that a camera could record become instructions; the rest only steer how the image is described.

A brief and the image it produced

The brief is written with Brief Director, a skill that interviews the user until every field is filled. It is then run unchanged. This one produced [fig. 1], [fig. 3] and frame b in [pl. ii].

[doc. 1]brief

Object
Nike Air Max Plus “Rainbow” sneaker with a multicolour gradient textile and synthetic upper, moulded TPU exoskeletal cage, curved structural overlays, visible Air cushioning units, layered midsole, rubber outsole, lace fastening and distinct glossy-to-matte surface transitions. Preserve authentic model geometry, colour placement, branding and proportions. Worn on both feet by a single character dressed in charcoal and black layered outdoor clothing.
Usage Context
Ad
Business Intent
Sell
Hard Exclusions
- Urban streets, sunset cityscapes and forest paths
- Summit celebrations and victory poses
- Trail-running races and exaggerated athletic posturing
- Generic expedition styling and oversized technical equipment
- Artificial rainbow effects, coloured atmospheric lighting and fantasy terrain
- Incorrect sneaker geometry, altered Air units and anatomically impossible movement
Core Message
The Nike Air Max Plus “Rainbow” maintains its expressive colour identity and distinctive design presence beyond the city, while its visible cushioning and construction remain clearly readable during movement across uneven alpine terrain.
Audience
Style-conscious, design-aware adults aged approximately 20–40 who value expressive sneakers, contemporary streetwear and unconventional outdoor styling.
Narrative Anchor
A solitary individual carries an unmistakably urban design language into the high Alps. The shoe's synthetic colour and sculptural structure contrast with the exposed, mineral landscape while remaining part of a believable moment of exploration.
Scene Action
The character makes a dynamic, extended stride between uneven alpine rocks. The rear foot pushes off a stable stone while the leading foot advances toward another surface. Natural body rotation, arm counterbalance and clothing movement communicate genuine forward momentum.
Functional Proof Points
- Accurate Rainbow gradient, cage structure and Nike Air Max Plus silhouette
- Visible Air cushioning chambers and layered midsole geometry
- Believable outsole contact, foot alignment and weight distribution
- Readable textile, synthetic overlay and glossy-to-matte material transitions
Talent Physical Anchors
One full-body adult character, naturally proportioned, wearing dark layered technical-casual clothing with restrained branding. Dynamic walking stride with clear separation between feet, natural knee flexion, torso counter-rotation and arms balancing forward movement. Both shoes visible and unobstructed. No direct engagement with the camera.
Environmental Constraint
High-altitude alpine landscape with fractured grey stone, exposed rock faces, lichen, residual snow, distant ridgelines and pale blue sky. Uneven terrain with physically plausible footholds. Open mountain atmosphere, long sightlines and natural variations in stone elevation.
Stylistic Guardrails
- Lighting: Direct high-altitude sunlight / Upper-side direction / Hard defined shadows with cool skylight fill / Controlled high contrast
- Camera: Medium-wide full-body environmental framing / Low three-quarter angle / 35mm wide lens character, approximately f/8 / Deep environmental focus / Frozen dynamic movement
- Composition: Candid editorial in-situ / Character positioned slightly off-centre / Expansive mountain negative space / Rainbow footwear as dominant colour accent, with body movement and ridgelines providing secondary hierarchy
- Post: Clean cool-neutral colour grade, controlled highlights, retained natural surface texture, no exaggerated saturation or artificial atmospheric effects
Tone
Confident, elemental, assured
Archetype
EDITORIAL_REALISM
Funnel Stage
DESIRE_ASPIRATION
Audience Preset
Cultural Literacy
Truth Gate
PERCEPTUAL_TRUTH
Subject Type
Talent With Product
Primary Read (300ms)
Rainbow footwear in dynamic movement against subdued alpine rock

[fig. 3]the image it produced

The image the brief produced — the character in mid stride between alpine rocks, the trainers the one strong colour

The references

Six reference images go in with the brief, each tagged by its role. The talent was made with the Portrait Performance System.

[pl. i]references

atalent

Reference — the talent: a face with long pink hair, on white

bwardrobe

Reference — wardrobe: black, white and orange shorts with a large printed logo

cwardrobe

Reference — wardrobe: a black oversized T-shirt with a yellow logo

dwardrobe

Reference — wardrobe: a pair of tie-dye socks

eproduct

Reference — the product: a pair of trainers in a pink-to-yellow gradient

flocation

Reference — the location: an alpine peak above pines
references include retailer photographs

The pipeline, from brief to image

[fig. 4]pipeline

Banana Stack pipeline. Before the nodes, three language-model stages: Brief Director, a skill, interviews the user and writes the brief; the Brief Reducer, a Gemini node, extracts the brief into a fixed schema and declares the gate; the Advisory System, a Gemini node, recommends the three settings. The Advisory Decision Splitter extracts those settings, extracting only and never inferring; it overrides the Archetype and Audience nodes and passes the predicted gate to the Compiler. The input nodes: Archetype offers ten visual strategies, Audience six funnel stages and six audience presets, Brief holds the reduced brief as facts only in twelve fields, and Visuals holds the format and up to ten references. The Composer takes up to ten reference images, squares them and sizes them alike, and feeds Visuals. The Compiler assembles one prompt in a fixed order: system core, optional predicted gate at highest authority, archetype, audience and funnel, brief, visuals, prompt blueprint, output gate. It halts with no output if the prompt contains a token banned for the chosen archetype and funnel stage. An offline autoresearch loop tunes the rules: it runs synthetic briefs with traps, grades them and patches config.py while nodes.py stays frozen. The Resolver sends the compiled prompt to Gemini, which resolves one gate by rule — physical truth, the default, what is physically present; perceptual truth, how it is seen; or symbolic truth, what it means — starting at physical and escalating only when the inputs require it. It routes the brief: scene action, proof points, talent, lighting, framing and optics to physical truth; setting to context as physical affordances only; tone, narrative and message choose the gate and are never described. Conflicts resolve in the order gate, funnel, reasoning rules, archetype, brief. It writes one paragraph of plain text with no evaluative words. Resolver Execution sends that paragraph with the composed references to a Gemini image model and returns images.the brief, then the inputscompiler — one prompt, in a fixed orderresolution — Gemini reads the prompt and applies its rulesBrief Directorskillinterviews · writes the briefBrief ReducerGeminifixed schema · declares the gateAdvisory SystemGeminirecommends the three settingsAdvisory Decision Splitterextracts only, never infersoverrides archetype and audienceArchetype<active_archetype>one of 10 visual strategiesAudience<funnel_phase>6 funnel stages · 6 audiencesBrief<client_brief>facts only · 12 fieldsVisuals<input_manifest>format · up to 10 referencesreferencesComposerup to 10 reference imagessquared and sized alikeCompilercompiled promptassembled in this order01system corethe rules02predicted gateoptional · highest03archetype04audience and funnel05brief06visuals07prompt blueprintoutput structure08output gatefinal enforcementhalts on a forbidden tokentokens banned for the chosenarchetype and funnel stageno warning · no outputtunes the rulesautoresearch loopofflinesynthetic briefs with traps, gradedpatches config.py · nodes.py frozenResolverGemini · textresolves one gate — by rule, never chosen in the interfacephysical truthwhat is physically present · the defaultperceptual truthhow it is seen · optics, compositionsymbolic truthwhat it means · built, never statedstarts physical · escalates only when the inputs require itroutes the briefscene action, proof points, talentphysical truthlighting, framing, opticsphysical truthsettingcontext · physical affordances onlytone, narrative, messagechoose the gate · never describedwhen rules conflictgate › funnel › reasoning rules › archetype › briefwrites one paragraph · plain text · no evaluative wordsthe paragraphResolver ExecutionGemini · imagethe paragraph, with the composed referencesaspect ratio · resolution · batch → imagescomposed referencesdashed — language models outside the node suite

[fig. 5]comfyui canvas · reducer · adviser · inputs · compiler · resolver · execution

The Banana Stack workflow on one ComfyUI canvas: the brief, the reducer and the advisory system, the Archetype, Audience, Brief, Visuals, Compiler and Composer nodes, the two resolvers, the six references and the generated image

[pl. ii]further frames

aground contact

A second brief — the leading foot settling on a raised stone

bsame brief

The same brief, another frame — the character striding across alpine rock, seen from lower down

cproduct portrait

A fourth brief — the unworn shoe resting against fractured stone

dstep down

Another brief — the character stepping down across rock below an alpine peak

elift-off

A third brief — the trailing foot pushing off, the outsole showing