@gentbajko/slopify 3.0.0 → 3.0.2
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.
- package/README.md +6 -4
- package/dist/adapter-registry.js +28 -0
- package/dist/adapters/alignment/text.js +3 -1
- package/dist/adapters/key-probes.js +57 -8
- package/dist/adapters/tts/gemini.js +206 -0
- package/dist/adapters/tts/pcm-mp3.js +62 -0
- package/dist/adapters/tts/system.js +147 -0
- package/dist/assets/models.yaml +38 -0
- package/dist/assets/style-preview/narration.mp3 +0 -0
- package/dist/assets/style-preview/tall-1.jpg +0 -0
- package/dist/assets/style-preview/tall-2.jpg +0 -0
- package/dist/assets/style-preview/tall-3.jpg +0 -0
- package/dist/assets/style-preview/wide-1.jpg +0 -0
- package/dist/assets/style-preview/wide-2.jpg +0 -0
- package/dist/assets/style-preview/wide-3.jpg +0 -0
- package/dist/catalog/registry.js +4 -1
- package/dist/catalog/validate.js +2 -2
- package/dist/edge/autostart/docker-record.js +2 -2
- package/dist/edge/autostart/docker.js +68 -0
- package/dist/edge/autostart/prompt.js +7 -1
- package/dist/edge/autostart/service.js +18 -9
- package/dist/edge/cli-args.js +71 -0
- package/dist/edge/cli.js +11 -16
- package/dist/edge/docker-install/run.js +7 -1
- package/dist/edge/events/hub.js +3 -1
- package/dist/edge/http/actions.js +6 -1
- package/dist/edge/http/app.js +2 -0
- package/dist/edge/http/byte-range.js +42 -0
- package/dist/edge/http/diagnostics.js +1 -0
- package/dist/edge/http/draft-files.js +2 -4
- package/dist/edge/http/files.js +10 -6
- package/dist/edge/http/onboarding.js +64 -4
- package/dist/edge/http/project-templates.js +19 -2
- package/dist/edge/http/projects.js +6 -1
- package/dist/edge/http/providers.js +39 -9
- package/dist/edge/http/reviews.js +18 -8
- package/dist/edge/http/revision-files.js +2 -4
- package/dist/edge/http/schedules.js +9 -5
- package/dist/edge/http/storage.js +16 -2
- package/dist/edge/http/studio.js +111 -31
- package/dist/edge/http/style-preview.js +3 -42
- package/dist/edge/http/tutorials.js +59 -0
- package/dist/edge/http/youtube-edits.js +11 -2
- package/dist/extension/slopify-studio-chrome.zip +0 -0
- package/dist/extension/slopify-studio-firefox.zip +0 -0
- package/dist/host-cli/gemini-login.js +83 -0
- package/dist/host-cli/status.js +4 -2
- package/dist/kernel/db/migrations/0041-cast-hosts.sql +3 -0
- package/dist/kernel/ports/model.js +5 -3
- package/dist/kernel/ports/system-speech.js +203 -0
- package/dist/kernel/runner/graph.js +17 -1
- package/dist/kernel/runner/index.js +4 -4
- package/dist/kernel/runner/providers.js +1 -1
- package/dist/main.js +5 -0
- package/dist/model-catalog.js +2 -0
- package/dist/patch-notes/3.0.1.md +105 -0
- package/dist/patch-notes/3.0.2.md +20 -0
- package/dist/patch-notes/index.json +12 -0
- package/dist/slices/admission/rules.js +3 -3
- package/dist/slices/admission/start.js +1 -1
- package/dist/slices/channels/cast-match.js +1 -1
- package/dist/slices/channels/repo.js +3 -0
- package/dist/slices/channels/schema.js +23 -0
- package/dist/slices/channels/service.js +6 -6
- package/dist/slices/control/index.js +3 -1
- package/dist/slices/control/providers.js +4 -1
- package/dist/slices/episodes/related.js +2 -2
- package/dist/slices/estimate/requests.js +9 -1
- package/dist/slices/eta/history.js +56 -0
- package/dist/slices/eta/model.js +63 -0
- package/dist/slices/eta/view.js +25 -0
- package/dist/slices/fixes/rules.js +1 -1
- package/dist/slices/fonts/coverage.js +1 -1
- package/dist/slices/loudness/model.js +1 -1
- package/dist/slices/model-upkeep/usage.js +4 -2
- package/dist/slices/narration/pauses-model.js +1 -1
- package/dist/slices/narration/pronunciation.js +2 -2
- package/dist/slices/notifications/notifier.js +28 -2
- package/dist/slices/notifications/rules.js +26 -2
- package/dist/slices/onboarding/first-run.js +40 -14
- package/dist/slices/onboarding/full-video.js +81 -0
- package/dist/slices/onboarding/model.js +21 -0
- package/dist/slices/onboarding/quick-short.js +25 -10
- package/dist/slices/play-drafts/convert.js +3 -3
- package/dist/slices/play-drafts/readiness.js +1 -1
- package/dist/slices/project-templates/from-project.js +10 -3
- package/dist/slices/project-templates/next-chapter.js +94 -0
- package/dist/slices/project-templates/one-off.js +1 -1
- package/dist/slices/project-templates/schema.js +7 -1
- package/dist/slices/rebuild/recipe-exports.js +5 -0
- package/dist/slices/rebuild/recipe-save.js +1 -1
- package/dist/slices/rebuild/recipe-voices.js +1 -1
- package/dist/slices/rebuild/review-redo.js +15 -0
- package/dist/slices/rebuild/runtime-export-bed.js +1 -1
- package/dist/slices/rebuild/runtime-review.js +35 -5
- package/dist/slices/rebuild/runtime-store.js +23 -1
- package/dist/slices/rebuild/runtime-voices.js +2 -2
- package/dist/slices/rebuild/service-readiness.js +3 -3
- package/dist/slices/reviews/repo.js +16 -4
- package/dist/slices/run-cost/panel.js +30 -8
- package/dist/slices/run-cost/pricing.js +4 -1
- package/dist/slices/schedules/agenda.js +66 -2
- package/dist/slices/schedules/repo.js +1 -1
- package/dist/slices/schedules/scheduler.js +1 -1
- package/dist/slices/schedules/schema.js +43 -2
- package/dist/slices/schedules/similar.js +41 -3
- package/dist/slices/schedules/topic-list.js +2 -2
- package/dist/slices/schedules/topics.js +118 -17
- package/dist/slices/settings/first-run.js +5 -1
- package/dist/slices/settings/health.js +64 -7
- package/dist/slices/settings/key-guides.js +17 -7
- package/dist/slices/settings/key-test.js +12 -4
- package/dist/slices/settings/keys.js +10 -5
- package/dist/slices/settings/model-reach.js +52 -0
- package/dist/slices/settings/model.js +49 -0
- package/dist/slices/settings/models.js +5 -1
- package/dist/slices/settings/readiness.js +14 -2
- package/dist/slices/settings/tutorial-schema.js +5 -0
- package/dist/slices/shorts/render.js +18 -17
- package/dist/slices/storage/documents.js +11 -3
- package/dist/slices/storage/downloads.js +33 -1
- package/dist/slices/storage/portable.js +4 -2
- package/dist/slices/studio/model.js +2 -0
- package/dist/slices/studio/pack.js +6 -4
- package/dist/slices/studio/queue.js +69 -0
- package/dist/slices/studio/settings.js +42 -5
- package/dist/slices/style-preview/narration.js +33 -0
- package/dist/slices/style-preview/render.js +43 -56
- package/dist/slices/style-preview/schema.js +17 -3
- package/dist/slices/style-preview/service.js +3 -4
- package/dist/slices/style-preview/settings.js +75 -25
- package/dist/slices/tutorials/anchors.js +57 -0
- package/dist/slices/tutorials/library.js +185 -0
- package/dist/slices/voices/audio-files.js +7 -2
- package/dist/slices/voices/cast.js +26 -8
- package/dist/slices/voices/grouping.js +10 -0
- package/dist/slices/voices/model.js +49 -10
- package/dist/slices/voices/script.js +1 -1
- package/dist/slices/youtube/edits-repo.js +19 -4
- package/dist/slices/youtube/placeholders.js +2 -2
- package/dist/tutorials/AI-CLIs.md +146 -0
- package/dist/tutorials/Backups.md +121 -0
- package/dist/tutorials/Calendar.md +103 -0
- package/dist/tutorials/Cast-Library.md +112 -0
- package/dist/tutorials/Channels.md +148 -0
- package/dist/tutorials/Costs-and-Run-Cost.md +136 -0
- package/dist/tutorials/Docker.md +171 -0
- package/dist/tutorials/Document-Themes.md +207 -0
- package/dist/tutorials/Editing-a-Project.md +204 -0
- package/dist/tutorials/FAQ.md +134 -0
- package/dist/tutorials/First-Launch-and-Welcome.md +153 -0
- package/dist/tutorials/Home-and-Projects.md +174 -0
- package/dist/tutorials/Home.md +119 -0
- package/dist/tutorials/Install.md +154 -0
- package/dist/tutorials/Intros-and-Outros.md +86 -0
- package/dist/tutorials/Keyboard-Shortcuts-and-Command-Palette.md +215 -0
- package/dist/tutorials/Library-Overview.md +75 -0
- package/dist/tutorials/Models.md +133 -0
- package/dist/tutorials/Multiple-Voices.md +161 -0
- package/dist/tutorials/Narration-Aliases-and-Glossary.md +129 -0
- package/dist/tutorials/Notifications.md +86 -0
- package/dist/tutorials/Other-Languages.md +110 -0
- package/dist/tutorials/PDF-Documents.md +100 -0
- package/dist/tutorials/Play-Images.md +135 -0
- package/dist/tutorials/Play-Narration.md +167 -0
- package/dist/tutorials/Play-Outputs.md +109 -0
- package/dist/tutorials/Play-Overview.md +216 -0
- package/dist/tutorials/Play-Title-and-Article.md +135 -0
- package/dist/tutorials/Play-Video-and-Style.md +143 -0
- package/dist/tutorials/Project-Page.md +228 -0
- package/dist/tutorials/Prompts.md +136 -0
- package/dist/tutorials/Providers-and-Keys.md +290 -0
- package/dist/tutorials/Publishing-to-YouTube.md +135 -0
- package/dist/tutorials/Recovery-and-Retries.md +141 -0
- package/dist/tutorials/Reviews-and-Checkpoints.md +143 -0
- package/dist/tutorials/Schedules.md +154 -0
- package/dist/tutorials/Settings-Reference.md +258 -0
- package/dist/tutorials/Shorts.md +116 -0
- package/dist/tutorials/Start-at-Login.md +126 -0
- package/dist/tutorials/Studio-Extension.md +146 -0
- package/dist/tutorials/Templates.md +146 -0
- package/dist/tutorials/Trash.md +87 -0
- package/dist/tutorials/Troubleshooting.md +149 -0
- package/dist/tutorials/Uninstalling-and-Moving.md +113 -0
- package/dist/tutorials/Updating-and-Patch-Notes.md +120 -0
- package/dist/tutorials/Video-Editing.md +135 -0
- package/dist/tutorials/Where-Your-Files-Live.md +149 -0
- package/dist/tutorials/YouTube-Description.md +132 -0
- package/dist/tutorials/Your-First-Short.md +125 -0
- package/dist/tutorials/_Footer.md +1 -0
- package/dist/tutorials/_Sidebar.md +69 -0
- package/dist/web/assets/index-C4McGNke.js +307 -0
- package/dist/web/assets/index-DBLSfqA-.css +1 -0
- package/dist/web/assets/{pdf-BG8n_uc5.js → pdf-COowcLcz.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +2 -2
- package/dist/web/assets/index-CUA2sUxU.css +0 -1
- package/dist/web/assets/index-CX590kE-.js +0 -303
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Narration Aliases and Glossary
|
|
2
|
+
|
|
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
|
+
|
|
5
|
+
**Where to find it:** aliases in **Library → Aliases**. Both switches are on Play under **Narration → Change → Audio Advanced**, and in **Edit project**. A project's glossary is shown on its **Article** section, in the **Pronunciation** tab.
|
|
6
|
+
|
|
7
|
+
## Narration aliases
|
|
8
|
+
|
|
9
|
+
### Add aliases
|
|
10
|
+
|
|
11
|
+
1. Open **Library → Aliases**.
|
|
12
|
+
2. Press **Add alias**. A new row appears in the list, titled **Alias N**, with its fields under it.
|
|
13
|
+
3. Fill in the row:
|
|
14
|
+
|
|
15
|
+
| Column | What it does | Default / limit |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| **Written** | The word or phrase as it appears in the article. Spaces inside it match any spacing. | Up to 200 characters |
|
|
18
|
+
| **Say it as** | What the narrator says instead, spelled the way it sounds. | Up to 500 characters |
|
|
19
|
+
| **Whole word** | On: matches only where the written form stands as a word of its own, never inside a longer word. Off: matches inside other words too. | On |
|
|
20
|
+
| **Match case** | On: matches only with the same capital letters, so `US` is not `us`. Off: capitals are ignored, so `DR.` and `dr.` match too. | Off |
|
|
21
|
+
|
|
22
|
+
4. Add as many rows as you need, up to 1,000.
|
|
23
|
+
5. Press **Save aliases**. The whole list is saved at once. A row that can't be saved is marked with the reason.
|
|
24
|
+
|
|
25
|
+
Examples:
|
|
26
|
+
|
|
27
|
+
| Written | Say it as |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `Dr.` | Doctor |
|
|
30
|
+
| `Ms.` | Miss |
|
|
31
|
+
| `et al.` | and others |
|
|
32
|
+
| `vs.` | versus |
|
|
33
|
+
| `NASA` | nasa |
|
|
34
|
+
|
|
35
|
+
Each row's title line sums it up, for example "Says Dr. as Doctor · whole word", or "Not filled in yet". To remove one, press its bin button (**Remove alias N**) and then **Save aliases**. On a wide screen, how aliases are used is explained beside the list.
|
|
36
|
+
|
|
37
|
+
### Rules
|
|
38
|
+
|
|
39
|
+
- Two aliases can't share a written form.
|
|
40
|
+
- Where two overlap in the text, the one starting first wins, then the longer.
|
|
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
|
+
- An alias wins over a Pronunciation Glossary entry for the same words.
|
|
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.
|
|
45
|
+
|
|
46
|
+
### Use aliases in a video
|
|
47
|
+
|
|
48
|
+
1. On Play, open the **Narration** row with **Change**, then **Audio Advanced**.
|
|
49
|
+
2. Keep **Use narration aliases** on (the default for new drafts).
|
|
50
|
+
3. Start the run.
|
|
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.
|
|
53
|
+
|
|
54
|
+
Projects from before aliases existed have the switch off and nothing copied.
|
|
55
|
+
|
|
56
|
+
### Captions stay written
|
|
57
|
+
|
|
58
|
+
Captions show the written words, while the audio says the alias. A caption reads "Dr. Grey" while the voice says "Doctor Grey". Caption timing matches each written word to its spoken form.
|
|
59
|
+
|
|
60
|
+
## The Pronunciation Glossary
|
|
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.
|
|
63
|
+
|
|
64
|
+
### Which voices support it
|
|
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."
|
|
67
|
+
|
|
68
|
+
### Get a glossary into the article
|
|
69
|
+
|
|
70
|
+
The glossary comes from your article, so ask for it in your Article prompt. For example, add to the prompt:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
At the end, add a section titled "Pronunciation Glossary". List every unusual name
|
|
74
|
+
as Term: /IPA/ in slash-delimited standard-English IPA. For a foreign name, give an
|
|
75
|
+
English approximation.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Each line looks like this:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
Arda: /ˈɑɹdə/
|
|
82
|
+
Hypatia: /haɪˈpeɪʃə/
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
A table with `Term | IPA` columns works too. If you paste your own article, add the section yourself.
|
|
86
|
+
|
|
87
|
+
### Turn it on
|
|
88
|
+
|
|
89
|
+
1. On Play, open **Narration → Change → Audio Advanced**.
|
|
90
|
+
2. Keep **Use Pronunciation Glossary** on (the default).
|
|
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
|
+
|
|
93
|
+
### Entries that are skipped
|
|
94
|
+
|
|
95
|
+
An entry narration can't use is skipped and read as ordinary text. It never blocks the narration. The project's **Article** section shows a **Pronunciation** tab with the glossary, and a note such as "2 entries are skipped by the narration and read as ordinary text", listing each by number and reason:
|
|
96
|
+
|
|
97
|
+
| Reason shown | What to fix |
|
|
98
|
+
|---|---|
|
|
99
|
+
| use Term: /IPA/ or a Term \| IPA table | The line isn't in either format. |
|
|
100
|
+
| use slash-delimited standard-English IPA (or "IPA" for other languages) | The pronunciation isn't between slashes. |
|
|
101
|
+
| use standard-English IPA only, not ARPAbet, delivery tags or non-English sounds; give a foreign name an English approximation | The IPA uses symbols the voice can't read. For English, use standard-English sounds only. |
|
|
102
|
+
| supply one IPA word for each written word | "New York" needs two IPA words. |
|
|
103
|
+
| an earlier entry already gives this term a different pronunciation | The term is listed twice with different sounds. |
|
|
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).
|
|
106
|
+
|
|
107
|
+
## Aliases or glossary?
|
|
108
|
+
|
|
109
|
+
| You want | Use |
|
|
110
|
+
|---|---|
|
|
111
|
+
| An abbreviation read in full (Dr., St., vs.) | Alias |
|
|
112
|
+
| A word read as a different word or spelling | Alias |
|
|
113
|
+
| Any voice provider | Alias |
|
|
114
|
+
| A made-up or foreign name said exactly right, on Inworld TTS-2 | Glossary |
|
|
115
|
+
| Pronunciations that come with each article automatically | Glossary |
|
|
116
|
+
|
|
117
|
+
## Tips
|
|
118
|
+
|
|
119
|
+
- Spell **Say it as** the way it sounds, not the way it is written: "Shiv-awn" rather than "Siobhan".
|
|
120
|
+
- Keep **Whole word** on unless you really want to match inside other words. Otherwise `St.` could fire inside unrelated text.
|
|
121
|
+
- Listen to the first minute of a new run before a long batch, and add aliases for anything the voice stumbles on.
|
|
122
|
+
|
|
123
|
+
## Related pages
|
|
124
|
+
|
|
125
|
+
- [Narration](Play-Narration)
|
|
126
|
+
- [Prompts](Prompts)
|
|
127
|
+
- [Editing a project](Editing-a-Project)
|
|
128
|
+
- [Multiple voices](Multiple-Voices)
|
|
129
|
+
- [Providers and keys](Providers-and-Keys)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Notifications
|
|
2
|
+
|
|
3
|
+
Runs can take a while, so Slopify can tell you when one needs you: in the browser, or on your phone through a Notification URL such as an ntfy topic.
|
|
4
|
+
|
|
5
|
+
**Where to find it:** **Settings → Notifications**.
|
|
6
|
+
|
|
7
|
+
## When Slopify notifies you
|
|
8
|
+
|
|
9
|
+
| Event | Message |
|
|
10
|
+
|---|---|
|
|
11
|
+
| A run **finishes** | "Video ready", or "Run finished" for a run that makes audio only |
|
|
12
|
+
| A run **fails** | The project title and the first line of the reason |
|
|
13
|
+
| A run **stops to wait for you** | A review checkpoint is holding the next step, or the work left is waiting for Resume |
|
|
14
|
+
| An automatic review **needs a decision** | "Review needs a decision: <title>", when an automatic review flags an item and keeps it (its redos ran out, or the stage only flags). It says what was flagged and to press **Overrule** or **Redo** on the project. Sent once per verdict. |
|
|
15
|
+
| A schedule has **new topics waiting** for approval | For example "5 new topics are waiting for you" |
|
|
16
|
+
|
|
17
|
+
Pausing or cancelling a run yourself sends nothing, and neither does a project that was already finished when the page loaded. A message holds the project title and what happened, never your keys, prompts or files.
|
|
18
|
+
|
|
19
|
+
## Turn on browser notifications
|
|
20
|
+
|
|
21
|
+
Browser notifications work while any Slopify tab is open, in any section, even in the background.
|
|
22
|
+
|
|
23
|
+
1. Open **Settings → Notifications**.
|
|
24
|
+
2. Turn **Browser notifications** on. The browser asks for permission now (never when the page loads). Allow it.
|
|
25
|
+
3. Press **Send test notification** to check. You should see "Test notification sent to this browser."
|
|
26
|
+
|
|
27
|
+
What to expect:
|
|
28
|
+
|
|
29
|
+
- With several Slopify tabs open you get one notification, not one per tab.
|
|
30
|
+
- Clicking a run notification opens the project. Clicking a new-topics notification opens the calendar's **Suggested topics**.
|
|
31
|
+
- The setting applies to this browser only. Turn it on in each browser you use.
|
|
32
|
+
- Default: off.
|
|
33
|
+
|
|
34
|
+
### If the browser blocked notifications
|
|
35
|
+
|
|
36
|
+
If you blocked notifications for Slopify earlier, Slopify says "Notifications are blocked for this site". To fix it:
|
|
37
|
+
|
|
38
|
+
1. Click the icon left of the address bar and open the site settings.
|
|
39
|
+
2. Allow notifications.
|
|
40
|
+
3. Reload the page.
|
|
41
|
+
4. Turn **Browser notifications** on again.
|
|
42
|
+
|
|
43
|
+
Some browsers only allow notifications from installed apps. If the test says so, use a Notification URL instead.
|
|
44
|
+
|
|
45
|
+
## Get notifications on your phone (Notification URL)
|
|
46
|
+
|
|
47
|
+
A Notification URL works with no Slopify tab open. When a run finishes, fails or waits, or a review needs a decision, Slopify sends that address one `POST` with a short plain-text body. Its last line is the project's link, so you can open it straight from the message, for example:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Video ready: Black holes explained
|
|
51
|
+
Open the project to watch it.
|
|
52
|
+
http://localhost:6969/projects/…
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The link uses the address and port Slopify runs on (`localhost` when it listens on all addresses or on 127.0.0.1), so it opens on the computer running Slopify or one that can reach it. Messages about new topics have no link.
|
|
56
|
+
|
|
57
|
+
### Set it up with ntfy
|
|
58
|
+
|
|
59
|
+
1. Install the [ntfy](https://ntfy.sh) app on your phone.
|
|
60
|
+
2. Subscribe to a topic with a long random name, such as `slopify-7f3k9q2m8x`. Anyone who knows the name can read it, so treat it like a password.
|
|
61
|
+
3. In Slopify, open **Settings → Notifications** and paste `https://ntfy.sh/<your-topic>` into **Notification URL**. Your own ntfy server works too.
|
|
62
|
+
4. Press **Save**. Slopify says "Notification URL saved."
|
|
63
|
+
5. Press **Send test notification**. The message should arrive on your phone.
|
|
64
|
+
|
|
65
|
+
To turn it off, clear the field and press **Save**.
|
|
66
|
+
|
|
67
|
+
### Rules for the address
|
|
68
|
+
|
|
69
|
+
- Only `http://` and `https://` addresses are accepted, without a user name or password in them.
|
|
70
|
+
- Any address that accepts a `POST` works, not just ntfy.
|
|
71
|
+
- Each message is sent once, with a 5-second timeout, and is never retried. A failure is written to the log and does not affect the run.
|
|
72
|
+
- The address stays on this machine: backups leave it out.
|
|
73
|
+
- In [Docker](Docker) the request goes out from the container, so the address must be reachable from there. `localhost` means the container itself.
|
|
74
|
+
|
|
75
|
+
## Tips
|
|
76
|
+
|
|
77
|
+
- Turn on both: browser notifications while you are at the computer, ntfy for when you walk away.
|
|
78
|
+
- Pair notifications with [Reviews and checkpoints](Reviews-and-Checkpoints) so a run that waits for your review tells you right away.
|
|
79
|
+
|
|
80
|
+
## Related pages
|
|
81
|
+
|
|
82
|
+
- [Settings reference](Settings-Reference)
|
|
83
|
+
- [Schedules](Schedules)
|
|
84
|
+
- [Calendar](Calendar)
|
|
85
|
+
- [Reviews and checkpoints](Reviews-and-Checkpoints)
|
|
86
|
+
- [Troubleshooting](Troubleshooting)
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Other Languages
|
|
2
|
+
|
|
3
|
+
A project can be written and narrated in one of 30 languages, not only English. Slopify asks the text model to write the article, description and shorts titles in that language, lists the voices that speak it, and times the captions for it. English and nine other languages get word-by-word captions; the rest are timed sentence by sentence.
|
|
4
|
+
|
|
5
|
+
**Where to find it:** Play → **Channel** row → **Language**. On a finished project: Edit project → **Providers** → **Language**. For a channel's default: Channels → the channel → **Brand** → **Language of new projects**.
|
|
6
|
+
|
|
7
|
+
## Pick a language for one video
|
|
8
|
+
|
|
9
|
+
1. On Play, open the **Channel** row.
|
|
10
|
+
2. Under **Language**, pick the language. The first option, **Channel's language (…)**, uses the channel's language and names it.
|
|
11
|
+
3. Open the **Narration** row and pick a **Voice** that speaks the language. The list only shows voices listed for that language, plus voices whose languages are unknown.
|
|
12
|
+
4. Read the line under the Language picker: it says what is written in the language and how the captions will be timed.
|
|
13
|
+
5. Start the run.
|
|
14
|
+
|
|
15
|
+
A template saves the language its draft had. A draft that never picked one uses its channel's language, and English if the channel has none.
|
|
16
|
+
|
|
17
|
+
## Set a channel's language
|
|
18
|
+
|
|
19
|
+
1. Open **Channels**, pick the channel and open its **Brand** tab.
|
|
20
|
+
2. Under **Language of new projects**, pick the language. **Not set** means English.
|
|
21
|
+
|
|
22
|
+
This applies with the brand kit off too, because language is not styling. Projects already made keep their language.
|
|
23
|
+
|
|
24
|
+
## Change the language of a finished project
|
|
25
|
+
|
|
26
|
+
1. Open the project and press **Edit project**.
|
|
27
|
+
2. Open **Providers** and pick the new **Language**.
|
|
28
|
+
3. Save. Changing the language re-writes the project's text and re-times its captions; the rebuild review shows what will be remade and what it costs.
|
|
29
|
+
|
|
30
|
+
## What changes with the language
|
|
31
|
+
|
|
32
|
+
| | English | Spanish, German, French, Italian, Portuguese, Dutch, Catalan, Polish, Czech | All other languages |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| Article, narration preparation, YouTube description, chapters, tags, shorts titles and hashtags, multi-voice scripts | English | Written in the language | Written in the language |
|
|
35
|
+
| Caption timing | Word by word, English model (95 MB) | Word by word, multilingual model (248 MB, downloaded once, on first use) | Sentence by sentence, no model |
|
|
36
|
+
| Word-by-word Shorts captions | On | On | Off: shorts show whole caption groups |
|
|
37
|
+
| Cuts that follow the narration | Available | Available | Off: cuts fall every N seconds |
|
|
38
|
+
| Pronunciation Glossary | Standard-English IPA | Full IPA (ç, ʁ, ø, y, ɲ, x and so on) | Full IPA |
|
|
39
|
+
| Caption font | As chosen | As chosen, or bundled Noto Sans if the font lacks the letters | See [Caption fonts](#caption-fonts) |
|
|
40
|
+
|
|
41
|
+
### The 30 languages
|
|
42
|
+
|
|
43
|
+
| Timing | Languages |
|
|
44
|
+
|---|---|
|
|
45
|
+
| Word by word (English model) | English |
|
|
46
|
+
| Word by word (multilingual model) | Spanish, German, French, Italian, Portuguese, Dutch, Catalan, Polish, Czech |
|
|
47
|
+
| Sentence by sentence | Romanian, Swedish, Danish, Norwegian (bokmål), Finnish, Hungarian, Turkish, Indonesian, Vietnamese, Greek, Russian, Ukrainian, Arabic, Hebrew, Hindi, Thai, Japanese, Chinese, Korean |
|
|
48
|
+
|
|
49
|
+
The picker shows each language by its own name and its English name, for example **Deutsch · German**.
|
|
50
|
+
|
|
51
|
+
## How the writing works
|
|
52
|
+
|
|
53
|
+
Your prompts are not edited. When a project is not in English, Slopify adds one line of its own after your prompt telling the model to write everything meant for the audience (article, narration, titles, descriptions, chapter names, hashtags and tags) in the chosen language, even where your prompt is in English. The line tells the model to keep headings your prompt asks for, such as **Pronunciation Glossary** and **Sources Consulted**, exactly as written, because Slopify finds the end of the article by those headings.
|
|
54
|
+
|
|
55
|
+
Image prompts stay in English: image models read English best.
|
|
56
|
+
|
|
57
|
+
English projects get no extra line, so they are exactly what they were before languages existed.
|
|
58
|
+
|
|
59
|
+
## Voices and languages
|
|
60
|
+
|
|
61
|
+
Saved voices carry the languages they speak.
|
|
62
|
+
|
|
63
|
+
1. Open **Settings → Voices** and add a voice.
|
|
64
|
+
2. Leave **Languages** blank and Slopify asks ElevenLabs, Cartesia or Inworld which languages the voice speaks, or type codes yourself, such as `es, de`.
|
|
65
|
+
3. Press **Edit** in the Languages column to change them later.
|
|
66
|
+
|
|
67
|
+
OpenAI has no voice API for this, and its voices read every language its model does. A voice whose languages are unknown is offered for every language.
|
|
68
|
+
|
|
69
|
+
On Play, the voice list shows the voices that speak the project language. Tick **Show all voices** to pick one listed for other languages, for example a multilingual voice whose languages are listed wrong. If you pick such a voice, Play warns you but does not stop the run. Speaker voice pickers under Speakers, and a cast member's voice picker, filter the same way. See [Multiple-Voices](Multiple-Voices).
|
|
70
|
+
|
|
71
|
+
## Caption timing in detail
|
|
72
|
+
|
|
73
|
+
- **English** uses its own model, as before.
|
|
74
|
+
- **The nine word-by-word languages** use a free multilingual model, about 248 MB. It is downloaded the first time a project in one of these languages makes captions, into your data folder, and checked before use. It is never downloaded at start-up and is not part of the Docker image. Numbers are spelled out in the language before timing. A word written in another alphabet stops the captions with a message asking you to write it in Latin letters. Allow about 1.1 GB of memory for captions in these languages, against about 0.8 GB for English.
|
|
75
|
+
- **All other languages** are timed sentence by sentence: Slopify finds the narration's pauses from its loudness and lays each sentence over its share of the speech. Nothing is downloaded. The project page says so under the video.
|
|
76
|
+
|
|
77
|
+
Because word timing is not available in the sentence-timed languages, two features are off there, and the controls say so:
|
|
78
|
+
|
|
79
|
+
- **Cuts** set to **Follow the narration** fall back to every N seconds (Seconds per image).
|
|
80
|
+
- **Shorts** show whole caption groups instead of word-by-word captions.
|
|
81
|
+
|
|
82
|
+
Chinese, Japanese and Thai words are counted with the platform's word breaker when narration is split into chunks.
|
|
83
|
+
|
|
84
|
+
## Caption fonts
|
|
85
|
+
|
|
86
|
+
For any language other than English, Slopify checks that your caption font has the language's letters. If it doesn't:
|
|
87
|
+
|
|
88
|
+
1. It uses a bundled Noto font for Latin, Greek, Cyrillic, Arabic, Hebrew, Devanagari and Thai.
|
|
89
|
+
2. For Chinese, Japanese and Korean, which are not bundled (their fonts run to 10-20 MB), it looks for a font on your computer that has the letters.
|
|
90
|
+
3. If none is found, the Video stage stops and says so. Upload a font that has the letters with **Upload font (.ttf or .otf)** in the caption font picker (Play → **Video and style**, or Edit project → **Subtitles**), choose it, then press **Try again**. Noto Sans JP, KR or SC from fonts.google.com work.
|
|
91
|
+
|
|
92
|
+
English projects always render with exactly the font you chose.
|
|
93
|
+
|
|
94
|
+
## Limits
|
|
95
|
+
|
|
96
|
+
- Only the 30 languages above can be picked.
|
|
97
|
+
- Word-by-word captions and cuts that follow the narration are only available in English and the nine multilingual languages.
|
|
98
|
+
- The first captions in a multilingual language need a one-time download of about 248 MB.
|
|
99
|
+
- Some voice providers list languages incorrectly; use Show all voices if the voice you want is missing.
|
|
100
|
+
|
|
101
|
+
## Related pages
|
|
102
|
+
|
|
103
|
+
- [Play-Narration](Play-Narration)
|
|
104
|
+
- [Play-Video-and-Style](Play-Video-and-Style)
|
|
105
|
+
- [Channels](Channels)
|
|
106
|
+
- [Multiple-Voices](Multiple-Voices)
|
|
107
|
+
- [Shorts](Shorts)
|
|
108
|
+
- [Narration-Aliases-and-Glossary](Narration-Aliases-and-Glossary)
|
|
109
|
+
- [Editing-a-Project](Editing-a-Project)
|
|
110
|
+
- [Where-Your-Files-Live](Where-Your-Files-Live)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# PDF Documents
|
|
2
|
+
|
|
3
|
+
Slopify can lay out your article as a styled PDF: a title page with the thumbnail as its cover, a table of contents, the article with drop caps, a sources page and an optional closing page. It is drawn on your computer in the theme you pick, needs no provider and costs nothing.
|
|
4
|
+
|
|
5
|
+
**Where to find it:** Play → **Outputs** row → **Document**. On a finished project: the **Document** section of the project page, and Edit project → **Inputs** → **Stages** → **Document theme**.
|
|
6
|
+
|
|
7
|
+
## Make a PDF
|
|
8
|
+
|
|
9
|
+
1. On Play, open the **Outputs** row.
|
|
10
|
+
2. In the **Document** rail, switch the source from **Off** to **Generate**.
|
|
11
|
+
3. Pick a **Theme**: the built-in **Plain**, or one of your own themes from Library → Documents.
|
|
12
|
+
4. Start the run.
|
|
13
|
+
|
|
14
|
+
The Document stage runs after the article (and the thumbnail, if there is one) is ready. A thumbnail that failed or was cancelled doesn't hold it back: the PDF is then laid out without a cover. It needs an article with some text; an empty article stops the stage with a message pointing you to Edit project → Article.
|
|
15
|
+
|
|
16
|
+
## Options
|
|
17
|
+
|
|
18
|
+
| Option | What it does | Default |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| **Document** source | **Generate** lays out a PDF of the article and title on this computer, in the theme you pick. It needs no provider and costs nothing. | Off |
|
|
21
|
+
| **Theme** | How the PDF looks: the built-in **Plain** theme, or one of yours from **Library → Documents**. **Edit themes** opens the list. | Plain, or the channel's document theme |
|
|
22
|
+
|
|
23
|
+
A theme of yours is copied into the project when you pick it. Editing the theme later leaves this project alone until you pick it again, so a PDF already made or queued never changes by surprise. A channel's brand kit can set a **Document theme** for its videos whose template picks none; see [Channels](Channels).
|
|
24
|
+
|
|
25
|
+
## What's in the PDF
|
|
26
|
+
|
|
27
|
+
In order:
|
|
28
|
+
|
|
29
|
+
| Part | What it holds |
|
|
30
|
+
|---|---|
|
|
31
|
+
| **Title page** | The theme's brand name and tagline (if the theme sets them), the video's title, the project's thumbnail as a cover, then the date and word count. |
|
|
32
|
+
| **Table of Contents** | Headings from the article, down to the level the theme sets (two levels in Plain), with page numbers. |
|
|
33
|
+
| **Body** | The article: headings, paragraphs with a drop cap after headings, bold and italic, links, lists, quotes and rules. |
|
|
34
|
+
| **Sources Consulted** | The article's "Sources Consulted" section, then any other web link cited in the research notes. Links stay clickable. |
|
|
35
|
+
| **Closing page** | Optional: the theme's own lines, the document's details (written on, total words, total pages), a link and a closing line. Off in Plain. |
|
|
36
|
+
|
|
37
|
+
Every page after the title page has a running header ("Brand | Title", or the title alone) and a page number in the footer.
|
|
38
|
+
|
|
39
|
+
### What is left out
|
|
40
|
+
|
|
41
|
+
- The article's **Pronunciation Glossary** is for the narrator and is never printed.
|
|
42
|
+
- The "Sources Consulted" section becomes the Sources page instead of body text.
|
|
43
|
+
- A heading at the top that repeats the title is not printed twice.
|
|
44
|
+
- Images, raw HTML and footnotes in the article's markdown have no printed form. Tables are printed as rows of cells separated by `|`, and code blocks as plain paragraphs.
|
|
45
|
+
|
|
46
|
+
### Cover
|
|
47
|
+
|
|
48
|
+
The title page uses the project's thumbnail as its cover when:
|
|
49
|
+
|
|
50
|
+
- the project makes or uploads a thumbnail (its Thumbnail source is not Off),
|
|
51
|
+
- the thumbnail is a PNG, JPEG or WebP image, and
|
|
52
|
+
- the theme's cover setting is on (it is in Plain).
|
|
53
|
+
|
|
54
|
+
Otherwise the title page has no cover and the details sit in the theme's usual place. That includes a thumbnail step that failed or was cancelled: the PDF is made anyway, without a cover. If you make the thumbnail later, the PDF is marked outdated, so you can remake it with the cover. If the thumbnail file can't be read, the Document stage stops and asks you to regenerate or upload the thumbnail again, then use **Try again** on Document.
|
|
55
|
+
|
|
56
|
+
### Sources
|
|
57
|
+
|
|
58
|
+
Sources come from two places:
|
|
59
|
+
|
|
60
|
+
1. The article's own section headed **Sources Consulted** (any heading level, or a bold line). Ask for it in your Article prompt with exactly that heading.
|
|
61
|
+
2. Links in the research notes, when research is on, that the article's list doesn't already have.
|
|
62
|
+
|
|
63
|
+
When there are no sources, the Sources page is left out.
|
|
64
|
+
|
|
65
|
+
## The Plain theme
|
|
66
|
+
|
|
67
|
+
Plain is the one built-in theme: an unbranded A4 page on a warm off-white background, headings in dark blue, the Cinzel typeface for body and headings, a three-line drop cap after headings, a table of contents and a sources page, no closing page.
|
|
68
|
+
|
|
69
|
+
To change fonts, colours, paper size (A4 or Letter), page parts and the closing page, make your own theme. See [Document-Themes](Document-Themes).
|
|
70
|
+
|
|
71
|
+
## Open and download the PDF
|
|
72
|
+
|
|
73
|
+
On the project page, the **Document** section shows the theme's name (for example **Plain theme**) and, once the PDF is made:
|
|
74
|
+
|
|
75
|
+
- **Open PDF** opens it in a new browser tab.
|
|
76
|
+
- **Download PDF** saves the file to your computer.
|
|
77
|
+
|
|
78
|
+
While the stage runs it says "The PDF will be saved when rendering finishes." The file lives in the project's folder; see [Where-Your-Files-Live](Where-Your-Files-Live).
|
|
79
|
+
|
|
80
|
+
## Change the theme of a finished project
|
|
81
|
+
|
|
82
|
+
1. Open the project and press **Edit project**.
|
|
83
|
+
2. Open **Inputs**. Under **Stages**, set the Document source to Generate if it was Off.
|
|
84
|
+
3. Pick a **Document theme**.
|
|
85
|
+
4. Save. The rebuild review lists the PDF to be made again; it costs nothing.
|
|
86
|
+
|
|
87
|
+
## Tips
|
|
88
|
+
|
|
89
|
+
- Use Library → Documents' live preview to try a theme on a sample article before you pick it for a project.
|
|
90
|
+
- If a PDF has no cover, check that the project has a thumbnail and that it is a PNG, JPEG or WebP image.
|
|
91
|
+
- Want the sources page filled? Make sure your Article prompt asks for a "Sources Consulted" section, and consider turning on research.
|
|
92
|
+
|
|
93
|
+
## Related pages
|
|
94
|
+
|
|
95
|
+
- [Document-Themes](Document-Themes)
|
|
96
|
+
- [Play-Outputs](Play-Outputs)
|
|
97
|
+
- [Channels](Channels)
|
|
98
|
+
- [Project-Page](Project-Page)
|
|
99
|
+
- [Editing-a-Project](Editing-a-Project)
|
|
100
|
+
- [Play-Title-and-Article](Play-Title-and-Article)
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Play Images
|
|
2
|
+
|
|
3
|
+
The images are the pictures your video shows while the narration plays. On Play you pick who draws them, which Library image prompts they come from and how many each makes, and optionally an establishing image that keeps characters and style consistent. You get a set of images, drawn in the video's frame shape, played in order.
|
|
4
|
+
|
|
5
|
+
**Where to find it:** Play → **Images** row → **Change**.
|
|
6
|
+
|
|
7
|
+
## Choose where the images come from
|
|
8
|
+
|
|
9
|
+
The Images row starts with a **Source** switch:
|
|
10
|
+
|
|
11
|
+
| Source | What happens | Cost |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| **Generate** (default) | Draws images from the ticked image prompts, one image-model call each. | Per image, by the provider |
|
|
14
|
+
| **Provide** | Uses your own PNG, JPEG or WebP files (**Slideshow images**) in the order you pick them. | None |
|
|
15
|
+
| **Off** | No images. This turns the video off too: the **Video and style** row says "Video is Off because Images is Off." | None |
|
|
16
|
+
|
|
17
|
+
### Use your own images
|
|
18
|
+
|
|
19
|
+
1. Set **Source** to **Provide**.
|
|
20
|
+
2. Pick the files under **Slideshow images**. Each is numbered in the order it plays.
|
|
21
|
+
3. Remove a file with its remove button, or reattach one whose upload was lost.
|
|
22
|
+
|
|
23
|
+
A video can have at most 60 of your images, and the same file cannot be picked twice. Wait for every upload to finish before pressing Start.
|
|
24
|
+
|
|
25
|
+
## Pick the image provider and model
|
|
26
|
+
|
|
27
|
+
| Option | What it does | Default |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| **Provider** | Who draws the images, the thumbnail and the shorts' pictures: a keyed service billed per image (fal.ai, Replicate, OpenAI, Google), or a command-line tool you are signed in to (Codex CLI). A greyed provider says why it cannot be used; fix it under Settings. | Your Settings default |
|
|
30
|
+
| **Model** | The provider's image model. Models differ in quality, speed and price per image; the estimate in the right rail shows what this run costs. The refresh button asks for the current list; **Custom ID** lets you type one. | Your Settings default |
|
|
31
|
+
| **Effort** | How long an image agent, such as the Codex CLI, reasons before it draws. Higher effort can follow the prompt more closely but takes longer and uses more tokens. Shown only for models that offer levels. | **Model default** |
|
|
32
|
+
|
|
33
|
+
Changing the provider clears the model.
|
|
34
|
+
|
|
35
|
+
### Drawing with the Codex CLI
|
|
36
|
+
|
|
37
|
+
With **Codex CLI** as the image provider, the **Model** list holds **Codex default** and the Codex CLI's own models. **Codex default** leaves the model and effort to the CLI's own defaults. Any other model runs with the **Effort** you pick. An image agent that reviews and redraws its picture can work for several minutes at a high effort. Images drawn this way cost nothing extra on your plan; the estimate shows the approximate API price beside **$0 on your plan**. See [AI CLIs](AI-CLIs).
|
|
38
|
+
|
|
39
|
+
## Pick the image prompts
|
|
40
|
+
|
|
41
|
+
1. Under **Image prompts**, tick the Library prompts that should draw the video's images.
|
|
42
|
+
2. Give each ticked prompt a **Number**: how many images it makes, 1 to 20.
|
|
43
|
+
3. Check the total under the list, for example **8 of 60 images**.
|
|
44
|
+
|
|
45
|
+
| Rule | Value |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| Images per prompt | 1 to 20 |
|
|
48
|
+
| Images per run, hand-set | at most 60 |
|
|
49
|
+
| Images per run, with **More images for long videos** | at most 240 |
|
|
50
|
+
| Order | The images play in the order you ticked the prompts |
|
|
51
|
+
|
|
52
|
+
Each image is one image-model call. A prompt that has been deleted since this draft picked it shows **Missing template · untick to remove**. With no image prompts at all, the row says "No image prompts saved. Write one on Prompts." See [Prompts](Prompts).
|
|
53
|
+
|
|
54
|
+
### Photorealistic prompts
|
|
55
|
+
|
|
56
|
+
An image prompt in the Library has a **Draws photorealistic pictures** tick. Turn it on when the prompt's style looks like real photos or film. Prepare upload then answers Yes to YouTube's AI use question for videos and shorts drawn with it. Leave it off for painterly or illustrated styles. It is set on the prompt, not on Play: open Library → Prompts → the prompt. See [Prompts](Prompts) and [Publishing to YouTube](Publishing-to-YouTube).
|
|
57
|
+
|
|
58
|
+
## Establishing image
|
|
59
|
+
|
|
60
|
+
The establishing image is made first and never shown in the video. Every other image, the shorts' images and (if ticked) the thumbnail are drawn with it as a reference, so characters, style and palette stay the same across the video.
|
|
61
|
+
|
|
62
|
+
| Option | What it does | Default |
|
|
63
|
+
| --- | --- | --- |
|
|
64
|
+
| **Establishing image** | **Off**, **From a prompt** (costs one more image) or **Upload** (your own PNG or JPEG, **Establishing image file**). | Off |
|
|
65
|
+
| **Establishing prompt** | The Library image prompt that draws it, keywords filled like the others. Describe the characters, setting and style every other image should share. | None |
|
|
66
|
+
| **Draw the thumbnail from it too** | Draws the thumbnail with the establishing image as a reference too, so it matches the video. Untick it for a thumbnail drawn on its own. | On |
|
|
67
|
+
|
|
68
|
+
Changing the establishing image later marks the images drawn from it as outdated. When you upload the establishing image, the style preview in the right rail is drawn on it, so you judge the Look and captions on your own picture.
|
|
69
|
+
|
|
70
|
+
### Set up an establishing image
|
|
71
|
+
|
|
72
|
+
1. Under **Establishing image**, pick **From a prompt** or **Upload**.
|
|
73
|
+
2. For **From a prompt**, pick the **Establishing prompt**. For **Upload**, pick the file.
|
|
74
|
+
3. Leave **Draw the thumbnail from it too** ticked if the thumbnail should match.
|
|
75
|
+
|
|
76
|
+
## The channel's cast
|
|
77
|
+
|
|
78
|
+
The channel you pick in the **Channel** row brings its cast: characters, creatures, places and objects, each with reference pictures. When an image's brief mentions a cast member by name or alias (as a whole word, ignoring case), that image is drawn with the member's pictures as references, after the establishing image when it is on. The establishing image and the thumbnail also take the members the title mentions. At most four members go with one image.
|
|
79
|
+
|
|
80
|
+
Models that take several input pictures (Codex, OpenAI, Google, and fal.ai's FLUX.2 and Nano Banana 2 edit models) use the pictures directly. A model that takes none gets the members described in words instead. The cast is used even when **Use the channel's brand kit** is off. See [Cast Library](Cast-Library) and [Channels](Channels).
|
|
81
|
+
|
|
82
|
+
## More images for long videos
|
|
83
|
+
|
|
84
|
+
A long video with a fixed handful of images repeats them for an hour. **More images for long videos** adds images as the narration gets longer.
|
|
85
|
+
|
|
86
|
+
| Option | What it does | Default / range |
|
|
87
|
+
| --- | --- | --- |
|
|
88
|
+
| **More images for long videos** | Adds images, planned from the expected length when the run starts. The extra images are shared among the ticked prompts in order, up to 240 in all. Each is one more image call. | Off |
|
|
89
|
+
| **How the rate is given** | **Every N minutes**: one image every N minutes of narration (0.25 to 60). **N per hour**: N images per hour (1 to 240). Switching keeps the same rate. | One image every 2 minutes |
|
|
90
|
+
|
|
91
|
+
### Turn it on
|
|
92
|
+
|
|
93
|
+
1. Tick at least one image prompt.
|
|
94
|
+
2. Switch on **More images for long videos**.
|
|
95
|
+
3. Pick **Every N minutes** or **N per hour** and type the rate.
|
|
96
|
+
4. Read the line under it, for example: "For about 60 minutes (9,000 words expected, set on Review): 30 images, 26 more than the prompts' 4."
|
|
97
|
+
|
|
98
|
+
How the count is worked out:
|
|
99
|
+
|
|
100
|
+
- The length is the pasted article's own word count, or else **Expected article words per video** in the right rail, at 150 spoken words a minute.
|
|
101
|
+
- Each ticked prompt keeps its own **Number** as a minimum. The extra images are handed to the ticked prompts one at a time, in the order they were ticked.
|
|
102
|
+
- When the prompts' own Numbers already cover the length, nothing is added.
|
|
103
|
+
- The count stops at 240. After that the slideshow repeats its images, as it does whenever the narration outlasts them.
|
|
104
|
+
- The count is planned once, when the run starts. A narration that turns out longer is still covered by the slideshow cycling its images.
|
|
105
|
+
|
|
106
|
+
Turning it on also switches **Motion** (in the **Video and style** row) from **Zoom in and out** to **Mix of both**, so a long video pans and zooms by turns. A **Pan across** or **Still** you picked stays, and you can pick Zoom again.
|
|
107
|
+
|
|
108
|
+
## How long each image stays on screen
|
|
109
|
+
|
|
110
|
+
**Seconds per image** (1 to 600, default 15) is in the **Video and style** row, beside **Cuts**, **Zoom** and **Motion**. When cuts follow the narration, it is the target length and a cut waits for a sentence end. When images run out, they start again. See [Play Video and Style](Play-Video-and-Style).
|
|
111
|
+
|
|
112
|
+
## The thumbnail and the shorts
|
|
113
|
+
|
|
114
|
+
The thumbnail and the shorts' images use the same image provider and model. If the video's images are not generated but the thumbnail is, the thumbnail gets its own **Provider**, **Model** and **Effort** pickers in the **Outputs** row. See [Play Outputs](Play-Outputs) and [Shorts](Shorts).
|
|
115
|
+
|
|
116
|
+
## What the row summary says
|
|
117
|
+
|
|
118
|
+
Folded, the Images row lists each ticked prompt with its Number, the provider and model, and "establishing image" when one is on, for example `Scene × 6, Portrait × 2 · fal.ai · flux-pro · establishing image`. With Provide it says how many of your images there are.
|
|
119
|
+
|
|
120
|
+
## Tips
|
|
121
|
+
|
|
122
|
+
- Keep one style across the video with an establishing image, instead of repeating the style in every image prompt.
|
|
123
|
+
- Picture reviews can check each image for malformed hands, stray text and a match with its brief. They need Claude Code or Codex as the reviewer. See [Reviews and Checkpoints](Reviews-and-Checkpoints).
|
|
124
|
+
- After the run, you can add, remove or regenerate single images on the project page. See [Editing a Project](Editing-a-Project).
|
|
125
|
+
|
|
126
|
+
## Related pages
|
|
127
|
+
|
|
128
|
+
- [Play Overview](Play-Overview)
|
|
129
|
+
- [Prompts](Prompts)
|
|
130
|
+
- [Cast Library](Cast-Library)
|
|
131
|
+
- [Channels](Channels)
|
|
132
|
+
- [Models](Models)
|
|
133
|
+
- [Costs and Run Cost](Costs-and-Run-Cost)
|
|
134
|
+
- [Play Video and Style](Play-Video-and-Style)
|
|
135
|
+
- [Play Outputs](Play-Outputs)
|