@nodaro/prompts 1.26.1 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,83 @@
1
+ import { LOOK_PREVIEW_SETS } from "./look-preview-sets.js"
2
+ import { characterArtPath, characterSectionArtPath, soundArtPath } from "./paths.js"
3
+
4
+ /**
5
+ * How the API pictures picker options. Pass it to the catalog projections
6
+ * (projectPickerCatalog / projectAllCatalogs / summarizePickerCatalogs); leave
7
+ * it out and no option carries an `imageUrl` — the package itself never
8
+ * decides which host an install is reached at.
9
+ */
10
+ export interface PickerImageOptions {
11
+ /**
12
+ * The installation's public origin, e.g. "https://app.nodaro.ai" or a
13
+ * self-hosted "http://localhost:3000". Self-hosted pictures are served from
14
+ * it, so an external app gets absolute URLs on the install it asked.
15
+ */
16
+ readonly baseUrl: string
17
+ /** Include the rendered look previews, which live on the Nodaro CDN (Cloud only). */
18
+ readonly lookPreviews?: boolean
19
+ }
20
+
21
+ /** Hosts whose Cloudflare zone resizes on the fly (`/cdn-cgi/image/`, `/cdn-cgi/media/`). */
22
+ const TRANSFORM_HOSTS: ReadonlySet<string> = new Set(["cdn.nodaro.ai", "assets.nodaro.ai"])
23
+ const STILL_WIDTH = 480
24
+
25
+ function originOf(baseUrl: string): string | undefined {
26
+ try {
27
+ const url = new URL(baseUrl)
28
+ if (url.protocol !== "https:" && url.protocol !== "http:") return undefined
29
+ return url.origin + url.pathname.replace(/\/+$/, "")
30
+ } catch {
31
+ return undefined
32
+ }
33
+ }
34
+
35
+ /**
36
+ * A still, 480px-wide picture of a rendered look preview: the image resized by
37
+ * the CDN, or — for a clip (camera motion) — a frame taken 1s in. The same
38
+ * transforms the editor's tiles use. A URL off the transforming CDN is kept
39
+ * as is for an image, and dropped for a clip (no still to offer).
40
+ */
41
+ export function lookPreviewStillUrl(url: string, width = STILL_WIDTH): string | undefined {
42
+ let parsed: URL
43
+ try {
44
+ parsed = new URL(url)
45
+ } catch {
46
+ return undefined
47
+ }
48
+ const clip = /\.(mp4|webm|mov)$/i.test(parsed.pathname)
49
+ if (!TRANSFORM_HOSTS.has(parsed.hostname)) return clip ? undefined : url
50
+ return clip
51
+ ? `${parsed.origin}/cdn-cgi/media/mode=frame,time=1s,width=${width}${parsed.pathname}`
52
+ : `${parsed.origin}/cdn-cgi/image/width=${width},format=auto,quality=80${parsed.pathname}`
53
+ }
54
+
55
+ /**
56
+ * The absolute picture URL of one picker option, or undefined when it has
57
+ * none. Self-hosted art (the character photos, the music / voice art) wins;
58
+ * otherwise, when allowed, the option's rendered look preview.
59
+ *
60
+ * @param catalog the catalog's node type (look previews are keyed by it) and catalog id (the self-hosted maps are)
61
+ * @param field the dimension field the option belongs to (music / voice art is keyed by it)
62
+ */
63
+ export function pickerOptionImageUrl(
64
+ catalog: { readonly nodeType: string; readonly catalogId: string },
65
+ field: string | undefined,
66
+ id: string,
67
+ images: PickerImageOptions,
68
+ ): string | undefined {
69
+ const origin = originOf(images.baseUrl)
70
+ const own = characterArtPath(catalog.catalogId, id) ?? (field ? soundArtPath(catalog.catalogId, field, id) : undefined)
71
+ if (own) return origin ? origin + own : undefined
72
+ if (!images.lookPreviews) return undefined
73
+ const look = LOOK_PREVIEW_SETS[catalog.nodeType as keyof typeof LOOK_PREVIEW_SETS] as Readonly<Record<string, string>> | undefined
74
+ const render = look?.[id]
75
+ return render ? lookPreviewStillUrl(render) : undefined
76
+ }
77
+
78
+ /** The absolute URL of a Person / Styling topic's round picture, or undefined. */
79
+ export function pickerSectionImageUrl(sectionLabel: string, images: PickerImageOptions): string | undefined {
80
+ const origin = originOf(images.baseUrl)
81
+ const path = characterSectionArtPath(sectionLabel)
82
+ return origin && path ? origin + path : undefined
83
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Picker art — the picture of every picker option that has one, and the round
3
+ * icons of the Person / Styling topics. The single source for the editor
4
+ * (picker-ui reads these maps) and the API (the catalog projections attach
5
+ * absolute `imageUrl`s from them).
6
+ */
7
+ export * from "./sound-art-types.js"
8
+ export { SOUND_ART } from "./sound-art-map.js"
9
+ export { SOUND_ART_FILES } from "./sound-art-files.generated.js"
10
+ export { CHARACTER_ART_FILES } from "./character-art-files.generated.js"
11
+ export { LOOK_PREVIEW_SETS, type LookPreviewSet, type LookPreviewSets } from "./look-preview-sets.js"
12
+ export * from "./paths.js"
13
+ export * from "./images.js"
@@ -0,0 +1,489 @@
1
+ // Rendered look previews: for each picker, one base frame put through every
2
+ // option (gpt-image-2 / gpt-image-2-i2i), stored on the Nodaro CDN and resized
3
+ // on the fly (optimizedImageUrl). Keyed by picker (node type) → catalog option
4
+ // id; the multi-dimension pickers (framing, lighting) hold every dimension that
5
+ // has renders in one map, since their option ids are unique across dimensions.
6
+ // An option without an entry keeps its drawn preview.
7
+ //
8
+ // Registered at app start in the Cloud edition only (see
9
+ // frontend/src/lib/look-previews-bootstrap.ts), so a self-hosted install never
10
+ // calls the Nodaro CDN and keeps the drawn previews; the API serves them as
11
+ // picture URLs on Cloud only, for the same reason (picker-art/images.ts).
12
+ /** Catalog option id → rendered preview URL, for one picker. */
13
+ export type LookPreviewSet = Readonly<Record<string, string>>
14
+
15
+ /** Picker (node type) → its preview set. */
16
+ export type LookPreviewSets = Readonly<Record<string, LookPreviewSet>>
17
+
18
+ export const LOOK_PREVIEW_SETS = {
19
+ "style": {
20
+ "3d-render": "https://cdn.nodaro.ai/images/c0f46e9b-25f7-4a7d-b66a-2c5065dfc296.png",
21
+ anime: "https://cdn.nodaro.ai/images/611eb595-5d4b-4e4a-afdf-70fd276fdf4b.png",
22
+ "children-book": "https://cdn.nodaro.ai/images/9564a952-51f9-4438-a4ac-e3aa85a93a10.png",
23
+ cinematic: "https://cdn.nodaro.ai/images/1dcc40b2-8833-470f-8625-7e239ee241ed.png",
24
+ "comic-book": "https://cdn.nodaro.ai/images/ea428565-343e-4e64-9b78-ef56511109e5.png",
25
+ "digital-art": "https://cdn.nodaro.ai/images/dc47008c-c652-4401-8afe-0ab3a002985e.png",
26
+ fantasy: "https://cdn.nodaro.ai/images/f34d4f7d-ce95-4a11-a9c9-c3b9437a7a99.png",
27
+ minimalist: "https://cdn.nodaro.ai/images/94e42dc0-912c-450f-b056-4b0276bed754.png",
28
+ noir: "https://cdn.nodaro.ai/images/9dd5bc91-1240-48f1-88e9-84e7892ad82c.png",
29
+ "oil-painting": "https://cdn.nodaro.ai/images/f6181fc9-76fd-438f-a0bb-ae264f196b43.png",
30
+ "pencil-sketch": "https://cdn.nodaro.ai/images/d397a468-7c6d-4833-b97f-944c1a671344.png",
31
+ photorealistic: "https://cdn.nodaro.ai/images/a313ff29-176f-4a6e-be86-c714c7b5cc72.png",
32
+ "pixel-art": "https://cdn.nodaro.ai/images/23416a3c-c6f8-4b01-bea6-9d921e21f6e6.png",
33
+ "pop-art": "https://cdn.nodaro.ai/images/efdf4120-bb1e-4af2-87fe-6caca5d538ac.png",
34
+ "retro-vintage": "https://cdn.nodaro.ai/images/adc1d6cb-e122-4242-b367-b749cdd16940.png",
35
+ watercolor: "https://cdn.nodaro.ai/images/edff0eac-3cf7-48b1-bec7-238e0d6f9dfb.png",
36
+ "concept-art": "https://cdn.nodaro.ai/images/534241d5-23f0-4e20-a6b2-214b62dee427.png",
37
+ impressionism: "https://cdn.nodaro.ai/images/ba71184d-84ec-48cc-8cce-446db0805ca4.png",
38
+ surrealism: "https://cdn.nodaro.ai/images/1a82c203-729b-4021-b34b-97e425c3c19c.png",
39
+ cyberpunk: "https://cdn.nodaro.ai/images/22c4757e-755a-4b10-8f32-c7248eddcc3d.png",
40
+ steampunk: "https://cdn.nodaro.ai/images/c129c819-3a1f-4519-a1f7-e9e82c6c5a8b.png",
41
+ vaporwave: "https://cdn.nodaro.ai/images/d8935953-39d2-4c2b-9d29-a5cd688c7e38.png",
42
+ "low-poly": "https://cdn.nodaro.ai/images/15b1d1a7-0073-4dfd-b5cd-d40613afee04.png",
43
+ "ink-wash": "https://cdn.nodaro.ai/images/2c1b25dc-2ab0-4106-beb0-5391231e9d42.png",
44
+ isometric: "https://cdn.nodaro.ai/images/773d59bc-5d0e-4843-8d93-0396b9334ad2.png",
45
+ "flat-vector": "https://cdn.nodaro.ai/images/aabf2c35-28fe-4a36-bb05-d9e95d117a70.png",
46
+ "ukiyo-e": "https://cdn.nodaro.ai/images/f663559f-3890-4d3f-bc6c-d08c888caa55.png",
47
+ graffiti: "https://cdn.nodaro.ai/images/3616c5af-0386-43d9-8a6e-6ca9566ec52b.png",
48
+ claymation: "https://cdn.nodaro.ai/images/b58317a3-2a30-4f25-abfe-b6b8ef8827a1.png",
49
+ "glitch-art": "https://cdn.nodaro.ai/images/9774491e-2ca0-4584-9ef9-7a0e9b9e1b9e.png",
50
+ "ascii-art": "https://cdn.nodaro.ai/images/090e407a-f486-4e76-aea2-b4c75105ae84.png",
51
+ blueprint: "https://cdn.nodaro.ai/images/ab07abf7-05fb-4b95-b3b2-bf98629a875e.png",
52
+ "stained-glass": "https://cdn.nodaro.ai/images/e9be8a96-8327-43b9-892c-017118155562.png",
53
+ chalkboard: "https://cdn.nodaro.ai/images/2250ed18-55b8-4ff7-9f5f-17a8db8a53c8.png",
54
+ "paper-cutout": "https://cdn.nodaro.ai/images/9cdcb351-5f46-49f0-8016-5595e9a55fa1.png",
55
+ illuminated: "https://cdn.nodaro.ai/images/471bffc4-e764-44ab-97b4-46c0d5652af8.png",
56
+ "pixar-3d": "https://cdn.nodaro.ai/images/8050d399-cf0e-46de-8770-d48c2e444898.png",
57
+ caricature: "https://cdn.nodaro.ai/images/ffd49a16-4a41-40de-92ff-d6d231ef6d53.png",
58
+ fresco: "https://cdn.nodaro.ai/images/0a4389e0-4038-40c4-b055-6d4346f04cf6.png",
59
+ mosaic: "https://cdn.nodaro.ai/images/de4855e9-4bc6-4967-ac60-b1ad63ceb748.png",
60
+ woodcut: "https://cdn.nodaro.ai/images/f5b381eb-63cd-4fc0-9623-9e0cc39f0ec9.png",
61
+ etching: "https://cdn.nodaro.ai/images/e54ace76-56b4-4dd6-8dfc-48b743234b98.png",
62
+ lithograph: "https://cdn.nodaro.ai/images/6b04aa8a-9cf8-401c-a337-0ceeffa85783.png",
63
+ charcoal: "https://cdn.nodaro.ai/images/218d0e69-ef00-4735-9441-c4462c197688.png",
64
+ pastel: "https://cdn.nodaro.ai/images/6a1a90ae-c9ea-4f2e-842b-f5572215a373.png",
65
+ "acrylic-paint": "https://cdn.nodaro.ai/images/23191845-ef25-4152-8877-2e63daf2f2ac.png",
66
+ "mixed-media": "https://cdn.nodaro.ai/images/d36ab150-9cd6-47ac-bdd9-3b26990a4fa9.png",
67
+ manga: "https://cdn.nodaro.ai/images/3d6bbfd8-8c62-4769-b62e-11d2a7e43b4b.png",
68
+ },
69
+ "color-look": {
70
+ warm: "https://cdn.nodaro.ai/images/8511a1bc-3d3b-46a8-adc0-26fcc9e93a4b.png",
71
+ cool: "https://cdn.nodaro.ai/images/99cff1f4-ad81-4f54-b43d-a6e7c85a2e0f.png",
72
+ "teal-orange": "https://cdn.nodaro.ai/images/b6539da8-82aa-4e33-a04d-8e4d2830fad8.png",
73
+ "split-toning": "https://cdn.nodaro.ai/images/051e9b4d-c864-4102-a683-15432c01cd3a.png",
74
+ "selective-color": "https://cdn.nodaro.ai/images/87837101-dc0b-47c1-8a21-97566677494b.png",
75
+ "faded-matte": "https://cdn.nodaro.ai/images/67fe86ce-9ad7-442d-851c-edca6f01db61.png",
76
+ "log-flat": "https://cdn.nodaro.ai/images/585b9684-7ad3-4448-9210-f6f0ae2e1db8.png",
77
+ desaturated: "https://cdn.nodaro.ai/images/b9b6520e-82de-4d14-8ba7-d5e3840242e0.png",
78
+ "monochrome-bw": "https://cdn.nodaro.ai/images/2aa2959b-8b64-49b2-92b9-cb53ad4d0707.png",
79
+ sepia: "https://cdn.nodaro.ai/images/582f5427-3d6c-469e-9967-e48c6b0c038b.png",
80
+ pastel: "https://cdn.nodaro.ai/images/2c147c8b-2d38-4e12-9031-42ebf4c177f5.png",
81
+ "high-contrast": "https://cdn.nodaro.ai/images/cd9e3a3a-3059-4c74-98a3-b01252f1b759.png",
82
+ vibrant: "https://cdn.nodaro.ai/images/f1bee489-eedb-437e-a111-6d613c1c5c7b.png",
83
+ "kodak-portra": "https://cdn.nodaro.ai/images/8804bc8e-a88b-4088-ab06-161f85132418.png",
84
+ "kodak-ektar": "https://cdn.nodaro.ai/images/e30bb737-e94c-464f-ae25-c59e61157d2d.png",
85
+ "kodak-vision3": "https://cdn.nodaro.ai/images/3133be3d-35de-4810-bf2e-02f64a43efa5.png",
86
+ "fuji-pro-400h": "https://cdn.nodaro.ai/images/dbd14e16-9932-4461-a3a8-1b5b436628c5.png",
87
+ "cinestill-800t": "https://cdn.nodaro.ai/images/e677eb71-9ffd-45e8-b03c-427eacac5733.png",
88
+ "bleach-bypass": "https://cdn.nodaro.ai/images/da2c3153-f8a2-427d-b4a6-3264716e8833.png",
89
+ technicolor: "https://cdn.nodaro.ai/images/274c86c5-0fa0-483b-a831-0aba6845d80a.png",
90
+ "two-strip-technicolor": "https://cdn.nodaro.ai/images/de62cc14-7ae6-468c-bc75-a841a7f3ad83.png",
91
+ "eastman-color": "https://cdn.nodaro.ai/images/7cc87700-6d94-4b63-a9bf-0d4665164eb2.png",
92
+ "hand-tinted": "https://cdn.nodaro.ai/images/1ce94366-073a-4840-b95b-a946b736dc25.png",
93
+ "agfa-orwo": "https://cdn.nodaro.ai/images/861e5e24-9fc5-489c-82c2-39b0ecaccdfb.png",
94
+ "day-for-night": "https://cdn.nodaro.ai/images/7e150f10-1dec-4797-af51-308de411e3e1.png",
95
+ "cross-processed": "https://cdn.nodaro.ai/images/02e06b80-86f8-4df8-a66c-f1309b7fc35f.png",
96
+ "kodachrome-64": "https://cdn.nodaro.ai/images/11e43274-57fd-49c6-8a79-f435df18acfa.png",
97
+ "ektachrome-100": "https://cdn.nodaro.ai/images/923670d0-8769-466a-97f5-5edfca45772d.png",
98
+ "kodak-tri-x-400": "https://cdn.nodaro.ai/images/bb0a4e49-0096-425f-9069-cc8e918032ac.png",
99
+ aerochrome: "https://cdn.nodaro.ai/images/39dbb701-b848-47c6-a2a5-2b0bc462fbf8.png",
100
+ "fuji-instax": "https://cdn.nodaro.ai/images/ed48b1bc-e20b-4efb-830d-850b9133482e.png",
101
+ "cinestill-50d": "https://cdn.nodaro.ai/images/084c6185-7303-4c53-ac7a-7eb3e141f2f9.png",
102
+ "expired-film": "https://cdn.nodaro.ai/images/c5fbbc8b-5d9f-428d-8f8a-168114ac2199.png",
103
+ "instagram-warm": "https://cdn.nodaro.ai/images/ef3d3bda-cbf1-4328-9a70-e339dee7bf51.png",
104
+ "tiktok-saturated": "https://cdn.nodaro.ai/images/97bcc6e5-7089-4fc8-a1e6-54d7e58de59a.png",
105
+ "youtube-vlog-flat": "https://cdn.nodaro.ai/images/72022437-4f6e-4b0b-9d35-1b0eb937d7a8.png",
106
+ "iphone-hdr": "https://cdn.nodaro.ai/images/546e2b9e-f163-4021-a2c2-634e2efc09d2.png",
107
+ "y2k-saturated": "https://cdn.nodaro.ai/images/452fa094-4154-47e8-92a5-6f9d1fbf2680.png",
108
+ "mtv-90s-vhs": "https://cdn.nodaro.ai/images/4ece53ce-2d1d-41cd-9815-c4ee7e22c579.png",
109
+ "polaroid-faded": "https://cdn.nodaro.ai/images/e97229c0-5117-4017-87d5-b1e09c8961d1.png",
110
+ "lifestyle-warm-magazine": "https://cdn.nodaro.ai/images/5c215af2-98b1-4196-bf1a-74007bd2beca.png",
111
+ },
112
+ "era": {
113
+ "1920s-flapper": "https://cdn.nodaro.ai/images/3982f52e-9261-40b1-a8fb-61cb1c03e022.png",
114
+ "1930s-art-deco": "https://cdn.nodaro.ai/images/05f3c0cb-c5ec-4e54-b20d-e1b1ef0d4641.png",
115
+ "1940s-wartime": "https://cdn.nodaro.ai/images/902bfc0e-aa5a-41d6-985f-25f0ffff80c1.png",
116
+ "1950s-diner": "https://cdn.nodaro.ai/images/0675491a-a34c-4c0a-9e05-88546bd50e31.png",
117
+ "atomic-age-50s": "https://cdn.nodaro.ai/images/f0663b89-648e-40c7-901f-b866d9426ce9.png",
118
+ "1960s-mod": "https://cdn.nodaro.ai/images/929b1d51-b69f-4292-a11f-7dcc9123c877.png",
119
+ "1970s-disco": "https://cdn.nodaro.ai/images/e8a915dc-8855-4d7c-b07b-b6f2797eba3d.png",
120
+ "1980s-neon": "https://cdn.nodaro.ai/images/a9f7c56c-ec8a-4985-8fe3-de4f150ea664.png",
121
+ "1990s-mall": "https://cdn.nodaro.ai/images/b6a957ea-ecad-45bb-8818-f1d5a1efa9bc.png",
122
+ "2000s-y2k": "https://cdn.nodaro.ai/images/dd00da33-4772-4c18-826b-304504966ef4.png",
123
+ "gen-z-2020s": "https://cdn.nodaro.ai/images/3bb102c0-ed9c-4a39-82c1-3733ae39f6bf.png",
124
+ medieval: "https://cdn.nodaro.ai/images/f8fc069f-1d2c-4b01-85bc-27c618a841c4.png",
125
+ renaissance: "https://cdn.nodaro.ai/images/2e386af4-7f66-4804-b329-d3c3d74cb9fe.png",
126
+ victorian: "https://cdn.nodaro.ai/images/fa0c0db0-c260-422e-8f22-07ad82f81f71.png",
127
+ edwardian: "https://cdn.nodaro.ai/images/3858996a-5747-40fb-9f18-be947b178a39.png",
128
+ "wild-west": "https://cdn.nodaro.ai/images/d99237a5-218f-4540-9a05-2699ad03f2b5.png",
129
+ "ancient-rome": "https://cdn.nodaro.ai/images/59524682-3031-4ce4-8b22-89ebaa31eab3.png",
130
+ "ancient-egypt": "https://cdn.nodaro.ai/images/7ac3eca4-eed7-44d8-a98e-c8a752163d19.png",
131
+ "feudal-japan": "https://cdn.nodaro.ai/images/65e20d34-c572-46ff-9ba5-394f647469c4.png",
132
+ "fin-de-siecle": "https://cdn.nodaro.ai/images/f70a9700-70b2-4345-b0ab-20732b8404c7.png",
133
+ "roaring-prewar": "https://cdn.nodaro.ai/images/54c5e57d-0207-4a85-8c7f-8c2d0bead46a.png",
134
+ "near-future": "https://cdn.nodaro.ai/images/0d7dc860-abb4-4bfb-9fd6-b0d58676d3c3.png",
135
+ "far-future": "https://cdn.nodaro.ai/images/8656b10e-6f9e-49ce-a9e9-931671a102ab.png",
136
+ dieselpunk: "https://cdn.nodaro.ai/images/d7028ee4-5e69-4279-a285-8d0b6fb10221.png",
137
+ atompunk: "https://cdn.nodaro.ai/images/8be7b7a1-72ad-4d1e-b47b-1da9cf946702.png",
138
+ "cyberpunk-future": "https://cdn.nodaro.ai/images/0f103853-bf20-409e-8a81-b220d16346bc.png",
139
+ "post-apocalyptic": "https://cdn.nodaro.ai/images/b5ab4697-d539-4a77-bcaf-3c407a44f9da.png",
140
+ retrofuturism: "https://cdn.nodaro.ai/images/d80f31c9-bc71-4e45-a1d0-c7cd81d7c7f3.png",
141
+ },
142
+ "lens": {
143
+ "ultra-wide-14mm": "https://cdn.nodaro.ai/images/45eba250-e883-4436-9b46-75b9c3daafd3.png",
144
+ "wide-24mm": "https://cdn.nodaro.ai/images/37d6f16c-81ad-42b6-baca-7073b49883e5.png",
145
+ "standard-35mm": "https://cdn.nodaro.ai/images/e15be97f-66df-435c-a88d-2054ec90820f.png",
146
+ "normal-50mm": "https://cdn.nodaro.ai/images/2dff5ea9-d167-49fb-8568-1214ce1f7495.png",
147
+ "portrait-85mm": "https://cdn.nodaro.ai/images/375c4462-34f5-4b57-8eed-835674c68fd7.png",
148
+ "telephoto-135mm": "https://cdn.nodaro.ai/images/eaa95302-5fea-42d5-94d9-134fd05d43ea.png",
149
+ "super-telephoto-400mm": "https://cdn.nodaro.ai/images/098339a1-e7a3-48aa-9518-00c74e96dfab.png",
150
+ fisheye: "https://cdn.nodaro.ai/images/e15d627a-e893-4b56-9273-d0a0f53495ba.png",
151
+ anamorphic: "https://cdn.nodaro.ai/images/de4c4534-0e6e-4f65-97ac-e072413292f9.png",
152
+ macro: "https://cdn.nodaro.ai/images/4c6d4a62-af22-4a76-a252-8fe4d7ad8255.png",
153
+ probe: "https://cdn.nodaro.ai/images/9b4731b8-f171-4a4c-80fc-c3c8528e0f2c.png",
154
+ cctv: "https://cdn.nodaro.ai/images/673b96c1-0319-44dd-8c56-e9f4e1cc811a.png",
155
+ "tilt-shift": "https://cdn.nodaro.ai/images/c29fa871-18df-4f25-be40-0a69a5b04026.png",
156
+ "shallow-dof": "https://cdn.nodaro.ai/images/8981a476-1b4b-437c-a442-2c5f00761b6f.png",
157
+ "canon-k35": "https://cdn.nodaro.ai/images/56672c8c-5831-4489-995b-766b0f96c038.png",
158
+ "cooke-s4": "https://cdn.nodaro.ai/images/bc59af17-031c-4ed4-b3ef-f0e1c4d61d08.png",
159
+ "helios-44": "https://cdn.nodaro.ai/images/ef5e6b83-c6ef-45f6-a03b-bc5676a5aa5b.png",
160
+ petzval: "https://cdn.nodaro.ai/images/b1e28aad-edd5-404b-8706-e72060f407ee.png",
161
+ },
162
+ "mood": {
163
+ happy: "https://cdn.nodaro.ai/images/710df65a-3c1e-485b-b8b7-29f7b3baf479.png",
164
+ joyful: "https://cdn.nodaro.ai/images/a550b63e-1db7-448e-990e-6c14225db77f.png",
165
+ relieved: "https://cdn.nodaro.ai/images/fc48f8c6-dbd4-41e9-bbb2-75607d17d61a.png",
166
+ serene: "https://cdn.nodaro.ai/images/1e23547e-f3d5-42a0-9693-ab4e51a91ee7.png",
167
+ playful: "https://cdn.nodaro.ai/images/71e21749-8975-44a3-88c2-1154693470b2.png",
168
+ confident: "https://cdn.nodaro.ai/images/952987ee-83e1-470a-bdda-110f040760d4.png",
169
+ loving: "https://cdn.nodaro.ai/images/b68eb347-8303-4a25-9bfa-06bd13a7168a.png",
170
+ amused: "https://cdn.nodaro.ai/images/c0fca3dd-9eca-4f69-aec5-3f493eda10e1.png",
171
+ smirking: "https://cdn.nodaro.ai/images/27214fff-a7e2-4233-9089-a423f5a26b21.png",
172
+ eccentric: "https://cdn.nodaro.ai/images/84bdb6ab-772d-4063-b99c-e2d8af599eee.png",
173
+ hopeful: "https://cdn.nodaro.ai/images/9550cbd6-1577-4e30-beee-c41c02cd0402.png",
174
+ sad: "https://cdn.nodaro.ai/images/66223dc0-9fae-414f-a217-f2a59418353f.png",
175
+ angry: "https://cdn.nodaro.ai/images/a575e3cc-7850-43bb-b6bf-4dd49b54b9d4.png",
176
+ afraid: "https://cdn.nodaro.ai/images/d7ca91ea-c2c5-4df8-a759-95da0f763dc6.png",
177
+ anxious: "https://cdn.nodaro.ai/images/d02266c8-4957-43ea-8684-54edaa362e78.png",
178
+ melancholy: "https://cdn.nodaro.ai/images/3752502c-6afb-4189-b1a6-ac352fc6ff80.png",
179
+ devastated: "https://cdn.nodaro.ai/images/b46d301a-2174-49f1-9a76-f195839f7171.png",
180
+ grieving: "https://cdn.nodaro.ai/images/c97c52be-1f43-4cbd-a7ee-79a17f29b0b8.png",
181
+ "caught-off-guard": "https://cdn.nodaro.ai/images/f3baeab0-2389-42ce-8717-fc483b9adad3.png",
182
+ aloof: "https://cdn.nodaro.ai/images/96ef8281-e931-4849-bb45-37f712676056.png",
183
+ vulnerable: "https://cdn.nodaro.ai/images/f05343b4-e6ec-456b-bfdc-f47bf0d89965.png",
184
+ coy: "https://cdn.nodaro.ai/images/0505ea50-c03a-4367-8ebd-4cdaac72a473.png",
185
+ bored: "https://cdn.nodaro.ai/images/b8303e13-085e-45b7-8966-4b7379b5c4b7.png",
186
+ embarrassed: "https://cdn.nodaro.ai/images/b6c426e6-efa8-4a2d-8b4a-bd56013ae7ae.png",
187
+ disgusted: "https://cdn.nodaro.ai/images/e60d81e7-c8db-47de-875c-83d34347352c.png",
188
+ bewildered: "https://cdn.nodaro.ai/images/6020b288-515e-4299-a341-b60a4ceebb8c.png",
189
+ thoughtful: "https://cdn.nodaro.ai/images/73b14a16-ca63-4de2-91f2-d8d2a96ab669.png",
190
+ stoic: "https://cdn.nodaro.ai/images/3d8a8240-3696-4b6b-a2b9-8618d153eff4.png",
191
+ calm: "https://cdn.nodaro.ai/images/7d5c62d7-96a1-49e9-8a77-6c2f99922f72.png",
192
+ curious: "https://cdn.nodaro.ai/images/4b1f6ea3-a2ab-4e4a-840a-19389b0f668b.png",
193
+ mysterious: "https://cdn.nodaro.ai/images/88c84305-5b99-405a-86a7-2a69132b24a9.png",
194
+ dazed: "https://cdn.nodaro.ai/images/47c07bbd-fcbf-4684-8755-4a25244a8035.png",
195
+ sleepy: "https://cdn.nodaro.ai/images/97387a98-ad4d-493f-922c-b73f6a45408e.png",
196
+ unbothered: "https://cdn.nodaro.ai/images/5b99a9bc-c3ec-4415-85c8-400b19e9cbb8.png",
197
+ fierce: "https://cdn.nodaro.ai/images/d935807e-660c-47fc-8e5a-9048d0fe7cbb.png",
198
+ determined: "https://cdn.nodaro.ai/images/8df47771-0f4e-4762-b51f-f896e9c92eb3.png",
199
+ passionate: "https://cdn.nodaro.ai/images/c94b64f3-b1c1-4e2a-adb5-5c9f8a15d673.png",
200
+ brooding: "https://cdn.nodaro.ai/images/1d71dbfa-bce2-4c28-985f-9f3a5fe9c74e.png",
201
+ seductive: "https://cdn.nodaro.ai/images/b88b3e2d-c87d-4c61-b5d9-5f7ded19b3e8.png",
202
+ defiant: "https://cdn.nodaro.ai/images/2ceb8a7f-653b-4e2f-bb06-c718cde96a5b.png",
203
+ sultry: "https://cdn.nodaro.ai/images/57a1b8e2-0600-4cfe-b836-d26484b2a952.png",
204
+ smoldering: "https://cdn.nodaro.ai/images/eda9d2bf-3d33-4784-8039-a41cab0a3912.png",
205
+ sinister: "https://cdn.nodaro.ai/images/2a0e4f94-c0c2-4bc7-a842-bd1f074f3863.png",
206
+ "wiccan-mystical": "https://cdn.nodaro.ai/images/3898f098-1469-4a73-8ab6-37055868bb1c.png",
207
+ "lazy-shy": "https://cdn.nodaro.ai/images/644c8e18-024a-4b23-81c1-898ad36c4cdd.png",
208
+ awe: "https://cdn.nodaro.ai/images/f54ab8bf-5108-4ef1-9599-4e8744f2612a.png",
209
+ shocked: "https://cdn.nodaro.ai/images/3b5c6eb6-1c76-457b-a130-6930603450ba.png",
210
+ flirty: "https://cdn.nodaro.ai/images/b2d36ecf-38d0-41f8-a49b-21ca00641e2a.png",
211
+ suspicious: "https://cdn.nodaro.ai/images/cbea4dbf-2fe4-4cae-bed0-ea2707b77f75.png",
212
+ resigned: "https://cdn.nodaro.ai/images/da4c2867-d144-4222-9ba6-88006f7fbfd2.png",
213
+ conflicted: "https://cdn.nodaro.ai/images/44e0bee8-c784-4d25-85c6-83cd90edc70a.png",
214
+ },
215
+ "atmosphere": {
216
+ clear: "https://cdn.nodaro.ai/images/566ab159-8e8b-4bc1-9b1a-ef4de1e5e9b8.png",
217
+ cloudy: "https://cdn.nodaro.ai/images/6e86d4b4-a3e5-4816-a6dc-ef293aa0149b.png",
218
+ overcast: "https://cdn.nodaro.ai/images/cf1b7b08-542c-4835-8d6e-6769875d43c7.png",
219
+ fog: "https://cdn.nodaro.ai/images/042450d5-aadd-4b48-8ae8-b6130154c576.png",
220
+ mist: "https://cdn.nodaro.ai/images/f183ff64-95ce-4a80-abed-4172a632d2d7.png",
221
+ "fog-mist": "https://cdn.nodaro.ai/images/c6e76aa3-0faa-4aba-9413-0bc9c7f0a162.png",
222
+ "light-rain": "https://cdn.nodaro.ai/images/f3779fae-0e88-4b82-b4ce-e77113be558a.png",
223
+ "heavy-rain": "https://cdn.nodaro.ai/images/58c5b785-4b32-4c5b-805f-3617af2be82b.png",
224
+ storm: "https://cdn.nodaro.ai/images/e0971493-f049-4b88-a888-06f3c79b6bf6.png",
225
+ snow: "https://cdn.nodaro.ai/images/ad3fc164-fd33-445a-aa7d-e5a456f2a813.png",
226
+ blizzard: "https://cdn.nodaro.ai/images/2ad6e61b-de81-4bec-bd3b-e6b622914a6d.png",
227
+ dust: "https://cdn.nodaro.ai/images/a817e05f-b255-4e60-82b6-f86c54aba916.png",
228
+ "god-rays": "https://cdn.nodaro.ai/images/862e1702-b47e-4449-8aca-489e28087a48.png",
229
+ smoke: "https://cdn.nodaro.ai/images/249516ae-2d82-4048-a377-d661c65eff42.png",
230
+ "bokeh-particles": "https://cdn.nodaro.ai/images/13fa3576-900e-4b9c-9b19-bb776683ecbb.png",
231
+ "chalk-dust": "https://cdn.nodaro.ai/images/13086322-e1f7-4647-9d07-554ca17d12e3.png",
232
+ "falling-petals": "https://cdn.nodaro.ai/images/55edeed2-4ad8-4de8-afd0-44ac66aa50d9.png",
233
+ confetti: "https://cdn.nodaro.ai/images/b72cf291-9d52-41b0-a204-9096c318fcd5.png",
234
+ "sparks-embers": "https://cdn.nodaro.ai/images/13d65693-1b55-4231-8173-9a102881eacf.png",
235
+ "lens-flare": "https://cdn.nodaro.ai/images/aac783aa-3459-4d85-be47-36f6a6d711c9.png",
236
+ "heat-haze": "https://cdn.nodaro.ai/images/73627492-e2d2-43d1-9318-71abb81bc84e.png",
237
+ steam: "https://cdn.nodaro.ai/images/9421fd49-7b83-41b4-915d-6e487cb4f9ce.png",
238
+ "bubbles-underwater": "https://cdn.nodaro.ai/images/6816f7ed-0869-4220-a4a2-aede796f5980.png",
239
+ "rain-on-glass": "https://cdn.nodaro.ai/images/b73bfd84-d18e-4594-a9c3-83e2ae933537.png",
240
+ "pollen-light": "https://cdn.nodaro.ai/images/b059ac4f-e7ae-4a41-acf3-88fcf2ccd31e.png",
241
+ "water-droplets": "https://cdn.nodaro.ai/images/fca4502d-9f63-4624-b8d9-bb3bf848c8df.png",
242
+ "falling-ash": "https://cdn.nodaro.ai/images/0e825e62-16be-4092-80f6-436f1f7aafb7.png",
243
+ fireflies: "https://cdn.nodaro.ai/images/a6ae39f6-a67a-44bc-a79a-b19fa54ec2fc.png",
244
+ "incense-smoke": "https://cdn.nodaro.ai/images/9922d19c-6fa9-4e38-b5bb-9b18dae31922.png",
245
+ "cigarette-smoke": "https://cdn.nodaro.ai/images/779397d3-ff0d-4237-aca3-58e1530c7ebd.png",
246
+ "candle-glow": "https://cdn.nodaro.ai/images/aee0c724-7772-4952-b944-51ca0d7a922e.png",
247
+ "glitter-sparkle": "https://cdn.nodaro.ai/images/49c917fe-f582-4277-9543-b03bccfe231e.png",
248
+ starfield: "https://cdn.nodaro.ai/images/97d2767e-ac88-44b5-9d1f-77eb0da6aa78.png",
249
+ "dandelion-seeds": "https://cdn.nodaro.ai/images/aa94769f-4f0a-40c5-9d62-7201215e5db2.png",
250
+ "pollen-drift": "https://cdn.nodaro.ai/images/d1ce013d-99ba-423d-87b3-d85f854e5aad.png",
251
+ "snowflakes-heavy": "https://cdn.nodaro.ai/images/8566be3d-14d6-4f5b-ac17-e090a6a5fb3b.png",
252
+ "snowflakes-light": "https://cdn.nodaro.ai/images/f86c17bc-7e14-45e6-98ed-7f6e23b801aa.png",
253
+ "raindrops-on-skin": "https://cdn.nodaro.ai/images/d0f090aa-47a9-4300-92f2-e486a267935c.png",
254
+ "bioluminescent-cloud": "https://cdn.nodaro.ai/images/5de7a3e0-9ecc-413f-9899-3568ea1d6438.png",
255
+ "motion-streaks": "https://cdn.nodaro.ai/images/9bdc1ea8-ea20-44aa-b9cb-771efc2d5931.png",
256
+ },
257
+ "composition-effects": {
258
+ // "None" is pictured by the untouched base frame, so the difference reads.
259
+ none: "https://cdn.nodaro.ai/images/a32481c2-20c7-4ad0-8998-4828034f5409.png",
260
+ "bursting-through-frame": "https://cdn.nodaro.ai/images/de193923-d7d7-4a4d-a00f-0f11e103e07e.png",
261
+ "breaking-out-of-frame": "https://cdn.nodaro.ai/images/78252b2d-8116-4c0b-9d96-e3fbf5f972f3.png",
262
+ "pixel-disintegration": "https://cdn.nodaro.ai/images/ef82100c-7835-4649-9499-5b5f03040c2f.png",
263
+ "smoke-sculpture": "https://cdn.nodaro.ai/images/4c0d1860-198f-4c3b-a7c8-e5972562ae81.png",
264
+ "liquid-sculpture": "https://cdn.nodaro.ai/images/c7275187-6891-4ad8-b023-6d777b0f6549.png",
265
+ "shattering-glass": "https://cdn.nodaro.ai/images/9bf4ca79-565b-45d3-9d5e-caa098e3bea7.png",
266
+ "emerging-from-background": "https://cdn.nodaro.ai/images/55e0328d-236e-4e77-a5d9-5a5b871796e8.png",
267
+ "fragmented-mosaic": "https://cdn.nodaro.ai/images/7d5ef9da-819e-4588-a047-a0e7fe1dab52.png",
268
+ "glitch-distortion": "https://cdn.nodaro.ai/images/7c14d6da-dc8c-4990-a9ef-79f05d722179.png",
269
+ "doubled-mirror": "https://cdn.nodaro.ai/images/0d6ab020-e33a-422b-8c29-1019c4ea2727.png",
270
+ "floating-fragments": "https://cdn.nodaro.ai/images/e0e384cf-b95e-422a-9272-bc505d02c728.png",
271
+ "silhouette-outline": "https://cdn.nodaro.ai/images/537ead59-cdcf-4747-afed-6390e4daa3ed.png",
272
+ "exploding-particles": "https://cdn.nodaro.ai/images/5213da13-eaf7-4017-9636-1b49685f5e37.png",
273
+ "matte-painting": "https://cdn.nodaro.ai/images/a2e56582-853e-45ad-b194-44cc80445d71.png",
274
+ "double-exposure": "https://cdn.nodaro.ai/images/ea66f9a1-6f31-445c-81ac-924518399f88.png",
275
+ "multiple-exposure": "https://cdn.nodaro.ai/images/791350a6-9c5a-4755-a4e3-5c8bfecbd90e.png",
276
+ "in-camera-effects": "https://cdn.nodaro.ai/images/b1fc8610-f7ff-4449-a5ea-6bd07830989d.png",
277
+ "prism-flares": "https://cdn.nodaro.ai/images/a8dca9b1-3e42-43fe-8057-72a155a7e63b.png",
278
+ },
279
+ "camera-format": {
280
+ "35mm-film": "https://cdn.nodaro.ai/images/54c5b9c2-776b-40f8-a24a-eb98d54ec655.png",
281
+ "16mm-film": "https://cdn.nodaro.ai/images/a829f950-e854-467d-98d0-e140701f5e90.png",
282
+ "super-8": "https://cdn.nodaro.ai/images/cbaae659-6264-465d-abfe-cf8d074e1fc2.png",
283
+ "imax-70mm": "https://cdn.nodaro.ai/images/79def2f8-46d6-4cb9-b269-dd4490922648.png",
284
+ "anamorphic-scope": "https://cdn.nodaro.ai/images/225f7f90-8339-495c-b449-269d717c6033.png",
285
+ "arri-alexa": "https://cdn.nodaro.ai/images/6e4af3a3-1dd5-4e92-b9ab-9a9fa9766c24.png",
286
+ "alexa-65": "https://cdn.nodaro.ai/images/9cd1e018-7c12-4306-9949-b81c1b84ba31.png",
287
+ "sony-venice": "https://cdn.nodaro.ai/images/d68139d8-ba89-48e4-ad8b-ad075ead7e94.png",
288
+ "blackmagic-pocket-6k": "https://cdn.nodaro.ai/images/9104de37-c398-400c-9247-ebbdb165b231.png",
289
+ "red-komodo": "https://cdn.nodaro.ai/images/f3635885-add0-4930-a208-4e9f4d1f37ef.png",
290
+ dslr: "https://cdn.nodaro.ai/images/df54d588-abbe-46ae-b6e5-2fa4189fea70.png",
291
+ "mirrorless-a7iii": "https://cdn.nodaro.ai/images/5903c65b-4152-4d73-851e-5770982d5c94.png",
292
+ "canon-r5": "https://cdn.nodaro.ai/images/2558490d-4dca-4c8b-b882-120d447467eb.png",
293
+ "hasselblad-medium-format": "https://cdn.nodaro.ai/images/d1b5c21d-94d7-42d4-8dca-6a30773844fc.png",
294
+ "leica-m-rangefinder": "https://cdn.nodaro.ai/images/45a1c919-f810-4371-931c-02e6a998e738.png",
295
+ voigtlander: "https://cdn.nodaro.ai/images/85b8f1bb-5ca4-4544-a945-ee90d80fa326.png",
296
+ "fuji-xt4": "https://cdn.nodaro.ai/images/0a316b78-37fb-435c-999b-bb9f4894ca4f.png",
297
+ "drone-aerial": "https://cdn.nodaro.ai/images/c4a1977e-6263-4608-b9fd-39f4660f3c7f.png",
298
+ "gopro-action-cam": "https://cdn.nodaro.ai/images/2938d0b7-e118-48d6-8ef5-0fd97bdc2e30.png",
299
+ "webcam-facetime": "https://cdn.nodaro.ai/images/44fec809-2616-44d0-ab84-cf18c12b7e76.png",
300
+ vhs: "https://cdn.nodaro.ai/images/559a5ce1-4fae-431c-99c8-ae8c1fd8c50d.png",
301
+ camcorder: "https://cdn.nodaro.ai/images/eb79f17f-6627-46e7-b7a0-fad665a74269.png",
302
+ polaroid: "https://cdn.nodaro.ai/images/4ab94dcc-b78b-4f31-a1c6-30d7f55b6049.png",
303
+ "fuji-instax": "https://cdn.nodaro.ai/images/f14bee6e-bf0a-45cc-92d6-3680b0479eaa.png",
304
+ "disposable-camera": "https://cdn.nodaro.ai/images/523727d0-46ae-48eb-9e32-9cbdd11acb16.png",
305
+ "toy-camera-holga": "https://cdn.nodaro.ai/images/9c1205d6-8c6d-4220-882c-0e6c670c688f.png",
306
+ "tintype-wet-plate": "https://cdn.nodaro.ai/images/fb707d22-a051-4f9c-96ab-92392b32d5f6.png",
307
+ daguerreotype: "https://cdn.nodaro.ai/images/694be33e-4e80-4713-96fb-f13029a35419.png",
308
+ "security-cam": "https://cdn.nodaro.ai/images/ffd06480-030b-474f-b55b-612f6b565368.png",
309
+ "bw-film": "https://cdn.nodaro.ai/images/fddfea55-5e76-428b-8826-8d64abc7560f.png",
310
+ iphone: "https://cdn.nodaro.ai/images/2307781b-78d2-445d-81a8-791f5d092707.png",
311
+ },
312
+ "framing": {
313
+ "extreme-wide-shot": "https://cdn.nodaro.ai/images/845e97b8-53a5-46b4-9a04-9a318b5ba0ce.png",
314
+ "wide-shot": "https://cdn.nodaro.ai/images/ac647452-4d78-47a1-afc8-7b1905770742.png",
315
+ "medium-wide-shot": "https://cdn.nodaro.ai/images/b1900820-bfd4-4a40-8426-bb078cf2cd48.png",
316
+ "medium-shot": "https://cdn.nodaro.ai/images/a6653334-f164-426b-841f-28aee0930df2.png",
317
+ "medium-close-up": "https://cdn.nodaro.ai/images/7f53ce64-2297-455a-9b1c-262483fd7ec4.png",
318
+ "close-up": "https://cdn.nodaro.ai/images/20d15e8b-22ee-4f97-b5b3-7ed8a1a8d80c.png",
319
+ "extreme-close-up": "https://cdn.nodaro.ai/images/3fc3b535-b8b3-43ae-a61a-6d87e5e7fe86.png",
320
+ "ecu-eye": "https://cdn.nodaro.ai/images/8ed82244-169d-48f9-9924-7e1c592b551a.png",
321
+ "ecu-mouth": "https://cdn.nodaro.ai/images/034b9262-2dd8-40af-94b1-0fae7e5d48ec.png",
322
+ "ecu-hands": "https://cdn.nodaro.ai/images/239c63a7-db02-414f-ae41-2a120a7d0593.png",
323
+ "big-close-up": "https://cdn.nodaro.ai/images/95f4dd5a-f4ef-498c-98b0-da3cbf1bac4e.png",
324
+ choker: "https://cdn.nodaro.ai/images/a955908e-6d51-4fb5-b7f9-06faca670d48.png",
325
+ "italian-shot": "https://cdn.nodaro.ai/images/f87099b2-a15b-430d-b3fd-f5c25fb1dc55.png",
326
+ insert: "https://cdn.nodaro.ai/images/f9c9caf9-e352-4555-8cb6-97d540065ed7.png",
327
+ macro: "https://cdn.nodaro.ai/images/06a817db-58a0-4e5e-b537-dafa90ba9e66.png",
328
+ "full-shot": "https://cdn.nodaro.ai/images/91e8045d-7ce0-4dfc-bf6c-b09187e65cd4.png",
329
+ "cowboy-shot": "https://cdn.nodaro.ai/images/d4e20051-c453-4e22-85e4-c9a1604031f0.png",
330
+ "head-to-hip": "https://cdn.nodaro.ai/images/4d99a831-755e-49b1-aee8-81167870fdaf.png",
331
+ "half-body": "https://cdn.nodaro.ai/images/0b4331be-2756-433f-81f3-38b50fb27db9.png",
332
+ "eye-level": "https://cdn.nodaro.ai/images/1e258940-8157-4058-82a1-1f43ffe7b1e0.png",
333
+ "high-angle": "https://cdn.nodaro.ai/images/19f39949-dfc9-4e2d-9818-0f9aaaf39b42.png",
334
+ "low-angle": "https://cdn.nodaro.ai/images/63a0e889-dc46-4e7f-86b5-16d92cf4056d.png",
335
+ overhead: "https://cdn.nodaro.ai/images/1207f040-1961-4d11-aafd-a9a6255bbaa4.png",
336
+ "worms-eye-angle": "https://cdn.nodaro.ai/images/aac7c26e-e507-462d-9476-8e74a10ee576.png",
337
+ "dutch-angle": "https://cdn.nodaro.ai/images/79afd253-5b2d-440a-939c-fa17aaac272d.png",
338
+ "birds-eye": "https://cdn.nodaro.ai/images/2021f3e4-bbef-4952-b91f-341b4742c602.png",
339
+ "slightly-downward": "https://cdn.nodaro.ai/images/ffea28eb-c262-4b87-82c1-a81aaefac777.png",
340
+ "front-on": "https://cdn.nodaro.ai/images/260d46af-eabd-456d-b514-436cd3dcacd8.png",
341
+ "three-quarter-front": "https://cdn.nodaro.ai/images/871da9ca-c73c-4b97-9928-e3de96d408a8.png",
342
+ "profile-left": "https://cdn.nodaro.ai/images/82126107-a0a4-4479-b799-a42691ceb56e.png",
343
+ "profile-right": "https://cdn.nodaro.ai/images/b684b9d0-722c-41a3-8333-d8d16c2b2976.png",
344
+ "three-quarter-back": "https://cdn.nodaro.ai/images/4f31dbbf-3192-4c60-9e40-3d22e2d238d7.png",
345
+ behind: "https://cdn.nodaro.ai/images/64cafb2e-f9f4-4179-941d-854ee9f4b79b.png",
346
+ "side-back-angle": "https://cdn.nodaro.ai/images/8a38a7de-44f2-4e57-8a60-6a91d1ed3d7f.png",
347
+ "rule-of-thirds": "https://cdn.nodaro.ai/images/5c3652c4-5f87-40a6-a30a-856eb96eea43.png",
348
+ centered: "https://cdn.nodaro.ai/images/37e40de5-19fc-48a5-9d4c-4ba8c338cc5a.png",
349
+ "headroom-tight": "https://cdn.nodaro.ai/images/f03927e6-6321-4144-826e-bd432e97bcae.png",
350
+ "negative-space": "https://cdn.nodaro.ai/images/2a8c2941-bd7b-4f67-9f69-2611f89a2a17.png",
351
+ "leading-lines": "https://cdn.nodaro.ai/images/49c7c88d-3ce9-4fef-9e3a-2b994bacca11.png",
352
+ "3x3-grid-collage": "https://cdn.nodaro.ai/images/79dd780f-5591-4bad-a6fb-4060a233c29c.png",
353
+ diptych: "https://cdn.nodaro.ai/images/e7331d4f-3b28-41ed-b226-28fa3df28dce.png",
354
+ triptych: "https://cdn.nodaro.ai/images/c9120de4-88ef-4a87-8c2d-005d1a03ee3c.png",
355
+ "multi-frame-mosaic": "https://cdn.nodaro.ai/images/bddaa365-44bf-47d1-94b7-4455c0af995a.png",
356
+ "contact-sheet": "https://cdn.nodaro.ai/images/65bb3f42-a778-4502-91ed-3d57f9a5a7a3.png",
357
+ "magazine-spread": "https://cdn.nodaro.ai/images/0a114450-752e-42f7-a346-bfc364052b0e.png",
358
+ "cutaway-cross-section": "https://cdn.nodaro.ai/images/78308a76-f2dc-4c31-89d2-edcf92dea13e.png",
359
+ "golden-spiral": "https://cdn.nodaro.ai/images/2fea452f-18b9-47ab-94a0-1af9225c288e.png",
360
+ "frame-within-frame": "https://cdn.nodaro.ai/images/167cf3e9-a94e-4250-a772-c244c580bd37.png",
361
+ "s-curve": "https://cdn.nodaro.ai/images/e8854c4e-97f5-44bc-a331-14f13560bb64.png",
362
+ "diagonal-composition": "https://cdn.nodaro.ai/images/bc352a58-25da-4162-9db9-7ee45e5ee0f9.png",
363
+ "triangular-composition": "https://cdn.nodaro.ai/images/ddc51811-e412-4b93-aa88-80c4c3f7f3ec.png",
364
+ "symmetrical-mirror": "https://cdn.nodaro.ai/images/639d3c65-d5a3-44c0-8fae-019ae5222df4.png",
365
+ "vignette-composition": "https://cdn.nodaro.ai/images/b4d33b4d-9c84-4d2a-bf42-3e596753b331.png",
366
+ },
367
+ "lighting": {
368
+ dawn: "https://cdn.nodaro.ai/images/87650594-2070-4e0f-96b2-b6b7fb44ab12.png",
369
+ sunrise: "https://cdn.nodaro.ai/images/4e18b54f-6b2c-4ab7-842c-be1fa25351b3.png",
370
+ morning: "https://cdn.nodaro.ai/images/c1aa52a0-a6e0-4e5b-befd-1cdf0b337e60.png",
371
+ noon: "https://cdn.nodaro.ai/images/3f0c135a-65b5-4ab3-92de-4231ed620f2e.png",
372
+ "harsh-midday": "https://cdn.nodaro.ai/images/67130cb6-8a2e-4796-bc93-8937a670a388.png",
373
+ afternoon: "https://cdn.nodaro.ai/images/e899c830-f4c8-4df2-8afa-de39e1bf00ff.png",
374
+ overcast: "https://cdn.nodaro.ai/images/abd5c850-8f50-4904-977b-c73f28179ac5.png",
375
+ "golden-hour": "https://cdn.nodaro.ai/images/045bf7a8-6669-4a6e-81d5-e27975e20623.png",
376
+ dusk: "https://cdn.nodaro.ai/images/2e20deb8-c39a-45e4-9778-14d5231ac2de.png",
377
+ "blue-hour": "https://cdn.nodaro.ai/images/c8abc238-b1cd-48e2-90bb-fec6ef2f69ed.png",
378
+ twilight: "https://cdn.nodaro.ai/images/005df80e-d23a-4172-be5a-53d6858dda5a.png",
379
+ night: "https://cdn.nodaro.ai/images/f521f1ec-c753-4d0f-b780-9a576fc8e807.png",
380
+ midnight: "https://cdn.nodaro.ai/images/dc149ee2-a3a8-477e-9dc7-90720101e53f.png",
381
+ moonlight: "https://cdn.nodaro.ai/images/2d4327b5-8405-4022-9794-fb445ab8e914.png",
382
+ "neon-night": "https://cdn.nodaro.ai/images/811df332-195b-4141-8a08-c9bc980d904f.png",
383
+ "three-point": "https://cdn.nodaro.ai/images/a8147090-9096-4126-98a2-1a0a1adf4683.png",
384
+ rembrandt: "https://cdn.nodaro.ai/images/8f7e9930-df57-4e2d-91cf-2962edd2985f.png",
385
+ chiaroscuro: "https://cdn.nodaro.ai/images/d9e4b796-1c2c-4378-a70e-907edc6fe3ba.png",
386
+ silhouette: "https://cdn.nodaro.ai/images/b21f02c6-70d6-462c-b2d8-d03925e7eb2c.png",
387
+ "high-key": "https://cdn.nodaro.ai/images/0a00ca56-25dc-4b50-9612-98577ec46de5.png",
388
+ "low-key": "https://cdn.nodaro.ai/images/422fc336-f8c8-4546-b768-af08660e2ddb.png",
389
+ split: "https://cdn.nodaro.ai/images/94c60342-158d-48ff-b438-047d6e5d5770.png",
390
+ butterfly: "https://cdn.nodaro.ai/images/03d045d0-7f14-4d24-8cc2-e411c43d30c5.png",
391
+ loop: "https://cdn.nodaro.ai/images/a1e9d179-fa55-4c76-a594-e943cc814b50.png",
392
+ broad: "https://cdn.nodaro.ai/images/ffbd98ce-6bf5-4e6e-9605-37c1ef095723.png",
393
+ short: "https://cdn.nodaro.ai/images/c12955de-7bb2-4b33-9aa7-72f67e5dcd15.png",
394
+ hatchet: "https://cdn.nodaro.ai/images/28ba6aeb-7628-40db-af6f-71e3a161eab5.png",
395
+ clamshell: "https://cdn.nodaro.ai/images/c474b1bd-5bac-4521-acae-11ac3842b7f2.png",
396
+ hard: "https://cdn.nodaro.ai/images/8f6d1fe5-7288-4693-a12d-8e776222d440.png",
397
+ soft: "https://cdn.nodaro.ai/images/f3789819-d0e7-4d67-8716-f118ebab6180.png",
398
+ practical: "https://cdn.nodaro.ai/images/62e4045f-0bdc-43c8-8e35-3969780ec66a.png",
399
+ "ring-light": "https://cdn.nodaro.ai/images/3dc9d872-300c-42fc-8ccb-c6a3b168a05c.png",
400
+ "phone-screen-glow": "https://cdn.nodaro.ai/images/9d84db1c-4ee1-4b00-be94-8ff28a519eb5.png",
401
+ "selfie-natural": "https://cdn.nodaro.ai/images/36c476a4-4f2a-41e1-aec8-537184103aec.png",
402
+ natural: "https://cdn.nodaro.ai/images/93d792dc-6269-4109-a406-727c2852a0d0.png",
403
+ volumetric: "https://cdn.nodaro.ai/images/f66f85d8-5135-4884-9146-31ef0f0af772.png",
404
+ noir: "https://cdn.nodaro.ai/images/22435d3e-f25b-4592-a31d-21ff19016930.png",
405
+ "on-camera-flash": "https://cdn.nodaro.ai/images/272dee07-0da0-406b-8dcb-f66a7ddb9bc2.png",
406
+ "mirror-bounce-flash": "https://cdn.nodaro.ai/images/3ca0f856-4da2-4175-bf94-8f246139f14b.png",
407
+ "bounced-flash": "https://cdn.nodaro.ai/images/b0d73207-90e8-48d7-85c1-2021632ffe93.png",
408
+ "softbox-key": "https://cdn.nodaro.ai/images/fb88d4d9-5e8a-4430-b5c8-6308255f95aa.png",
409
+ "beauty-dish": "https://cdn.nodaro.ai/images/45658292-7487-48b2-8d0f-193aca9cfdb1.png",
410
+ "gridded-snoot": "https://cdn.nodaro.ai/images/a7702f7c-8315-4613-8d91-807e044289ec.png",
411
+ "silk-diffusion": "https://cdn.nodaro.ai/images/c7c70b01-5470-4014-ab9e-0e0a03546280.png",
412
+ "kicker-rim": "https://cdn.nodaro.ai/images/c7029103-a656-4c48-925f-1db98c60c2d5.png",
413
+ candlelight: "https://cdn.nodaro.ai/images/1838e5f8-aa89-4a77-aff6-befd5bae4d9c.png",
414
+ "edison-tungsten": "https://cdn.nodaro.ai/images/47c06056-4df7-49b9-a6b0-a0feab1dc5de.png",
415
+ "dappled-light": "https://cdn.nodaro.ai/images/95d659cf-f4c4-464c-9693-0ec63d458ee9.png",
416
+ "raking-sidelight": "https://cdn.nodaro.ai/images/2e4b6ab0-b1f5-4207-8481-8cc7f8b193cc.png",
417
+ "stage-spotlight": "https://cdn.nodaro.ai/images/97ed4ec9-13f6-4916-ba67-cec51c5dcb1e.png",
418
+ "underwater-caustics": "https://cdn.nodaro.ai/images/85be921e-d20a-42d3-8712-cc4e627b5f8b.png",
419
+ bioluminescence: "https://cdn.nodaro.ai/images/838f5a17-3277-4e6e-b84e-d5c50e895250.png",
420
+ },
421
+ // Camera motion renders are CLIPS: tiles loop a small silent encode over a
422
+ // still frame while on screen (see LookArt / media-url.ts).
423
+ "camera-motion": {
424
+ static: "https://cdn.nodaro.ai/videos/70ae8a77-6988-420d-b178-4a2778ac5821.mp4",
425
+ handheld: "https://cdn.nodaro.ai/videos/fc5fed73-856f-4c91-9653-b4f440f1fcb5.mp4",
426
+ steadicam: "https://cdn.nodaro.ai/videos/69b117ef-4833-48cd-adb3-ebed7b72cf0f.mp4",
427
+ "pan-left": "https://cdn.nodaro.ai/videos/c6c2e4b2-148b-4d16-9061-5e1c65dc322b.mp4",
428
+ "pan-right": "https://cdn.nodaro.ai/videos/62b38623-2b5d-45e4-ba32-92d43132099c.mp4",
429
+ "whip-pan-left": "https://cdn.nodaro.ai/videos/f17d30d6-01ce-4344-a5ce-306d999fb5be.mp4",
430
+ "whip-pan-right": "https://cdn.nodaro.ai/videos/5a104889-6151-494a-817c-dc8b714b5d1e.mp4",
431
+ "tilt-up": "https://cdn.nodaro.ai/videos/1b57ffc3-e9a9-4fb5-a4a6-9c37c308c187.mp4",
432
+ "tilt-down": "https://cdn.nodaro.ai/videos/50e198bc-7938-4134-bc18-0fa1909d1309.mp4",
433
+ "zoom-in": "https://cdn.nodaro.ai/videos/b9a01c72-a645-4698-b3c0-f3403707fbfd.mp4",
434
+ "zoom-out": "https://cdn.nodaro.ai/videos/b44491ac-140c-4bce-aedb-d2dbdce5bd64.mp4",
435
+ "crash-zoom-in": "https://cdn.nodaro.ai/videos/5d083a4a-ccb7-4347-a8bb-4a28d0f3e77a.mp4",
436
+ "crash-zoom-out": "https://cdn.nodaro.ai/videos/f59de464-dd49-4651-8341-069ef04f66d8.mp4",
437
+ "dolly-in": "https://cdn.nodaro.ai/videos/beb6409d-9d81-4921-a4c8-41c33a6e2ecd.mp4",
438
+ "dolly-out": "https://cdn.nodaro.ai/videos/5f82caed-6378-4b83-9721-9242ceff3f68.mp4",
439
+ "dolly-zoom": "https://cdn.nodaro.ai/videos/0e71f794-0f6c-4325-9aea-adca41784564.mp4",
440
+ "push-in": "https://cdn.nodaro.ai/videos/390636f4-0e70-4dcb-a8ad-d1963089691e.mp4",
441
+ "pull-out": "https://cdn.nodaro.ai/videos/b30b9d5a-44f4-4f15-a9c3-e484ddb7d607.mp4",
442
+ breathing: "https://cdn.nodaro.ai/videos/7552dffd-6028-4d89-8a2c-b7148efe5c0f.mp4",
443
+ "push-pull": "https://cdn.nodaro.ai/videos/d7cdb4d4-f8ac-4e85-ba84-10f4510cff50.mp4",
444
+ "creep-in": "https://cdn.nodaro.ai/videos/18999856-69f6-4f02-ab3b-c3a1651f0e57.mp4",
445
+ "creep-out": "https://cdn.nodaro.ai/videos/1ffe3a50-d720-4c47-8468-f664323e2529.mp4",
446
+ "truck-left": "https://cdn.nodaro.ai/videos/ae8b0b19-8eee-4792-b176-7f20bfd5fdeb.mp4",
447
+ "truck-right": "https://cdn.nodaro.ai/videos/1d67760b-aeda-440f-90b8-a1cfa8d896dc.mp4",
448
+ "pedestal-up": "https://cdn.nodaro.ai/videos/79df6cf3-fadf-42a3-afac-6b3c33a2e01e.mp4",
449
+ "pedestal-down": "https://cdn.nodaro.ai/videos/aa107622-04ed-4656-9202-fc46ef5f90b0.mp4",
450
+ "roll-left": "https://cdn.nodaro.ai/videos/486eedf9-d8ff-4025-8238-aa7789a746b2.mp4",
451
+ "roll-right": "https://cdn.nodaro.ai/videos/ee7eb921-0468-46ff-abb4-52f1a0f523bf.mp4",
452
+ "dutch-angle": "https://cdn.nodaro.ai/videos/a9f87831-c35d-4995-b7e2-5f921d966139.mp4",
453
+ "spin-360": "https://cdn.nodaro.ai/videos/185eaa23-39dd-44ef-aa2b-1b05ba6249cb.mp4",
454
+ "orbit-left": "https://cdn.nodaro.ai/videos/eb857fea-b3e2-4eb0-b1b4-f6534dd2e00e.mp4",
455
+ "orbit-right": "https://cdn.nodaro.ai/videos/ea4ba395-74e9-4fc6-b89a-959e655081df.mp4",
456
+ "arc-left": "https://cdn.nodaro.ai/videos/92b0d528-994d-4107-a896-ea9598f5ad0c.mp4",
457
+ "arc-right": "https://cdn.nodaro.ai/videos/2cbc3dc0-3a91-49dc-b466-28407e5e3ebb.mp4",
458
+ "orbit-360": "https://cdn.nodaro.ai/videos/097a7ef5-27b6-4de7-bbf9-655504ec795f.mp4",
459
+ "crane-up": "https://cdn.nodaro.ai/videos/e18f5347-7529-4f40-84b5-e7e1ecf186a4.mp4",
460
+ "crane-down": "https://cdn.nodaro.ai/videos/f80b8248-f74f-4448-988d-0f78a4c93b75.mp4",
461
+ "tracking-shot": "https://cdn.nodaro.ai/videos/efea057d-7779-464d-b79a-feaf5a8e2d76.mp4",
462
+ follow: "https://cdn.nodaro.ai/videos/21afeb8c-50b3-4e11-883b-c505ae189843.mp4",
463
+ lead: "https://cdn.nodaro.ai/videos/5f1279d0-caf6-4717-a470-66ad1bb286eb.mp4",
464
+ "drone-follow": "https://cdn.nodaro.ai/videos/a36d0f48-d65d-41b7-910f-38d71ca7e5e1.mp4",
465
+ "dolly-track": "https://cdn.nodaro.ai/videos/4b471ddf-9901-4ffe-9934-50f510fd3e5c.mp4",
466
+ "gimbal-walk": "https://cdn.nodaro.ai/videos/2043bafd-9332-4558-b43e-d26f7450e2ed.mp4",
467
+ "ronin-glide": "https://cdn.nodaro.ai/videos/b408e6ae-0a9e-4a7b-a097-17f343245636.mp4",
468
+ serpentine: "https://cdn.nodaro.ai/videos/14a4f8f0-a831-49fa-8c20-b4e3236b89e5.mp4",
469
+ pov: "https://cdn.nodaro.ai/videos/9e4a0dcd-1ca9-4ec5-b65c-40ef2e543a0f.mp4",
470
+ "over-the-shoulder": "https://cdn.nodaro.ai/videos/6827388c-4226-4e0e-afbe-efd9022495b9.mp4",
471
+ "birds-eye": "https://cdn.nodaro.ai/videos/d752038a-ce24-4bf8-b117-d2424c01c4ab.mp4",
472
+ "worms-eye": "https://cdn.nodaro.ai/videos/79c953d9-1f94-4ba8-b769-89428450be1e.mp4",
473
+ aerial: "https://cdn.nodaro.ai/videos/59bdf3a0-f40c-4e34-b102-45269c5c1605.mp4",
474
+ helicopter: "https://cdn.nodaro.ai/videos/556e857d-62a6-4e66-8c09-0b74741acaeb.mp4",
475
+ "fly-over": "https://cdn.nodaro.ai/videos/86638280-7d0c-4f7a-8fc9-5f10f9554a0f.mp4",
476
+ flythrough: "https://cdn.nodaro.ai/videos/d95788b6-3a0a-4673-9bb3-99b7c29814c3.mp4",
477
+ reveal: "https://cdn.nodaro.ai/videos/ecd5c9f2-048d-423b-bd9a-9ba0fd1e4d30.mp4",
478
+ snorricam: "https://cdn.nodaro.ai/videos/bbe9c3f0-90e0-4196-ac0a-fe86bf815a0a.mp4",
479
+ "rack-focus": "https://cdn.nodaro.ai/videos/ffe2d73d-b1bd-4b25-a58c-ccd22aac023d.mp4",
480
+ "handheld-vlog": "https://cdn.nodaro.ai/videos/7ba3389b-7050-4405-a5d2-ecdac8b960f6.mp4",
481
+ "pov-walk": "https://cdn.nodaro.ai/videos/4c4460f7-15d8-473b-8316-e82cf4b77a9d.mp4",
482
+ "velocity-edit": "https://cdn.nodaro.ai/videos/d42f535f-365d-486d-b49d-a76ded3aabd5.mp4",
483
+ "match-cut-zoom": "https://cdn.nodaro.ai/videos/054aa78a-19d8-47bf-b4ab-47939e0429d4.mp4",
484
+ "screen-tap": "https://cdn.nodaro.ai/videos/8d05b0e3-4129-468d-9c84-a48b11990ed8.mp4",
485
+ "phone-flip": "https://cdn.nodaro.ai/videos/884eb274-2c24-46ca-bf32-1e1833c7e1ba.mp4",
486
+ "gentle-drift": "https://cdn.nodaro.ai/videos/b8d23d14-5089-4f10-87a6-622a388d4edc.mp4",
487
+ parallax: "https://cdn.nodaro.ai/videos/c6a97b45-ff45-48cb-b8be-37af726ff485.mp4",
488
+ },
489
+ } as const satisfies LookPreviewSets