Skip to content

Guidelines (ShootingGuidelines)

ShootingGuidelines groups reusable shooting parameters that are shared across shootings. It evolved from the earlier "Guideline" concept to include not just technical output settings but also subjects, poses, and an optional set design.

A shooting represents a customer request to obtain photos for a given collection or period. ShootingGuidelines defines how those photos should look and who appears in them.


Properties

Field Type Description
Name string Guideline identifier
Resolution ResolutionPreset relation Target output dimensions (per-user or per-organization)
File Format enum: WEBP, JPEG, PNG Target output format
Shot Types list Shot types to generate (kept for output definition)
Subjects N-N relation to Subject Subjects the customer wants in the shooting images
Poses relation to PosePreset list Poses available for generations during the shooting
Set Design optional SetDesign relation Environment configuration (lighting, background)

Resolution Presets

The target resolution is controlled through a ResolutionPreset relation from ShootingGuidelines. The chosen preset fills all ShootingLooks of the shooting with consistent output dimensions.

Resolution presets can be scoped per-user or per-organization.


Pose Presets

A PosePreset defines a named pose for a specific shot type. Each preset is already scoped to a single shot type, so there is no separate per-shot-type join table.

Field Description
name Pose identifier (e.g. "NaturalSitting — front_lower_body")
prompt Prompt describing the pose
shot_type Relation to ShotType
pose_image MediaResource reference image for the pose

Example: NaturalSitting

The "NaturalSitting" concept is represented by three PosePreset records, one per shot type:

PosePreset shot_type pose_image
NaturalSitting — front_lower_body front_lower_body (image)
NaturalSitting — side_lower_body side_lower_body (image)
NaturalSitting — back_lower_body back_lower_body (image)

Pose Preset ER Diagram

erDiagram
    PosePreset {
        int id PK
        string name
        string prompt
        int shot_type_id FK
        int pose_image_id FK
    }
    ShotType {
        int id PK
        string name
    }

    PosePreset }o--|| ShotType : shot_type
    PosePreset }o--|| MediaResource : pose_image

Set Design

An optional SetDesign controls the shooting environment — comparing it to a real photo shoot, the set design defines the "place" where photos are taken (lighting, background).

A SetDesign contains:

  • BackgroundPreset (optional) — background images per framing
  • SetBaseImages (list) — pre-generated subject images with correct lighting/background
  • SetReferenceImages (environment_images) — source images that controlled the SetDesign generation (tracking only)

Background Preset

A BackgroundPreset provides the background image used across generation pipelines and background fixing.

Field Description
name Preset identifier
cover_image Computed — see logic below

A BackgroundPreset has a 1-N relation to BackgroundPresetFraming (unique on background_preset_id + framing):

Field Description
framing Optional framing enum value. Null = fallback for any framing without a specific image
background_image MediaResource

Cover image logic (in priority order):

  1. The BackgroundPresetFraming with framing = full (full body)
  2. The BackgroundPresetFraming with framing = null (fallback)

Set Base Images

A SetBaseImage is a pre-generated image of a subject with the correct lighting and background applied from a SetDesign. These images serve as source material for Virtual-Try-On editing in auto-generations.

Relations:

Relation Cardinality Description
SetDesign N : (0..1) A SetDesign can have N images; an image belongs to 0 or 1 SetDesign. When null → subject base image for non-shooting generations
Subject N : 1 A Subject can have N SetBaseImages (one per shot type per set design)
ShotType N : 1 A ShotType can have N SetBaseImages (one per subject per set design)

When generating for a shooting with a SetDesign, the correct SetBaseImage must be selected for the subject and shot type.

Set Reference Images

The environment_images field on SetDesign creates a 1-N relation to SetReferenceImage.

Relation Cardinality
ShotType N : 1
SetDesign N : 1

SetReferenceImages are the source images that controlled the SetDesign generation in external tools (Identiq). These images contain the correct lighting and background whose style was transferred to subject base images to produce SetBaseImages.

Tracking only

Set reference images are currently for tracking and observability only — they are saved but not yet used in generation pipelines.


Full ER Diagram

erDiagram
    ShootingGuidelines {
        int id PK
        string name
        string file_format "WEBP | JPEG | PNG"
    }
    ResolutionPreset {
        int id PK
        int width
        int height
    }
    Subject {
        int id PK
        string name
    }
    PosePreset {
        int id PK
        string name
        string prompt
        int shot_type_id FK
        int pose_image_id FK
    }
    ShotType {
        int id PK
        string name
    }
    SetDesign {
        int id PK
    }
    BackgroundPreset {
        int id PK
        string name
    }
    BackgroundPresetFraming {
        int id PK
        int background_preset_id FK
        string framing "nullable"
        int background_image_id FK
    }
    SetBaseImage {
        int id PK
        int set_design_id FK "nullable"
        int subject_id FK
        int shot_type_id FK
    }
    SetReferenceImage {
        int id PK
        int set_design_id FK
        int shot_type_id FK
    }

    ShootingGuidelines }o--|| ResolutionPreset : resolution
    ShootingGuidelines }o--o{ Subject : subjects
    ShootingGuidelines ||--o{ PosePreset : poses
    ShootingGuidelines ||--o| SetDesign : set_design

    PosePreset }o--|| ShotType : shot_type
    PosePreset }o--|| MediaResource : pose_image

    SetDesign ||--o| BackgroundPreset : background
    BackgroundPreset ||--o{ BackgroundPresetFraming : framings
    BackgroundPresetFraming }o--|| MediaResource : background_image

    SetDesign ||--o{ SetBaseImage : base_images
    SetBaseImage }o--|| Subject : subject
    SetBaseImage }o--|| ShotType : shot_type
    SetBaseImage }o--|| MediaResource : image

    SetDesign ||--o{ SetReferenceImage : environment_images
    SetReferenceImage }o--|| ShotType : shot_type