> ## Documentation Index
> Fetch the complete documentation index at: https://docs.beeble.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Effect Generator

> Describe an effect in a sentence and get a GPU effect with its own controls

> [!NOTE]
>
> This page covers the **Effect Generator** node in detail. For the full node
> catalog, data types, and keyboard shortcuts, see [Canvas](https://docs.beeble.ai/beeble/canvas.md).

**Effect Generator** turns a sentence into a real-time GPU effect. Describe the look — God Rays, Glitch, Old Film, Halftone — press **Generate**, and the node becomes that effect, with its own name, controls, on-preview overlays, and extra inputs when it needs them. It previews live on the node and exports at full resolution.

**Key features:**

* **Prompt to effect** — a sentence plus up to 4 reference images; the shader is written and checked for you
* **Generated UI** — up to 16 controls of 6 kinds, 8 kinds of on-preview overlay, up to 3 extra inputs
* **Conversational editing** — revise in a chat; every version can be restored or branched
* **Self-filling library** — accepted effects are saved and reusable from the Add menu; selected accounts can submit one for review to make it public

***

## Quick start

**1. Add the node and connect a source**

Open the Add menu (`/` or `Tab`), pick **Effect Generator** under **AI Tools**, then **Create New Effect**. Connect an image or video to **Source**. **Mask** is optional: white (or opaque) applies the effect, black keeps the source.

**2. Describe the effect**

Describe the look, the controls you want, and anything you want to drag on the preview. Add up to 4 reference images (PNG, JPEG, WebP); point at one with `@[Ref 2]`.

Effect Generator node before generation: prompt box, two reference images, and the Generate button

Effect Generator
Describe the effect you want… e.g. "halftone dots
with adjustable size and ink color"
@Ref 1
@Ref 2
\+
Type @ in the prompt to refer to a reference image.
Generate ✦ 20

**3. Generate**

One click is one generation (20 credits, shown on the button). Repairs inside
the same click are free. Expect one to two minutes. On failure the node
returns to your prompt, text intact.

**4. Adjust**

Drag an overlay on the preview or type a value in the panel. **Mix** blends
source and effect. **How to use** in the footer explains every control.

**5. Revise and reuse**

**Edit** opens the chat history; describe the change and press **Update effect**. Every round is a version you can restore or branch from. Accepted effects are saved to your library and reusable from **Saved effects** or the Add menu.

***

## The node at a glance

Annotated Effect Generator node: inputs on the left, preview with overlays, generated controls, How to use row, Update effect button, and the output

Depth Fog

Edit

Outer 35%

Controls

Reset all

Fog color

\#8FB4D9

Fog start

0.35

Invert depth

Mix

1.00

i

How to use ›

Update effect ✦ 20

Source \*

image or video · required

Mask

optional · white = effect, black = source

Prompt

optional · connect a Text node to drive it

Depth Map \*

extra input · added by the effect · required

up to 3 extra inputs

image, video, or either

Output

image, or video if any

input is video

1

2

3

4

5

6

7

<ol>
  <li>
    **1**

    **Preview** — live render; overlays appear while the node is
    selected
  </li>

  <li>
    **2**

    **Controls** — generated per effect; **Mix** is
    always last
  </li>

  <li>
    **3**

    **How to use** — the generator's notes on this version
  </li>

  <li>
    **4**

    **Generate / Update effect** — one click, one charge
  </li>

  <li>
    **5**

    **Saved effects** and **Edit** — library and
    chat history
  </li>

  <li>
    **6**

    **Inputs** — Source, Mask, Prompt, plus up to 3 the effect
    adds
  </li>

  <li>
    **7**

    **Output** — image, or video if any input is video
  </li>
</ol>

***

## On-preview overlays

A **place**, **region**, **direction**, or **light** in the effect becomes an overlay instead of a slider. Overlays show while the node is selected; dragging updates the preview and everything downstream live, one undo step per drag, with a tooltip for the value (`Radius 25%`, `Angle 30°`). Positions are percent of the frame, radii percent of its shorter side. Several of one kind can coexist, and an overlay can sit outside the frame.

Point overlay

Center

PointWhere. A center or an origin — drag the dot.

Say: "a spot I can drag on the preview", "centered where I click".

Circle overlay

Radius 25%

CircleA spot with a size. The dot moves it, the ring resizes it.

Say: "a circle I can drag and resize", "a spot with a falloff radius".

Circle with direction overlay

Angle 30°

Circle + direction

A knob on the ring aims the effect and sets its reach. Beams, rays,
streaks, sweeps.

Say: "a beam aimed with an angle handle", "a streak in a direction I set
on the preview".

Line overlay

Split

Line

Two ends you can drag; the body moves both. Wipes, splits, tilt-shift
bands, gradients.

Say: "along a draggable line", "one side of a line", "a band I can tilt".

Oval overlay

Radius 30% × 20%

Oval

Move, stretch each axis, scale from the rim, rotate from the outer knob.
Iris blur, bulge, "except the face".

Say: "an oval I can move, resize and rotate", "an iris".

Box overlay

Size 48% × 60%

Box

Corners and edges resize; drag inside or on the border to move. Windows,
letterboxes, regions.

Say: "a box I can drag and resize", "a rectangular window".

Soft circle overlay

Outer 35%

Soft circle

Full inside the inner ring, faded out at the dashed outer ring; the inner
never passes the outer. Vignettes, spotlights, light leaks.

Say: "with a soft edge", "feathered", "a vignette", "a spotlight".

Light ball overlay

Az 37° · El 21°

Light ball

A globe in the preview corner. Drag the light across it: the flat ring
turns it around the image, the upright ring raises or lowers it; behind
the image it draws hollow. Relight, rim light, specular.

Say: "where the light comes from", "relight it", "an on-preview light
direction".

> [!TIP]
>
> In the expanded view (**Expand**), **Overlays** toggles them and **Fit
> gizmos** pulls an off-frame overlay back into reach. A color the prompt says
> to pick from the image gets an eyedropper; while picking, the preview shows
> the untouched source.

***

## Controls

Controls sit in the panel under the preview: usually 2 to 6, up to 16 counting overlays. Each has a label and an optional (i) tooltip. A dropdown can show or hide other controls ("VHS" reveals Tracking noise, "CCTV" hides it). **Mix** is added to every effect; **Reset all** restores every default, Mix included.

Slider control

Softness

0.56

SliderStrength, size, speed — anything continuous. The number is editable.

Number control

Segments

8

NumberCounts and steps: segments, levels, taps.

Toggle control

Invert

ToggleA checkbox. Invert, glow only, swap sides.

Dropdown control

Preset

Night vision

Dropdown

Modes and presets. Choosing an option can show or hide other controls.

Color control with eyedropper

Key color

\#27C46A

Color

A swatch with a hex value. Colors meant to come from the image get an
eyedropper (5×5 average from the preview).

Direction control

Shift

x

y

Direction

A signed x / y offset with no place on screen: displacement, parallax,
channel split. Anything with a place on screen is an overlay instead.

Overlays are controls too: the panel lists each as number fields (percent for positions and radii, degrees for angles), and typing a value moves the overlay.

***

## Inputs

| Input | Accepts | Notes |
| - | - | - |
| **Source** \* | image / video | Always present, required. |
| **Mask** | image / video | Optional. White (or opaque) applies the effect, black keeps the source. |
| **Prompt** | text | Optional. The prompt is written on the node; connect a Text node to drive it from the graph. |
| **Extra inputs** | image, video, or either | Up to 3, labelled by the effect (Depth Map, Normal Map, Background plate…). All required. |
| **Output** | image / video | One output. Video whenever any connected input is a video. |

> [!NOTE]
>
> Wire the Depth Generator node, or the Depth / Normal / BaseColor / Roughness
> outputs of the [VFX Pass Generator](https://docs.beeble.ai/beeble/vfx-pass-generator.md) node, into
> extra inputs for focus blur, fog, relighting, or surface-aware point lights.
> Until every extra input is wired, the footer says what is missing: `Connect
>     Depth Map to run this effect.`

***

## Edit effect and chat history

**Edit** opens the chat history beside the node: every prompt and every version, oldest first. The version on the node carries a green **Applied** badge. Each response starts with a summary of what changed (long ones collapse), then **How to use** for every control and input, and any request that could not be delivered, with the reason.

Chat history panel: two prompts, two generated versions with the second applied, and the composer editing from version 2

Depth Fog

Chat history

×

You

Atmospheric fog from a depth map input: far pixels

fade into a fog color. Controls: fog color, fog start,

fog end, and density.

v1

9/11/2026

Depth Fog fades far pixels toward the fog color read

from the Depth Map input; Density sets how fast.

How to use

Connect Depth Map. Fog start and Fog end are depths

from 0 (near) to 1 (far); raise Density for thicker fog.

↺ Restore this version

✎ Edit from here

You

Add an Invert depth toggle for maps where 1 = near.

v2

from v1

✓ Applied

Added Invert depth. When on, the depth map is read

as 1 = near before the fog is applied.

Editing from v2

Describe the effect you want…

@Ref 1

Update effect ✦ 20

* **Revise** — type the change and press **Update effect**. The new version builds on the editing base (`Editing from v2` above the composer); the whole chat history goes along as context.
* **Restore this version** — puts that version's shader and defaults back on the node. One undo step, no generation.
* **Edit from here** — changes only what the next generation builds on; the node keeps the applied version until you generate. **Use current** returns to it.
* **Copy prompt** — every prompt in the history has a copy button.
* **How to use** in the footer jumps to the applied version's report; if something was left out, the row turns amber: `Some requests couldn't be implemented`.

***

## Saved effects and public effects

Every accepted generation is saved to your library under its generated name. The node renders from the shader frozen onto it, so the library never affects a working effect.

* **Saved effects** on the node opens the library and applies one to this node at default controls. Rows show name and control count; rename or delete from there.
* **Add menu → Effect Generator** lists **Create New Effect**, then your saved effects (most recently changed first), then **Public effects**. A saved effect drops onto the canvas as a ready node.
* **Submit for review** (selected accounts for now) sends the current version to the Beeble team. The node shows **Pending review**, **Published**, or **Resubmit for review**; a pending submission can be cancelled. Approved effects appear under **Public effects** for everyone.
* A **public effect** opens read-only with its prompt, How to use, and chat history — no Restore or Edit from here; your first edit forks it into your own saved copy. The history is a snapshot from submission time; reference images are never shared.

***

## Writing prompts that land

Describe the look, name the controls, and say what you want to drag. The overlay cards above list the phrasing for each; these phrasings also map to specific UI:

| You say | The effect gets |
| - | - |
| "a spot", "a region", "a direction", "where the light comes from" | One of the eight on-preview overlays |
| "a 2D offset with no position on screen", "a parallax shift" | Direction control (x, y) |
| "picked from the image", "the key color" | Color control with an eyedropper |
| "a preset selector that shows only that mode's controls" | Dropdown that reveals and hides controls |
| "using a depth map **input**", "a second image **input**" | An extra input |
| "this effect is about transparency" | Permission to change alpha (otherwise it is preserved) |
| "@\[Ref 1] sets the palette", "match the grain of @\[Ref 2]" | The reference image guides the look |

> [!TIP]
>
> Name the 2 to 6 controls you would actually touch and which one is an overlay.
> "Blur amount and edge softness, with a circle I can drag and resize" gets
> exactly that; "make it configurable" gets a guess.

***

## What an effect can't do

An effect is one shader pass over one frame, which keeps it live and identical between preview and export. When a request hits one of these, **How to use** says so:

* **Other frames** — no true motion blur, echo, or frame blending; single-frame smears only.
* **Changing the frame size** — no crop, resize, or padding. Use the Crop and Resize nodes instead.
* **A different result per run** — noise and flicker are deterministic; export matches preview, every playback repeats.
* **Very heavy blurs or multi-pass looks** — each pixel has a fixed cost budget; a wide blur is approximated with fewer samples.
* **Anything not connected to an input** — no audio, no text overlay, no reading other nodes' settings.
* **Fitting a second image** — extra inputs are stretched to the source frame; Resize or Merge upstream if it needs fitting.

***

## Credits

| Action | Cost |
| - | - |
| **Generate** / **Update effect** | 20 credits per click. The automatic repair attempts inside that click are free. A server-side failure is refunded. |
| Dragging, editing controls, Restore, Saved effects, public effects | Free |

See the [Credit Policy](https://docs.beeble.ai/help/credit-policy.md) for the full table.

***

## Example prompts

Paste-ready prompts, grouped by what they need.

> [accordion] One per overlay — no extra inputs
>
> **Point — Radial Zoom Blur**
>
> ```text theme={null}
> Zoom blur radiating from a point I can drag on the preview. Controls: blur amount, and a toggle to keep the center region sharp. Sample outward along the ray from the center with a fixed number of taps.
> ```
>
> **Circle — Privacy Blur**
>
> ```text theme={null}
> Blur everything inside a circle I can drag and resize on the preview — for hiding a face or a license plate. Controls: blur amount, edge softness, and a toggle to pixelate instead of blur.
> ```
>
> **Circle + direction — Light Rays**
>
> ```text theme={null}
> Volumetric-looking light rays: a beam that starts from a point I can drag, aimed with an angle handle, reaching out to an adjustable radius. Bright pixels along the beam smear outward. Controls: ray color, intensity, beam spread angle, and falloff.
> ```
>
> **Line — Tilt-Shift Band**
>
> ```text theme={null}
> Tilt-shift: a sharp band along a draggable line across the frame; blur increases with distance from the line. Controls: band width, maximum blur, and a feather for the band edges.
> ```
>
> **Oval — Iris Blur**
>
> ```text theme={null}
> Iris blur: keep an oval region sharp and blur everything outside it, with a feathered edge. Let me move, resize and rotate the oval on the preview. Controls: blur amount, edge feather.
> ```
>
> **Box — Frame Mask**
>
> ```text theme={null}
> A rectangular window I can drag and resize on the preview. Inside it the image is untouched; outside it is covered by a solid color with an adjustable opacity and a feathered border. Controls: mask color, opacity, feather.
> ```
>
> **Soft circle — Vignette**
>
> ```text theme={null}
> A vignette I can position and shape on the preview: no darkening inside the inner ring, full darkening at the outer ring. Controls: darkness, and a toggle for a slight desaturation in the vignetted area.
> ```
>
> **Light ball — Luminance Bump Light**
>
> ```text theme={null}
> Photoshop-style lighting effect without any extra input: derive a surface bump from the image's own luminance (one-pixel neighbors) and light it from an on-preview light-direction control. Controls: bump strength, light intensity, ambient level, and a light color.
> ```

> [accordion] Built on VFX passes — depth and normal inputs
>
> Wire the passes described under Inputs into the inputs the effect adds.
>
> **Depth Map + point — Depth-Driven Focus Blur**
>
> ```text theme={null}
> Depth-of-field blur driven by a depth map input (grayscale, 0 = near, 1 = far). Pixels near the focus depth stay sharp; blur grows with distance from it. Let me set the focus point by clicking on the preview — the depth under that point becomes the focus. Controls: focus range, maximum blur amount, and a toggle to invert the depth map.
> ```
>
> **Depth Map — Depth Fog**
>
> ```text theme={null}
> Atmospheric fog from a depth map input: far pixels fade into a fog color. Controls: fog color, fog start depth, fog end depth, fog density, and a toggle for inverted depth (1 = near).
> ```
>
> **Normal Map + light ball — Normal Map Relight**
>
> ```text theme={null}
> Relight the source using a normal map input. Let me aim the light with an on-preview light-direction control. Controls: light color, light intensity, ambient level, and a specular highlight strength. Keep the original alpha.
> ```
>
> **Normal Map + two circles — Police Lights**
>
> ```text theme={null}
> Two colored point lights — red and blue — shaded with a normal map input and flashing over time like a police car. Each light is a spot I can drag and resize on the preview (the radius is its falloff). Controls: color A, color B, flash speed, a pattern selector (alternate / double strobe / both together), light height above the image, and intensity.
> ```
>
> **Depth Map + Normal Map + light ball — Relight + Haze**
>
> ```text theme={null}
> Two inputs: a depth map and a normal map. First relight the source from an on-preview light direction (diffuse only, with intensity and ambient sliders), then blend far pixels toward a haze color by depth (haze start and haze end sliders).
> ```

> [accordion] Everyday VFX — grades, glow, grain, keys
>
> **Primary Grade**
>
> ```text theme={null}
> A primary color grade: exposure in stops, contrast around an adjustable pivot, saturation, color temperature (warm/cool) and tint (green/magenta). Neutral defaults change nothing. Keep alpha.
> ```
>
> **Look Presets** — a dropdown that shows only the chosen look's controls
>
> ```text theme={null}
> A look selector — Bleach Bypass, Cross Process, Day for Night, Sepia — with a strength slider. Show only the controls relevant to the chosen look: Bleach Bypass gets a contrast slider, Cross Process a hue shift slider, Day for Night a blue tint color and exposure slider, Sepia a tint color.
> ```
>
> **Glow**
>
> ```text theme={null}
> Bloom: pixels above a luminance threshold glow outward with a tinted halo. Controls: threshold, radius as a fraction of the frame, intensity, glow tint, and a glow-only toggle.
> ```
>
> **Film Grain + Gate Weave**
>
> ```text theme={null}
> Film grain that changes every frame but is deterministic (hash noise seeded by the frame index), plus a subtle gate weave — a tiny slow drift of the whole frame over time. Controls: grain amount, grain size as a fraction of the frame, colored vs monochrome grain toggle, weave amount, weave speed. Mirror the edges.
> ```
>
> **Chroma Key** — a color picked with the eyedropper
>
> ```text theme={null}
> Chroma key: make pixels close to a key color transparent. The key color should be picked from the image with an eyedropper. Controls: tolerance, edge softness, and a spill suppression amount that desaturates leftover key color on the edges. This effect is about transparency, so write the matte into alpha.
> ```
>
> **Light Wrap** — a second image input
>
> ```text theme={null}
> Light wrap for a keyed foreground: take the background plate as a second image input, blur it, and add its color onto the foreground's soft edges (where the source alpha is partial or where blurred alpha exceeds alpha). Controls: wrap width as a fraction of the frame, intensity, saturation of the wrapped light, and a toggle to show the wrap only. Keep the source alpha.
> ```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.