@gentbajko/slopify 4.0.0 → 4.1.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 (366) hide show
  1. package/dist/adapters/account-limits.js +1 -1
  2. package/dist/adapters/alignment/audio.js +1 -1
  3. package/dist/adapters/alignment/cache.js +1 -1
  4. package/dist/adapters/alignment/multilingual.js +2 -1
  5. package/dist/adapters/alignment/runner.js +1 -1
  6. package/dist/adapters/alignment/worker.js +1 -1
  7. package/dist/adapters/explain.js +10 -9
  8. package/dist/adapters/host-cli/index.js +2 -1
  9. package/dist/adapters/host-cli/transport.js +2 -1
  10. package/dist/adapters/image/bytes.js +2 -1
  11. package/dist/adapters/image/codex.js +6 -5
  12. package/dist/adapters/image/fal.js +4 -3
  13. package/dist/adapters/image/google.js +3 -2
  14. package/dist/adapters/image/models.js +2 -2
  15. package/dist/adapters/image/openai.js +2 -1
  16. package/dist/adapters/image/replicate.js +3 -2
  17. package/dist/adapters/image/video.js +2 -1
  18. package/dist/adapters/key-probes.js +1 -1
  19. package/dist/adapters/llm/antigravity-models.js +1 -1
  20. package/dist/adapters/llm/antigravity.js +7 -6
  21. package/dist/adapters/llm/assistant-cli.js +1 -1
  22. package/dist/adapters/llm/claude-code-models.js +1 -1
  23. package/dist/adapters/llm/claude-code.js +3 -2
  24. package/dist/adapters/llm/codex-models.js +1 -1
  25. package/dist/adapters/llm/document-workspace.js +3 -2
  26. package/dist/adapters/llm/image-workspace.js +3 -2
  27. package/dist/adapters/llm/openrouter.js +2 -1
  28. package/dist/adapters/llm/run-cli.js +3 -2
  29. package/dist/adapters/tts/gemini.js +2 -1
  30. package/dist/adapters/tts/inworld-async.js +2 -1
  31. package/dist/adapters/tts/inworld.js +3 -2
  32. package/dist/adapters/tts/system.js +2 -1
  33. package/dist/catalog/registry.js +20 -13
  34. package/dist/catalog/schema.js +2 -1
  35. package/dist/catalog/validate.js +5 -2
  36. package/dist/edge/http/actions.js +7 -7
  37. package/dist/edge/http/app.js +3 -3
  38. package/dist/edge/http/assistant.js +3 -1
  39. package/dist/edge/http/backups.js +1 -1
  40. package/dist/edge/http/channel-memory.js +2 -2
  41. package/dist/edge/http/channels.js +1 -1
  42. package/dist/edge/http/checkpoints.js +7 -5
  43. package/dist/edge/http/design-templates.js +3 -3
  44. package/dist/edge/http/designs.js +1 -1
  45. package/dist/edge/http/document-themes.js +3 -3
  46. package/dist/edge/http/draft-problem.js +1 -1
  47. package/dist/edge/http/extension-auth.js +1 -1
  48. package/dist/edge/http/home.js +9 -1
  49. package/dist/edge/http/model-checks.js +4 -4
  50. package/dist/edge/http/onboarding.js +29 -12
  51. package/dist/edge/http/outputs.js +3 -2
  52. package/dist/edge/http/patch-notes.js +2 -2
  53. package/dist/edge/http/planning.js +1 -1
  54. package/dist/edge/http/project-create.js +1 -1
  55. package/dist/edge/http/project-templates.js +2 -2
  56. package/dist/edge/http/projects.js +22 -4
  57. package/dist/edge/http/prompts.js +2 -2
  58. package/dist/edge/http/providers.js +9 -10
  59. package/dist/edge/http/refusal.js +1 -1
  60. package/dist/edge/http/remote-access.js +4 -4
  61. package/dist/edge/http/remote-guard.js +2 -2
  62. package/dist/edge/http/reviews.js +1 -1
  63. package/dist/edge/http/revision-files.js +1 -1
  64. package/dist/edge/http/revisions.js +4 -4
  65. package/dist/edge/http/schedules.js +13 -11
  66. package/dist/edge/http/settings.js +6 -2
  67. package/dist/edge/http/social.js +5 -4
  68. package/dist/edge/http/staging.js +1 -1
  69. package/dist/edge/http/storage.js +12 -4
  70. package/dist/edge/http/studio.js +71 -19
  71. package/dist/edge/http/style-preview.js +2 -2
  72. package/dist/edge/http/template-studio.js +12 -9
  73. package/dist/edge/http/trash.js +1 -1
  74. package/dist/edge/http/youtube-edits.js +1 -1
  75. package/dist/edge/mcp/excluded-routes.js +4 -3
  76. package/dist/edge/mcp/instructions.js +3 -3
  77. package/dist/edge/mcp/library-tools.js +8 -5
  78. package/dist/edge/mcp/remake-tools.js +7 -4
  79. package/dist/edge/mcp/server.js +1 -1
  80. package/dist/edge/mcp/tools-channels.js +9 -9
  81. package/dist/edge/mcp/tools-designs.js +9 -9
  82. package/dist/edge/mcp/tools-library.js +7 -7
  83. package/dist/edge/mcp/tools-planning.js +18 -18
  84. package/dist/edge/mcp/tools-projects.js +10 -10
  85. package/dist/edge/mcp/tools-publishing.js +9 -9
  86. package/dist/edge/mcp/tools-runs.js +9 -9
  87. package/dist/edge/mcp/tools-schedules.js +6 -6
  88. package/dist/edge/mcp/tools-setup.js +20 -14
  89. package/dist/edge/mcp/tools-social.js +5 -4
  90. package/dist/edge/mcp/tools-storage.js +3 -3
  91. package/dist/edge/mcp/tools-template-studio.js +18 -18
  92. package/dist/edge/remote-access/model.js +1 -1
  93. package/dist/extension/slopify-studio-chrome.zip +0 -0
  94. package/dist/extension/slopify-studio-firefox.zip +0 -0
  95. package/dist/kernel/db/migrations/0078-uploaded-from-links.sql +7 -0
  96. package/dist/kernel/pipeline.js +12 -0
  97. package/dist/kernel/ports/settings-places.js +31 -0
  98. package/dist/kernel/ports/system-speech.js +31 -3
  99. package/dist/kernel/runner/attempt.js +11 -3
  100. package/dist/kernel/runner/providers.js +3 -2
  101. package/dist/kernel/runner/standalone.js +2 -2
  102. package/dist/main.js +5 -3
  103. package/dist/model-catalog.js +20 -0
  104. package/dist/patch-notes/4.0.0.md +13 -13
  105. package/dist/patch-notes/4.1.0.md +42 -0
  106. package/dist/patch-notes/index.json +6 -0
  107. package/dist/slices/admission/listing-facts.js +95 -0
  108. package/dist/slices/admission/repo.js +9 -6
  109. package/dist/slices/admission/rules.js +7 -7
  110. package/dist/slices/admission/state-words.js +34 -5
  111. package/dist/slices/assistant/cost.js +1 -1
  112. package/dist/slices/assistant/model.js +10 -3
  113. package/dist/slices/assistant/turn.js +5 -3
  114. package/dist/slices/autopilot/warnings.js +1 -1
  115. package/dist/slices/backups/service.js +5 -5
  116. package/dist/slices/channels/cast-images.js +1 -1
  117. package/dist/slices/channels/schema.js +1 -1
  118. package/dist/slices/channels/videos.js +1 -1
  119. package/dist/slices/control/providers.js +2 -2
  120. package/dist/slices/designs/budget.js +1 -1
  121. package/dist/slices/designs/calls.js +2 -2
  122. package/dist/slices/designs/check-context.js +4 -4
  123. package/dist/slices/designs/fields.js +4 -4
  124. package/dist/slices/designs/gate.js +7 -5
  125. package/dist/slices/designs/render-input.js +1 -1
  126. package/dist/slices/designs/requests.js +1 -1
  127. package/dist/slices/designs/runner.js +1 -1
  128. package/dist/slices/designs/sample.js +2 -1
  129. package/dist/slices/designs/service.js +1 -1
  130. package/dist/slices/designs/template-checks.js +2 -2
  131. package/dist/slices/designs/template-make.js +3 -3
  132. package/dist/slices/designs/templates.js +3 -3
  133. package/dist/slices/document/fonts.js +1 -1
  134. package/dist/slices/document/model.js +7 -4
  135. package/dist/slices/document/render.js +2 -1
  136. package/dist/slices/document/theme-schema.js +1 -1
  137. package/dist/slices/document/theme.js +49 -3
  138. package/dist/slices/episodes/summarize.js +2 -2
  139. package/dist/slices/estimate/index.js +28 -22
  140. package/dist/slices/estimate/requests.js +4 -4
  141. package/dist/slices/fixes/rules.js +3 -1
  142. package/dist/slices/fonts/catalog.js +2 -1
  143. package/dist/slices/fonts/coverage.js +2 -1
  144. package/dist/slices/images/appearance.js +2 -1
  145. package/dist/slices/images/scenes.js +2 -1
  146. package/dist/slices/keywords/digest.js +2 -1
  147. package/dist/slices/keywords/rules.js +2 -2
  148. package/dist/slices/keywords/specs.js +5 -5
  149. package/dist/slices/keywords/values.js +1 -1
  150. package/dist/slices/library/transfer.js +3 -3
  151. package/dist/slices/loudness/loudnorm.js +2 -1
  152. package/dist/slices/loudness/model.js +3 -2
  153. package/dist/slices/loudness/sentence-level.js +2 -1
  154. package/dist/slices/model-checks/rules.js +13 -0
  155. package/dist/slices/model-upkeep/model.js +1 -1
  156. package/dist/slices/model-upkeep/switch.js +3 -3
  157. package/dist/slices/model-upkeep/usage.js +13 -2
  158. package/dist/slices/narration/breaths.js +2 -1
  159. package/dist/slices/narration/clean-pieces.js +2 -1
  160. package/dist/slices/narration/pauses-model.js +3 -2
  161. package/dist/slices/narration/pronunciation.js +3 -2
  162. package/dist/slices/notifications/subject.js +2 -2
  163. package/dist/slices/onboarding/copy.js +19 -2
  164. package/dist/slices/onboarding/first-run.js +13 -38
  165. package/dist/slices/onboarding/install.js +2 -1
  166. package/dist/slices/onboarding/model.js +26 -21
  167. package/dist/slices/onboarding/preferred-model.js +14 -0
  168. package/dist/slices/onboarding/quick-short.js +103 -64
  169. package/dist/slices/onboarding/sample.js +4 -1
  170. package/dist/slices/onboarding/state.js +7 -0
  171. package/dist/slices/onboarding/template.js +6 -5
  172. package/dist/slices/outputs/add.js +3 -2
  173. package/dist/slices/outputs/service.js +2 -2
  174. package/dist/slices/patch-notes/library.js +1 -1
  175. package/dist/slices/play-drafts/readiness.js +3 -3
  176. package/dist/slices/play-drafts/review-inputs.js +1 -1
  177. package/dist/slices/play-drafts/service.js +17 -7
  178. package/dist/slices/project-templates/next-chapter.js +2 -1
  179. package/dist/slices/project-templates/provider-defaults.js +22 -0
  180. package/dist/slices/project-templates/setup-sections.js +26 -0
  181. package/dist/slices/project-templates/setup.js +6 -1
  182. package/dist/slices/rebuild/preview-details.js +5 -5
  183. package/dist/slices/rebuild/recipe-preparation.js +1 -1
  184. package/dist/slices/rebuild/recipe-save.js +2 -2
  185. package/dist/slices/rebuild/recipe-validation.js +5 -4
  186. package/dist/slices/rebuild/recipe-voices.js +3 -2
  187. package/dist/slices/rebuild/recipe-work.js +4 -4
  188. package/dist/slices/rebuild/recovery.js +6 -6
  189. package/dist/slices/rebuild/remake-outdated.js +5 -5
  190. package/dist/slices/rebuild/review-redo.js +1 -1
  191. package/dist/slices/rebuild/runtime-animate.js +2 -2
  192. package/dist/slices/rebuild/runtime-article.js +4 -3
  193. package/dist/slices/rebuild/runtime-document.js +5 -4
  194. package/dist/slices/rebuild/runtime-export-bed.js +2 -1
  195. package/dist/slices/rebuild/runtime-export-edit.js +2 -1
  196. package/dist/slices/rebuild/runtime-export-inputs.js +5 -4
  197. package/dist/slices/rebuild/runtime-export-short.js +1 -1
  198. package/dist/slices/rebuild/runtime-export.js +4 -3
  199. package/dist/slices/rebuild/runtime-image.js +4 -3
  200. package/dist/slices/rebuild/runtime-local.js +3 -2
  201. package/dist/slices/rebuild/runtime-narration-text.js +3 -2
  202. package/dist/slices/rebuild/runtime-provider.js +7 -6
  203. package/dist/slices/rebuild/runtime-review.js +6 -5
  204. package/dist/slices/rebuild/runtime-shorts.js +6 -5
  205. package/dist/slices/rebuild/runtime-store.js +17 -2
  206. package/dist/slices/rebuild/runtime-subtitles.js +13 -12
  207. package/dist/slices/rebuild/runtime-voices.js +2 -1
  208. package/dist/slices/rebuild/runtime-youtube.js +3 -2
  209. package/dist/slices/rebuild/service-readiness.js +11 -3
  210. package/dist/slices/research/synthesis.js +3 -2
  211. package/dist/slices/reviews/external-model.js +1 -1
  212. package/dist/slices/reviews/holds.js +5 -4
  213. package/dist/slices/reviews/model.js +8 -5
  214. package/dist/slices/reviews/rules.js +3 -3
  215. package/dist/slices/reviews/verdict.js +2 -1
  216. package/dist/slices/revisions/image-plan.js +1 -1
  217. package/dist/slices/revisions/mutation-assets.js +2 -1
  218. package/dist/slices/revisions/mutations.js +3 -2
  219. package/dist/slices/schedules/agenda.js +7 -5
  220. package/dist/slices/schedules/design-check.js +4 -4
  221. package/dist/slices/schedules/design-run.js +3 -3
  222. package/dist/slices/schedules/repo.js +6 -5
  223. package/dist/slices/schedules/schema.js +3 -0
  224. package/dist/slices/schedules/topics.js +5 -5
  225. package/dist/slices/settings/first-run.js +6 -32
  226. package/dist/slices/settings/health.js +30 -15
  227. package/dist/slices/settings/key-test.js +1 -1
  228. package/dist/slices/settings/model.js +4 -2
  229. package/dist/slices/settings/playback.js +2 -2
  230. package/dist/slices/shorts/keep.js +2 -1
  231. package/dist/slices/shorts/pick.js +4 -3
  232. package/dist/slices/shorts/prompts.js +2 -1
  233. package/dist/slices/shorts/render.js +3 -2
  234. package/dist/slices/social/media.js +5 -4
  235. package/dist/slices/social/pack.js +1 -1
  236. package/dist/slices/social/post-prompt.js +2 -1
  237. package/dist/slices/social/reshape.js +2 -2
  238. package/dist/slices/social/serve.js +1 -1
  239. package/dist/slices/social/service.js +3 -2
  240. package/dist/slices/social/state.js +1 -1
  241. package/dist/slices/storage/backup-import.js +2 -2
  242. package/dist/slices/storage/portable.js +1 -1
  243. package/dist/slices/storage/trim.js +23 -13
  244. package/dist/slices/studio/calendar.js +3 -1
  245. package/dist/slices/studio/disclosure.js +4 -4
  246. package/dist/slices/studio/model.js +1 -1
  247. package/dist/slices/studio/pack.js +9 -8
  248. package/dist/slices/studio/plan.js +1 -1
  249. package/dist/slices/studio/settings.js +6 -6
  250. package/dist/slices/studio/videos.js +23 -4
  251. package/dist/slices/style-preview/render.js +3 -3
  252. package/dist/slices/style-preview/schema.js +1 -1
  253. package/dist/slices/subtitles/captions.js +1 -1
  254. package/dist/slices/template-studio/anatomy-view.js +46 -3
  255. package/dist/slices/template-studio/bakeoff.js +3 -3
  256. package/dist/slices/template-studio/budget.js +6 -3
  257. package/dist/slices/template-studio/cards.js +78 -0
  258. package/dist/slices/template-studio/checks.js +99 -50
  259. package/dist/slices/template-studio/for-all.js +5 -5
  260. package/dist/slices/template-studio/free-video.js +1 -1
  261. package/dist/slices/template-studio/free.js +5 -5
  262. package/dist/slices/template-studio/model.js +19 -15
  263. package/dist/slices/template-studio/pack-import.js +14 -14
  264. package/dist/slices/template-studio/pack.js +9 -7
  265. package/dist/slices/template-studio/paid.js +12 -5
  266. package/dist/slices/template-studio/quote.js +18 -11
  267. package/dist/slices/template-studio/ready.js +7 -7
  268. package/dist/slices/template-studio/runner.js +1 -1
  269. package/dist/slices/template-studio/save.js +12 -12
  270. package/dist/slices/template-studio/say-it-as.js +3 -3
  271. package/dist/slices/template-studio/schedule-gate.js +1 -1
  272. package/dist/slices/template-studio/schedule-price.js +3 -1
  273. package/dist/slices/template-studio/schedule-sample.js +5 -1
  274. package/dist/slices/template-studio/schema.js +25 -0
  275. package/dist/slices/template-studio/service.js +3 -1
  276. package/dist/slices/template-studio/status.js +26 -9
  277. package/dist/slices/template-studio/topic.js +3 -3
  278. package/dist/slices/thumbnail/by-llm.js +1 -1
  279. package/dist/slices/uploads/repo.js +37 -1
  280. package/dist/slices/uploads/rules.js +3 -2
  281. package/dist/slices/video/edit-list.js +2 -2
  282. package/dist/slices/video/edit-settings.js +1 -1
  283. package/dist/slices/video/encoding.js +14 -5
  284. package/dist/slices/video/ffmpeg.js +2 -2
  285. package/dist/slices/video/plan.js +2 -1
  286. package/dist/slices/video/slideshow.js +1 -1
  287. package/dist/slices/voices/attribution.js +3 -2
  288. package/dist/slices/voices/model.js +9 -8
  289. package/dist/slices/voices/script.js +2 -1
  290. package/dist/slices/youtube/answer.js +2 -1
  291. package/dist/slices/youtube/edits-repo.js +1 -1
  292. package/dist/tutorials/AI-CLIs.md +25 -25
  293. package/dist/tutorials/Agents-MCP.md +32 -32
  294. package/dist/tutorials/Assistant.md +5 -5
  295. package/dist/tutorials/Backups.md +7 -7
  296. package/dist/tutorials/Calendar.md +17 -25
  297. package/dist/tutorials/Cast-Library.md +19 -19
  298. package/dist/tutorials/Channels.md +40 -35
  299. package/dist/tutorials/Costs-and-Run-Cost.md +38 -40
  300. package/dist/tutorials/Create-Article.md +114 -0
  301. package/dist/tutorials/Create-Extras.md +112 -0
  302. package/dist/tutorials/Create-Images.md +165 -0
  303. package/dist/tutorials/Create-Narration.md +178 -0
  304. package/dist/tutorials/Create-Overview.md +244 -0
  305. package/dist/tutorials/Create-Video-and-Style.md +144 -0
  306. package/dist/tutorials/Docker.md +3 -3
  307. package/dist/tutorials/Document-Themes.md +32 -32
  308. package/dist/tutorials/Editing-a-Project.md +94 -94
  309. package/dist/tutorials/FAQ.md +18 -18
  310. package/dist/tutorials/First-Launch-and-Welcome.md +50 -64
  311. package/dist/tutorials/Home-and-Projects.md +101 -76
  312. package/dist/tutorials/Home.md +33 -33
  313. package/dist/tutorials/Install.md +13 -13
  314. package/dist/tutorials/Intros-and-Outros.md +33 -34
  315. package/dist/tutorials/Keyboard-Shortcuts-and-Command-Palette.md +62 -58
  316. package/dist/tutorials/Keywords-Slopify-Fills.md +21 -21
  317. package/dist/tutorials/Models.md +27 -27
  318. package/dist/tutorials/Multiple-Voices.md +41 -40
  319. package/dist/tutorials/Narration-Aliases-and-Glossary.md +14 -14
  320. package/dist/tutorials/Notifications.md +21 -17
  321. package/dist/tutorials/Other-Languages.md +15 -15
  322. package/dist/tutorials/PDF-Documents.md +38 -29
  323. package/dist/tutorials/Posting-to-Social-Sites.md +12 -12
  324. package/dist/tutorials/Project-Page.md +118 -120
  325. package/dist/tutorials/Prompts-and-Templates.md +84 -0
  326. package/dist/tutorials/Prompts.md +45 -45
  327. package/dist/tutorials/Providers-and-Keys.md +105 -98
  328. package/dist/tutorials/Publishing-to-YouTube.md +31 -31
  329. package/dist/tutorials/Recovery-and-Retries.md +31 -31
  330. package/dist/tutorials/Remote-Access.md +2 -2
  331. package/dist/tutorials/Reviews-and-Checkpoints.md +90 -93
  332. package/dist/tutorials/Schedules.md +27 -28
  333. package/dist/tutorials/Settings-Reference.md +182 -204
  334. package/dist/tutorials/Shorts.md +34 -33
  335. package/dist/tutorials/Start-at-Login.md +3 -3
  336. package/dist/tutorials/Studio-Extension.md +22 -24
  337. package/dist/tutorials/Template-Studio.md +45 -42
  338. package/dist/tutorials/Templates.md +50 -79
  339. package/dist/tutorials/Trash.md +4 -4
  340. package/dist/tutorials/Troubleshooting.md +44 -44
  341. package/dist/tutorials/Uninstalling-and-Moving.md +5 -5
  342. package/dist/tutorials/Updating-and-Patch-Notes.md +18 -18
  343. package/dist/tutorials/Video-Editing.md +34 -34
  344. package/dist/tutorials/Where-Your-Files-Live.md +10 -10
  345. package/dist/tutorials/YouTube-Description.md +26 -26
  346. package/dist/tutorials/Your-First-Short.md +35 -35
  347. package/dist/tutorials/_Sidebar.md +15 -15
  348. package/dist/web/assets/index-BNftKQrA.css +1 -0
  349. package/dist/web/assets/index-Cpa58woP.js +459 -0
  350. package/dist/web/assets/pdf-BKh8f7R6.js +56 -0
  351. package/dist/web/assets/pdf.worker.min-BmVo14Nb.mjs +28 -0
  352. package/dist/web/assets/pdf.worker.min-D7i8o3wR.js +1 -0
  353. package/dist/web/index.html +2 -2
  354. package/package.json +2 -2
  355. package/dist/tutorials/Library-Overview.md +0 -76
  356. package/dist/tutorials/Play-Images.md +0 -165
  357. package/dist/tutorials/Play-Narration.md +0 -167
  358. package/dist/tutorials/Play-Outputs.md +0 -109
  359. package/dist/tutorials/Play-Overview.md +0 -227
  360. package/dist/tutorials/Play-Title-and-Article.md +0 -136
  361. package/dist/tutorials/Play-Video-and-Style.md +0 -143
  362. package/dist/web/assets/index-CkAI_2E7.css +0 -1
  363. package/dist/web/assets/index-DcD0cdfo.js +0 -334
  364. package/dist/web/assets/pdf-TODRwF31.js +0 -54
  365. package/dist/web/assets/pdf.worker.min-Dswkl-cV.mjs +0 -29
  366. package/dist/web/assets/pdf.worker.min-zC6nfbxG.js +0 -1
@@ -1,48 +1,48 @@
1
1
  # Keywords Slopify fills
2
2
 
3
- Most `{{keywords}}` in a prompt are yours: each becomes a field on Play that you fill in once per video. The keywords on this page are different. Slopify fills them itself, so they never become fields, and each one is written with the `Slopify_` prefix, like `{{Slopify_Title}}` or `{{Slopify_Thumbnail_Text}}`.
3
+ Most `{{keywords}}` in a prompt are yours: each becomes a question on Create that you answer once per video. The keywords on this page are different. Slopify fills them itself, so they never become questions, and each one is written with the `Slopify_` prefix, like `{{Slopify_Title}}` or `{{Slopify_Thumbnail_Text}}`.
4
4
 
5
5
  The whole `Slopify_` prefix is Slopify's. `{{Title}}`, `{{Channel}}` and `{{Date}}` stay ordinary keywords of your own, so no prompt you already have changes meaning.
6
6
 
7
- In the prompt editor, the **Insert** bar above the text lists the keywords the prompt's kind can use; click one to put it where the cursor is. Hover a keyword in the bar or in the text to see what it fills in, an example, when it exists, which prompts can use it and what it costs.
7
+ In the prompt editor, **Insert a keyword Slopify fills** above the text lists the keywords the prompt's kind can use, each written as it goes in (`{{Slopify_Title}}`) over what it fills in and, for the ones made by an AI call, that call; pick one to put it where the cursor is. Hover a keyword in the text to see what it fills in, an example, when it exists, which prompts can use it and what it costs.
8
8
 
9
9
  ## How they work
10
10
 
11
11
  - **Using a keyword turns on what fills it.** There is no switch to find: `{{Slopify_Summary}}` in a prompt adds the keyword digest to the run, `{{Slopify_Setting}}` adds the scenes call.
12
12
  - **A line with nothing to fill is left out.** A `Series: {{Slopify_Series}}` line disappears when the channel has no series brief, and so does a `Next: {{Slopify_Next_Video}}` line when nothing is planned after this video.
13
13
  - **Your own value wins.** A prompt saved before the prefix was reserved may already have a field named, say, `{{Slopify_Title}}`. When the project has a value for it, that value is used.
14
- - **Each keyword works only where it can be filled.** `{{Slopify_Chapters}}` and `{{Slopify_Summary}}` can't be used in the Article prompt: the article isn't written yet when that prompt runs. The editor marks a misuse in place and Play refuses the run, naming the prompt and where the keyword works.
14
+ - **Each keyword works only where it can be filled.** `{{Slopify_Chapters}}` and `{{Slopify_Summary}}` can't be used in the Article prompt: the article isn't written yet when that prompt runs. The editor marks a misuse in place and Create refuses the run, naming the prompt and where the keyword works.
15
15
  - **No keyword goes in the project title.** Slopify fills several of them from the title.
16
16
  - **An unknown `Slopify_` name is refused when you save a prompt.** Rename it, for example `{{Slopify_Wish}}` to `{{Wish}}`. A prompt that already had such a name saves as it was and keeps asking for its value.
17
17
 
18
18
  ## Facts Slopify already has
19
19
 
20
- Free: no AI call. Copied when the run starts, so later changes to the channel or its other videos never change a project already made. In **Edit project → Prompts**, **Refresh keyword facts** copies them again.
20
+ Free: no AI call. Copied when the run starts, so later changes to the channel or its other videos never change a project already made. In **Edit settings** → **Title and keywords**, **Refresh keyword facts** copies them again.
21
21
 
22
22
  | Keyword | Fills in | Example | Works in |
23
23
  | --- | --- | --- | --- |
24
- | `{{Slopify_Title}}` | The video's title, with its keywords filled in | How Lighthouses Were Built on Bare Rock | Every prompt and entry |
25
- | `{{Slopify_Channel}}` | The project's channel name | Quiet Histories | Every prompt and entry |
26
- | `{{Slopify_Series}}` | The channel's series brief (Channels → Edit) | Calm histories of how things were made | Every prompt and entry |
27
- | `{{Slopify_Links}}` | The channel's links, one per line | Website: https://example.com | Every prompt and entry |
28
- | `{{Slopify_Previous_Video}}` | Title and link of the channel's previous video in the same series | The Canal Age – https://youtu.be/abc123 | Every prompt and entry |
29
- | `{{Slopify_Next_Video}}` | Title of the next planned video in the same series and posting plan line | Tea Clippers and the Race Home | Every prompt and entry |
30
- | `{{Slopify_Episode}}` | This video's number in its series on the channel | 7 | Every prompt and entry |
31
- | `{{Slopify_Cast}}` | The channel's cast members with their descriptions | Mira: a keeper's daughter who kept the logbook | Every prompt and entry |
32
- | `{{Slopify_Covered_Before}}` | The titles the channel already made, so the article avoids repeating them | The Canal Age | Every prompt and entry |
33
- | `{{Slopify_Brand}}` | The brand kit's caption and title colours and font names | Colours: #F5C542. Fonts: Barlow. | Image and Thumbnail prompts |
34
- | `{{Slopify_Release_Date}}` | The release date from the posting plan, read when the step runs | Thursday 22 October 2026 | Every prompt and entry |
24
+ | `{{Slopify_Title}}` | The video's title, with its keywords filled in | How Lighthouses Were Built on Bare Rock | Every prompt, intro and outro |
25
+ | `{{Slopify_Channel}}` | The project's channel name | Quiet Histories | Every prompt, intro and outro |
26
+ | `{{Slopify_Series}}` | The channel's series brief (the channel's page, Name and look) | Calm histories of how things were made | Every prompt, intro and outro |
27
+ | `{{Slopify_Links}}` | The channel's links, one per line | Website: https://example.com | Every prompt, intro and outro |
28
+ | `{{Slopify_Previous_Video}}` | Title and link of the channel's previous video in the same series | The Canal Age – https://youtu.be/abc123 | Every prompt, intro and outro |
29
+ | `{{Slopify_Next_Video}}` | Title of the next planned video in the same series and posting plan line | Tea Clippers and the Race Home | Every prompt, intro and outro |
30
+ | `{{Slopify_Episode}}` | This video's number in its series on the channel | 7 | Every prompt, intro and outro |
31
+ | `{{Slopify_Cast}}` | The channel's cast members with their descriptions | Mira: a keeper's daughter who kept the logbook | Every prompt, intro and outro |
32
+ | `{{Slopify_Covered_Before}}` | The titles the channel already made, so the article avoids repeating them | The Canal Age | Every prompt, intro and outro |
33
+ | `{{Slopify_Brand}}` | The brand kit's caption and title colors and font names | Colors: #F5C542. Fonts: Barlow. | Image and Thumbnail prompts |
34
+ | `{{Slopify_Release_Date}}` | The release date from the posting plan, read when the step runs | Thursday 22 October 2026 | Every prompt, intro and outro |
35
35
  | `{{Slopify_Chapters}}` | The article's chapter titles, one per line | The first lamps | Every prompt except Article and Script |
36
36
  | `{{Slopify_Duration}}` | The finished video's length | 42 min 10 s | Description, Shorts, Review and Post prompts |
37
37
 
38
38
  - In a **Description** prompt, `{{Slopify_Links}}`, `{{Slopify_Previous_Video}}` and `{{Slopify_Next_Video}}` stay links the description fills when it is shown or copied (`{{Previous video}}`, `{{Next video}}`, `{{Patreon}}`…), so changing a link changes every description at once. See [YouTube description](YouTube-Description).
39
- - Moving the release date later never remakes anything, and neither does a new length.
39
+ - Moving the release date later never makes anything again, and neither does a new length.
40
40
  - A brand-kit font installed on the computer (not uploaded to Slopify) is left out of `{{Slopify_Brand}}`.
41
- - A **Text** intro or outro is narrated as written, so it can't say `{{Slopify_Release_Date}}`: set its Mode to **LLM**, which writes it as a request to the AI model.
41
+ - An intro or outro set to **Say these exact words** is narrated as written, so it can't say `{{Slopify_Release_Date}}`: set it to **Let the AI write it from these instructions**, which sends it to the AI as a request.
42
42
 
43
43
  ## Written from the article
44
44
 
45
- One shared AI call per run, the **keyword digest**, writes every one of these the run uses, once the article exists. It uses the project's text model and shows in the cost estimate as **Keyword digest**.
45
+ One shared AI call per run, the **keyword digest**, writes every one of these the run uses, once the article exists. It uses the AI that writes the article (**Written by**) and shows in the cost estimate as **Keyword digest**.
46
46
 
47
47
  | Keyword | Fills in | Example | Works in |
48
48
  | --- | --- | --- | --- |
@@ -57,13 +57,13 @@ With **Article** set to Off these can't be used: there is no article to write th
57
57
 
58
58
  ## Per picture
59
59
 
60
- Written for each picture by one AI call that reads the article, like the scenes of [Scenes from the article](Play-Images#scenes-from-the-article).
60
+ Written for each picture by one AI call that reads the article, like the scenes of [Scenes from the article](Create-Images#scenes-from-the-article).
61
61
 
62
62
  | Keyword | Fills in | Example | Works in |
63
63
  | --- | --- | --- | --- |
64
64
  | `{{Slopify_Scene}}` | What this picture shows: a moment of the article | A keeper climbs the spiral stair at dusk | Image and Thumbnail prompts |
65
65
  | `{{Slopify_Setting}}` | The era and place of that moment, so the picture stays period-correct | A rocky Scottish coast, early 19th century | Image and Thumbnail prompts |
66
- | `{{Slopify_Mood}}` | The feeling of that moment, for light and colour | tense | Image and Thumbnail prompts |
66
+ | `{{Slopify_Mood}}` | The feeling of that moment, for light and color | tense | Image and Thumbnail prompts |
67
67
  | `{{Slopify_Appearance}}` | How the video's subject and the characters in the picture look, looked up on the web | Mira: a wool coat and oilskin hat, a brass lamp | Image and Thumbnail prompts |
68
68
 
69
69
  - `{{Slopify_Scene}}`, `{{Slopify_Setting}}` and `{{Slopify_Mood}}` turn scenes on for the picture whose prompt uses them, even with Images → **Scenes from the article** off. That costs one AI call per run, shared by every picture.
@@ -82,6 +82,6 @@ The editor offers **Update to new names** on a prompt that still uses them. Rena
82
82
  ## Related pages
83
83
 
84
84
  - [Prompts](Prompts)
85
- - [Images](Play-Images)
85
+ - [Create: Images](Create-Images)
86
86
  - [YouTube description](YouTube-Description)
87
87
  - [Editing a project](Editing-a-Project)
@@ -6,9 +6,9 @@ Slopify keeps a model catalogue: the list of models, prices and retirements that
6
6
 
7
7
  ## What the catalogue covers
8
8
 
9
- The catalogue lists the models of the providers that take an API key:
9
+ The catalogue lists the models of the services that take an API key:
10
10
 
11
- | Kind | Providers |
11
+ | Kind | Services |
12
12
  |---|---|
13
13
  | Text | OpenRouter |
14
14
  | Speech | ElevenLabs, OpenAI, Cartesia, Inworld |
@@ -17,9 +17,9 @@ The catalogue lists the models of the providers that take an API key:
17
17
 
18
18
  For each model it holds a name, a price (per token, per character, per image or per second) and whether the model is retired. A model with no price is counted as unknown, never as free.
19
19
 
20
- The command-line tools (Claude Code, Codex, Gemini) are not in the catalogue. Their pickers show the models the tool installed on your computer offers, and **Check all** in Settings → Providers checks them. See [AI CLIs](AI-CLIs).
20
+ The command-line tools (Claude Code, Codex, Gemini) are not in the catalogue. Their pickers show the models the tool installed on your computer offers, and **Check every service** in Settings → Keys & services checks them. See [AI CLIs](AI-CLIs).
21
21
 
22
- The catalogue also sets how many calls each keyed provider runs at once (3 for most, 5 for Inworld).
22
+ The catalogue also sets how many calls each keyed service runs at once (3 for most, 5 for Inworld).
23
23
 
24
24
  ## How it stays current
25
25
 
@@ -50,7 +50,7 @@ The section shows:
50
50
 
51
51
  | Row | What it shows |
52
52
  |---|---|
53
- | **Catalogue file** | The path of your local catalogue file (`models.yaml` in Slopify's data folder). |
53
+ | **Catalog file** | The path of your local catalogue file (`models.yaml` in Slopify's data folder). |
54
54
  | **Verified** | The date the catalogue's prices were last verified. |
55
55
  | **Last checked** | When the last automatic or manual check ran, and what it changed. |
56
56
 
@@ -69,19 +69,19 @@ This overwrites the local catalogue with the published one and drops any edits y
69
69
 
70
70
  ## Edit the catalogue yourself
71
71
 
72
- The catalogue is a plain YAML file at the path shown under **Catalogue file**. You can add a model or switch one off in it; Slopify reloads it when it changes, and the daily check keeps your additions.
72
+ The catalogue is a plain YAML file at the path shown under **Catalog file**. You can add a model or switch one off in it; Slopify reloads it when it changes, and the daily check keeps your additions.
73
73
 
74
74
  If the file is missing or has a mistake, Slopify keeps using the last working list and shows: "Your models.yaml file is missing or has a mistake, so Slopify is still using the last working model list." Fix the file, or use **Replace with published file**. The automatic check never overwrites a file that has a mistake in it.
75
75
 
76
76
  ## Switch away from a retired model
77
77
 
78
- **Retired models in use** lists every template, schedule, Play draft and project (with steps still to run) whose model is retired or no longer listed. Nothing changes by itself: a run that reaches a retired model stops and says so.
78
+ **Retired models in use** lists every template, schedule, Create draft and project (with steps still to run) whose model is retired or no longer listed. Nothing changes by itself: a run that reaches a retired model stops and says so.
79
79
 
80
80
  Each row shows:
81
81
 
82
82
  - the kind (**Template**, **Schedule**, **Draft** or **Project**) and its name,
83
- - which choice it is (**Text model**, **Voice model**, **Image model** or **Animation model**), the model, and whether it is "retired" or "no longer listed",
84
- - a button **Switch to <model>** with the suggested replacement: the active model from the same provider whose ID shares the longest start with the old one.
83
+ - which choice it is (**Writing model**, **Voice model**, **Image model** or **Animation model**), the model, and whether it is "retired" or "no longer listed",
84
+ - a button **Switch to <model>** with the suggested replacement: the active model from the same service whose ID shares the longest start with the old one.
85
85
 
86
86
  To switch:
87
87
 
@@ -91,27 +91,27 @@ To switch:
91
91
 
92
92
  What a switch does:
93
93
 
94
- - A template gets a new saved version, and the schedules that ran its latest version move along with it. When its newest version waits to be marked ready in the [Template studio](Template-Studio#mark-ready) and the schedules run an older one, that older version is switched too (as a new version that keeps its ready mark), so no schedule keeps running the retired model; your newer version stays the newest, switched as well.
95
- - A project gets a new saved version, as **Edit project** would make.
94
+ - A template gets a new saved version, and the schedules that ran its latest version move along with it. When its newest version waits for your approval in [Edit template](Template-Studio#approve-for-schedules) and the schedules run an older one, that older version is switched too (as a new version that keeps its approval), so no schedule keeps running the retired model; your newer version stays the newest, switched as well.
95
+ - A project gets a new saved version, as **Edit settings** would make.
96
96
  - A draft is updated in place.
97
97
 
98
98
  Rows that cannot be switched here say why and what to do:
99
99
 
100
100
  | Row says | What to do |
101
101
  |---|---|
102
- | **No replacement** ("This provider has no other model to switch to.") | Choose another provider for this step and save. |
102
+ | **No replacement** ("This provider has no other model to switch to.") | Choose another service for this step and save. |
103
103
  | "This schedule runs an older version of the template …" | In the schedule, choose **Edit**, pick the template again so it runs the latest version, then save. |
104
104
  | "This project is running." | Wait for it to finish or pause it, then switch. |
105
105
 
106
106
  When nothing is affected, the section says **Nothing uses a retired model.**
107
107
 
108
- You don't have to come here to see it: a template or schedule that picks a retired model is flagged on its own row in **Library → Templates** and **Calendar → Schedules**, with the same **Switch to <model>** button. See [Templates](Templates#retired-models) and [Schedules](Schedules#manage-a-schedule).
108
+ You don't have to come here to see it: a template or schedule that picks a retired model is flagged on its own row in **Templates** and **Calendar → Schedules**, with the same **Switch to <model>** button. See [Templates](Templates#retired-models) and [Schedules](Schedules#manage-a-schedule).
109
109
 
110
- **Check all** in Settings → Providers also reports retired models under **Chosen models**, and **Model reachable** asks each keyed provider whether it still answers for the models you chose. See [Providers-and-Keys](Providers-and-Keys#check-all-providers).
110
+ **Check every service** in Settings → Keys & services also reports retired models under **Chosen models**, and **Model reachable** asks each keyed service whether it still answers for the models you chose. See [Keys and Services](Providers-and-Keys#check-every-service).
111
111
 
112
112
  ## When a run reaches a model that is gone
113
113
 
114
- If a run starts a step whose model is no longer in the list, it stops with a message such as "The chosen … model is no longer in Slopify's model list." Open the project, choose **Edit project**, change the model under Providers, then use **Continue the run**. See [Recovery-and-Retries](Recovery-and-Retries).
114
+ If a run starts a step whose model is no longer in the list, it stops with a message such as "The chosen … model is no longer in Slopify's model list." Open the project, choose **Edit settings**, change the model (under **Written by**, **Read by** or **Images by**), save, then use **Continue the run**. See [Recovery-and-Retries](Recovery-and-Retries).
115
115
 
116
116
  ## Models that work for you
117
117
 
@@ -122,42 +122,42 @@ The catalogue says which models exist. **Settings → Models → Models that wor
122
122
  | **✓ works · checked 2 h ago** | A check call succeeded (**used** instead of **checked** when it was a real run). |
123
123
  | **? listed for you · not checked** | Your key's or CLI's own model list names it; nothing has tried it yet. |
124
124
  | **? not checked** | Only Slopify's model list names it. |
125
- | **✕ not on your plan** | The provider refused it for your account. The line under the picker quotes the provider's words. |
125
+ | **✕ not on your plan** | The service refused it for your account. The line under the picker quotes the service's words. |
126
126
  | **⚠ retiring 30 Nov → replacement** | The model is due to retire; switch before that day. |
127
127
 
128
128
  Where they come from:
129
129
 
130
130
  - **Listed for you** comes from free reads: OpenAI, Google, ElevenLabs and OpenRouter list their models for your key, Replicate and fal.ai answer for each model's own page, and each CLI lists its own. Cartesia and Inworld have no such list, so their models stay **not checked** until a check.
131
- - **Check models** (one button per provider) sends each model the smallest request: a one-word reply at the lowest thinking setting, a voice saying "Hi", one small square image. When that costs money it first shows the price at list rates, such as "about $0.04", and nothing is sent until you confirm. A CLI's checks use its plan's allowance instead. Image-to-video models are listed, never checked.
132
- - **Real runs** teach it too: a model a run used is marked as working, and one the provider refuses as not on your plan or not found is marked at once, with the provider's sentence.
131
+ - **Check models** (one button per service) sends each model the smallest request: a one-word reply at the lowest thinking setting, a voice saying "Hi", one small square image. When that costs money it first shows the price at list rates, such as "about $0.04", and nothing is sent until you confirm. A CLI's checks use its plan's allowance instead. Image-to-video models are listed, never checked.
132
+ - **Real runs** teach it too: a model a run used is marked as working, and one the service refuses as not on your plan or not found is marked at once, with the service's sentence.
133
133
 
134
- Each row shows when that provider was last checked and what its checks have cost so far. A check that works is counted at what it used; one that fails after the provider took the request (it timed out, the connection dropped, the content was refused or the answer was unusable) is counted at its estimate, since the provider may have billed it. One the provider turned down up front (a rejected key, a rate limit, a model not on your plan) costs nothing. A new key starts every row over.
134
+ Each row shows when that service was last checked and what its checks have cost so far. A check that works is counted at what it used; one that fails after the service took the request (it timed out, the connection dropped, the content was refused or the answer was unusable) is counted at its estimate, since the provider may have billed it. One the provider turned down up front (a rejected key, a rate limit, a model not on your plan) costs nothing. A new key starts every row over.
135
135
 
136
136
  The standings only sort and filter the pickers. A run never asks for them: a model marked **not on your plan** still runs exactly as before if it is chosen.
137
137
 
138
138
  ## Automatic checks
139
139
 
140
- With **Automatic checks** on **Free and near-free checks only** (the default), Slopify reads the key's model list and checks models by itself when you save a key, when a CLI becomes usable, and once a week. It checks only the models you use, ones that already worked and newly listed ones, at most 25 per provider, and only when a check is free, uses a CLI plan, or costs well under a tenth of a cent. Image checks never run by themselves. **Off** leaves checks to **Check models**; the free model-list reads still run when a picker opens.
140
+ With **Automatic checks** on **Free and near-free checks only** (the default), Slopify reads the key's model list and checks models by itself when you save a key, when a CLI becomes usable, and once a week. It checks only the models you use, ones that already worked and newly listed ones, at most 25 per service, and only when a check is free, uses a CLI plan, or costs well under a tenth of a cent. Image checks never run by themselves. **Off** leaves checks to **Check models**; the free model-list reads still run when a picker opens.
141
141
 
142
142
  ## New for you
143
143
 
144
- Models that start working for you after the first check appear under **New for you**, newest first, and Home shows a line such as "2 new models work for you" that opens this page. **Compare on a sample** asks which template to try it on and opens that template's studio with [Compare models](Template-Studio#compare-models) ready for it; nothing is spent until you press Compare there. Choose one in a picker to use it, or **Dismiss** it.
144
+ Models that start working for you after the first check appear under **New for you**, newest first, and Home shows a line such as "2 new AI models work for you" that opens this page (not before you have a project of your own: until then Home shows what a video still needs). **Compare on a sample** asks which template to try it on and opens that template's studio with [Compare models](Template-Studio#compare-models) ready for it; nothing is spent until you press Compare there. Choose one in a picker to use it, or **Dismiss** it.
145
145
 
146
- ## Pick models on Play
146
+ ## Pick models on Create
147
147
 
148
- On Play, each provider row has a model picker fed by the catalogue (or by the CLI for command-line tools):
148
+ On Create, each service group has a model picker fed by the catalogue (or by the CLI for command-line tools):
149
149
 
150
150
  - By default it shows the models that work for you, plus the one already chosen, whatever its standing. Until something works for you it shows the listed models, then every known one, so the list is never empty. **Show all** brings back the rest.
151
151
  - The line under the picker says what is known about the chosen model, with **Check** (or **Check models** before anything was checked), which shows the price first when there is one.
152
- - The refresh button (**Refresh models**) asks the provider for its current list.
152
+ - The refresh button (**Refresh models**) asks the service for its current list.
153
153
  - **Custom ID** lets you type a model ID the list does not show; **Use list** goes back.
154
- - **Thinking** (text) or **Effort** (images) appears only when the model offers levels. **Model default** leaves it to the provider.
154
+ - **Thinking** (text) or **Effort** (images) appears only when the model offers levels. **Model default** leaves it to the service.
155
155
 
156
- See [Play-Overview](Play-Overview) and the Play pages for each step.
156
+ See [Create Overview](Create-Overview) and the Create pages for each row.
157
157
 
158
158
  ## Related pages
159
159
 
160
- - [Providers-and-Keys](Providers-and-Keys)
160
+ - [Keys and Services](Providers-and-Keys)
161
161
  - [AI-CLIs](AI-CLIs)
162
162
  - [Costs-and-Run-Cost](Costs-and-Run-Cost)
163
163
  - [Templates](Templates)
@@ -1,8 +1,8 @@
1
1
  # Multiple Voices
2
2
 
3
- A run can be narrated by several speakers instead of one voice reading the article. You pick a format (Audiobook, Podcast, Radio drama or Interview), give each speaker a voice, and Slopify has the text model write or split the script into speaker turns. You get a video whose captions know who is talking and, if you want them, an MP3 and an M4B audiobook file with chapters.
3
+ A run can be narrated by several speakers instead of one voice reading the article. You pick a format (Audiobook, Podcast, Radio drama or Interview), give each speaker a voice, and Slopify has the AI write or split the script into speaker turns. You get a video whose captions know who is talking and, if you want them, an MP3 and an M4B audiobook file with chapters.
4
4
 
5
- **Where to find it:** Play → **Narration** row → **Speakers** (the disclosure under the voice picker). On a finished project: Edit project → **Providers** → Speakers.
5
+ **Where to find it:** Create → **Narration** row → **Speakers** (the disclosure under the voice picker). On a finished project: **Edit settings** → **Narration** → **Speakers**.
6
6
 
7
7
  ## Formats
8
8
 
@@ -18,35 +18,36 @@ The **Format** list under Speakers decides how many voices the run uses and how
18
18
 
19
19
  You can rename, recast or remove the starter speakers. A run can have up to 10 speakers.
20
20
 
21
- When the channel has hosts (cast members marked **One of the channel's hosts** that have a voice), a new **Podcast** or **Interview** starts with them as its speakers instead of Alex and Sam, or Host and Guest. See [Cast library](Cast-Library#make-a-member-one-of-the-channels-hosts).
21
+ When the channel has hosts (cast members marked **One of the channel's hosts** that have a voice), a new **Podcast** or **Interview** starts with them as its speakers instead of Alex and Sam, or Host and Guest. See [Cast](Cast-Library#make-a-member-one-of-the-channels-hosts).
22
22
 
23
- The **speaker panel** (Podcast and Interview) is a row of tiles, one per speaker, with the one talking lit in their colour and their name as a lower third. It is drawn together with burned-in captions, so set **Captions** to **Burn in** under Play → **Video and style** to see it. A speaker added from a channel's cast whose member has a reference picture shows that picture in their tile (the member's first picture, cropped square, taken when the run starts); everyone else shows their initials. Adding a picture to the cast later does not change projects already made.
23
+ The **speaker panel** (Podcast and Interview) is a row of tiles, one per speaker, with the one talking lit in their color and their name as a lower third. It is drawn together with the captions shown in the video, so set **Captions** to **Show captions in the video** under Create → **Video and style** to see it. A speaker added from a channel's cast whose member has a reference picture shows that picture in their tile (the member's first picture, cropped square, taken when the run starts); everyone else shows their initials. Adding a picture to the cast later does not change projects already made.
24
24
 
25
25
  ## Set up a multi-voice run
26
26
 
27
- 1. On Play, open the **Narration** row and pick the **TTS** provider, model and **Voice** as usual. This voice reads the intro and outro; the speakers read the article.
27
+ 1. On Create, open the **Narration** row and pick the voice **Service**, **Model** and **Voice** under **Read by** as usual. This voice reads the intro and outro; the speakers read the article.
28
28
  2. Open **Speakers** and choose a **Format**.
29
29
  3. Choose where the **Script** comes from (see [The script](#the-script)).
30
- 4. For each speaker, set a **Speaker name**, **Role**, **Voice provider**, **Voice model** and **Voice**. Add more with **Add speaker**, or pick someone from **Add from the cast**.
30
+ 4. For each speaker, set a **Speaker name** and **Role**, and under **<name> is read by** the **Service**, **Model** and **Voice**. Add more with **Add speaker**, or pick someone from **Add from the cast**.
31
31
  5. Optionally set **Pace** and **Pronunciations** per speaker, and press **Audition** to hear a speaker before the run.
32
32
  6. Set **Gap between turns** and the switches below it.
33
- 7. For a podcast or interview, set Captions to **Burn in** so the speaker panel shows.
34
- 8. Review the estimate in the right rail and start the run.
33
+ 7. For a podcast or interview, set **Captions** to **Show captions in the video** so the speaker panel shows.
34
+ 8. Check the estimate in the rail and press **Make the podcast** (or **Make the audiobook**, **Make the video**).
35
35
 
36
- If something is missing, Play names it before you can start, for example "A podcast needs at least two speakers" or "An audiobook needs a narrator. Set one speaker's role to Narrator under Speakers".
36
+ If something is missing, Create names it before you can start, for example "A podcast needs at least two speakers" or "An audiobook needs a narrator. Set one speaker's role to Narrator under Speakers".
37
37
 
38
38
  ## The script
39
39
 
40
40
  | Script option | What it does | Cost |
41
41
  |---|---|---|
42
- | **Write a script (Script prompt)** | The text model writes speaker turns from a **Script** prompt in your Library, one `Name: words` paragraph per turn. The article prompt picker on the Article row becomes a **Script prompt** picker. | One text-model call, in place of the article call |
43
- | **Split the article into speakers** | Keeps the article as written or pasted, then the text model hands its narration and dialogue to the speakers. Audiobook only. | One extra text-model call |
42
+ | **Write a script (Script prompt)** | The AI writes speaker turns from one of your **Script** prompts, one `Name: words` paragraph per turn. The article prompt picker on the Article row becomes a **Script prompt** picker. | One AI call, in place of the article call |
43
+ | **Split the article into speakers** | Keeps the article as written or pasted, then the AI hands its narration and dialogue to the speakers. Audiobook only. | One extra AI call |
44
+ | **Adapt the article into a conversation** | Keeps the article as written or pasted; the AI rewrites it as a conversation for the speakers, kept beside the article as the script. Podcast, Radio drama and Interview. | One extra AI call |
44
45
 
45
- Other formats must use **Write a script**. When the article is split, the split must keep the article's words; if the model changes them, the call is asked again.
46
+ When the article is split, the split must keep the article's words; if the model changes them, the call is asked again.
46
47
 
47
48
  ### Script format
48
49
 
49
- Write Script prompts in **Library → Prompts** with the kind **Script**. The text model answers in this shape:
50
+ Write Script prompts in **Prompts** with the kind **Script**. The AI answers in this shape:
50
51
 
51
52
  ```
52
53
  # Section title
@@ -61,20 +62,20 @@ Sam: The next turn.
61
62
  - Text in `[square brackets]`, such as `[laughs]`, is a stage direction and is never read aloud.
62
63
  - A script that names someone who is not one of your speakers, or has a paragraph that is not a turn, stops the Article stage with the line to fix.
63
64
 
64
- On the project page the Article section shows the script as the speakers read it: each turn under its speaker's name in their colour, with the sections as headings. If the script can't be narrated, it says why and points you to Edit project → Article.
65
+ On the project page the Article section shows the script as the speakers read it: each turn under its speaker's name in their color, with the sections as headings. If the script can't be narrated, it says why and points you to **Edit settings** → **Article**.
65
66
 
66
67
  ## Speaker options
67
68
 
68
69
  | Option | What it does | Default / range |
69
70
  |---|---|---|
70
71
  | **Speaker name** | The name the script uses for this speaker's turns (`Name: words`), shown on captions and in the speaker panel. Letters, numbers, spaces, dots, apostrophes and hyphens; each speaker needs a different name. | Up to 40 characters |
71
- | **Role** | Narrator, Host, Guest or Character. The text model is told each speaker's role when it writes or splits the script. | Set by the format |
72
- | **Voice provider** | The text-to-speech service for this speaker, charged per character of their lines. Speakers may use different providers. Changing it clears the model and voice. | None |
73
- | **Voice model** | The provider's speech model. Pronunciations need an Inworld TTS-2 model. | None |
74
- | **Voice** | One of the voices you added under **Settings → Voices** for that provider, filtered to the project's language. Tick **Show all voices** to see the rest. | None |
72
+ | **Role** | Narrator, Host, Guest or Character. The AI is told each speaker's role when it writes or splits the script. | Set by the format |
73
+ | **<name> is read by**: **Service** | The voice service for this speaker, charged per character of their lines. Speakers may use different services. Changing it clears the model and voice. | None |
74
+ | **<name> is read by**: **Model** | The service's voice model. Pronunciations need an Inworld TTS-2 model. | None |
75
+ | **<name> is read by**: **Voice** | One of the voices you added under **Settings → Voices** for that service, filtered to the project's language. Tick **Show all voices** to see the rest. | None |
75
76
  | **Pace** | How fast this speaker talks relative to the voice's own speed. It is applied after the speech is made, so changing it costs nothing. | Normal; 0.8×, 0.9×, Normal, 1.1×, 1.2× |
76
77
  | **Pronunciations** | One `Term: /IPA/` per line (for example `Arda: /ˈɑɹdə/`), for this speaker only. Used on Inworld TTS-2 voices, ahead of the article's Pronunciation Glossary. | Empty |
77
- | **Audition** | Speaks this speaker's first line of the script (or a sample line) in their voice. | One real text-to-speech request; the button shows the price, such as "Audition · about $0.0004" |
78
+ | **Audition** | Speaks this speaker's first line of the script (or a sample line) in their voice. | One real voice request; the button shows the price, such as "Audition · about $0.0004" |
78
79
 
79
80
  A pronunciation line the voice can't use (no slashes, ARPAbet, or sounds the project's language does not have) is skipped and that word is read as ordinary text; the other lines still apply. The Speakers panel says which lines are skipped and why as you type.
80
81
 
@@ -84,75 +85,75 @@ A pronunciation line the voice can't use (no slashes, ARPAbet, or sounds the pro
84
85
  |---|---|---|
85
86
  | **Gap between turns** | The pause between one speaker's turn and the next. Longer feels calmer; shorter feels like a lively talk. | 0.35 s; choose 0, 0.2, 0.35, 0.5, 0.8 or 1.2 s |
86
87
  | **Speaker names on captions** | Puts the speaker's name before their captions, like `Ada:` and their words. In the VTT file it is written as `<v Name>`. | On for Podcast and Interview, off otherwise |
87
- | **One request for consecutive turns where the voice provider can (ElevenLabs v3, Gemini)** | Sends back-to-back turns as one multi-speaker request where the provider has one, so the voices react to each other: ElevenLabs v3 with up to 10 voices, Google Gemini with 2 (a third voice starts a new request). Fewer requests, same characters charged. Other providers read each turn on its own. | On |
88
- | **Also make MP3 and M4B files with chapter markers** | Saves the whole narration as `narration.mp3` (ID3 chapters) and `audiobook.m4b` (AAC with chapter markers), one chapter per script section. Made on your computer at no provider cost. | On |
88
+ | **Let the voices react to each other (ElevenLabs v3, Gemini)** | Sends back-to-back turns as one multi-speaker request where the voice service has one, so the voices react to each other: ElevenLabs v3 with up to 10 voices, Google Gemini with 2 (a third voice starts a new request). Fewer requests, same characters charged. Other services read each turn on its own. | On |
89
+ | **Also make MP3 and M4B files with chapter markers** | Saves the whole narration as `narration.mp3` (ID3 chapters) and `audiobook.m4b` (AAC with chapter markers), one chapter per script section. Made on your computer at no cost. | On |
89
90
 
90
- The MP3 and M4B appear with the Video section's downloads on the project page, and play in Slopify's own audio player with the chapter marks on its track. Slopify does not publish them anywhere.
91
+ The MP3 and M4B appear with the Video part's downloads on the project page, and play in Slopify's own audio player with the chapter marks on its track. Slopify does not publish them anywhere.
91
92
 
92
93
  ## Audiobooks in chapters
93
94
 
94
95
  An audiobook can be one chapter of a book, so a long book is made one chapter per project and a player keeps the chapters together.
95
96
 
96
- 1. On Play, pick the **Audiobook** format under Speakers.
97
+ 1. On Create, pick the **Audiobook** format under Speakers.
97
98
  2. Turn on **A chapter of a book**.
98
99
  3. Type the **Book title** (the same for every chapter) and the **Chapter** number (from 1).
99
- 4. Start the run.
100
+ 4. Press **Make the audiobook**.
100
101
 
101
102
  The MP3 and M4B carry the book as their album and the chapter as their track. Projects shows the project as **Book · Chapter N**, for example "The Wind in the Willows · Chapter 3".
102
103
 
103
104
  ### Make the next chapter
104
105
 
105
- On a finished audiobook's project page, **Make the next chapter** (beside **Edit settings**) opens a new Play draft for the next chapter: the same speakers and voices, channel and cast, prompts and settings, with the chapter number one higher. Write or paste the new chapter's text there, then start it. An audiobook that was not a book yet becomes one, named after itself, starting at chapter 2.
106
+ On a finished audiobook's project page, **Make the next chapter** (beside **Edit settings**) opens a new Create draft for the next chapter: the same speakers and voices, channel and cast, prompts and settings, with the chapter number one higher. Write or paste the new chapter's text there, then make it. An audiobook that was not a book yet becomes one, named after itself, starting at chapter 2.
106
107
 
107
108
  ## Speakers from a channel's cast
108
109
 
109
110
  A channel's cast member can have a voice, so a host or recurring character sounds the same in every episode.
110
111
 
111
112
  1. Open **Channels**, pick the channel, open its **Cast** tab and edit a member.
112
- 2. Under **Cast voice**, pick a **Voice provider**, **Voice model** and **Voice**. The list shows voices that speak the channel's language. Leave the provider empty for no voice.
113
- 3. On Play, under Speakers, pick the member from **Add from the cast**. Only members with a voice are listed.
113
+ 2. Under **Voice**, pick the **Service**, **Model** and **Voice** under **Read by**. The list shows voices that speak the channel's language. Leave the service empty for no voice.
114
+ 3. On Create, under Speakers, pick the member from **Add from the cast**. Only members with a voice are listed.
114
115
 
115
- The speaker takes the member's name and voice. Every run started later, whether from Play, a batch, a schedule or a template, takes that member's voice, pace and pronunciations as they are when the run starts. Projects already made keep the voice they were made with. See [Cast-Library](Cast-Library) for editing the cast.
116
+ The speaker takes the member's name and voice. Every run started later, whether from Create, a batch, a schedule or a template, takes that member's voice, pace and pronunciations as they are when the run starts. Projects already made keep the voice they were made with. See [Cast](Cast-Library) for editing the cast.
116
117
 
117
118
  ## Delivery tags
118
119
 
119
- With a **Narration Preparation** prompt picked (Narration row → **More audio settings**), each turn of a speaker on Inworld's TTS-2 model is prepared on its own before it is spoken. The text model sees the turn and who says it (for example `Rat (character)`) and adds cues:
120
+ With a **Narration preparation** prompt picked (Narration row → **More narration settings**), each turn of a speaker on Inworld's TTS-2 model is prepared on its own before it is spoken. The AI sees the turn and who says it (for example `Rat (character)`) and adds cues:
120
121
 
121
122
  - A spoken direction at the start of a sentence, such as `[say shyly and a little uncertainly]`, held until the next one or `[reset]`.
122
123
  - Non-verbal sounds where they happen: `[laugh]`, `[breathe]`, `[sigh]`, `[cough]`, `[clear throat]` and `[yawn]`.
123
124
 
124
- Each turn is its own request, so a direction never leaks into the next speaker, and every speaker on TTS-2 gets cues of their own. Turns of speakers on other voices, or on TTS-2 Flash (which ignores directions), are spoken as written. At least one speaker must be on TTS-2, or Play asks you to choose that model for a speaker or clear Narration Preparation under Narration → **More audio settings**. The Narration row's own model (which reads the intro and outro) must be Inworld TTS-2 too. The tags are only in what the voice is sent: captions, word timing, the MP3/M4B chapters and the script download never show them. See [Play-Narration](Play-Narration) for Narration Preparation itself.
125
+ Each turn is its own request, so a direction never leaks into the next speaker, and every speaker on TTS-2 gets cues of their own. Turns of speakers on other voices, or on TTS-2 Flash (which ignores directions), are spoken as written. At least one speaker must be on TTS-2, or Create asks you to choose that model for a speaker or clear narration preparation under Narration → **More narration settings**. The Narration row's own model (which reads the intro and outro) must be Inworld TTS-2 too. The tags are only in what the voice is sent: captions, word timing, the MP3/M4B chapters and the script download never show them. See [Create: Narration](Create-Narration) for narration preparation itself.
125
126
 
126
127
  ## How the audio is made
127
128
 
128
129
  - Every turn is its own request in its speaker's voice, then the turns are joined with the gap between turns.
129
- - Narration aliases (Library → Narration aliases) apply to every turn.
130
- - Changing one speaker's voice remakes only that speaker's turns.
130
+ - Narration aliases (Settings → Voices → Pronunciation) apply to every turn.
131
+ - Changing one speaker's voice makes only that speaker's turns again.
131
132
  - With **Level the volume** on (the default for new runs), each turn is brought to one common loudness before joining, so a quiet host and a loud guest sit at the same level. The MP3 and M4B are mastered to the audio files volume (−18 LUFS by default).
132
133
  - **Pause between sentences** lengthens the quiet between sentences inside a turn; the gap between turns stays the Gap between turns.
133
134
 
134
135
  ## Captions with several speakers
135
136
 
136
- - Captions never mix two speakers in one line, and each speaker's captions carry their colour.
137
- - Captions you edit by hand in Edit project → **Captions** keep their speaker. A caption you add takes the speaker of the narration under it.
137
+ - Captions never mix two speakers in one line, and each speaker's captions carry their color.
138
+ - Captions you edit by hand in **Edit settings** → **Captions** keep their speaker. A caption you add takes the speaker of the narration under it.
138
139
  - [Shorts](Shorts) cut from a multi-voice video start and end on a speaker's turn.
139
140
 
140
141
  ## Change speakers on a finished project
141
142
 
142
- 1. Open the project and press **Edit project**.
143
- 2. Open **Providers** and change the Speakers panel.
144
- 3. Save. The rebuild review lists what will be remade: only the turns of speakers whose voice changed are spoken again, paid per character.
143
+ 1. Open the project and press **Edit settings**.
144
+ 2. Open **Narration** and change **Speakers**.
145
+ 3. Press **Save changes**, then make the outdated narration again. **Choose what to make again** lists what will be made: only the turns of speakers whose voice changed are spoken again, paid per character.
145
146
 
146
147
  ## Tips
147
148
 
148
149
  - Audition each speaker before a long run; a wrong voice is cheaper to catch at one line.
149
- - If a podcast shows no speaker panel, check that Captions is set to Burn in.
150
+ - If a podcast shows no speaker panel, check that **Captions** is set to **Show captions in the video**.
150
151
  - Give speakers clearly different voices and names; the script and captions match speakers by name.
151
152
 
152
153
  ## Related pages
153
154
 
154
- - [Play-Narration](Play-Narration)
155
- - [Cast-Library](Cast-Library)
155
+ - [Create: Narration](Create-Narration)
156
+ - [Cast](Cast-Library)
156
157
  - [Channels](Channels)
157
158
  - [Prompts](Prompts)
158
159
  - [Narration-Aliases-and-Glossary](Narration-Aliases-and-Glossary)
@@ -2,13 +2,13 @@
2
2
 
3
3
  Two tools control how the narrator says words without changing what is written. **Narration aliases** swap a written form for a spoken one, such as `Dr.` said as "Doctor", with any generated voice. The **Pronunciation Glossary** gives exact IPA pronunciations for names, such as `Arda: /ˈɑɹdə/`, with Inworld's TTS-2 voices. In both cases the article, the transcript and the captions keep the written words; only the audio changes.
4
4
 
5
- **Where to find it:** aliases in **Library → Narration aliases**. Both switches are on Play under **Narration → Change → More audio settings**, and in **Edit project**. A project's glossary is shown on its **Article** section, in the **Pronunciation** tab.
5
+ **Where to find it:** aliases in **Settings → Voices → Pronunciation**. Both switches are on Create under **Narration → Change → More narration settings**, and in a project's **Edit settings** → **Narration**. A project's glossary is shown on its **Article** section, in the **Pronunciation** tab.
6
6
 
7
7
  ## Narration aliases
8
8
 
9
9
  ### Add aliases
10
10
 
11
- 1. Open **Library → Narration aliases**.
11
+ 1. Open **Settings → Voices → Pronunciation**.
12
12
  2. Press **Add alias**. A new row appears in the list, titled **Alias N**, with its fields under it.
13
13
  3. Fill in the row:
14
14
 
@@ -41,15 +41,15 @@ Each row's title line sums it up, for example "Says Dr. as Doctor · whole word"
41
41
  - A multi-word alias is read with single spaces around it: "Grey et al. wrote" goes to the voice as "Grey and others wrote".
42
42
  - An alias wins over a Pronunciation Glossary entry for the same words.
43
43
  - Aliases work with every generated voice, and in multi-voice runs they apply to each speaker's turn.
44
- - Aliases also change the sentences **Narration Preparation** reads, so its cues match what is said.
44
+ - Aliases also change the sentences **Narration preparation** reads, so its cues match what is said.
45
45
 
46
46
  ### Use aliases in a video
47
47
 
48
- 1. On Play, open the **Narration** row with **Change**, then **More audio settings**.
49
- 2. Keep **Use narration aliases** on (the default for new drafts).
48
+ 1. On Create, open the **Narration** row with **Change**, then **More narration settings**.
49
+ 2. Keep **Use your pronunciation list** on (the default for new drafts).
50
50
  3. Start the run.
51
51
 
52
- A project copies the Library's aliases when it starts. Editing the Library later never changes a started project until you open **Edit project** and press **Update from Library** beside the aliases switch. Only the parts of the narration where a changed alias appears are made again.
52
+ A project copies your Pronunciation list when it starts. Editing the list later never changes a started project until you open its **Edit settings** → **Narration** and press **Copy the list again** beside the aliases switch. Only the parts of the narration where a changed alias appears are made again.
53
53
 
54
54
  Projects from before aliases existed have the switch off and nothing copied.
55
55
 
@@ -59,11 +59,11 @@ Captions show the written words, while the audio says the alias. A caption reads
59
59
 
60
60
  ## The Pronunciation Glossary
61
61
 
62
- The Pronunciation Glossary is a section at the end of the article that lists names with their pronunciation in IPA. With a voice that supports it, the narrator reads each listed name the way the glossary says, with no extra text-model call. The glossary itself is never narrated.
62
+ The Pronunciation Glossary is a section at the end of the article that lists names with their pronunciation in IPA. With a voice that supports it, the narrator reads each listed name the way the glossary says, with no extra AI call. The glossary itself is never narrated.
63
63
 
64
64
  ### Which voices support it
65
65
 
66
- Inworld **TTS-2** and **TTS-2 Flash**. With other providers or models the switch is greyed out and says "Unavailable for this provider or model. Your saved preference is retained."
66
+ Inworld **TTS-2** and **TTS-2 Flash**. With other services or models the tick is not shown; your choice is kept for when you pick one of those voices.
67
67
 
68
68
  ### Get a glossary into the article
69
69
 
@@ -86,8 +86,8 @@ A table with `Term | IPA` columns works too. If you paste your own article, add
86
86
 
87
87
  ### Turn it on
88
88
 
89
- 1. On Play, open **Narration → Change → More audio settings**.
90
- 2. Keep **Use Pronunciation Glossary** on (the default).
89
+ 1. On Create, open **Narration → Change → More narration settings**.
90
+ 2. Keep **Use the article's pronunciation glossary** on (the default). It shows only while the voice is one that reads it.
91
91
  3. Optional: keep **Also use pronunciations from my other projects** on (the default). It adds every term from your other projects' glossaries, copied when this project starts. This project's own glossary wins where they differ. Turn it off to use only this article's glossary.
92
92
 
93
93
  ### Entries that are skipped
@@ -102,7 +102,7 @@ An entry narration can't use is skipped and read as ordinary text. It never bloc
102
102
  | supply one IPA word for each written word | "New York" needs two IPA words. |
103
103
  | an earlier entry already gives this term a different pronunciation | The term is listed twice with different sounds. |
104
104
 
105
- To fix skipped entries, edit the Pronunciation Glossary at the end of the article in **Edit project → Article**, then save. See [Editing a project](Editing-a-Project).
105
+ To fix skipped entries, edit the Pronunciation Glossary at the end of the article in **Edit settings** → **Article**, then save. See [Editing a project](Editing-a-Project).
106
106
 
107
107
  ## Aliases or glossary?
108
108
 
@@ -110,7 +110,7 @@ To fix skipped entries, edit the Pronunciation Glossary at the end of the articl
110
110
  |---|---|
111
111
  | An abbreviation read in full (Dr., St., vs.) | Alias |
112
112
  | A word read as a different word or spelling | Alias |
113
- | Any voice provider | Alias |
113
+ | Any voice service | Alias |
114
114
  | A made-up or foreign name said exactly right, on Inworld TTS-2 | Glossary |
115
115
  | Pronunciations that come with each article automatically | Glossary |
116
116
 
@@ -122,8 +122,8 @@ To fix skipped entries, edit the Pronunciation Glossary at the end of the articl
122
122
 
123
123
  ## Related pages
124
124
 
125
- - [Narration](Play-Narration)
125
+ - [Create: Narration](Create-Narration)
126
126
  - [Prompts](Prompts)
127
127
  - [Editing a project](Editing-a-Project)
128
128
  - [Multiple voices](Multiple-Voices)
129
- - [Providers and keys](Providers-and-Keys)
129
+ - [Keys and Services](Providers-and-Keys)