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):
- The BackgroundPresetFraming with
framing = full(full body) - 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