
Film assistant
BetaRemove unwanted objects in After Effects
Take unwanted objects out of a shot in After Effects: signs, logos, stands or crew, patched with the plate's own texture and grain and moving with the camera.
Runs in After Effects on your computer
- Best for
- Removing signs, logos, rigs and crew from a shot without a reshoot.
- Runs in
- After Effects 25.0 or later
- Time
- 15 to 30 min
- Cost
- The work in After Effects is free. NOLGIA generation inside it is priced as usual.
Already have an account? Sign in
Create a free account and NOLGIA Agent opens with this preset. It works in After Effects through the NOLGIA plugin.
Start it from your agent
Paste this into Claude Code, Claude Desktop, Cursor or any agent with NOLGIA connected, with After Effects open. The agent follows NOLGIA's workflow for this preset step by step, and asks before it changes anything big.
Use NOLGIA to remove the unwanted objects I point out from my shot in After Effects, keeping the texture and camera movement, and check the whole shot for patches and flicker.
In Claude Code it is also a command: /mcp__nolgia__after-effects-shot-cleanup. Open in Claude needs NOLGIA added to Claude as a connector.
What it does
Point out what should not be in the shot and the NOLGIA assistant removes it in your open After Effects project. It studies how the object and the camera move, picks the right method for each object, and builds a patch that carries the plate's own texture and grain, follows the camera and holds steady from the first frame to the last. Then it checks the whole shot for visible edges, sliding patches and flicker.
Your original footage is never changed. Each cleanup is its own layer with a mask, above the plate in a new comp, so you can adjust its feather, grain or keyframes yourself. A safety copy of your project is saved first, and you get a before and after video in your NOLGIA library.
You need After Effects 2025 or later and NOLGIA for Adobe. The work in After Effects is free. When a shot has no clean frame to borrow from, the assistant can make a clean plate with NOLGIA, priced as usual, and tells you the cost first. A few steps, like pressing Track, need a click from you, and the assistant tells you when.
Use cases
- A logo or a sign that cannot appear in the final cut
- A boom, a stand or a crew member caught in the frame
- Cleaning up a location shot before adding effects
The workflow
The written steps your agent follows in After Effects, the same for every agent: the rules every After Effects workflow keeps (a safety copy first, everything stays editable, a preview after each change), then this preset's own steps.
Read the workflow
Rules for every After Effects workflow
These instructions are served to the agent with every After Effects preset in the Film assistant category. The agent works through the NOLGIA Bridge tools (nolgia_app_*) on After Effects running on the person's own computer. Code for nolgia_app_run is ExtendScript.
Before anything changes
- Call
nolgia_app_status. If After Effects is not listed, stop and tell the person in two lines: install NOLGIA for Adobe from nolgia.ai/plugins, then open Window > Extensions > NOLGIA in After Effects and sign in. Do not guess or continue without it. - Call
nolgia_app_info. Read what is really open: the project file and whether it has unsaved changes, the active comp (size, frame rate, frames, layers with their types and effects) and the other comps. Describe it back in one sentence so the person can correct you. - If the project has a path, make a safety copy first with
nolgia_app_exportformataep(it copies the project as last saved, next to it, and never overwrites a file). If there are unsaved changes, ask the person to save first (or save withnolgia_app_saveonce they agree). If the project was never saved, ask where to save it and save withnolgia_app_savepath. - Ask only the questions the workflow lists. Offer a sensible default for each so the person can just say "go".
While working
- Work in small steps: one
nolgia_app_runper logical step, each returning a short summary inresult(comp names, layer names and indexes, frame ranges). Each run is one undo step in After Effects. - Never delete, rename, move or re-time the person's existing comps, layers or footage unless they asked. Build in a new comp named after the workflow (for example
NOLGIA Shot 010 comp) that uses their footage as layers, and put every item you add in a project folder named after the workflow. - Keep everything editable: effects stay live with their controls, masks stay masks, tracking stays as keyframes or expressions. No pre-rendering or "Convert to Layered Comp" unless the workflow says so.
- After each visible change, call
nolgia_app_preview(withcompandframe) and look at the image before moving on. If it looks wrong, fix it before the next step. Do not describe a result you have not seen. - Renders run on the person's computer:
nolgia_app_exportmp4renders the comp through the render queue (H.264) and can take minutes. If a tool hands back acommand_id, follow it withnolgia_app_commandinstead of starting it again. - If code fails, read the error (it names the line and shows it), fix the code and try once more. After two failures on the same step, explain what failed in plain words and ask how to proceed.
ExtendScript that bites (After Effects)
- It is ES3: no
let,const, arrow functions, template strings,Array.prototype.indexOf,maporforEach, and noJSONobject. Words ES3 reserves (short,int,class,char,final,native...) cannot be variable names. Return data by settingresult(or as the last expression); the plugin turns it into JSON. - Collections count from 1:
app.project.item(1),comp.layer(1)(the top layer). Adding a layer puts it at index 1 and shifts every other index, so keep references to layers, not their numbers. app.project.activeItemis only the comp in the viewer. Open a comp withcomp.openInViewer()before relying on it, or find comps by name.- Times are seconds. Frame n of a comp is
n / comp.frameRate; the plugin'sframearguments count from 0 at the comp's first frame, whatever its start timecode. - Add effects and reach properties by match name, never by display name, which changes with the app's language:
layer.property("ADBE Effect Parade") .addProperty("ADBE Gaussian Blur 2"),layer.property("ADBE Transform Group") .property("ADBE Position"). Do not guess match names:app.effectslists every installed effect'sdisplayNameandmatchName(Keylight is"Keylight 906", Match Grain"VISINF Grain Duplication", CC Rainfall"CSRainfall"). An effect's parameters are reached by index or by their own match names; list them once (effect.property(i).name) before setting them. - Popup (menu) parameters count from 1. Some values (custom ones such as histograms) throw when read or turned into text: read only what you need.
- Adding, removing or moving an effect (
addProperty,remove,moveTo) makes existing references to the effects on that layer invalid ("Object is invalid"), and every line after that fails: get them again by name or match name after each change. - Mask vertices are in the layer's own pixels, not the comp's: on a scaled or moved layer, convert the comp points first, and on a flipped layer (negative scale) mirror them.
- Track mattes can point at any layer:
layer.setTrackMatte(matteLayer, TrackMatteType.LUMA)(orALPHA), and the matte layer is switched off for you.comp.layers.precompose(indices, name, true)moves layers into a new comp and leaves one layer in their place. - A step that fails halfway keeps what it changed before the error. Write steps so they can run twice (find the layer or effect before adding it again).
- Menu commands (
app.executeCommand(app.findMenuCommandId("...")), for layer styles and the like) act on the selected layers and need the comp open in the viewer (comp.openInViewer()). - A property with keyframes ignores
setValue; usesetValueAtTimeor remove the keyframes first. After setting an expression, readprop.expressionError: an empty string means it works. - Solids made with
layers.addSolidland in the project's Solids folder; footage fromnolgia_app_importlands inNOLGIA imports. - The 3D Camera Tracker, Warp Stabilizer and Content-Aware Fill analyse in the app, but their buttons (Create Camera, Track, Generate Fill Layer) cannot be pressed from a script. Set the effect up, then ask the person to press the button and tell you when it is done.
- A modal dialog in After Effects (a warning at start up, a missing font) holds every script until someone closes it. If a command sits in
runningfor no reason, ask the person to look at After Effects.
Using NOLGIA where it helps
- A missing element (a sky, a background plate, a prop, an atmospheric layer): make a still with
nolgia_text_to_imageor a short clip withnolgia_text_to_video/ image to video, then bring it in withnolgia_app_import. For an element that needs a clean edge, generate it on a plain background and cut it out withremove-background. - These generations cost credits: say what you are about to make and roughly what it costs (read it from the tool's estimate) before you run it, and make it only when After Effects cannot build it (procedural fog, rain, glows and grain are free). Work in After Effects itself is free.
Finishing
- Save the project (
nolgia_app_save), never over a different file. - Export a preview with
nolgia_app_export(mp4of the finished comp, orpngfor a still) so the person has it in their NOLGIA library, and show a still. - Tell the person, in a few lines: what you built, where it lives (comp and folder names), the one or two controls they are most likely to adjust and where those are, and the path of the safety copy.
Remove unwanted objects in After Effects
Take something out of a shot (a sign, a stand, a crew member, a logo, a boom) so nobody can tell it was there: the patch carries the plate's own texture and grain, moves with the camera, and holds steady from the first frame to the last. The plate is never changed; the cleanup lives on layers above it.
Ask
- What should go? Preview the first, middle and last frames first and list what you see that could be unwanted, so the person can point at it by name. (Default: the objects they named.)
- Over which frames? (Default: the whole shot.)
- Should NOLGIA make a clean plate when the shot has none? It costs credits (about 4 to 8 for one edited frame); say so. (Default: try a patch from the plate's own pixels first.)
Build
- A new comp over the plate. Make
NOLGIA <plate name> cleanupwith the plate's settings, the plate at the bottom, and a project folderNOLGIA Shot Cleanupfor everything you add. - Study the motion. Preview the object every 12 frames (and every 2 to 4 frames where it moves fast). Write down its box on each of those frames (left, top, right, bottom in comp pixels), and compare a static feature (a trunk, a corner, a sign) on the first and last frame to see whether the camera moves: locked, a pan, a push, handheld. The method depends on it.
- Pick the method for each object.
- Locked camera, object never moves: one clean frame of that area is enough. Take it from a frame where the object is not there, or from nearby texture (a copy of the plate, offset so clean ground covers the object), or have NOLGIA make one: export that frame with
nolgia_app_exportpng, and give it tonolgia_image_to_imageas the source image (image_url) with an editing model (flux-kontext-pro, about 4 credits) and a prompt that removes only the object and its shadow and keeps everything else. A model that only takes the frame as a loose reference paints a different scene. Import the result withnolgia_app_import. It may come back at another size or aspect: scale it to the plate's width, centre it, and check with the Difference blend mode that everything outside the object goes black (then set it back to Normal). - Moving camera: the patch must move with the plate. Set up Track Motion (or Mocha) on the plate and ask the person to press Track (scripts cannot), then apply the track to the patch. If they cannot, keyframe the patch's position (and scale for a push) by eye on the frames you studied and check the frames in between.
- Moving object on a busy background: Content-Aware Fill does this best: draw the mask around the object (mode Subtract, keyframed to follow it), then ask the person to open Window > Content-Aware Fill and click Generate Fill Layer. Say plainly that a script cannot press that button.
- Reveal the patch through a mask. On the patch layer, a mask around the object and everything the Difference check showed changed, which often includes a long shadow or a reflection well outside the object, feathered 8 to 20 px so the edge disappears into the texture, keyframed on the studied frames if the object or camera moves. Masks are in the layer's own pixels: on a scaled patch, convert the comp points you measured. Name the layer
Cleanup <object>. - Match texture. A still patch has no grain and looks painted: add Match Grain (
"VISINF Grain Duplication": parameter 1 Viewing Mode 5, Final Output; parameter 2 the plate as noise source). On a surface that moves (grass, water, leaves), a still patch looks frozen: add Turbulent Displace (Amount 3 to 5, Size about 20, an Evolution expression such astime * 140) before the grain so it moves like its surroundings. If the plate's exposure or colour drifts (clouds, flicker, auto exposure), add Levels on the patch and keyframe it where the surroundings change. - Keep it editable. No pre-comps unless needed, no rendering the patch into the plate. The plate stays untouched at the bottom.
Check
- Preview every 12 frames across the whole shot at full width, and two frames in a row where the object moved fastest. Look for: a visible edge or a soft blob, texture that is too smooth or frozen on a surface that should move (compare how much the patch and the area next to it change between two frames), a patch that slides against the plate, and brightness that jumps from frame to frame (flicker).
- For a clean plate, check alignment in Difference mode on a few frames, then set it back to Normal.
- Fix what you find (more feather, a bigger mask, more grain, more keyframes) and preview those frames again.
Deliver
Save the project. Export an mp4 of the cleanup comp, and a before and after: a second comp NOLGIA <plate name> before-after with the plate above the cleanup comp, revealed by an animated mask and a thin split line that sweeps across the frame, exported as mp4. A slow push-in helps, as long as it never drifts farther than its zoom covers (check the last frame for black edges). Tell the person which objects were removed and how, which frames to look at closely, and the controls: each Cleanup layer's mask feather and expansion, its grain, and its keyframes.
Try it in After Effects.
Install the free NOLGIA plugin for After Effects, sign in, then ask your agent.

