@gentbajko/slopify 3.0.0 → 3.0.1
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/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/index.json +6 -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-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-DBLSfqA-.css +1 -0
- package/dist/web/assets/index-DFdIhmm0.js +307 -0
- package/dist/web/assets/{pdf-BG8n_uc5.js → pdf-B9OY1ioX.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,149 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
Most problems in Slopify show up as a failed step on the project page with a message that says what failed and where to fix it. This page collects the common ones, grouped by where you meet them, with the fix for each.
|
|
4
|
+
|
|
5
|
+
**Where to find it:** failed steps show on the project page (the right rail and the step's section, under **Error details**). Startup problems show in the terminal that started Slopify. **Download diagnostics** is on every Settings section.
|
|
6
|
+
|
|
7
|
+
## First steps for any problem
|
|
8
|
+
|
|
9
|
+
1. Read the message. Slopify's messages name the screen or the command that fixes them.
|
|
10
|
+
2. On a project, press the next action button. For a failed step it is the fix, or **Try ... again**, which keeps everything already made. See [Recovery and Retries](Recovery-and-Retries).
|
|
11
|
+
3. Reload the page. A lot of "couldn't load" messages clear with a reload.
|
|
12
|
+
4. If it keeps happening, open Settings and press **Download diagnostics**, then attach the file to a bug report.
|
|
13
|
+
|
|
14
|
+
### Download diagnostics
|
|
15
|
+
|
|
16
|
+
**Download diagnostics** saves `slopify-diagnostics.json`: the Slopify version, your system and Node version, which providers are set up or found, the project count and the state of the model catalogue. It never holds your keys, prompts or project content.
|
|
17
|
+
|
|
18
|
+
## Provider keys and accounts
|
|
19
|
+
|
|
20
|
+
| Message (or part of it) | Cause | Fix |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| "*Provider* did not accept the API key ... The key may be wrong, expired or revoked" | The key is wrong or was revoked. | Paste a current key in Settings → **Providers**, save, then press **Try ... again** on the project. The fix-it button **Open Settings → Providers → *provider*** takes you there. |
|
|
23
|
+
| "No *provider* API key is saved. Add one in Settings → Providers, then use Try again." | The project uses a provider with no key. | Add the key, or switch the project to another provider in **Edit project → Providers**. |
|
|
24
|
+
| "*Provider* says the account is out of credits" | Your provider account has no balance. | Add credits on the provider's website, then try again. |
|
|
25
|
+
| "Google gives this API key no image quota for this model" | The Google project behind the key has no quota for that image model. | Enable billing or quota in Google's console, or pick another image model. |
|
|
26
|
+
| "Slopify could not load this provider's model list. Check the API key in Settings → Providers and your internet connection, then refresh the list." | The model list could not be fetched. | Check the key and your connection, then refresh. |
|
|
27
|
+
| "Save this provider's API key in Settings → Providers to load its models." | No key yet. | Save the key first. |
|
|
28
|
+
|
|
29
|
+
Keys and how to get them: [Providers and Keys](Providers-and-Keys).
|
|
30
|
+
|
|
31
|
+
## AI CLIs (Claude Code, Codex, Gemini)
|
|
32
|
+
|
|
33
|
+
| Message (or part of it) | Fix |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| "The *CLI* is not signed in, or its sign-in has expired." | Press **Copy sign-in command** on the project (or on Home's Needs you), run it in a terminal on the computer running Slopify (`claude auth login`, `codex login`, or `gemini`), sign in, then press **Check again**: once the CLI answers that it is signed in, the step runs again by itself. See [Recovery and Retries](Recovery-and-Retries#sign-a-cli-in-again). |
|
|
36
|
+
| "Your Codex plan's usage limit is used up ... Slopify waits for it to reset and then carries on by itself." (also Claude and Gemini) | Nothing to do: the run waits instead of failing. The project, Home, Projects and the Calendar say "Waiting for Codex limits (resets at 14:00)". See [Recovery and Retries](Recovery-and-Retries#waiting-for-cli-plan-limits). |
|
|
37
|
+
| "The *CLI* stopped without answering" | Run the CLI in a terminal to check it works and is signed in, then try again. |
|
|
38
|
+
| "Slopify could not hand the whole prompt to the CLI, so it cannot tell what the CLI worked on (it may already have used your quota)." | Use **Try again**. This is not retried automatically, so you choose whether to spend the quota again. |
|
|
39
|
+
| "No Codex model is chosen for images." | Choose a model (or Codex default) for images in **Edit project → Providers**, then try again. |
|
|
40
|
+
| "Slopify could not get the model list from the *CLI* CLI." | Check the CLI is installed and signed in (Settings → Providers), refresh the list, or type an exact model ID. |
|
|
41
|
+
| A CLI shows as not installed in Settings | Install the CLI so it is on your `PATH`, or, in Docker, rerun the Docker install after installing or moving a CLI so the host helper finds it. Then press **Check again** on its row under **Health check**. |
|
|
42
|
+
| Gemini CLI shows "Slopify could not tell from the Gemini CLI's files (~/.gemini/settings.json) whether it is signed in." | Run `gemini` in a terminal once and sign in (Login with Google), or set `GEMINI_API_KEY`, then press **Check again**. |
|
|
43
|
+
|
|
44
|
+
See [AI CLIs](AI-CLIs).
|
|
45
|
+
|
|
46
|
+
## Provider refusals, models and timeouts
|
|
47
|
+
|
|
48
|
+
| Message (or part of it) | Fix |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| "*Provider* refused to make this image under its content rules" | Press **Soften and retry**, or reword the image prompt in **Edit project → Images**, or choose another image provider. |
|
|
51
|
+
| A content filter refused a text prompt | Press **Edit the prompt** and reword it in **Edit project → Prompts**. |
|
|
52
|
+
| "The chosen model may not exist or not be available to your account" / "The model for ... is no longer offered." | Press **Switch model**, pick another model in **Edit project → Providers**, save, try again. See [Models](Models). |
|
|
53
|
+
| "The AI model did not answer within 120 seconds. It may be overloaded" (also the narration provider, image provider or image-to-video model) | Wait a few minutes, then **Try again**, or choose another model. Slopify already retried several times before showing this. |
|
|
54
|
+
| "*Provider* sent back something that is not a PNG or JPEG image" | Use **Try again**; if it keeps happening, choose another image model. |
|
|
55
|
+
| "Check that voice ... still exists in Settings → Voices and that each narration part fits the model's length limit" | The voice was removed, or a chunk is too long for the model. Pick a saved voice, or lower **Chunking** in **Edit project → Providers**. |
|
|
56
|
+
| An animated image failed ("choose another image-to-video model under Animate images in Edit project → Inputs → Look") | Try again, or pick another model under **Animate images**. The image stays still meanwhile and is listed under **Render notes**. |
|
|
57
|
+
| Rate limit messages (429) | Nothing to do: Slopify waits and tries again by itself. |
|
|
58
|
+
|
|
59
|
+
## ffmpeg, captions and rendering
|
|
60
|
+
|
|
61
|
+
Slopify ships its own ffmpeg; you do not need to install one. In Docker it is inside the image.
|
|
62
|
+
|
|
63
|
+
| Message (or part of it) | Fix |
|
|
64
|
+
| --- | --- |
|
|
65
|
+
| "Slopify can't find ffmpeg ... its bundled copy is missing for this computer." | Reinstall Slopify, or set `SLOPIFY_FFMPEG` to the path of an ffmpeg program. On first start Slopify also tries to download the same build into `<data-dir>/bin/`; if that fails, check your connection and your antivirus quarantine. |
|
|
66
|
+
| "Slopify could not start ffmpeg ..." | Reinstall Slopify. If you set `SLOPIFY_FFMPEG`, check it points to a working ffmpeg. |
|
|
67
|
+
| "The audio/video export failed (ffmpeg exited with code ...)" | Open **Error details**: it quotes what ffmpeg could not do, for example an input file it could not open. Replace that file (an uploaded image or clip in **Edit project → Images**), or try again. |
|
|
68
|
+
| "Slopify couldn't measure the loudness of the narration" | Try again. If it happens again, turn off **Level the volume** in **Edit project → Inputs → Pauses and volume**, then download diagnostics and report it. |
|
|
69
|
+
| "The style preview couldn't render ... Press Render again." | Press **Render again**. If it fails again, download diagnostics and report it. |
|
|
70
|
+
| "The free subtitle model could not be downloaded" / "download was interrupted" / "failed download verification" | The 95 MB caption model downloads on first use. Check your connection and try again. `SLOPIFY_NO_MODEL_PREFETCH` only skips the download at start; captions still need it. |
|
|
71
|
+
| "Captions can't be edited until the current narration has finished and its subtitle timing is ready." | Let the narration and subtitle timing finish, then edit captions. |
|
|
72
|
+
| "The saved subtitle timing doesn't match the current narration." | Do what the message says: make the subtitle timing again (More → make it again), then edit the captions. |
|
|
73
|
+
| "Subtitles recovered after missing narration (N)" under the video | Some transcript passages could not be matched to the audio and were left out of the captions. The audio is fine. Review those passages before sharing. |
|
|
74
|
+
|
|
75
|
+
With **Language** set to one without word timing, captions and cuts work differently; see [Other Languages](Other-Languages).
|
|
76
|
+
|
|
77
|
+
## Starting Slopify
|
|
78
|
+
|
|
79
|
+
| Message | Fix |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| "Port 6969 is already in use by another program (maybe another Slopify)." | Stop that program, or start on another port: `npx @gentbajko/slopify --port 7070`. |
|
|
82
|
+
| "Slopify is not allowed to use port ... (ports below 1024 need administrator rights)" | Use a port above 1024 with `--port`. |
|
|
83
|
+
| "Slopify can't listen on ... because that address doesn't belong to this machine." | Leave out `--host` (and `SLOPIFY_HOST`) to use `127.0.0.1`. |
|
|
84
|
+
| "Slopify can't write to its data folder ..." | Make sure your user owns the folder, or choose another with `--data-dir`. |
|
|
85
|
+
| "The disk is full ... Free up some space and start Slopify again." | Free disk space. |
|
|
86
|
+
| npm refuses to install because of the Node version | Slopify needs Node 26 or newer. |
|
|
87
|
+
|
|
88
|
+
See [Install](Install) for the command-line options.
|
|
89
|
+
|
|
90
|
+
## In the browser
|
|
91
|
+
|
|
92
|
+
| Message | Fix |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
| "Slopify isn't responding. …" | Slopify stopped, is restarting or is being updated. The message names the fix for your install: for a normal install, wait a moment or start it again with `npx @gentbajko/slopify`; in Docker, check that its container is running (Docker Desktop, or `docker ps`) and start it. Then reload. |
|
|
95
|
+
| "Slopify hit an unexpected error (*code*). Reload the page and try again." | Reload. If it keeps happening, download diagnostics and report it. |
|
|
96
|
+
| "The project could not be loaded." | Reload, or go back to Projects. |
|
|
97
|
+
| "The upload stopped before the file finished copying. Choose the file again." | Pick the file again and wait for "Waiting for uploads to finish…" to clear before saving. |
|
|
98
|
+
| "A newer revision is available. Your unsaved changes are kept below." | The project was saved elsewhere (another tab, a remake). Press **Reload current revision and discard my draft**, or keep your draft and save it. |
|
|
99
|
+
|
|
100
|
+
## Disk space
|
|
101
|
+
|
|
102
|
+
| Symptom | Fix |
|
|
103
|
+
| --- | --- |
|
|
104
|
+
| A step fails with "The disk is full, so ... stopped." | Press **Free space**; Settings → **Backup & storage** shows each project's size. Delete projects you do not need (they go to the [Trash](Trash); **Delete now** frees the space at once), or use **Keep outputs only** on finished projects. Then try again. |
|
|
105
|
+
| You want space back from a finished project | On its page, **Free space** → **Free …: keep the outputs, drop the working files**. See [Project Page](Project-Page#free-space). |
|
|
106
|
+
| History shows "Retained file missing" or "File missing" | That output's file was removed from disk (for example by **Keep outputs only**, or by hand). Remake the output to get it back. |
|
|
107
|
+
|
|
108
|
+
See [Where Your Files Live](Where-Your-Files-Live).
|
|
109
|
+
|
|
110
|
+
## Docker and native differences
|
|
111
|
+
|
|
112
|
+
| Topic | Native install | Docker |
|
|
113
|
+
| --- | --- | --- |
|
|
114
|
+
| Where it runs | Any system with Node 26 or newer | The installer is Linux only; Docker Desktop and remote Docker daemons are refused, and the installer must not be run with sudo |
|
|
115
|
+
| Project files | `Documents/Slopify` for new installs (Settings → **Your files**); the database, settings and keys stay in the hidden data folder (`~/.slopify` by default, `--data-dir`) | `<Documents>/Slopify/Projects` on the host for new installs (`~/Slopify/Projects` on one from before 3.0); the database and keys stay in the `slopify-data` volume |
|
|
116
|
+
| AI CLIs | Run directly with your logins | Run on the host through a small helper, `slopify-cli-bridge.service`, with your existing logins. Check it with `systemctl --user status slopify-cli-bridge.service`. Without it, Settings shows the CLIs as unavailable. |
|
|
117
|
+
| **Open folder** | Opens your file manager | Opens it through the host helper; without the helper you get the path to copy, and "run the Docker launcher again ... so it sets up the host helper" |
|
|
118
|
+
| Start at login | Settings → General → **Start Slopify when I log in** | Slopify starts whenever Docker does; Settings only shows Docker's own setting (with Docker Desktop, its **Start Docker Desktop when you sign in**) |
|
|
119
|
+
| Updating | The updates button at the foot of the sidebar, or `npx @gentbajko/slopify@latest update` while Slopify is running | `npx @gentbajko/slopify@latest update` from the terminal. It keeps a recovery copy of your data in a Docker volume and puts the previous version back if the new one does not start. |
|
|
120
|
+
|
|
121
|
+
If an install or update fails, the message names what failed and, in Docker, the volume that holds the recovery copy of your data. Do not delete that volume; fix the problem and run the same command again. See [Docker](Docker) and [Updating and Patch Notes](Updating-and-Patch-Notes).
|
|
122
|
+
|
|
123
|
+
## A run seems stuck
|
|
124
|
+
|
|
125
|
+
| What you see | What it means |
|
|
126
|
+
| --- | --- |
|
|
127
|
+
| **Queued** | Other videos in the batch queue go first. The Calendar's **Batch queue** shows the order. |
|
|
128
|
+
| **Waiting for limits** / "Waiting for Codex limits (resets at 14:00)" | A CLI plan is used up; the run waits and carries on after the reset time shown. |
|
|
129
|
+
| **Waiting to try again** | A rate limit or timeout; it retries at the time shown. |
|
|
130
|
+
| **Waiting for you** | A checkpoint is holding the run. Press **Approve ...**. |
|
|
131
|
+
| A step says **taking longer than usual** | It has run longer than the same step usually takes in your finished runs. It is still going; open **Live** to see whether text or images are still arriving. |
|
|
132
|
+
| **Paused** | Press **Continue the run**. |
|
|
133
|
+
| **Stopped** | The run was interrupted (for example by a restart). Press **Continue the run**. |
|
|
134
|
+
| A step is failed with "interrupted" | Slopify stopped while it ran. Press **Try ... again**. |
|
|
135
|
+
|
|
136
|
+
## Tips
|
|
137
|
+
|
|
138
|
+
- Open the **Live** view on a project to watch text, narration and images arrive; it shows whether anything is still happening.
|
|
139
|
+
- Keep Slopify on `127.0.0.1`. There is no login, so anyone who reaches the port controls the app and its keys.
|
|
140
|
+
|
|
141
|
+
## Related pages
|
|
142
|
+
|
|
143
|
+
- [Recovery and Retries](Recovery-and-Retries)
|
|
144
|
+
- [FAQ](FAQ)
|
|
145
|
+
- [Providers and Keys](Providers-and-Keys)
|
|
146
|
+
- [AI CLIs](AI-CLIs)
|
|
147
|
+
- [Docker](Docker)
|
|
148
|
+
- [Install](Install)
|
|
149
|
+
- [Where Your Files Live](Where-Your-Files-Live)
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Uninstalling and Moving
|
|
2
|
+
|
|
3
|
+
How to take Slopify off a computer, and how to move your projects between a normal install and Docker, or to another computer. Slopify has no uninstall command: removing it means removing the few things listed here. Moving always goes through a backup archive, which carries everything except your provider keys.
|
|
4
|
+
|
|
5
|
+
**Where to find it:** Settings → **Backup & storage** (**Export everything**, **Import a backup**) and a terminal.
|
|
6
|
+
|
|
7
|
+
## Before you remove anything
|
|
8
|
+
|
|
9
|
+
1. Let running projects finish, or pause them.
|
|
10
|
+
2. Open Settings → **Backup & storage** and press **Export everything**. Keep the downloaded `.tar` file somewhere safe. It holds every project with its files and history, your library, templates, schedules, Play drafts, fonts, settings and usage. It does not hold your provider keys; keep those in your password manager.
|
|
11
|
+
3. If you turned on Settings → **General** → **Start Slopify when I log in**, turn it off. That removes the login entry, so nothing tries to start Slopify at your next login.
|
|
12
|
+
|
|
13
|
+
Deleting the folders below can't be undone. Scheduled backups in your `Backups` folder are deleted with it unless you move them first.
|
|
14
|
+
|
|
15
|
+
## Remove a normal install
|
|
16
|
+
|
|
17
|
+
1. Stop Slopify: press `Ctrl+C` in the terminal it runs in (or close its minimised window on Windows).
|
|
18
|
+
2. If you installed it with npm, run `npm uninstall -g @gentbajko/slopify`. If you only used `npx`, there is nothing installed globally; npm's cache holds a copy it manages itself.
|
|
19
|
+
3. Delete Slopify's data folder: `~/.slopify` (on Windows `%USERPROFILE%\.slopify`), or the folder you gave with `--data-dir` / `SLOPIFY_DATA_DIR`. This removes the database, your saved keys, logs, caption models and any versions installed by in-app updates.
|
|
20
|
+
4. Delete your files folder if you don't want your projects any more: `Documents/Slopify` on a new install. Settings → **Backup & storage** → **Your files** shows exactly where it is (check before you uninstall). On an install from before 3.0, the projects are inside the data folder and went with step 3.
|
|
21
|
+
5. If you left the start-at-login switch on, remove the entry by hand: `~/.config/autostart/slopify.desktop` on Linux, `~/Library/LaunchAgents/stream.slopify.app.plist` on macOS, or the `Slopify` value under `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` on Windows (Task Manager → Startup apps shows it).
|
|
22
|
+
|
|
23
|
+
## Remove a Docker install
|
|
24
|
+
|
|
25
|
+
Run these as your normal user on the computer running Docker.
|
|
26
|
+
|
|
27
|
+
1. If you use the host CLI bridge, stop and disable it:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
systemctl --user disable --now slopify-cli-bridge.service
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
2. Stop and remove the container from the folder the installer set up:
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
cd ~/.local/share/slopify/docker/slopify
|
|
37
|
+
docker compose down
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
3. Delete the data volume (database, keys, settings, logs). The installer declares it external, so `docker compose down` never deletes it; you have to do it yourself:
|
|
41
|
+
|
|
42
|
+
```sh
|
|
43
|
+
docker volume rm slopify-data
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
4. Delete any recovery volume left by the last update. `docker volume ls` lists it as `slopify-data-recovery-<id>`; remove it with `docker volume rm`.
|
|
47
|
+
5. Remove the image: `docker image ls ghcr.io/gentbajko/slopify` lists it; remove it with `docker image rm`.
|
|
48
|
+
6. Delete the installer's folders: `~/.local/share/slopify/` (the compose file, `install.json` and the host CLI helper) and, if you used the bridge, its unit file `~/.config/systemd/user/slopify-cli-bridge.service`.
|
|
49
|
+
7. Delete your Projects and Backups folders if you don't want them any more: `Documents/Slopify` on a new install, `~/Slopify/Projects` on an install from before 3.0.
|
|
50
|
+
|
|
51
|
+
If you used a different `SLOPIFY_DOCKER_NAME` or `SLOPIFY_DOCKER_VOLUME`, use those names instead of `slopify` and `slopify-data`.
|
|
52
|
+
|
|
53
|
+
The installer turned on user lingering for the bridge (so your user services run at boot). It leaves that setting as it is when you remove Slopify; change it with `loginctl` only if you know nothing else of yours needs it.
|
|
54
|
+
|
|
55
|
+
## Move from Docker to a normal install
|
|
56
|
+
|
|
57
|
+
1. In the Docker Slopify, let running work finish, then open Settings → **Backup & storage** → **Export everything** and save the `.tar` file.
|
|
58
|
+
2. Stop the Docker install so the port is free: `docker stop slopify` (or start the new one on another port with `--port 7070`).
|
|
59
|
+
3. Start Slopify normally: `npx @gentbajko/slopify@latest`. See [Install](Install).
|
|
60
|
+
4. In the new Slopify, open Settings → **Backup & storage** → **Import a backup** and pick the `.tar` file. Large backups take a while to upload and check.
|
|
61
|
+
5. Read the summary. Projects, library, templates and settings come in; schedules arrive paused.
|
|
62
|
+
6. Enter your provider keys in Settings → **Providers** and check your voices in Settings → **Voices**.
|
|
63
|
+
7. Resume your schedules on the Schedules screen. See [Schedules](Schedules).
|
|
64
|
+
8. Once everything opens fine, remove the Docker install as above.
|
|
65
|
+
|
|
66
|
+
## Move from a normal install to Docker
|
|
67
|
+
|
|
68
|
+
1. In the normal Slopify, let running work finish and use **Export everything**.
|
|
69
|
+
2. Stop it (`Ctrl+C`). If start-at-login is on, turn it off first so it doesn't come back at the next login and take port 6969.
|
|
70
|
+
3. Install Docker: `npx @gentbajko/slopify@latest --docker`. See [Docker](Docker).
|
|
71
|
+
4. Open `http://127.0.0.1:6969`, go to Settings → **Backup & storage** → **Import a backup** and pick the file.
|
|
72
|
+
5. Enter your provider keys, resume schedules, and check that your projects open.
|
|
73
|
+
6. Remove the old install when you are sure.
|
|
74
|
+
|
|
75
|
+
## Move to another computer
|
|
76
|
+
|
|
77
|
+
The same way: **Export everything** on the old computer, install Slopify on the new one, **Import a backup** there, then enter your keys and resume your schedules. If both computers keep running, leave the schedules paused on one of them so they don't both make the same videos.
|
|
78
|
+
|
|
79
|
+
## How an import treats what's already there
|
|
80
|
+
|
|
81
|
+
An import adds and never replaces:
|
|
82
|
+
|
|
83
|
+
| Item | What happens |
|
|
84
|
+
| --- | --- |
|
|
85
|
+
| Projects already on this install | Skipped. |
|
|
86
|
+
| Prompts, templates and others whose name is taken | Added as "(imported)". |
|
|
87
|
+
| Schedules | Arrive paused, so two installs never run them both. |
|
|
88
|
+
| Settings | Filled in where this install has none; this install's own are kept. |
|
|
89
|
+
| Usage history | Added once; importing the same backup again doesn't count it twice. |
|
|
90
|
+
| Provider keys | Never in a backup. Enter them again. |
|
|
91
|
+
|
|
92
|
+
Running projects must finish or pause before an import. See [Backups](Backups) for what an archive carries in full.
|
|
93
|
+
|
|
94
|
+
## Move your files without moving the install
|
|
95
|
+
|
|
96
|
+
To put your project files on another disk or in Documents while keeping the same install, you don't need to export: use **Move to Documents/Slopify** or **Choose another folder** in Settings → **Backup & storage**, or `--projects-dir` for Docker. See [Where Your Files Live](Where-Your-Files-Live).
|
|
97
|
+
|
|
98
|
+
## Tips
|
|
99
|
+
|
|
100
|
+
- An export can be many gigabytes, because it holds every video. Check you have the space, and keep Slopify running until the browser's download finishes.
|
|
101
|
+
- **Keep outputs only** (Settings → Backup & storage → Disk space) makes finished projects smaller before you export, at the cost of remaking working files if you edit them later.
|
|
102
|
+
- Export and import is the documented way to move between installs. Copying a data folder or a Docker volume by hand is not covered here.
|
|
103
|
+
|
|
104
|
+
## Related pages
|
|
105
|
+
|
|
106
|
+
- [Backups](Backups)
|
|
107
|
+
- [Where Your Files Live](Where-Your-Files-Live)
|
|
108
|
+
- [Install](Install)
|
|
109
|
+
- [Docker](Docker)
|
|
110
|
+
- [Start at Login](Start-at-Login)
|
|
111
|
+
- [Providers and Keys](Providers-and-Keys)
|
|
112
|
+
- [Schedules](Schedules)
|
|
113
|
+
- [Trash](Trash)
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Updating and Patch Notes
|
|
2
|
+
|
|
3
|
+
Slopify checks for new versions by itself and updates with one click or one command. An update waits for running work, keeps a copy to go back to, and puts the previous version back if the new one doesn't start. After an update, the new version's patch notes open once.
|
|
4
|
+
|
|
5
|
+
**Where to find it:** the circular-arrows button at the foot of the sidebar. Patch notes are in Settings → **Patch notes**; Settings → **About** has **What's new in this version**.
|
|
6
|
+
|
|
7
|
+
## The updates button
|
|
8
|
+
|
|
9
|
+
The circular-arrows button at the foot of the sidebar (in the top bar on a phone) shows the update state. Hover it (or read it with a screen reader) to see `Your version: … · Newest: …` and what a click does. The version you are running is also shown beside the Slopify logo at the top of the sidebar.
|
|
10
|
+
|
|
11
|
+
| What you see | Meaning | Click does |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| No dot | You have the newest version, as of the last check. | Checks again now. |
|
|
14
|
+
| A dot on the button | An update is ready. | Downloads and installs it. |
|
|
15
|
+
| Spinning | Checking, or updating. | Nothing; wait. |
|
|
16
|
+
| Label says **Update to X will install when 'Title' finishes.** | The update is waiting for running work. | Cancels the waiting update. |
|
|
17
|
+
| Amber | The last check or update had a problem. The label says what. | Checks again. |
|
|
18
|
+
|
|
19
|
+
Slopify checks every 15 minutes and whenever you come back to the tab.
|
|
20
|
+
|
|
21
|
+
## Update from the app
|
|
22
|
+
|
|
23
|
+
1. Click the circular-arrows button when it shows a dot.
|
|
24
|
+
2. If a video is being made, the update waits. A message says **Update to X will install when 'Title' finishes.** Click the button again to cancel the waiting update; nothing has changed yet.
|
|
25
|
+
3. When nothing is running, Slopify installs the new version, stops, and starts the new one.
|
|
26
|
+
4. The page reconnects by itself. If another open tab was loaded before the update, it shows **Slopify was updated** with **Reload**.
|
|
27
|
+
|
|
28
|
+
## Update from the terminal
|
|
29
|
+
|
|
30
|
+
Run:
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
npx @gentbajko/slopify@latest update
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
It asks the running Slopify to update itself, exactly as the button does, and follows it until it is done:
|
|
37
|
+
|
|
38
|
+
- `Slopify X is already the newest version.` when there is nothing to do.
|
|
39
|
+
- `Slopify is generating right now. Waiting for running work to finish before updating (press Ctrl+C to cancel; nothing has been changed yet)...` while work runs.
|
|
40
|
+
- `Updating Slopify X to Y...` then `Slopify Y is running at http://127.0.0.1:6969`.
|
|
41
|
+
|
|
42
|
+
Slopify has to be running for this. If it isn't, the command says so: start it and run `update` again, adding `--port <number>` if it runs on another port. To just start the newest version, run `npx @gentbajko/slopify@latest`.
|
|
43
|
+
|
|
44
|
+
If you have a Docker install on your account, the same command updates that instead. See [Docker](Docker#update-the-docker-install).
|
|
45
|
+
|
|
46
|
+
## What an update does
|
|
47
|
+
|
|
48
|
+
For a normal (non-Docker) install:
|
|
49
|
+
|
|
50
|
+
1. **Waits** until no stage or edit is running.
|
|
51
|
+
2. **Installs** the new version with npm into `<data folder>/updates/<version>`. If this fails, the running Slopify is left alone.
|
|
52
|
+
3. **Backs up the database** to `<data folder>/updates/before-<version>-….db`.
|
|
53
|
+
4. **Starts the new version** and waits up to 60 seconds for it to answer.
|
|
54
|
+
5. **On success**, removes old update files. It keeps the new version, the previous version and the latest database backup.
|
|
55
|
+
6. **If the new version doesn't start**, it stops it, copies the database back from the backup and restarts the previous version. The reason is written to `logs/updates.log` in the data folder.
|
|
56
|
+
|
|
57
|
+
Later starts of Slopify, including an older `npx` or a global `slopify` command, hand over to the newest version installed in the data folder. That is how an in-app update sticks for both npx and npm installs.
|
|
58
|
+
|
|
59
|
+
For Docker, the installer does the update from the host with a recovery copy of the whole data volume. See [Docker](Docker#update-the-docker-install).
|
|
60
|
+
|
|
61
|
+
## When the button can't update
|
|
62
|
+
|
|
63
|
+
The button's label says why:
|
|
64
|
+
|
|
65
|
+
| Message | What to do |
|
|
66
|
+
| --- | --- |
|
|
67
|
+
| Slopify in Docker is updated from the terminal: `npx @gentbajko/slopify@latest update`. | Run that on the computer running Docker. |
|
|
68
|
+
| Run Slopify from its installed package to use in-app updates. | You are running from source or a copy without its package files. Start it with `npx @gentbajko/slopify@latest`. |
|
|
69
|
+
| npm was not found, so in-app updates are off. | Install Node.js with npm from nodejs.org, or update from the terminal with `npx @gentbajko/slopify@latest`. |
|
|
70
|
+
| An update is already in progress. | Wait for it to finish. |
|
|
71
|
+
| An update is already waiting for running work to finish. | Wait, or click the button to cancel it. |
|
|
72
|
+
|
|
73
|
+
If an update didn't finish, Slopify keeps or puts back the previous version. `logs/updates.log` in the data folder says why.
|
|
74
|
+
|
|
75
|
+
## After an update
|
|
76
|
+
|
|
77
|
+
### Patch notes open once
|
|
78
|
+
|
|
79
|
+
After an update, the new version's notes open by themselves once, in a drawer titled **What's new in X**:
|
|
80
|
+
|
|
81
|
+
- **See all patch notes** opens Settings → **Patch notes**.
|
|
82
|
+
- **Close notes** (or the close button) records them as seen. They don't open again for that version.
|
|
83
|
+
|
|
84
|
+
They open only for a version that has notes of its own, and never on a fresh install. They wait for other windows first: the usage stats notice, the tutorial and the What's new tour.
|
|
85
|
+
|
|
86
|
+
### What's new tour on a major update
|
|
87
|
+
|
|
88
|
+
After an update to a new major version (for example 2.x to 3.0), the first launch opens a short **What's new in 3.0** tour instead: a drawer on the right with one step per feature and an **Open …** button to its screen. The drawer doesn't block the page, so you can follow a link while it stays open.
|
|
89
|
+
|
|
90
|
+
- **Back** and **Next** move between steps; **Finish tour** on the last one.
|
|
91
|
+
- **Close tour**, the close button or `Esc` record it as seen. It doesn't come back until the next major version.
|
|
92
|
+
- The last step has **Read the full patch notes**.
|
|
93
|
+
- Closing the tour also counts as having seen that version's patch notes.
|
|
94
|
+
|
|
95
|
+
The 3.0 tour covers Home, Play's one path, Automatic reviews, Channels and cast, Episodes that remember (episode memory and your existing videos), The calendar, What a run cost, YouTube Studio prep, Multiple voices, Long videos stay watchable (more images per hour and ambient sound), Other languages and A trash bin. A fresh install never sees it.
|
|
96
|
+
|
|
97
|
+
## Read the patch notes
|
|
98
|
+
|
|
99
|
+
1. Open Settings → **Patch notes**, or press `Ctrl+K` and choose **Show patch notes**.
|
|
100
|
+
2. The newest notes are open, with contents, search and copy.
|
|
101
|
+
3. Older versions are folded under **Earlier versions**. Press **Read** on one to open it. Your browser's Back button returns to the one before.
|
|
102
|
+
|
|
103
|
+
The notes ship with the app, so they work offline.
|
|
104
|
+
|
|
105
|
+
To open the notes for the version you are running, go to Settings → **About** and press **What's new in this version**. When this version has no notes of its own, it opens the newest ones.
|
|
106
|
+
|
|
107
|
+
## Tips
|
|
108
|
+
|
|
109
|
+
- Keep Slopify running overnight? Updates wait for running work, so you can press the button at any time and it installs when the current video is done.
|
|
110
|
+
- Settings → **About** has the same explanation of the updates button, and links to GitHub, Patreon and Buy Me a Coffee.
|
|
111
|
+
- Updating doesn't touch your projects folder. For extra safety before a big update, use **Export everything** or turn on [Backups](Backups).
|
|
112
|
+
|
|
113
|
+
## Related pages
|
|
114
|
+
|
|
115
|
+
- [Install](Install)
|
|
116
|
+
- [Docker](Docker)
|
|
117
|
+
- [Start at Login](Start-at-Login)
|
|
118
|
+
- [Backups](Backups)
|
|
119
|
+
- [Troubleshooting](Troubleshooting)
|
|
120
|
+
- [Settings Reference](Settings-Reference)
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Video Editing
|
|
2
|
+
|
|
3
|
+
These settings decide how the finished video looks and sounds: how long each image stays, where the cuts fall, how images move and hand over, the Look, chapter cards, animated images, ambient sound and captions. All of it except animated images is done on your computer with ffmpeg, so it costs render time, not API calls.
|
|
4
|
+
|
|
5
|
+
**Where to find it:** a project → **Edit settings** → **Inputs** (**Timing**, **Cuts and look**, **Ambient sound**) and **Subtitles**. On a new run the same controls are on Play → **Video and style** (see [Play Video and Style](Play-Video-and-Style)).
|
|
6
|
+
|
|
7
|
+
## How the video is put together
|
|
8
|
+
|
|
9
|
+
Slopify plans the whole video as an edit list: which image or clip plays, for how long, how it moves, how it hands over to the next, and the effects on top. The renderer reads only that list, so the same project renders the same video every time. The video is always exactly as long as its narration plus the silence you set.
|
|
10
|
+
|
|
11
|
+
## Timing
|
|
12
|
+
|
|
13
|
+
| Option | What it does | Default / range |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| **Silence gap (seconds)** | Quiet between the intro and the narration, and between the narration and the outro. Only matters when an intro or outro is set. | Settings value (3 s unless changed); 0 to 30 |
|
|
16
|
+
| **Silence at start and end (seconds)** | Quiet before the narration starts and after it ends. | 2; 0 to 30 |
|
|
17
|
+
| **Seconds per image** | How long each image stays on screen. With cuts that follow the narration, it is the target and a cut waits for a sentence end. When images run out they start again. | 15; 1 to 600 whole seconds |
|
|
18
|
+
| **Zoom (%)** | How far each image zooms in or out over its time on screen. 0 keeps zoom motions still. | 22.5; 0 to 50 in 0.5 steps |
|
|
19
|
+
| **Motion** | How each image moves: **Zoom in and out**, **Pan across**, **Mix of both** (by turns) or **Still**. | Zoom in and out |
|
|
20
|
+
|
|
21
|
+
Motion takes turns so a long video stays watchable. Zoom goes in, out, in. Pan goes across one way, back, down, back up. Mix of both alternates zoom and pan, each keeping its own order. A pan always travels at least 10% of the frame, so pans still move with Zoom at 0.
|
|
22
|
+
|
|
23
|
+
## Cuts
|
|
24
|
+
|
|
25
|
+
**Cuts** decides where one image ends and the next begins.
|
|
26
|
+
|
|
27
|
+
| Option | What it does |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| **Every N seconds** | Holds each image for **Seconds per image**. |
|
|
30
|
+
| **Follow the narration** | Cuts in the pause after a sentence, as close to Seconds per image as the sentences allow (never under 40% of it), and starts a new image at every chapter. |
|
|
31
|
+
|
|
32
|
+
New projects default to **Follow the narration**. It needs word timing, so it works in English and the languages that have it; in other languages the picker is fixed to Every N seconds and a note says why. See [Other Languages](Other-Languages).
|
|
33
|
+
|
|
34
|
+
## The Look
|
|
35
|
+
|
|
36
|
+
**Look** is a folding row under Cuts. Its summary line lists what is on, or "Plain cuts, no effects".
|
|
37
|
+
|
|
38
|
+
| Option | What it does | Default / choices |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| **Transition** | How one image hands over to the next: **Cut**, **Crossfade**, **Fade through black**, **Slide** or **Wipe**. The change is centred on the cut, so the video stays exactly as long as its narration. | Cut |
|
|
41
|
+
| **Transition length** | How long the transition takes (ignored for Cut). | 0.6 s; 0.2, 0.4, 0.6, 0.8, 1, 1.2, 1.5 or 2 s |
|
|
42
|
+
| **Colour grade** | A colour treatment over the whole video: **Warm fantasy**, **Cold**, **Desaturated** or **Sepia**. | None |
|
|
43
|
+
| **Vignette** | Darkens the corners to draw the eye to the middle: **Subtle** or **Strong**. | Off |
|
|
44
|
+
| **Film grain** | Moving film grain over the whole picture: **Subtle** or **Strong**. | Off |
|
|
45
|
+
| **Atmosphere** | An overlay Slopify draws itself: **Embers** (rising), **Dust** (drifting) or **Fog** (low, along the bottom). No footage is downloaded. | None |
|
|
46
|
+
| **Chapter cards** | Shows each chapter's title in the middle of the picture for 2.5 seconds as the chapter starts, in the caption font. Chapters come from the YouTube description when that step runs, otherwise from the article's headings. Needs narration. | Off |
|
|
47
|
+
| **Animate images** | Turns some images into 5-second moving clips with an image-to-video model on your image provider (fal.ai or Replicate). **Chapter openers** animates the first image of each chapter (needs narration); **Every Nth image** animates every 2nd to 10th image (**Animate every how many images**). Pick the model in **Image-to-video model**. | Off |
|
|
48
|
+
|
|
49
|
+
Every Look option except **Animate images** is applied while the video renders, with no API cost. Each animated clip is one paid call, shown in the estimate. An image that cannot be animated stays still, and the Video section lists it under **Render notes**.
|
|
50
|
+
|
|
51
|
+
### Set up the Look
|
|
52
|
+
|
|
53
|
+
1. Open the project → **Edit settings** → **Inputs**.
|
|
54
|
+
2. Under **Cuts and look**, click **Look** to open it.
|
|
55
|
+
3. Pick a transition, grade, vignette, grain, atmosphere, chapter cards or animation.
|
|
56
|
+
4. Press **Save changes**.
|
|
57
|
+
5. Press the next action, **Remake the outdated video**, or review it in **Choose what to remake**.
|
|
58
|
+
|
|
59
|
+
Changing the Look outdates the video; narration and images are kept.
|
|
60
|
+
|
|
61
|
+
## Video clips in place of images
|
|
62
|
+
|
|
63
|
+
In **Edit project → Images**, **Add a video clip** puts your own clip into the image order. It plays muted for as long as an image would be shown: trimmed, slowed (to half speed at most) or looped to fit. See [Editing a Project](Editing-a-Project#edit-images).
|
|
64
|
+
|
|
65
|
+
If the clips you uploaded are real filmed footage, turn on **Real footage** in Prepare upload so YouTube's AI-use answer is right. See [Publishing to YouTube](Publishing-to-YouTube).
|
|
66
|
+
|
|
67
|
+
## Ambient sound
|
|
68
|
+
|
|
69
|
+
A quiet bed under the whole narration of the long video. It dips while the narrator speaks. Costs no API calls. Shorts never get it. Changing it remakes only the video.
|
|
70
|
+
|
|
71
|
+
**Where to find it:** a project → **Edit settings** → **Inputs** → **Ambient sound** (shown when the project has narration and video).
|
|
72
|
+
|
|
73
|
+
| Option | What it does | Default / range |
|
|
74
|
+
| --- | --- | --- |
|
|
75
|
+
| **Ambient sound** | **Rain**, **Fireplace** or **Wind**, made on your computer, or **None**. **My own file** stays offered while the project has an uploaded bed; a new file is chosen on Play. | None, or the channel's bed |
|
|
76
|
+
| **Level (dB)** | How loud it plays under the voice, from -40 (barely there) to -6 (close to the voice). Whole numbers only. | -18 |
|
|
77
|
+
| **Fade in (seconds)** | How long it takes to rise from silence at the start. | 3; 0 to 30 in 0.5 steps |
|
|
78
|
+
| **Tail after the narration (seconds)** | How long it keeps playing, fading out, after the narration ends. A tail longer than the silence at the end makes the video that much longer. | 6; 0 to 30 in 0.5 steps |
|
|
79
|
+
|
|
80
|
+
With **Level the volume** on, the bed is mixed and ducked first, then the whole mix is mastered. See [Editing a Project](Editing-a-Project#pauses-and-volume).
|
|
81
|
+
|
|
82
|
+
## Subtitles
|
|
83
|
+
|
|
84
|
+
**Where to find it:** a project → **Edit settings** → **Subtitles**.
|
|
85
|
+
|
|
86
|
+
| Option | What it does | Default / range |
|
|
87
|
+
| --- | --- | --- |
|
|
88
|
+
| **Subtitles** | **Off** makes none. **Subtitle files (.srt + .vtt)** gives you files to upload beside the video. **Burn into video + files** draws the captions into the picture and also makes the files; it needs Video on. | Off |
|
|
89
|
+
| **Subtitle font** | The typeface of burned-in captions and chapter cards. Pick a bundled font (**Default font · bundled**) or upload one with **Upload font (.ttf or .otf)**; uploaded fonts stay available to every project. | The bundled font |
|
|
90
|
+
| **Subtitle font size** | How big burned-in captions are. Larger is easier to read on phones but covers more of the picture. | 48; 16 to 120 |
|
|
91
|
+
| **Subtitle position** | Where burned-in captions sit: **Top**, **Upper-middle**, **Center**, **Lower-middle** or **Bottom**. Move them up when pictures have detail near the bottom. | Bottom |
|
|
92
|
+
|
|
93
|
+
Captions are timed from your narration on your computer, with no paid API. The first use downloads a speech model of about 95 MB. Subtitle files carry no font, size or position, because players style them. Changing the font, size or position remakes only the video.
|
|
94
|
+
|
|
95
|
+
Subtitles need narration: with Audio off the section says "Turn Audio on to add subtitles." With Video off (an audio export), only subtitle files are offered.
|
|
96
|
+
|
|
97
|
+
To fix a misheard word or move a caption, edit the captions themselves: see [Editing a Project](Editing-a-Project#edit-captions).
|
|
98
|
+
|
|
99
|
+
## Style preview
|
|
100
|
+
|
|
101
|
+
**Style preview** (under Subtitles in Edit project, and in Play's right rail) renders six seconds of video with the real renderer, at a small size: your format, captions, Look, transition, motion and a chapter card when chapter cards are on.
|
|
102
|
+
|
|
103
|
+
- It is drawn on the project's establishing image or a cast picture when there is one (the line under it says "Drawn on ..."), otherwise on three plain stills.
|
|
104
|
+
- It renders again by itself a moment after you change a setting. **Render again** forces a fresh one.
|
|
105
|
+
- Captions show in the preview only when they are burned in.
|
|
106
|
+
- The sound is silence. It costs no API calls, only a few seconds of your computer's time.
|
|
107
|
+
|
|
108
|
+
If it says "Fix the caption settings to render the preview", correct the subtitle fields first.
|
|
109
|
+
|
|
110
|
+
## What a change remakes
|
|
111
|
+
|
|
112
|
+
| You change | What is made again |
|
|
113
|
+
| --- | --- |
|
|
114
|
+
| Seconds per image, zoom, motion, cuts, the Look (except Animate images), subtitles style, ambient sound | The video only |
|
|
115
|
+
| Animate images | The animated clips (paid) and the video |
|
|
116
|
+
| Subtitle mode | Subtitle files and the video |
|
|
117
|
+
| Caption text or timing | Subtitle files and the video |
|
|
118
|
+
| Pauses between sentences or paragraphs | The narration join and timing, captions, the video, and (when on) the YouTube description and the shorts' pick |
|
|
119
|
+
|
|
120
|
+
The rebuild review lists exactly what will be made before anything runs. See [Editing a Project](Editing-a-Project#choose-what-to-remake).
|
|
121
|
+
|
|
122
|
+
## Tips
|
|
123
|
+
|
|
124
|
+
- Try a Look on the style preview first; it costs nothing.
|
|
125
|
+
- A crossfade longer than about a second eats into short shots. Keep transitions short when Seconds per image is low.
|
|
126
|
+
- Captions burned into the picture cannot be turned off by viewers. Subtitle files let YouTube viewers switch them.
|
|
127
|
+
|
|
128
|
+
## Related pages
|
|
129
|
+
|
|
130
|
+
- [Play Video and Style](Play-Video-and-Style)
|
|
131
|
+
- [Editing a Project](Editing-a-Project)
|
|
132
|
+
- [Project Page](Project-Page)
|
|
133
|
+
- [Shorts](Shorts)
|
|
134
|
+
- [Channels](Channels)
|
|
135
|
+
- [Other Languages](Other-Languages)
|