Skip to content
Content
Skill

/vgl

Maximum control over AI image generation — write structured VGL (Visual Generation Language) JSON that explicitly controls every visual attribute. Define exact object placement, lighting direction, camera angle, lens focal length, composition, color scheme, and artistic style as

From plugin
bria-skill
678 skills1 agent
Install
$ npx -y skills add Bria-AI/bria-skill --skill vgl --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/vgl

Context preview

The summary Claude sees to decide when to auto-load this skill.

Maximum control over AI image generation — write structured VGL (Visual Generation Language) JSON that explicitly controls every visual attribute. Define exact object placement, lighting direction, camera angle, lens focal length, composition, color scheme, and artistic style as

SKILL.md

vgl.SKILL.md
name: vgl
description: Maximum control over AI image generation — write structured VGL (Visual Generation Language) JSON that explicitly controls every visual attribute. Define exact object placement, lighting direction, camera angle, lens focal length, composition, color scheme, and artistic style as deterministic JSON instead of ambiguous natural language. Use this skill when you need reproducible image generation, precise control over scene composition, or want to convert a natural language image request into a structured JSON schema for Bria FIBO models. Triggers on requests for structured prompts, controllable generation, VGL JSON, deterministic image descriptions, or Bria/FIBO structured_prompt format.
license: MIT
metadata:
  author: Bria AI
  version: "1.3.7"

Bria VGL — Full Control Over Image Generation

Define every visual attribute as structured JSON instead of hoping natural language gets it right. VGL (Visual Generation Language) gives you explicit, deterministic control over objects, lighting, camera settings, composition, and style for Bria's FIBO models.

> **Related Skill**: Use **[bria-ai](../bria-ai/SKILL.md)** to execute these VGL prompts via the Bria API. VGL defines the structured control format; bria-ai handles generation, editing, and background removal.

Core Concept

VGL replaces ambiguous natural language prompts with deterministic JSON that explicitly declares every visual attribute: objects, lighting, camera settings, composition, and style. This ensures reproducible, controllable image generation.

Operation Modes

| Mode | Input | Output | Use Case | |------|-------|--------|----------| | **Generate** | Text prompt | VGL JSON | Create new image from description | | **Edit** | Image + instruction | VGL JSON | Modify reference image | | **Edit_with_Mask** | Masked image + instruction | VGL JSON | Fill grey masked regions | | **Caption** | Image only | VGL JSON | Describe existing image | | **Refine** | Existing JSON + edit | Updated VGL JSON | Modify existing prompt |

JSON Schema

Output a single valid JSON object with these required keys:

1. `short_description` (String)

Concise summary of image content, max 200 words. Include key subjects, actions, setting, and mood.

2. `objects` (Array, max 5 items)

Each object requires:

{
  "description": "Detailed description, max 100 words",
  "location": "center | top-left | bottom-right foreground | etc.",
  "relative_size": "small | medium | large within frame",
  "shape_and_color": "Basic shape and dominant color",
  "texture": "smooth | rough | metallic | furry | fabric | etc.",
  "appearance_details": "Notable visual details",
  "relationship": "Relationship to other objects",
  "orientation": "upright | tilted 45 degrees | facing left | horizontal | etc."
}

**Human subjects** add:

{
  "pose": "Body position description",
  "expression": "winking | joyful | serious | surprised | calm",
  "clothing": "Attire description",
  "action": "What the person is doing",
  "gender": "Gender description",
  "skin_tone_and_texture": "Skin appearance"
}

**Object clusters** add:

{
  "number_of_objects": 3
}

**Size guidance**: If a person is the main subject, use `"medium-to-large"` or `"large within frame"`.

3. `background_setting` (String)

Overall environment, setting, and background elements not in `objects`.

4. `lighting` (Object)

{
  "conditions": "bright daylight | dim indoor | studio lighting | golden hour | blue hour | overcast",
  "direction": "front-lit | backlit | side-lit from left | top-down",
  "shadows": "long, soft shadows | sharp, defined shadows | minimal shadows"
}

5. `aesthetics` (Object)

{
  "composition": "rule of thirds | symmetrical | centered | leading lines | medium shot | close-up",
  "color_scheme": "monochromatic blue | warm complementary | high contrast | pastel",
  "mood_atmosphere": "serene | energetic | mysterious | joyful | dramatic | peaceful"
}

For people as main subject, specify shot type in composition: `"medium shot"`, `"close-up"`, `"portrait composition"`.

6. `photographic_characteristics` (Object)

{
  "depth_of_field": "shallow | deep | bokeh background",
  "focus": "sharp focus on subject | soft focus | motion blur",
  "camera_angle": "eye-level | low angle | high angle | dutch angle | bird's-eye",
  "lens_focal_length": "wide-angle | 50mm standard | 85mm portrait | telephoto | macro"
}

**For people**: Prefer `"standard lens (35mm-50mm)"` or `"portrait lens (50mm-85mm)"`. Avoid wide-angle unless specified.

7. `style_medium` (String)

`"photograph"` | `"oil painting"` | `"watercolor"` | `"3D render"` | `"digital illustration"` | `"pencil sketch"`

Default to `"photograph"` unless explicitly requested otherwise.

8. `artistic_style` (String)

If not photograph, describe characteristics in max 3 words: `"impressionistic, vibrant, textured"`

For photographs, use `"realistic"` or similar.

9. `context` (String)

Describe the image type/purpose:

  • `"High-fashion editorial photograph for magazine spread"`
  • `"Concept art for fantasy video game"`
  • `"Commercial product photography for e-commerce"`

10. `text_render` (Array)

**Default: empty array `[]`**

Only populate if user explicitly provides exact text content:

{
  "text": "Exact text from user (never placeholder)",
  "location": "center | top-left | bottom",
  "size": "small | medium | large",
  "color": "white | red | blue",
  "font": "serif typeface | sans-serif | handwritten | bold impact",
  "appearance_details": "Metallic finish | 3D effect | etc."
}

Exception: Universal text integral to objects (e.g., "STOP" on stop sign).

11. `edit_instruction` (String)

Single imperative command describing the edit/generation.

Edit Instruction Formats

For Standard Edits (no mask)

Start with action verb, describe changes, never reference "original image":

| Category | Rewritten Instruct

Read more
Ships withbria-skill

Generate, edit, and precisely control images directly from your AI coding agent using Bria.ai's commercially-safe models.

Get the whole plugin
Stats
67
Stars
6
Forks
Active
Maintenance
Python
Language
6d ago
Last commit
7mo ago
Created

Repo: Bria-AI/bria-skill

Other skills on bria-skill.

bria-ai
Skill

bria-ai

Image generation, photo editing, background removal — transparent PNG images, cutouts, ecommerce packshots, product catalogs, lifestyle shots via Bria.ai.…