← Creative Lab
Personal R&D — 2025

ae-nano-flex

Generate AI imagery inside your timeline, without breaking a single expression

Generate AI imagery without leaving After Effects — and drop it on the selected layer without breaking a single expression or mask.

5
Hot-Swappable Providers
14
Keyframes Preserved
3
Effects Preserved
The hard part

replaceSource(item, true) swaps the artwork underneath everything already riding on the layer — three effects, two masks, one expression, fourteen keyframes — without ever recreating the layer itself.

Client
Personal R&D
Role
Creator / Developer Panel Architecture / Provider Abstraction
Timeline
2025
How one generation reaches a layerpress play, or step it

The panel runs in ExtendScript, which has no HTTP client and no JSON parser, so it speaks raw HTTP over a TCP socket to a local Node bridge. The bridge dispatches to a provider. Providers never return a value — they write files into the job directory, and the server scans it afterwards. That is why a shell script is a valid backend. The result comes home through replaceSource, which swaps the artwork underneath everything attached to the layer.

After Effects ScriptUI panel ExtendScript · ES3 no fetch · no JSON Socket → raw HTTP Selected layer 3 effects · 2 masks 1 expression · 14 keys ✓ all of it preserved Node bridge 127.0.0.1:4455 Express · queue POST /jobs providers/ — read from disk at boot fal.jsqueue + SSE comfyui.jslocal graph automatic1111.jslocal command.jsany binary drop in a file, restart — done outputs/{jobId}/ the contract gen_00.png thumbs/ manifest.json Cut out provider-agnostic → transparent PNG replaceSource(item, true) the layer is never recreated
STEP 1/8 Select a layer, describe the change.
ae-nano-flex v2
What came through the panelreal files from bridge/outputs — job ids attached

The job directory is the contract, so every generation the panel ever ran is still on disk, named by its job. A few of them, straight from bridge/outputs/ — the football comps and comic panels are layer-replacement tests on real comps; the four aliens are one job, four generations — the spread a single click of Generate hands back to the layer.

Generated football pile-up test frame
msxxc1h4 · comp-replacement test
Generated night city street
mswql8ea · city panel, NYC test
Generated comic panel
mswq1fyo · comic-panel test
Generated comic action panel
mswq5ios · comic-panel test
Generated caped figure panel
mswqqbg3 · character test
Aliens playing football, take 1
msyxubz3 · gen_00 — the prompt…
Aliens playing football, take 2
msyxubz3 · gen_01 — …same job…
Aliens playing football, take 3
msyxubz3 · gen_02
Aliens playing football, take 4
msyxubz3 · gen_03
What actually worksand what it is still missing

Built and working

Auto-discovers providers by scanning providers/; all five (fal, replicate, a1111, comfyui with a full 7-node graph and websocket progress, shell-command) implement the contract for real; the panel UI builds itself from each provider's capability schema; replaceSource(item,true) preserves expressions and masks; a curl-based HTTP shim covers ExtendScript's missing client.

Honest gaps

The README claims job history and caching — neither exists. There is a mode bug: fal, replicate and comfyui declare txt2img and img2img but never branch on it, so Edit and Variations silently fall back to plain text-to-image on three of the five providers.

After EffectsExtendScriptNodefal.ai ReplicateComfyUIA1111
The demoninety seconds, live

Type a prompt → watch the progress bar → hit Replace Selected Layer → show that the wiggle expression and the mask survived the swap. Then flip the provider dropdown and watch the whole parameter panel redraw itself from the new backend's schema.

Cost to bring back up: very low. cd bridge && npm install && npm start, set FAL_API_KEY, run the .jsx. The fal provider alone needs no local GPU.

Scope

Project Elements

Plugin DevelopmentProvider AbstractionSchema-Driven UIExpression-Safe ReplacementWebsocket ProgressWorkflow Integration
Next Project
SIMP →

Have a Project in Mind?

Animation direction, VFX and creative technology. Message me on LinkedIn or get in touch.