Film assistant

Beta

Remove 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.

Starter prompt

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

  1. 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.
  2. 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.
  3. If the project has a path, make a safety copy first with nolgia_app_export format aep (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 with nolgia_app_save once they agree). If the project was never saved, ask where to save it and save with nolgia_app_save path.
  4. 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_run per logical step, each returning a short summary in result (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 (with comp and frame) 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_export mp4 renders the comp through the render queue (H.264) and can take minutes. If a tool hands back a command_id, follow it with nolgia_app_command instead 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, map or forEach, and no JSON object. Words ES3 reserves (short, int, class, char, final, native ...) cannot be variable names. Return data by setting result (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.activeItem is only the comp in the viewer. Open a comp with comp.openInViewer() before relying on it, or find comps by name.
  • Times are seconds. Frame n of a comp is n / comp.frameRate; the plugin's frame arguments 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.effects lists every installed effect's displayName and matchName (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) (or ALPHA), 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; use setValueAtTime or remove the keyframes first. After setting an expression, read prop.expressionError: an empty string means it works.
  • Solids made with layers.addSolid land in the project's Solids folder; footage from nolgia_app_import lands in NOLGIA 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 running for 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_image or a short clip with nolgia_text_to_video / image to video, then bring it in with nolgia_app_import. For an element that needs a clean edge, generate it on a plain background and cut it out with remove-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

  1. Save the project (nolgia_app_save), never over a different file.
  2. Export a preview with nolgia_app_export (mp4 of the finished comp, or png for a still) so the person has it in their NOLGIA library, and show a still.
  3. 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

  1. 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.)
  2. Over which frames? (Default: the whole shot.)
  3. 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

  1. A new comp over the plate. Make NOLGIA <plate name> cleanup with the plate's settings, the plate at the bottom, and a project folder NOLGIA Shot Cleanup for everything you add.
  2. 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.
  3. Pick the method for each object.
  4. 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_export png, and give it to nolgia_image_to_image as 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 with nolgia_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).
  5. 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.
  6. 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.
  7. 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>.
  8. 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 as time * 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.
  9. 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.

Get the After Effects plugin