Repository navigation
Expand file tree
/
Copy pathreference.svml
More file actions
342 lines (312 loc) · 22.3 KB
/
Copy pathreference.svml
File metadata and controls
342 lines (312 loc) · 22.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
<?svml using="@hypit/markup@1"?>
<svml>
<import as="audio" from="@hypit/audio-track@1"/>
<import as="visual" from="@hypit/visual-track@1"/>
<import from="@hypit/script@1"/>
<import as="text" from="@hypit/text@1"/>
<import as="media" from="@hypit/media@1"/>
<import as="fish" from="@hypit/fishaudio-speech@1"/>
<import as="seedance" from="@hypit/seedance@1"/>
<import as="gpt" from="@hypit/gpt-image@1"/>
<import as="mediaop" from="@hypit/media-operations@1"/>
<import as="whisperx" from="@hypit/whisperx@1"/>
<import as="semantic" from="@hypit/narrative-temporal@1"/>
<import as="narrative-caption" from="@hypit/narrative-caption@1"/>
<import as="time" from="@hypit/timeline-author@1"/>
<import as="audio-track" from="@hypit/audio-track@1"/>
<import as="caption" from="@hypit/caption@1"/>
<import as="caption-fine" from="@hypit/caption-fine@1"/>
<import as="fonts" from="@hypit/fontsource@1"/>
<import as="space" from="@hypit/spatial@1"/>
<import as="flash" from="@interview/flash@1"/>
<import as="film" from="@hypit/film@1"/>
<import as="html" from="@hypit/html-video@1"/>
<import as="emoji" from="@hypit/interview-emoji-reveal@1"/>
<import as="recipes" source="./reference.svs"/>
<import as="image-kit" source="@hypit/gpt-image-kits/phone-ugc-v1"/>
<import as="interview-kit" source="@hypit/seedance-kits/street-interview"/>
<script id="story">
<manifest-rule>
<BOY>Hey yo! || Is this || Lamborghini || yours?
<WIFE>Mmm hmm.
<BOY>Give me || three rules || to make your || first million.
<WIFE>OK || the || first one || is || @{manifest!} Manifest.
<BOY>You manifested || a Lamborghini?
<WIFE>I || said it || to || myself || every || morning.
</manifest-rule>
<real-estate-rule>
<BOY>Did it really || work?
<WIFE>No. || But || rule two || did.
<BOY>Say it.
<WIFE>@{real-estate!} Real estate. || Buy || the || building, || and || charge || everyone || rent.
<BOY>But how did you || buy the building?
<WIFE>That's || rule three.
</real-estate-rule>
<bitcoin-rule>
<BOY>Wait what?
<WIFE>@{bitcoin!} Bitcoin. || I || pressed || the || wrong || button || in <2012 | twenty twelve> || and || made || six figures.
<BOY>So you || accidentally || bought Bitcoin?!
<WIFE>That's || manifesting, || baby.
</bitcoin-rule>
</script>
<text:Value id="shared-view-person">
The guest is a Japanese-Italian woman about twenty, with a glamorous mob-wife presence.
She is exceptionally beautiful, with very fair skin and the refined, striking beauty of a Hollywood leading actress.
She has broad shoulders and excellent head-to-shoulder proportions.
Her long black hair falls in loose waves. Sunglasses rest on her head. She wears an expensive-looking dark
fur coat over a leopard-print strapless short dress, a gold-set cross necklace, and a luxurious structured
Hermes handbag.
The interviewer is a cheerful young American college student, exceptionally handsome, with the looks of a young Hollywood actor.
He has fair skin, broad shoulders and excellent head-to-shoulder proportions.
He has tousled curls spilling from a backward American-flag baseball cap, a purple designer graphic T-shirt,
a studded belt and fashionable flared jeans.
</text:Value>
<text:Value id="shared-view-shot">
Generate a close street-interview photograph showing two people from roughly mid-thigh upward.
The guest stands just left of center, partly facing the camera and looking toward the interviewer in profile on the right.
Her handbag hangs on her left arm. Her hands rest naturally near her bag, leaving room for an easy gesture.
He holds one microphone marked HYPIT toward her mouth.
Keep their faces, gestures and the handheld microphone readable, with comfortable room around them.
They stand near the front of a matte sky-blue Lamborghini parked at the curb with its nose toward the left.
Its badge is visible low in the frame between the two people.
</text:Value>
<text:Value id="shared-view-setting">
The setting is an affluent New York street.
The stone facades, railings and trees establish a real neighborhood. No other people are in the frame.
The street's palette is sandstone and green; the sky-blue car and purple shirt provide accents.
</text:Value>
<text:Render id="shared-view-prompt" template={image-kit.phone-ugc-v1}>
<text:Set name="person" text={shared-view-person}/>
<text:Set name="shot" text={shared-view-shot}/>
<text:Set name="setting" text={shared-view-setting}/>
</text:Render>
<gpt:Image id="shared-view" prompt={shared-view-prompt} aspect-ratio="9:16" resolution="2K"/>
<text:Value id="guest-view-person">
Use the first image as the complete identity reference for the woman.
Preserve her face, black hair, sunglasses, fur coat, leopard-print dress, jewelry and handbag.
</text:Value>
<text:Value id="guest-view-shot">
Create a closer camera view centered on her. She looks toward the right side of the frame.
The interviewer's microphone enters from the right toward her mouth; her face and upper body remain clearly visible.
</text:Value>
<text:Value id="guest-view-setting">
Use the first image as the complete scene reference. This is another view of the same interview.
Keep the same street, car and natural light from this new camera position.
</text:Value>
<text:Render id="guest-view-prompt" template={image-kit.phone-ugc-v1}>
<text:Set name="person" text={guest-view-person}/>
<text:Set name="shot" text={guest-view-shot}/>
<text:Set name="setting" text={guest-view-setting}/>
</text:Render>
<gpt:Image id="guest-view" prompt={guest-view-prompt} aspect-ratio="9:16" resolution="2K">
<gpt:Reference image={shared-view.image}/>
</gpt:Image>
<text:Value id="interviewer-view-person">
Use the first image as the identity reference for the man.
Preserve his handsome face, tousled curls, backward cap and purple shirt.
</text:Value>
<text:Value id="interviewer-view-shot">
Create a closer camera view centered on him, slightly larger in frame.
He continues looking left and holding the microphone in the same interviewing pose.
Keep part of the woman's body visible along the left edge so this view remains part of their shared space.
Preserve the left-right relationship between the two people.
</text:Value>
<text:Value id="interviewer-view-setting">
Use the first image as the scene reference. Keep the same street, car and natural light.
</text:Value>
<text:Render id="interviewer-view-prompt" template={image-kit.phone-ugc-v1}>
<text:Set name="person" text={interviewer-view-person}/>
<text:Set name="shot" text={interviewer-view-shot}/>
<text:Set name="setting" text={interviewer-view-setting}/>
</text:Render>
<gpt:Image id="interviewer-view" prompt={interviewer-view-prompt} aspect-ratio="9:16" resolution="2K">
<gpt:Reference image={shared-view.image}/>
</gpt:Image>
<text:Value id="boy-voice-sample">Hey yo! Is this Lamborghini yours?</text:Value>
<fish:VoiceDesign id="boy-voice" speech={boy-voice-sample}>
A young American man with a bright, casual street-interviewer delivery; energetic, lightly raspy, confident, and conversational, with quick natural pacing.
</fish:VoiceDesign>
<text:Value id="wife-voice-sample">That's manifesting, baby.</text:Value>
<fish:VoiceDesign id="wife-voice" speech={wife-voice-sample}>
A young woman with a playful, self-assured delivery; warm, expressive, slightly husky, and flirtatious, with crisp conversational English.
</fish:VoiceDesign>
<media:Audio id="soundtrack" src="./assets/shared-soundtrack.m4a"/>
<media:Audio id="rule-reveal-sound" src="./assets/rule-reveal.wav"/>
<!-- Prepared reveal artwork shares the palette of the Caption and flashes. -->
<media:Image id="rule-placeholder" src="./assets/emoji-reveal/rendered/question-mark.png"/>
<media:Image id="manifest-icon" src="./assets/emoji-reveal/rendered/sparkles.png"/>
<media:Image id="real-estate-icon" src="./assets/emoji-reveal/rendered/building-estate.png"/>
<media:Image id="bitcoin-icon" src="./assets/emoji-reveal/rendered/currency-bitcoin.png"/>
<text:Value id="manifest-rule-action">
BOY is interviewer A, the young man holding the microphone. WIFE is guest B, the woman holding her bag beside the Lamborghini. Preserve their identities, outfits, props, left-right relationship, and the street location throughout.
Begin in the exact shared two-person camera setup from @image3 and hold that complete frame for BOY's “Hey yo! Is this Lamborghini yours?” WIFE initially looks down while checking her bag. As BOY asks the question, he takes one step forward toward her. Hearing him, WIFE notices him, raises her head and looks at BOY with casual curiosity.
Hard cut directly to the exact WIFE camera setup from @image2 and hold that complete frame for “Mmm hmm.” WIFE gives a small knowing smile and nods.
Hard cut directly to the exact shared camera setup from @image3 and hold that complete frame for BOY's “Give me three rules to make your first million.” BOY speaks with natural explanatory hand gestures.
Hard cut directly to the exact WIFE camera setup from @image2 and hold that complete frame for “OK, the first one is manifest.” WIFE tilts her head and rests one hand lightly against her chin.
Hard cut directly to the exact BOY camera setup from @image1 and hold that complete frame for “You manifested a Lamborghini?” BOY makes a visibly surprised hand gesture while asking.
Hard cut directly to the exact WIFE camera setup from @image2 and hold that complete frame for “I said it to myself every morning.” WIFE uses the hand not holding her bag to pat her upper chest while speaking.
</text:Value>
<text:Value id="real-estate-rule-action">
BOY is interviewer A, the young man holding the microphone. WIFE is guest B, the woman holding her bag beside the Lamborghini. Preserve their identities, outfits, props, left-right relationship, and the street location throughout.
Begin in the exact shared two-person camera setup from @image3 and hold that complete frame for BOY's “Did it really work?” BOY uses a natural questioning hand gesture.
Hard cut directly to the exact WIFE camera setup from @image2 and hold that complete frame for “No. But rule two did.” WIFE shakes her head on “No,” then looks at BOY meaningfully as she delivers the second sentence.
Hard cut directly to the exact shared camera setup from @image3 and hold that complete frame for BOY's short line, “Say it.”
Hard cut directly to the exact WIFE camera setup from @image2 and hold that complete frame for “Real estate. Buy the building, and charge everyone rent.” WIFE plants the hand holding her bag on her hip and lightly waves her free hand as she speaks, looking bold and expansive.
Hard cut directly to the exact BOY camera setup from @image1 and hold that complete frame for “But how did you buy the building?” BOY asks with visible disbelief.
Hard cut directly to the exact WIFE camera setup from @image2 and hold that complete frame for “That's rule three.” WIFE folds her arms, tilts her head, and gives a small smile.
</text:Value>
<text:Value id="bitcoin-rule-action">
BOY is interviewer A, the young man holding the microphone. WIFE is guest B, the woman holding her bag beside the Lamborghini. Preserve their identities, outfits, props, left-right relationship, and the street location throughout.
Begin in the exact shared two-person camera setup from @image3 and hold that complete frame for BOY's “Wait what?” BOY makes a questioning hand gesture.
Hard cut directly to the exact WIFE camera setup from @image2 and hold that complete frame for “Bitcoin. I pressed the wrong button in twenty twelve and made six figures.” WIFE explains with an easy, open-hand gesture and a small satisfied smile.
Hard cut directly to the exact BOY camera setup from @image1 and hold that complete frame for “So you accidentally bought Bitcoin?” BOY reacts with astonished disbelief.
Hard cut directly to the exact WIFE camera setup from @image2 and hold that complete frame for “That's manifesting, baby.” WIFE gives a cheeky, self-assured smile, then turns to her left at the end of the line as if preparing to walk away.
</text:Value>
<text:Render id="manifest-rule-prompt"
template={interview-kit.street-interview-v1}
recipe={recipes.interview.street}>
<text:Set name="dialogue" text={story.segment.manifest-rule.dialogue}/>
<text:Set name="action" text={manifest-rule-action}/>
</text:Render>
<text:Render id="real-estate-rule-prompt"
template={interview-kit.street-interview-v1}
recipe={recipes.interview.street}>
<text:Set name="dialogue" text={story.segment.real-estate-rule.dialogue}/>
<text:Set name="action" text={real-estate-rule-action}/>
</text:Render>
<text:Render id="bitcoin-rule-prompt"
template={interview-kit.street-interview-v1}
recipe={recipes.interview.street}>
<text:Set name="dialogue" text={story.segment.bitcoin-rule.dialogue}/>
<text:Set name="action" text={bitcoin-rule-action}/>
</text:Render>
<seedance:ReferenceVideo id="manifest-rule-take"
model="mini" prompt={manifest-rule-prompt}
duration="11"
resolution="720p" aspect-ratio="9:16" generate-audio="true">
<seedance:Reference image={interviewer-view.image} person-reference="true"/>
<seedance:Reference image={guest-view.image} person-reference="true"/>
<seedance:Reference image={shared-view.image} person-reference="true"/>
<seedance:Reference audio={boy-voice.reference}/>
<seedance:Reference audio={wife-voice.reference}/>
</seedance:ReferenceVideo>
<seedance:ReferenceVideo id="real-estate-rule-take"
model="mini" prompt={real-estate-rule-prompt}
duration="8"
resolution="720p" aspect-ratio="9:16" generate-audio="true">
<seedance:Reference image={interviewer-view.image} person-reference="true"/>
<seedance:Reference image={guest-view.image} person-reference="true"/>
<seedance:Reference image={shared-view.image} person-reference="true"/>
<seedance:Reference audio={boy-voice.reference}/>
<seedance:Reference audio={wife-voice.reference}/>
</seedance:ReferenceVideo>
<seedance:ReferenceVideo id="bitcoin-rule-take"
model="mini" prompt={bitcoin-rule-prompt}
duration="8"
resolution="720p" aspect-ratio="9:16" generate-audio="true">
<seedance:Reference image={interviewer-view.image} person-reference="true"/>
<seedance:Reference image={guest-view.image} person-reference="true"/>
<seedance:Reference image={shared-view.image} person-reference="true"/>
<seedance:Reference audio={boy-voice.reference}/>
<seedance:Reference audio={wife-voice.reference}/>
</seedance:ReferenceVideo>
<space:Canvas id="vertical" width="720" height="1280"/>
<space:Frame id="full-frame" within={vertical.bounds}
left="0%" top="0%" right="100%" bottom="100%"/>
<time:Clock id="clock" frame-rate="30"/>
<mediaop:Normalize id="soundtrack-media" source={soundtrack}
video="none" audio="default" span-authority="audio" clock={clock}/>
<mediaop:Normalize id="rule-reveal-sound-media" source={rule-reveal-sound}
video="none" audio="default" span-authority="audio" clock={clock}/>
<mediaop:Normalize id="manifest-rule-media" source={manifest-rule-take.video}
video="primary-moving" audio="default" span-authority="video" clock={clock}/>
<mediaop:Normalize id="real-estate-rule-media" source={real-estate-rule-take.video}
video="primary-moving" audio="default" span-authority="video" clock={clock}/>
<mediaop:Normalize id="bitcoin-rule-media" source={bitcoin-rule-take.video}
video="primary-moving" audio="default" span-authority="video" clock={clock}/>
<whisperx:Alignment id="manifest-rule-semantic" narrative={story}
segment={story.segment.manifest-rule} media={manifest-rule-media.media} domain={manifest-rule-media.domain} language="en"/>
<whisperx:Alignment id="real-estate-rule-semantic" narrative={story}
segment={story.segment.real-estate-rule} media={real-estate-rule-media.media} domain={real-estate-rule-media.domain} language="en"/>
<whisperx:Alignment id="bitcoin-rule-semantic" narrative={story}
segment={story.segment.bitcoin-rule} media={bitcoin-rule-media.media} domain={bitcoin-rule-media.domain} language="en"/>
<time:Timeline id="speech" clock={clock} end="bitcoin-rule-semantic.end">
<time:Window id="manifest-rule-semantic" from="start" for={manifest-rule-media.extent}/>
<time:Window id="real-estate-rule-semantic" from="manifest-rule-semantic.end" for={real-estate-rule-media.extent}/>
<time:Window id="bitcoin-rule-semantic" from="real-estate-rule-semantic.end" for={bitcoin-rule-media.extent}/>
</time:Timeline>
<semantic:Projection id="story-time" narrative={story} timeline={speech.timeline}>
<semantic:Map alignment={manifest-rule-semantic.alignment} domain={manifest-rule-media.domain} window={speech.manifest-rule-semantic}/>
<semantic:Map alignment={real-estate-rule-semantic.alignment} domain={real-estate-rule-media.domain} window={speech.real-estate-rule-semantic}/>
<semantic:Map alignment={bitcoin-rule-semantic.alignment} domain={bitcoin-rule-media.domain} window={speech.bitcoin-rule-semantic}/>
</semantic:Projection>
<semantic:Instant id="moment-manifest-cue" projection={story-time} at={story.moment.manifest}/>
<semantic:Instant id="moment-real-estate-cue" projection={story-time} at={story.moment.real-estate}/>
<semantic:Instant id="moment-bitcoin-cue" projection={story-time} at={story.moment.bitcoin}/>
<time:Window id="manifest-reveal-sfx-window" timeline={speech.timeline} from={moment-manifest-cue} for="20f"/>
<time:Window id="real-estate-reveal-sfx-window" timeline={speech.timeline} from={moment-real-estate-cue} for="20f"/>
<time:Window id="bitcoin-reveal-sfx-window" timeline={speech.timeline} from={moment-bitcoin-cue} for="20f"/>
<time:Window id="manifest-flash-window" timeline={speech.timeline} from={moment-manifest-cue} for="8f"/>
<time:Window id="real-estate-flash-window" timeline={speech.timeline} from={moment-real-estate-cue} for="8f"/>
<time:Window id="bitcoin-flash-window" timeline={speech.timeline} from={moment-bitcoin-cue} for="8f"/>
<audio:Track id="speech-sound" timeline={speech.timeline}>
<audio:Clip id="manifest-rule-semantic-source" source={manifest-rule-media.media} during={speech.manifest-rule-semantic}/>
<audio:Clip id="real-estate-rule-semantic-source" source={real-estate-rule-media.media} during={speech.real-estate-rule-semantic}/>
<audio:Clip id="bitcoin-rule-semantic-source" source={bitcoin-rule-media.media} during={speech.bitcoin-rule-semantic}/>
</audio:Track>
<visual:Track id="speech-picture" timeline={speech.timeline}>
<visual:Clip id="manifest-rule-semantic-source" media={manifest-rule-media.media} during={speech.manifest-rule-semantic} frame={full-frame} z="10" fit="cover"/>
<visual:Clip id="real-estate-rule-semantic-source" media={real-estate-rule-media.media} during={speech.real-estate-rule-semantic} frame={full-frame} z="10" fit="cover"/>
<visual:Clip id="bitcoin-rule-semantic-source" media={bitcoin-rule-media.media} during={speech.bitcoin-rule-semantic} frame={full-frame} z="10" fit="cover"/>
</visual:Track>
<audio-track:Track id="music-bed" timeline={speech.timeline}>
<audio-track:Clip source={soundtrack-media.media} during={speech.window}
gain="0.12" fade-in="300ms" fade-out="600ms"/>
</audio-track:Track>
<audio-track:Track id="rule-reveal-sfx" timeline={speech.timeline}>
<audio-track:Clip id="manifest-reveal-sfx" source={rule-reveal-sound-media.media} during={manifest-reveal-sfx-window} gain="0.20"/>
<audio-track:Clip id="real-estate-reveal-sfx" source={rule-reveal-sound-media.media} during={real-estate-reveal-sfx-window} gain="0.20"/>
<audio-track:Clip id="bitcoin-reveal-sfx" source={rule-reveal-sound-media.media} during={bitcoin-reveal-sfx-window} gain="0.20"/>
</audio-track:Track>
<fonts:Face id="caption-font" package="@fontsource-variable/league-spartan" weight="900" style="normal"/>
<caption-fine:Style id="caption-boy-style" recipe={recipes.caption.boy}
font={caption-font}/>
<caption-fine:Style id="caption-wife-style" recipe={recipes.caption.wife}
font={caption-font}/>
<narrative-caption:Timing id="caption-timing" document={story.caption} binding={story.caption-binding} projection={story-time}/>
<caption-fine:Caption id="captions" document={story.caption} timing={caption-timing}
timeline={speech.timeline} within={vertical.bounds}>
<caption-fine:Use style={caption-boy-style}/>
<caption-fine:Use role="WIFE" style={caption-wife-style}/>
</caption-fine:Caption>
<emoji:Style id="rule-reveal-style" recipe={recipes.emoji.strip}/>
<emoji:EmojiReveal id="rule-reveal" timeline={speech.timeline} within={vertical.bounds}
style={rule-reveal-style} placeholder={rule-placeholder} during={speech.window}>
<emoji:Item id="manifest" icon={manifest-icon} at={moment-manifest-cue}/>
<emoji:Item id="real-estate" icon={real-estate-icon} at={moment-real-estate-cue}/>
<emoji:Item id="bitcoin" icon={bitcoin-icon} at={moment-bitcoin-cue}/>
</emoji:EmojiReveal>
<flash:Flash id="manifest-flash" timeline={speech.timeline} within={vertical.bounds}
during={manifest-flash-window} z="80"
color="#FF4D6D" intensity="0.28" attack="2" hold="1" decay="5"/>
<flash:Flash id="real-estate-flash" timeline={speech.timeline} within={vertical.bounds}
during={real-estate-flash-window} z="80"
color="#14A68A" intensity="0.28" attack="2" hold="1" decay="5"/>
<flash:Flash id="bitcoin-flash" timeline={speech.timeline} within={vertical.bounds}
during={bitcoin-flash-window} z="80"
color="#F59E0B" intensity="0.28" attack="2" hold="1" decay="5"/>
<film:Film id="main" canvas={vertical.canvas} timeline={speech.timeline}
appearance={recipes.film.vertical}>
<film:Track source={speech-picture.visual}/>
<film:Track source={speech-sound.audio}/>
<film:Track source={captions.visual}/>
<film:Track source={rule-reveal.visual}/>
<film:Track source={manifest-flash.visual}/>
<film:Track source={real-estate-flash.visual}/>
<film:Track source={bitcoin-flash.visual}/>
<film:Track source={music-bed.audio}/>
<film:Track source={rule-reveal-sfx.audio}/>
</film:Film>
<html:Video id="final" composition={main.composition}
timeline={speech.timeline}/>
</svml>