lasagnastack.models.reel_pipeline.inventory¶
lasagnastack.models.reel_pipeline.inventory
¶
ClipAnalysisResponse
¶
Bases: BaseModel
What Gemini generates for Stage 2 (excludes metadata we already know).
The source_file and duration_sec fields are added by the stage after
the LLM call to produce a full ClipInventory.
overall_assessment
instance-attribute
¶
overall_assessment: OverallAssessment
Clip-level quality summary returned by the LLM.
ClipInventory
¶
Bases: BaseModel
Stage 2 output for one clip.
overall_assessment
instance-attribute
¶
overall_assessment: OverallAssessment
Clip-level quality summary.
source_file
instance-attribute
¶
Filename of the original source clip (not its full path).
NormalisedClip
¶
Bases: BaseModel
A single clip after Stage 1 normalisation.
OverallAssessment
¶
Bases: BaseModel
Clip-level quality assessment produced by Stage 2.
issues
instance-attribute
¶
Notable problems with the clip, e.g. ['shaky camera', 'out of focus for first 2s'].
lighting
instance-attribute
¶
Brief lighting description, e.g. 'natural window light, slightly overexposed'.
primary_subject
instance-attribute
¶
Brief description of the main subject, e.g. 'chef plating food'.
usability
instance-attribute
¶
high | medium | low — overall suitability of the clip for use in the reel.
Segment
¶
Bases: BaseModel
One usable segment identified by Gemini within a normalised clip.
aesthetic_score
instance-attribute
¶
1–10 rating of lighting, composition, sharpness, and colour grading.
best_use
instance-attribute
¶
Suggested role in the reel: hook | establish_location | payoff_reaction | detail | transition | callout | outro
description
instance-attribute
¶
One-sentence description of what is visually happening in the segment.
hook_potential
instance-attribute
¶
1–10 rating of scroll-stopping power in the first 0.5 seconds.
shot_type
instance-attribute
¶
establishing | action | reaction | detail_closeup | cutaway | talking_head | b_roll | other
subject_position
instance-attribute
¶
left-third | center | right-third — horizontal position of the main subject.
vertical_crop_safe
instance-attribute
¶
False if the subject sits near the horizontal edge and would be cut off by a 9:16 crop.