Input guardrails
Last updated: October 20, 2026
Input guardrails check every generation's prompt and input images against rules your studio sets, before anything is sent to a model. Use them to keep a team, a vendor or a pipeline from generating what your studio does not want to make, such as someone else's IP.
How it works
A workspace admin sets input guardrails: each one describes something the studio does not want generated, and can carry up to ten reference images that show it. Before a generation runs, a vision model reads each guardrail that applies, looks at the generation's prompt, its input images and the names of any styles or reference sets applied to it, and decides whether the request breaks the rule, with a one or two sentence reason. Every guardrail is judged separately.
Built-in guardrails
Layer ships three guardrails, and admins can write their own:
Copyright infringement: reproducing a specific copyrighted work, such as named films, games, series or their assets, whether named in the prompt or supplied as an input image.
IP & trademark infringement: a real brand's logo, mascot, packaging or trademarked characters, including close imitations.
Artist style mimicry: imitating a named living artist, in the prompt or through a style or reference set named after them.
A built-in guardrail takes exceptions: the things your studio is allowed to make even though the guardrail would flag them, such as your own game or a brand you are licensed to use. Exceptions can only narrow what a built-in flags.
A custom guardrail is written in plain words, the way you would brief a reviewer, and can be narrowed to some kinds of generation (image, video, 3D and so on).
Block or warn
Block
The generation is refused, and nothing is sent to the model. The person who ran it sees the guardrail's name and reason on the failed tile. See Your prompt or image was blocked.
Warn
The generation runs, and the match is recorded. The viewer lists it under Generated despite in the file's details.
Where guardrails live
Workspace guardrails
Set under Settings > AI Controls > Input Guardrails. They apply to every project and session in the workspace.
Project guardrails
Set in a project's settings, under Content policy. A project's guardrails are added on top of the workspace's: a project can add checks but never drop one its workspace sets.
What it costs
Each guardrail is one model call per generation, billed in Creative Units.
Every guardrail checks every generation it applies to, whether it is set to block or to warn, and whether or not the generation breaks it. A workspace with three guardrails pays for three checks on each generation.
A typical check costs around 0.1 to 0.2 CU. That is a prompt and one input image checked against a built-in guardrail. A check costs more when there is more to read: several input images, a long prompt, or a custom guardrail with reference images of its own, which the judge sees on every check.
A request Layer has already judged is free to check again. Running the same prompt and inputs against an unchanged guardrail reuses the earlier verdict. Editing a guardrail's wording or reference images starts its checks afresh.
A blocked generation is not charged as a generation. It is stopped before anything is sent to the model; you pay for its checks.
Workspaces without guardrails pay nothing for them.
The estimate on the run button covers the generation and leaves out guardrail checks. See Creative Units for how usage is charged.
What guardrails do not do
Guardrails judge the request, not the result. To judge what a generation produced, use Output scoring, which is set beside guardrails under AI Controls.
Guardrails are your studio's own rules, separate from the model providers' safety checks, which still apply. See Your prompt or image was blocked for telling the two apart.
If you generate through the Layer API, a blocked run fails with the error code INPUT_GUARDRAIL_VIOLATION, and its refusal object lists each guardrail that blocked it with its ID, name, category and reason. See Refused generations in the developer docs.
What it means for you
Start with the built-ins and add exceptions for what your studio owns or licenses, rather than writing a custom rule from scratch.
Set a new guardrail to warn first, check what it flags under Generated despite, then switch it to block once it only catches what you mean.
Keep reference images to the ones that matter: every image is read on every check, for every generation.