@nodaro/prompts 1.54.0 → 1.55.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.
Files changed (101) hide show
  1. package/dist/{catalog-packs-DeMcSVCR.d.cts → catalog-packs-Bw7OpufR.d.cts} +1 -1
  2. package/dist/{catalog-packs-DjqvicAR.d.ts → catalog-packs-CyS8NdLM.d.ts} +1 -1
  3. package/dist/{chunk-HOZPYHRA.js → chunk-242NZ6SI.js} +5 -5
  4. package/dist/{chunk-HOZPYHRA.js.map → chunk-242NZ6SI.js.map} +1 -1
  5. package/dist/{chunk-56HWABF5.cjs → chunk-2LWYFWZL.cjs} +478 -2
  6. package/dist/chunk-2LWYFWZL.cjs.map +1 -0
  7. package/dist/{chunk-P4BXE4OA.cjs → chunk-2MTFPGQC.cjs} +13 -13
  8. package/dist/{chunk-P4BXE4OA.cjs.map → chunk-2MTFPGQC.cjs.map} +1 -1
  9. package/dist/{chunk-CDNW7O7H.cjs → chunk-32BMZ4Q5.cjs} +39 -39
  10. package/dist/{chunk-CDNW7O7H.cjs.map → chunk-32BMZ4Q5.cjs.map} +1 -1
  11. package/dist/{chunk-IVRSNUYX.js → chunk-4MCK7Y6C.js} +477 -3
  12. package/dist/chunk-4MCK7Y6C.js.map +1 -0
  13. package/dist/{chunk-FFPFBNXH.cjs → chunk-7ZWWJY24.cjs} +8 -2
  14. package/dist/chunk-7ZWWJY24.cjs.map +1 -0
  15. package/dist/{chunk-F22GZF7T.cjs → chunk-AMUXCE7X.cjs} +8 -8
  16. package/dist/{chunk-F22GZF7T.cjs.map → chunk-AMUXCE7X.cjs.map} +1 -1
  17. package/dist/{chunk-OQ3J7OGR.cjs → chunk-BHBZN2AP.cjs} +49 -49
  18. package/dist/{chunk-OQ3J7OGR.cjs.map → chunk-BHBZN2AP.cjs.map} +1 -1
  19. package/dist/{chunk-YAIPYPMM.js → chunk-BJGD4DBP.js} +4 -4
  20. package/dist/{chunk-YAIPYPMM.js.map → chunk-BJGD4DBP.js.map} +1 -1
  21. package/dist/{chunk-ZRORO6OM.js → chunk-CYYHQNW3.js} +4 -4
  22. package/dist/{chunk-ZRORO6OM.js.map → chunk-CYYHQNW3.js.map} +1 -1
  23. package/dist/{chunk-E5EKWWOO.cjs → chunk-FEHXLXAV.cjs} +8 -7
  24. package/dist/chunk-FEHXLXAV.cjs.map +1 -0
  25. package/dist/{chunk-5XPELUES.js → chunk-GJX5N63V.js} +8 -2
  26. package/dist/chunk-GJX5N63V.js.map +1 -0
  27. package/dist/{chunk-Z4KWM6DV.js → chunk-HZH6XXYK.js} +6 -6
  28. package/dist/{chunk-Z4KWM6DV.js.map → chunk-HZH6XXYK.js.map} +1 -1
  29. package/dist/{chunk-OMRFKG4M.js → chunk-KBWUO4P7.js} +3 -3
  30. package/dist/{chunk-OMRFKG4M.js.map → chunk-KBWUO4P7.js.map} +1 -1
  31. package/dist/{chunk-XUMEDRML.cjs → chunk-M25N26II.cjs} +8 -5
  32. package/dist/chunk-M25N26II.cjs.map +1 -0
  33. package/dist/{chunk-YDG3KMCN.js → chunk-NCF5TAR6.js} +8 -5
  34. package/dist/chunk-NCF5TAR6.js.map +1 -0
  35. package/dist/{chunk-NUC5RV4P.cjs → chunk-NDKJW7RP.cjs} +4 -4
  36. package/dist/{chunk-NUC5RV4P.cjs.map → chunk-NDKJW7RP.cjs.map} +1 -1
  37. package/dist/{chunk-ED47NNIN.js → chunk-OXNJVQ2V.js} +3 -3
  38. package/dist/{chunk-ED47NNIN.js.map → chunk-OXNJVQ2V.js.map} +1 -1
  39. package/dist/{chunk-PWYASBX2.cjs → chunk-P5HAPDV3.cjs} +18 -18
  40. package/dist/{chunk-PWYASBX2.cjs.map → chunk-P5HAPDV3.cjs.map} +1 -1
  41. package/dist/{chunk-EUU5W7XR.js → chunk-TMYYALRF.js} +4 -4
  42. package/dist/{chunk-EUU5W7XR.js.map → chunk-TMYYALRF.js.map} +1 -1
  43. package/dist/{chunk-H322GC7M.js → chunk-VX3BIUGY.js} +5 -4
  44. package/dist/chunk-VX3BIUGY.js.map +1 -0
  45. package/dist/{chunk-VBCVQPQ4.js → chunk-WDKQQ7WL.js} +3 -3
  46. package/dist/{chunk-VBCVQPQ4.js.map → chunk-WDKQQ7WL.js.map} +1 -1
  47. package/dist/{chunk-KTNCB2IE.cjs → chunk-XMRDZRGV.cjs} +35 -35
  48. package/dist/{chunk-KTNCB2IE.cjs.map → chunk-XMRDZRGV.cjs.map} +1 -1
  49. package/dist/{chunk-7BWDATUZ.cjs → chunk-Y3TSRO3S.cjs} +125 -125
  50. package/dist/{chunk-7BWDATUZ.cjs.map → chunk-Y3TSRO3S.cjs.map} +1 -1
  51. package/dist/entries/assembly.cjs +29 -29
  52. package/dist/entries/assembly.js +6 -6
  53. package/dist/entries/catalog-packs.d.cts +4 -4
  54. package/dist/entries/catalog-packs.d.ts +4 -4
  55. package/dist/entries/doctrine.cjs +46 -46
  56. package/dist/entries/doctrine.js +1 -1
  57. package/dist/entries/person.d.cts +3 -3
  58. package/dist/entries/person.d.ts +3 -3
  59. package/dist/entries/picker-art.cjs +22 -22
  60. package/dist/entries/picker-art.d.cts +1 -1
  61. package/dist/entries/picker-art.d.ts +1 -1
  62. package/dist/entries/picker-art.js +2 -2
  63. package/dist/entries/picker-catalogs.cjs +57 -57
  64. package/dist/entries/picker-catalogs.d.cts +3 -3
  65. package/dist/entries/picker-catalogs.d.ts +3 -3
  66. package/dist/entries/picker-catalogs.js +5 -5
  67. package/dist/entries/pickers.cjs +383 -383
  68. package/dist/entries/pickers.js +3 -3
  69. package/dist/entries/presets.cjs +46 -38
  70. package/dist/entries/presets.d.cts +13 -1
  71. package/dist/entries/presets.d.ts +13 -1
  72. package/dist/entries/presets.js +1 -1
  73. package/dist/entries/prompt-builder.cjs +76 -76
  74. package/dist/entries/prompt-builder.js +5 -5
  75. package/dist/{images-ChAOLY5V.d.cts → images-BQ1jUWyZ.d.cts} +32 -3
  76. package/dist/{images-ChAOLY5V.d.ts → images-BQ1jUWyZ.d.ts} +32 -3
  77. package/dist/index.cjs +648 -640
  78. package/dist/index.d.cts +4 -4
  79. package/dist/index.d.ts +4 -4
  80. package/dist/index.js +12 -12
  81. package/dist/{picker-catalogs-DzLCu6qQ.d.cts → picker-catalogs-BuMGOVWC.d.cts} +1 -1
  82. package/dist/{picker-catalogs-SDSWrufc.d.ts → picker-catalogs-CVQopXwp.d.ts} +1 -1
  83. package/package.json +2 -2
  84. package/src/__tests__/doctrine-roster-completeness.test.ts +3 -0
  85. package/src/__tests__/factory-preset-previews.test.ts +38 -0
  86. package/src/__tests__/picker-art-images.test.ts +54 -0
  87. package/src/__tests__/seedance-extend.test.ts +15 -0
  88. package/src/factory-presets/index.ts +2 -0
  89. package/src/factory-presets/preview-files.generated.ts +472 -0
  90. package/src/factory-presets/previews.ts +17 -2
  91. package/src/picker-art/images.ts +39 -2
  92. package/src/picker-catalogs.ts +4 -2
  93. package/src/prompt-wizard-categories.ts +3 -0
  94. package/dist/chunk-56HWABF5.cjs.map +0 -1
  95. package/dist/chunk-5XPELUES.js.map +0 -1
  96. package/dist/chunk-E5EKWWOO.cjs.map +0 -1
  97. package/dist/chunk-FFPFBNXH.cjs.map +0 -1
  98. package/dist/chunk-H322GC7M.js.map +0 -1
  99. package/dist/chunk-IVRSNUYX.js.map +0 -1
  100. package/dist/chunk-XUMEDRML.cjs.map +0 -1
  101. package/dist/chunk-YDG3KMCN.js.map +0 -1
@@ -944,3 +944,475 @@ export const FACTORY_PRESET_PREVIEW_LARGE_FILES: Readonly<Record<string, { reado
944
944
  "generate-image/x-statement-card": {"file":"1024/generate-image/x-statement-card.93c12a0c.webp","width":1024},
945
945
  "generate-image/youtube-thumbnail": {"file":"1024/generate-image/youtube-thumbnail.fd4d0cf0.webp","width":1024},
946
946
  }
947
+
948
+ // The tile picture's real width and height (the box a client draws it in, before it loads).
949
+ export const FACTORY_PRESET_PREVIEW_SIZES: Readonly<Record<string, readonly [number, number]>> = {
950
+ "generate-image/3d-icon": [512,288],
951
+ "generate-image/ad-app-store-screenshot": [512,911],
952
+ "generate-image/ad-clinic": [512,288],
953
+ "generate-image/ad-creative": [512,288],
954
+ "generate-image/ad-facebook-lead": [512,512],
955
+ "generate-image/ad-gym-offer": [512,683],
956
+ "generate-image/ad-real-estate-listing": [512,683],
957
+ "generate-image/ad-restaurant-special": [512,683],
958
+ "generate-image/ad-salon-promo": [512,683],
959
+ "generate-image/ad-service-van": [512,288],
960
+ "generate-image/ad-store-sale": [512,288],
961
+ "generate-image/add-skin-realism": [512,288],
962
+ "generate-image/aerial-drone": [512,293],
963
+ "generate-image/aerial-site": [512,288],
964
+ "generate-image/age-progression-3": [512,288],
965
+ "generate-image/age-progression-5": [512,288],
966
+ "generate-image/age-progression-bw": [512,288],
967
+ "generate-image/album-cover": [512,512],
968
+ "generate-image/anime-person-real-bg": [512,288],
969
+ "generate-image/anime-scene": [512,288],
970
+ "generate-image/app-icon": [512,288],
971
+ "generate-image/avatar-pfp": [512,288],
972
+ "generate-image/background-remove": [512,288],
973
+ "generate-image/background-replace": [512,288],
974
+ "generate-image/beauty-hero": [512,288],
975
+ "generate-image/blueprint": [512,288],
976
+ "generate-image/book-cover": [512,773],
977
+ "generate-image/brand-linkedin-banner": [512,219],
978
+ "generate-image/brand-podcast-cover": [512,512],
979
+ "generate-image/brand-profile-picture": [512,512],
980
+ "generate-image/brand-spotify-canvas": [512,911],
981
+ "generate-image/brand-twitch-banner": [512,219],
982
+ "generate-image/building-tall": [512,288],
983
+ "generate-image/bw-portrait": [512,288],
984
+ "generate-image/candid-snapshot": [512,288],
985
+ "generate-image/cardboard-diorama": [512,288],
986
+ "generate-image/caricature-real-photo": [512,288],
987
+ "generate-image/cartoon-person-real-world": [512,288],
988
+ "generate-image/cast-mega-grid": [512,288],
989
+ "generate-image/cast-scene": [512,288],
990
+ "generate-image/character-action-4": [512,288],
991
+ "generate-image/character-board": [512,288],
992
+ "generate-image/character-chibi": [512,288],
993
+ "generate-image/character-expressions-16": [512,288],
994
+ "generate-image/character-expressions-6": [512,288],
995
+ "generate-image/character-fullbody-hero": [512,288],
996
+ "generate-image/character-outfits": [512,288],
997
+ "generate-image/character-portrait": [512,288],
998
+ "generate-image/character-reference-grid": [512,288],
999
+ "generate-image/character-turnaround": [512,288],
1000
+ "generate-image/character-turnaround-labeled": [512,288],
1001
+ "generate-image/chart-graph": [512,288],
1002
+ "generate-image/cinematic-keyframe": [512,288],
1003
+ "generate-image/cinematic-portrait": [512,288],
1004
+ "generate-image/cinematic-still": [512,288],
1005
+ "generate-image/cinematic-widescreen": [512,219],
1006
+ "generate-image/claymation-figure-real-set": [512,288],
1007
+ "generate-image/claymation-scene": [512,288],
1008
+ "generate-image/colorize": [512,288],
1009
+ "generate-image/comic-panel": [512,288],
1010
+ "generate-image/community-fundraiser": [512,683],
1011
+ "generate-image/community-menu-board": [512,683],
1012
+ "generate-image/concept-art-env": [512,288],
1013
+ "generate-image/corporate-headshot": [512,288],
1014
+ "generate-image/creator-at-home": [512,288],
1015
+ "generate-image/creature-board": [512,288],
1016
+ "generate-image/creature-design": [512,288],
1017
+ "generate-image/cyberpunk-scene": [512,288],
1018
+ "generate-image/decade-timeline": [512,288],
1019
+ "generate-image/device-mockup": [512,288],
1020
+ "generate-image/doodle-overlay": [512,288],
1021
+ "generate-image/doodle-overlay-expressive": [512,288],
1022
+ "generate-image/double-exposure": [512,288],
1023
+ "generate-image/ecom-amazon-hero": [512,512],
1024
+ "generate-image/ecom-etsy-handmade": [512,683],
1025
+ "generate-image/ecom-fashion-ghost": [512,683],
1026
+ "generate-image/ecom-infographic": [512,512],
1027
+ "generate-image/ecom-lifestyle-shot": [512,512],
1028
+ "generate-image/ecom-sale-badge": [512,512],
1029
+ "generate-image/edit-by-name": [512,288],
1030
+ "generate-image/edu-flashcard": [512,683],
1031
+ "generate-image/edu-slide-title": [512,288],
1032
+ "generate-image/edu-worksheet-header": [512,219],
1033
+ "generate-image/embroidered-art": [512,288],
1034
+ "generate-image/emoji-set": [512,288],
1035
+ "generate-image/establishing-shot": [512,219],
1036
+ "generate-image/event-baby-shower": [512,683],
1037
+ "generate-image/event-birthday-invite": [512,683],
1038
+ "generate-image/event-club-flyer": [512,683],
1039
+ "generate-image/event-conference-banner": [512,293],
1040
+ "generate-image/event-holiday-greeting": [512,512],
1041
+ "generate-image/event-poster": [512,288],
1042
+ "generate-image/event-wedding-invite": [512,683],
1043
+ "generate-image/exterior-render": [512,288],
1044
+ "generate-image/faceless-3d-head": [512,288],
1045
+ "generate-image/faux-food-clay": [512,288],
1046
+ "generate-image/fb-event-cover": [512,288],
1047
+ "generate-image/fb-group-cover": [512,288],
1048
+ "generate-image/flat-vector-illustration": [512,288],
1049
+ "generate-image/floor-plan": [512,288],
1050
+ "generate-image/flowchart": [512,288],
1051
+ "generate-image/food-board": [512,288],
1052
+ "generate-image/food-flatlay": [512,288],
1053
+ "generate-image/food-photography": [512,288],
1054
+ "generate-image/four-seasons": [512,288],
1055
+ "generate-image/game-icon": [512,512],
1056
+ "generate-image/ghost-mannequin": [512,288],
1057
+ "generate-image/golden-hour-portrait": [512,288],
1058
+ "generate-image/ig-carousel-cover": [512,683],
1059
+ "generate-image/ig-flatlay": [512,512],
1060
+ "generate-image/ig-giveaway": [512,512],
1061
+ "generate-image/ig-new-drop": [512,683],
1062
+ "generate-image/ig-photo-dump": [512,683],
1063
+ "generate-image/ig-testimonial": [512,512],
1064
+ "generate-image/infographic": [512,288],
1065
+ "generate-image/instagram-post": [512,512],
1066
+ "generate-image/interior-design": [512,288],
1067
+ "generate-image/isometric-illustration": [512,288],
1068
+ "generate-image/knolling": [512,288],
1069
+ "generate-image/label-elements": [512,288],
1070
+ "generate-image/landscape-vista": [512,219],
1071
+ "generate-image/layout-2x2-grid": [512,512],
1072
+ "generate-image/layout-comic-page": [512,683],
1073
+ "generate-image/layout-headless-sheet": [512,288],
1074
+ "generate-image/layout-multi-shot": [512,288],
1075
+ "generate-image/layout-production-storyboard": [512,288],
1076
+ "generate-image/layout-props-sheet": [512,288],
1077
+ "generate-image/layout-sprite-sheet": [512,288],
1078
+ "generate-image/layout-storyboard-6": [512,288],
1079
+ "generate-image/layout-visionary-magazine-cover": [512,910],
1080
+ "generate-image/li-certified": [512,683],
1081
+ "generate-image/li-infographic": [512,512],
1082
+ "generate-image/line-art-coloring": [512,288],
1083
+ "generate-image/location-board": [512,288],
1084
+ "generate-image/logo-emblem": [512,288],
1085
+ "generate-image/logo-mascot": [512,288],
1086
+ "generate-image/logo-wordmark": [512,288],
1087
+ "generate-image/long-exposure": [512,288],
1088
+ "generate-image/low-poly": [512,288],
1089
+ "generate-image/macro-shot": [512,288],
1090
+ "generate-image/macro-skin-study": [512,288],
1091
+ "generate-image/manga-bw": [512,288],
1092
+ "generate-image/mascot-board": [512,288],
1093
+ "generate-image/matte-painting": [512,219],
1094
+ "generate-image/merch-mug": [512,512],
1095
+ "generate-image/merch-standalone-print-art": [512,512],
1096
+ "generate-image/merch-sticker-sheet": [512,512],
1097
+ "generate-image/merch-tshirt-design": [512,683],
1098
+ "generate-image/mirror-selfie": [512,288],
1099
+ "generate-image/monogram": [512,288],
1100
+ "generate-image/moodboard-tile": [512,288],
1101
+ "generate-image/movie-poster": [512,773],
1102
+ "generate-image/natural-photo-finish": [512,288],
1103
+ "generate-image/needle-felt": [512,288],
1104
+ "generate-image/oil-painting": [512,288],
1105
+ "generate-image/outfit-board": [512,288],
1106
+ "generate-image/packaging-mockup": [512,288],
1107
+ "generate-image/paper-cut": [512,288],
1108
+ "generate-image/personal-birthday-card": [512,683],
1109
+ "generate-image/personal-dating-profile": [512,683],
1110
+ "generate-image/personal-family-holiday-card": [512,683],
1111
+ "generate-image/personal-meme-template": [512,512],
1112
+ "generate-image/personal-pet-portrait": [512,683],
1113
+ "generate-image/personal-phone-wallpaper": [512,910],
1114
+ "generate-image/pet-board": [512,288],
1115
+ "generate-image/phone-camera-look": [512,288],
1116
+ "generate-image/phone-selfie": [512,288],
1117
+ "generate-image/pin-home-decor": [512,768],
1118
+ "generate-image/pin-outfit-ideas": [512,768],
1119
+ "generate-image/pin-recipe": [512,768],
1120
+ "generate-image/pixar-3d": [512,288],
1121
+ "generate-image/pixel-art": [512,288],
1122
+ "generate-image/pixel-sprite": [512,288],
1123
+ "generate-image/pop-art": [512,288],
1124
+ "generate-image/pose-board": [512,288],
1125
+ "generate-image/post-big-caption": [512,636],
1126
+ "generate-image/post-carousel-cover": [512,512],
1127
+ "generate-image/post-employee-spotlight": [512,512],
1128
+ "generate-image/post-event-announcement": [512,512],
1129
+ "generate-image/post-hiring": [512,512],
1130
+ "generate-image/post-old-vs-new": [512,636],
1131
+ "generate-image/post-quote-card": [512,512],
1132
+ "generate-image/product-board": [512,288],
1133
+ "generate-image/product-flatlay": [512,288],
1134
+ "generate-image/product-in-hand": [512,288],
1135
+ "generate-image/product-lifestyle": [512,288],
1136
+ "generate-image/product-shot": [512,288],
1137
+ "generate-image/quote-card": [512,288],
1138
+ "generate-image/real-estate-hero": [512,288],
1139
+ "generate-image/real-person-cartoon-world": [512,288],
1140
+ "generate-image/relight": [512,288],
1141
+ "generate-image/remove-faces": [512,288],
1142
+ "generate-image/restore-photo": [512,288],
1143
+ "generate-image/restyle-whole": [512,288],
1144
+ "generate-image/scene-board": [512,288],
1145
+ "generate-image/seamless-pattern": [512,288],
1146
+ "generate-image/seamless-texture": [512,288],
1147
+ "generate-image/short-ai-free-tool": [512,896],
1148
+ "generate-image/short-dance-trend": [512,911],
1149
+ "generate-image/short-fitness-daily": [512,911],
1150
+ "generate-image/short-grwm-outfit": [512,896],
1151
+ "generate-image/short-morning-routine": [512,911],
1152
+ "generate-image/short-pov-hook": [512,911],
1153
+ "generate-image/short-quick-recipe": [512,911],
1154
+ "generate-image/short-side-income": [512,896],
1155
+ "generate-image/short-storytime": [512,910],
1156
+ "generate-image/short-three-steps": [512,896],
1157
+ "generate-image/silhouette": [512,288],
1158
+ "generate-image/skin-detail-sheet": [512,288],
1159
+ "generate-image/sock-puppet": [512,288],
1160
+ "generate-image/sport-match-day": [512,683],
1161
+ "generate-image/sport-player-card": [512,683],
1162
+ "generate-image/sports-jersey-portrait": [512,288],
1163
+ "generate-image/stained-glass": [512,288],
1164
+ "generate-image/sticker-diecut": [512,288],
1165
+ "generate-image/story-countdown": [512,910],
1166
+ "generate-image/story-link-above": [512,911],
1167
+ "generate-image/story-this-or-that": [512,911],
1168
+ "generate-image/story-vertical": [512,910],
1169
+ "generate-image/storyboard-frame": [512,288],
1170
+ "generate-image/studio-portrait": [512,288],
1171
+ "generate-image/tattoo-flash": [512,288],
1172
+ "generate-image/text-80s-synthwave": [512,288],
1173
+ "generate-image/text-anime-title": [512,288],
1174
+ "generate-image/text-art-deco": [512,288],
1175
+ "generate-image/text-balloon-foil": [512,288],
1176
+ "generate-image/text-blockbuster": [512,288],
1177
+ "generate-image/text-botanical-serif": [512,288],
1178
+ "generate-image/text-brutalist-acid": [512,288],
1179
+ "generate-image/text-carved-wood": [512,288],
1180
+ "generate-image/text-chalkboard": [512,288],
1181
+ "generate-image/text-chrome-y2k": [512,288],
1182
+ "generate-image/text-comic-hero": [512,288],
1183
+ "generate-image/text-disco-funk": [512,293],
1184
+ "generate-image/text-embroidered-patch": [512,288],
1185
+ "generate-image/text-film-noir": [512,288],
1186
+ "generate-image/text-fire-embers": [512,288],
1187
+ "generate-image/text-frosted-glass": [512,288],
1188
+ "generate-image/text-glitch": [512,288],
1189
+ "generate-image/text-gold-foil-luxury": [512,288],
1190
+ "generate-image/text-graffiti-drip": [512,288],
1191
+ "generate-image/text-grunge-stamp": [512,288],
1192
+ "generate-image/text-handwritten-marker": [512,293],
1193
+ "generate-image/text-holographic": [512,293],
1194
+ "generate-image/text-horror-poster": [512,293],
1195
+ "generate-image/text-ice": [512,288],
1196
+ "generate-image/text-indie-title-card": [512,288],
1197
+ "generate-image/text-inflated-clay": [512,288],
1198
+ "generate-image/text-kids-party": [512,288],
1199
+ "generate-image/text-liquid-water": [512,288],
1200
+ "generate-image/text-marble-carved": [512,288],
1201
+ "generate-image/text-molten-gold": [512,293],
1202
+ "generate-image/text-neon-sign": [512,288],
1203
+ "generate-image/text-paper-cutout": [512,288],
1204
+ "generate-image/text-pixel-8bit": [512,288],
1205
+ "generate-image/text-psychedelic-60s": [512,288],
1206
+ "generate-image/text-ransom-note": [512,293],
1207
+ "generate-image/text-retro-serif-70s": [512,288],
1208
+ "generate-image/text-rusted-metal": [512,288],
1209
+ "generate-image/text-scifi-chrome": [512,293],
1210
+ "generate-image/text-smoke": [512,288],
1211
+ "generate-image/text-sticker-pop": [512,288],
1212
+ "generate-image/text-typewriter": [512,288],
1213
+ "generate-image/text-varsity-sport": [512,288],
1214
+ "generate-image/text-vhs-glow": [512,288],
1215
+ "generate-image/text-wedding-script": [512,288],
1216
+ "generate-image/text-western": [512,293],
1217
+ "generate-image/thumb-ai-feature-grid": [512,288],
1218
+ "generate-image/thumb-ai-os-icons": [512,288],
1219
+ "generate-image/thumb-ai-tool-reveal": [512,287],
1220
+ "generate-image/thumb-analytics-growth": [512,293],
1221
+ "generate-image/thumb-beauty-makeup": [512,287],
1222
+ "generate-image/thumb-before-after": [512,288],
1223
+ "generate-image/thumb-breaking-news": [512,288],
1224
+ "generate-image/thumb-burning-question": [512,287],
1225
+ "generate-image/thumb-challenge-timer": [512,287],
1226
+ "generate-image/thumb-coding-tutorial": [512,288],
1227
+ "generate-image/thumb-copy-me-arrow": [512,287],
1228
+ "generate-image/thumb-course-launch": [512,288],
1229
+ "generate-image/thumb-creator-milestone": [512,287],
1230
+ "generate-image/thumb-crypto-pump": [512,293],
1231
+ "generate-image/thumb-diet-plan": [512,288],
1232
+ "generate-image/thumb-doctor-health": [512,288],
1233
+ "generate-image/thumb-docu-expose": [512,288],
1234
+ "generate-image/thumb-earnings-proof": [512,288],
1235
+ "generate-image/thumb-editorial-type": [512,287],
1236
+ "generate-image/thumb-finance-shock": [512,288],
1237
+ "generate-image/thumb-fitness-transform": [512,288],
1238
+ "generate-image/thumb-food-feast": [512,288],
1239
+ "generate-image/thumb-founder-story": [512,288],
1240
+ "generate-image/thumb-gaming-golden-item": [512,288],
1241
+ "generate-image/thumb-gaming-rush": [512,287],
1242
+ "generate-image/thumb-hero-object": [512,288],
1243
+ "generate-image/thumb-interview-two-up": [512,287],
1244
+ "generate-image/thumb-language-learning": [512,293],
1245
+ "generate-image/thumb-legal-explainer": [512,288],
1246
+ "generate-image/thumb-listicle-number": [512,288],
1247
+ "generate-image/thumb-live-show": [512,288],
1248
+ "generate-image/thumb-map-pin": [512,293],
1249
+ "generate-image/thumb-minimal-tech": [512,288],
1250
+ "generate-image/thumb-model-vs-model": [512,293],
1251
+ "generate-image/thumb-motivation": [512,288],
1252
+ "generate-image/thumb-mystery-blur": [512,288],
1253
+ "generate-image/thumb-new-model-drop": [512,288],
1254
+ "generate-image/thumb-node-diagram": [512,288],
1255
+ "generate-image/thumb-parenting": [512,288],
1256
+ "generate-image/thumb-pets": [512,288],
1257
+ "generate-image/thumb-playful-cast": [512,287],
1258
+ "generate-image/thumb-quote-highlight": [512,288],
1259
+ "generate-image/thumb-real-estate-agent": [512,288],
1260
+ "generate-image/thumb-red-x-green-check": [512,288],
1261
+ "generate-image/thumb-reel-cover-bold": [512,287],
1262
+ "generate-image/thumb-science-explainer": [512,287],
1263
+ "generate-image/thumb-screen-portals": [512,288],
1264
+ "generate-image/thumb-shocked-reaction": [512,287],
1265
+ "generate-image/thumb-sports-highlight": [512,293],
1266
+ "generate-image/thumb-squad-chaos": [512,288],
1267
+ "generate-image/thumb-stage-talk": [512,293],
1268
+ "generate-image/thumb-stock-call": [512,288],
1269
+ "generate-image/thumb-swiss-collage": [512,288],
1270
+ "generate-image/thumb-tech-glitch": [512,288],
1271
+ "generate-image/thumb-tier-list": [512,288],
1272
+ "generate-image/thumb-travel-wanderlust": [512,293],
1273
+ "generate-image/thumb-true-crime-board": [512,288],
1274
+ "generate-image/thumb-unboxing": [512,293],
1275
+ "generate-image/thumb-versus-battle": [512,293],
1276
+ "generate-image/thumb-vlog-bright": [512,287],
1277
+ "generate-image/tilt-shift": [512,288],
1278
+ "generate-image/timeline": [512,288],
1279
+ "generate-image/times-of-day": [512,288],
1280
+ "generate-image/transparent-faces": [512,288],
1281
+ "generate-image/tshirt-design": [512,288],
1282
+ "generate-image/uc-001-business": [512,384],
1283
+ "generate-image/uc-002-business": [512,683],
1284
+ "generate-image/uc-003-business": [512,683],
1285
+ "generate-image/uc-004-business": [512,636],
1286
+ "generate-image/uc-005-business": [512,636],
1287
+ "generate-image/uc-006-business": [512,288],
1288
+ "generate-image/uc-007-business": [512,636],
1289
+ "generate-image/uc-008-business": [512,288],
1290
+ "generate-image/uc-009-business": [512,683],
1291
+ "generate-image/uc-010-business": [512,636],
1292
+ "generate-image/uc-011-business": [512,683],
1293
+ "generate-image/uc-012-business": [512,683],
1294
+ "generate-image/uc-013-business": [512,636],
1295
+ "generate-image/uc-014-business": [512,636],
1296
+ "generate-image/uc-015-business": [512,288],
1297
+ "generate-image/uc-016-business": [512,288],
1298
+ "generate-image/uc-017-business": [512,636],
1299
+ "generate-image/uc-018-business": [512,288],
1300
+ "generate-image/uc-019-business": [512,683],
1301
+ "generate-image/uc-020-business": [512,288],
1302
+ "generate-image/uc-021-business": [512,288],
1303
+ "generate-image/uc-022-business": [512,288],
1304
+ "generate-image/uc-023-business": [512,636],
1305
+ "generate-image/uc-024-business": [512,683],
1306
+ "generate-image/uc-025-business": [512,636],
1307
+ "generate-image/uc-026-business": [512,384],
1308
+ "generate-image/uc-027-business": [512,683],
1309
+ "generate-image/uc-028-business": [512,636],
1310
+ "generate-image/uc-029-business": [512,384],
1311
+ "generate-image/uc-030-business": [512,768],
1312
+ "generate-image/uc-031-personal": [512,384],
1313
+ "generate-image/uc-032-personal": [512,384],
1314
+ "generate-image/uc-033-personal": [512,384],
1315
+ "generate-image/uc-034-personal": [512,384],
1316
+ "generate-image/uc-035-personal": [512,384],
1317
+ "generate-image/uc-036-personal": [512,683],
1318
+ "generate-image/uc-037-personal": [512,683],
1319
+ "generate-image/uc-038-personal": [512,683],
1320
+ "generate-image/uc-039-personal": [512,384],
1321
+ "generate-image/uc-040-personal": [512,288],
1322
+ "generate-image/uc-041-personal": [512,288],
1323
+ "generate-image/uc-042-personal": [512,683],
1324
+ "generate-image/uc-043-personal": [512,683],
1325
+ "generate-image/uc-044-personal": [512,683],
1326
+ "generate-image/uc-045-personal": [512,911],
1327
+ "generate-image/uc-046-personal": [512,683],
1328
+ "generate-image/uc-047-personal": [512,384],
1329
+ "generate-image/uc-048-personal": [512,683],
1330
+ "generate-image/uc-049-personal": [512,683],
1331
+ "generate-image/uc-050-personal": [512,288],
1332
+ "generate-image/uc-051-products": [512,384],
1333
+ "generate-image/uc-052-products": [512,512],
1334
+ "generate-image/uc-053-products": [512,636],
1335
+ "generate-image/uc-054-products": [512,636],
1336
+ "generate-image/uc-055-products": [512,512],
1337
+ "generate-image/uc-056-products": [512,683],
1338
+ "generate-image/uc-057-products": [512,288],
1339
+ "generate-image/uc-058-products": [512,512],
1340
+ "generate-image/uc-059-products": [512,512],
1341
+ "generate-image/uc-060-products": [512,636],
1342
+ "generate-image/uc-061-products": [512,384],
1343
+ "generate-image/uc-062-products": [512,288],
1344
+ "generate-image/uc-063-products": [512,683],
1345
+ "generate-image/uc-064-products": [512,288],
1346
+ "generate-image/uc-065-products": [512,636],
1347
+ "generate-image/uc-066-products": [512,384],
1348
+ "generate-image/uc-067-products": [512,512],
1349
+ "generate-image/uc-068-products": [512,512],
1350
+ "generate-image/uc-069-products": [512,288],
1351
+ "generate-image/uc-070-products": [512,636],
1352
+ "generate-image/uc-071-creative": [512,512],
1353
+ "generate-image/uc-072-creative": [512,512],
1354
+ "generate-image/uc-073-creative": [512,768],
1355
+ "generate-image/uc-074-creative": [512,768],
1356
+ "generate-image/uc-075-creative": [512,768],
1357
+ "generate-image/uc-076-creative": [512,288],
1358
+ "generate-image/uc-077-creative": [512,512],
1359
+ "generate-image/uc-078-creative": [512,288],
1360
+ "generate-image/uc-079-creative": [512,512],
1361
+ "generate-image/uc-080-creative": [512,288],
1362
+ "generate-image/uc-081-creative": [512,384],
1363
+ "generate-image/uc-082-creative": [512,288],
1364
+ "generate-image/uc-083-creative": [512,683],
1365
+ "generate-image/uc-084-creative": [512,288],
1366
+ "generate-image/uc-085-creative": [512,683],
1367
+ "generate-image/uc-086-creative": [512,288],
1368
+ "generate-image/uc-087-creative": [512,683],
1369
+ "generate-image/uc-088-creative": [512,683],
1370
+ "generate-image/uc-089-creative": [512,768],
1371
+ "generate-image/uc-090-creative": [512,683],
1372
+ "generate-image/uc-091-home": [512,288],
1373
+ "generate-image/uc-092-home": [512,288],
1374
+ "generate-image/uc-093-home": [512,288],
1375
+ "generate-image/uc-094-home": [512,683],
1376
+ "generate-image/uc-095-home": [512,288],
1377
+ "generate-image/uc-096-home": [512,288],
1378
+ "generate-image/uc-097-home": [512,683],
1379
+ "generate-image/uc-098-home": [512,288],
1380
+ "generate-image/uc-099-home": [512,288],
1381
+ "generate-image/uc-100-home": [512,288],
1382
+ "generate-image/uc-101-home": [512,288],
1383
+ "generate-image/uc-102-home": [512,288],
1384
+ "generate-image/uc-103-home": [512,288],
1385
+ "generate-image/uc-104-home": [512,288],
1386
+ "generate-image/uc-105-home": [512,288],
1387
+ "generate-image/uc-106-family": [512,683],
1388
+ "generate-image/uc-107-family": [512,683],
1389
+ "generate-image/uc-108-family": [512,683],
1390
+ "generate-image/uc-109-family": [512,683],
1391
+ "generate-image/uc-110-family": [512,683],
1392
+ "generate-image/uc-111-family": [512,683],
1393
+ "generate-image/uc-112-family": [512,768],
1394
+ "generate-image/uc-113-family": [512,683],
1395
+ "generate-image/uc-114-family": [512,512],
1396
+ "generate-image/uc-115-family": [512,683],
1397
+ "generate-image/uc-116-family": [512,683],
1398
+ "generate-image/uc-117-family": [512,683],
1399
+ "generate-image/uc-118-family": [512,288],
1400
+ "generate-image/uc-119-family": [512,683],
1401
+ "generate-image/uc-120-family": [512,683],
1402
+ "generate-image/ui-mockup": [512,288],
1403
+ "generate-image/undo-beauty-filter": [512,288],
1404
+ "generate-image/unretouched-portrait": [512,288],
1405
+ "generate-image/vaporwave": [512,288],
1406
+ "generate-image/vehicle-board": [512,288],
1407
+ "generate-image/video-call-frame": [512,288],
1408
+ "generate-image/wa-status-offer": [512,910],
1409
+ "generate-image/watercolor": [512,288],
1410
+ "generate-image/web-banner": [512,288],
1411
+ "generate-image/work-email-header": [512,219],
1412
+ "generate-image/work-landing-hero": [512,288],
1413
+ "generate-image/work-report-cover": [512,683],
1414
+ "generate-image/x-chart-take": [512,293],
1415
+ "generate-image/x-ray": [512,288],
1416
+ "generate-image/x-statement-card": [512,288],
1417
+ "generate-image/youtube-thumbnail": [512,288],
1418
+ }
@@ -1,6 +1,21 @@
1
- import { FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES } from "./preview-files.generated.js"
1
+ import { FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES, FACTORY_PRESET_PREVIEW_SIZES } from "./preview-files.generated.js"
2
2
 
3
- export { FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES }
3
+ export { FACTORY_PRESET_PREVIEW_FILES, FACTORY_PRESET_PREVIEW_LARGE_FILES, FACTORY_PRESET_PREVIEW_SIZES }
4
+
5
+ /**
6
+ * The tile picture's real width and height (`previewUrl`'s), or null when the
7
+ * preset has no committed picture: a client sizes the picture's box from it
8
+ * before the picture loads, whatever shape the preset itself asks for.
9
+ *
10
+ * @param sizes the preset id → [width, height] map; defaults to the committed one
11
+ */
12
+ export function factoryPresetPreviewSize(
13
+ presetId: string,
14
+ sizes: Readonly<Record<string, readonly [number, number]>> = FACTORY_PRESET_PREVIEW_SIZES,
15
+ ): { readonly width: number; readonly height: number } | null {
16
+ const size = Object.prototype.hasOwnProperty.call(sizes, presetId) ? sizes[presetId] : undefined
17
+ return size ? { width: size[0], height: size[1] } : null
18
+ }
4
19
 
5
20
  /**
6
21
  * Where the factory preset previews live, relative to the app's origin:
@@ -23,6 +23,23 @@ export interface PickerImageOptions {
23
23
  * ask for it), and four URLs per option are dead weight to an agent (MCP).
24
24
  */
25
25
  readonly srcSet?: boolean
26
+ /**
27
+ * A deployment's own pictures, in place of the platform's. When set, an
28
+ * option is pictured by what this returns for it and by nothing else — no
29
+ * self-hosted photo, emoji or flag, no render — so an option it has nothing
30
+ * for has no picture, and no Person / Styling topic has one (a topic is not
31
+ * an option). `baseUrl` and `lookPreviews` are not read. The package names no
32
+ * deployment picture itself: the API passes what the deployment registered.
33
+ */
34
+ readonly own?: (catalogId: string, optionId: string) => PickerOwnPicture | undefined
35
+ }
36
+
37
+ /** A deployment's own picture for one picker option (`PickerImageOptions.own`). */
38
+ export interface PickerOwnPicture {
39
+ /** Absolute URL of the picture. */
40
+ readonly url: string
41
+ /** Absolute URL of its enlarged version, when the deployment gave one. */
42
+ readonly largeUrl?: string
26
43
  }
27
44
 
28
45
  /** Hosts whose Cloudflare zone resizes on the fly (`/cdn-cgi/image/`, `/cdn-cgi/media/`). */
@@ -65,6 +82,12 @@ export interface PickerOptionImage {
65
82
  readonly url: string
66
83
  /** `<url> 240w, <url> 480w, …` — present only for a render the CDN resizes (Nodaro Cloud), when asked for (`srcSet: true`). */
67
84
  readonly srcSet?: string
85
+ /**
86
+ * The option's enlarged picture — present only for a deployment's own
87
+ * picture that has one (`PickerImageOptions.own`), when asked for
88
+ * (`srcSet: true`, the same request that asks for a srcset).
89
+ */
90
+ readonly largeUrl?: string
68
91
  }
69
92
 
70
93
  /**
@@ -84,7 +107,10 @@ function renderImage(url: string, withSrcSet: boolean): PickerOptionImage | unde
84
107
  }
85
108
 
86
109
  /**
87
- * The picture of one picker option, or undefined when it has none:
110
+ * The picture of one picker option, or undefined when it has none.
111
+ *
112
+ * With `images.own` (a deployment's own pictures), what it returns for the
113
+ * option, and nothing else. Otherwise, the platform's:
88
114
  *
89
115
  * 1. the self-hosted character photos;
90
116
  * 2. when renders are allowed (Nodaro Cloud), the music / voice pickers'
@@ -101,6 +127,7 @@ export function pickerOptionImage(
101
127
  id: string,
102
128
  images: PickerImageOptions,
103
129
  ): PickerOptionImage | undefined {
130
+ if (images.own) return ownImage(images.own(catalog.catalogId, id), images.srcSet === true)
104
131
  const origin = originOf(images.baseUrl)
105
132
  const photo = characterArtPath(catalog.catalogId, id)
106
133
  if (photo) return origin ? { url: origin + photo } : undefined
@@ -116,6 +143,11 @@ export function pickerOptionImage(
116
143
  return render ? renderImage(render, images.srcSet === true) : undefined
117
144
  }
118
145
 
146
+ function ownImage(own: PickerOwnPicture | undefined, withLarge: boolean): PickerOptionImage | undefined {
147
+ if (!own) return undefined
148
+ return withLarge && own.largeUrl ? { url: own.url, largeUrl: own.largeUrl } : { url: own.url }
149
+ }
150
+
119
151
  /** The absolute picture URL of one picker option, or undefined — `pickerOptionImage(...)?.url`. */
120
152
  export function pickerOptionImageUrl(
121
153
  catalog: { readonly nodeType: string; readonly catalogId: string },
@@ -126,8 +158,13 @@ export function pickerOptionImageUrl(
126
158
  return pickerOptionImage(catalog, field, id, images)?.url
127
159
  }
128
160
 
129
- /** The absolute URL of a Person / Styling topic's round picture, or undefined. */
161
+ /**
162
+ * The absolute URL of a Person / Styling topic's round picture, or undefined —
163
+ * always, with a deployment's own pictures (`images.own`): a topic is not an
164
+ * option, so it has none of them.
165
+ */
130
166
  export function pickerSectionImageUrl(sectionLabel: string, images: PickerImageOptions): string | undefined {
167
+ if (images.own) return undefined
131
168
  const origin = originOf(images.baseUrl)
132
169
  const path = characterSectionArtPath(sectionLabel)
133
170
  return origin && path ? origin + path : undefined
@@ -1088,8 +1088,9 @@ function projectOption(o: PickerOption, detail: PickerCatalogDetail, image?: Pic
1088
1088
  }
1089
1089
 
1090
1090
  function projectOptionFields(o: PickerOption, detail: PickerCatalogDetail, image?: PickerOptionImage): ProjectedPickerOption {
1091
- // `imageUrl` / `imageSrcSet` (display data) ride at both detail levels too,
1092
- // present only when the option has a picture (a srcset only for a CDN render).
1091
+ // `imageUrl` / `imageSrcSet` / `imageLargeUrl` (display data) ride at both
1092
+ // detail levels too, present only when the option has a picture (a srcset
1093
+ // only for a CDN render, a large picture only for a deployment's own).
1093
1094
  const extras = {
1094
1095
  ...(o.motion ? { motion: o.motion } : {}),
1095
1096
  // A style's media rides at both detail levels: a thin client filters its image style list by it.
@@ -1098,6 +1099,7 @@ function projectOptionFields(o: PickerOption, detail: PickerCatalogDetail, image
1098
1099
  ...(o.restyle === false ? { restyle: false as const } : {}),
1099
1100
  ...(image ? { imageUrl: image.url } : {}),
1100
1101
  ...(image?.srcSet ? { imageSrcSet: image.srcSet } : {}),
1102
+ ...(image?.largeUrl ? { imageLargeUrl: image.largeUrl } : {}),
1101
1103
  }
1102
1104
  return detail === "full"
1103
1105
  ? {
@@ -287,6 +287,7 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
287
287
  "kling-4-keyframes": "Kling 4.0 Keyframes — start frame, up to 8 in-between frames and an end frame; native audio, 3–30s, 720p/1080p",
288
288
  "kling-4-flash": "Kling 4.0 Flash — text, or up to 10 reference images / 5 videos / 7 characters (a voice clip per character); native audio, 3–20s, 720p",
289
289
  "grok-imagine-video-1.5": "Grok Imagine 1.5 — image-to-video only; exact start and end frame (the same image loops), up to 4 in-between frames; requires an input image",
290
+ "pixverse-v6-max": "PixVerse V6 Max — cinematic text-to-video, 8 aspect ratios incl. 21:9, optional native audio, 1–15s, 360p–1080p",
290
291
  },
291
292
  "image-to-video": {
292
293
  "minimax": "Versatile animation from still images",
@@ -327,6 +328,7 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
327
328
  "kling-4-keyframes": "Kling 4.0 Keyframes — start frame, up to 8 in-between frames and an end frame; native audio, 3–30s, 720p/1080p",
328
329
  "kling-4-flash": "Kling 4.0 Flash — a start frame alone is the exact opening frame; beside up to 10 reference images, 5 videos and 7 characters it joins them; native audio, 3–20s, 720p",
329
330
  "grok-imagine-video-1.5": "Grok Imagine 1.5 — stylized animation, 1–15s, 480p/720p/1080p, start + up to 4 in-between + end frames (image required)",
331
+ "pixverse-v6-max": "PixVerse V6 Max — the image is the exact first frame and sets the shape; optional native audio, 1–15s, 360p–1080p",
330
332
  },
331
333
  "video-to-video": {
332
334
  "wan": "Style transfer and video transformation",
@@ -345,6 +347,7 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
345
347
  "runway-extend": "Extend Runway-generated videos",
346
348
  "seedance-2-5-extend": "Extend ANY video by URL — seamless trim-stitched continuation with audio, 4–30s added (Seedance 2.5)",
347
349
  "seedance-2-0-extend": "Extend ANY video by URL — seamless trim-stitched continuation with audio, 4–15s added (Seedance 2.0)",
350
+ "kling-4-extend": "Extend ANY video by URL — seamless trim-stitched continuation with audio, 3–30s added (Kling 4)",
348
351
  },
349
352
  "speech-to-video": {
350
353
  "wan-speech": "Wan 2.2 speech-driven video generation",