@gentbajko/slopify 3.0.1 → 3.0.3

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.
@@ -53,7 +53,9 @@ export function speechWords(text, observed = "", aliases = [], formsOf = wordFor
53
53
  }
54
54
  if (words.length === 0)
55
55
  throw new Error(empty);
56
- return words.map(({ text: shown, spoken, forms }) => forms.length > 1 ? { text: shown, spoken, forms } : { text: shown, spoken });
56
+ // An aliased word keeps its forms even when there is one: `respoken` would otherwise read
57
+ // the written text again without the aliases, and "&" alone says nothing.
58
+ return words.map(({ text: shown, spoken, forms, aliased }) => forms.length > 1 || aliased ? { text: shown, spoken, forms } : { text: shown, spoken });
57
59
  }
58
60
  // The form of a word the recording seems to say, else its default.
59
61
  export function respoken(word, observed, formsOf = wordForms) {
@@ -0,0 +1,20 @@
1
+ # Slopify 3.0.2
2
+
3
+ Released 28 September 2026.
4
+
5
+ 3.0.2 fixes a video that stopped at subtitle timing when the text had a lone "&", and makes regenerating images plain: one button remakes them all, and a marked image says so.
6
+
7
+ ## Fixes
8
+
9
+ - A standalone "&" said as "and" through a pronunciation alias no longer stops the video. Subtitle timing failed on it with "Local subtitles currently require an English transcript with spoken words." A project that stopped there carries on with **Try the video again**.
10
+ - Deleting every image and saving says what to do: press Discard changes to get them back, then Regenerate all, or set Images and Video to Off on Inputs. The list above the settings no longer starts each message with an internal field name.
11
+
12
+ ## Regenerating images
13
+
14
+ - The Images stage has **Regenerate all**, beside Download all. It opens the settings with every slideshow image marked to be made again, ready to save.
15
+ - In the settings, **Regenerate image N** now shows that it worked: the image says it is made again after you press Save changes, and the button becomes **Keep image N** to take the mark off.
16
+ - Marked and outdated images are made again when you remake them: press the Remake button on the project page once the run has nothing else waiting, or Ctrl+K → Remake everything outdated.
17
+
18
+ ## Upgrading from 3.0.1
19
+
20
+ - **Nothing becomes outdated.** Projects keep every file and fingerprint.
@@ -0,0 +1,15 @@
1
+ # Slopify 3.0.3
2
+
3
+ Released 28 September 2026.
4
+
5
+ 3.0.3 makes Regenerate do what it says: the new picture is made at once, without saving settings or remaking anything else first.
6
+
7
+ ## Regenerating pictures
8
+
9
+ - **Regenerate** on an image or thumbnail, and **Regenerate all** on the Images stage, ask once with the cost and then make the new pictures straight away. There is no Save changes step and no separate remake.
10
+ - The video keeps the old pictures, marked outdated, until you remake it, so you can regenerate several and render the video once.
11
+ - If the settings have unsaved changes of their own, the pictures are marked there instead, to go with them when you save.
12
+
13
+ ## Upgrading from 3.0.2
14
+
15
+ - **Nothing becomes outdated.** Projects keep every file and fingerprint.
@@ -1,4 +1,16 @@
1
1
  [
2
+ {
3
+ "id": "3.0.3",
4
+ "title": "Slopify 3.0.3",
5
+ "version": "3.0.3",
6
+ "date": "2026-09-28"
7
+ },
8
+ {
9
+ "id": "3.0.2",
10
+ "title": "Slopify 3.0.2",
11
+ "version": "3.0.2",
12
+ "date": "2026-09-28"
13
+ },
2
14
  {
3
15
  "id": "3.0.1",
4
16
  "title": "Slopify 3.0.1",
@@ -194,7 +194,7 @@ export function validateRevisionEdit(config, content) {
194
194
  if (config.sources.images !== "off" && content.imageOrder.length === 0)
195
195
  fields.push({
196
196
  field: "content.imageOrder",
197
- message: "Keep at least one image, or turn Images and Video off.",
197
+ message: "Every image is deleted, so the video has nothing to show. Press Discard changes to get them back, then press Regenerate all on the Images stage to make them again. To make the project without pictures, set Images and Video to Off on Inputs instead.",
198
198
  });
199
199
  if (config.sources.images === "off" && config.sources.video !== "off")
200
200
  fields.push({ field: "sources.video", message: "Turn Video off when Images is off." });
@@ -68,14 +68,14 @@ When the project was narrated as one whole request (Chunking set to the whole ar
68
68
  | **Replace image N** | Uses your own picture in its place. |
69
69
  | **Move image N earlier** / **later** | Changes the order. |
70
70
  | **Delete image N** | Removes it. Deleting the last image also turns Images and Video off. |
71
- | **Regenerate image N after review** | Draws the image again from its prompt, one paid image call, with a new result. The current image stays until the new one is made. |
71
+ | **Regenerate image N** | Marks the image to be drawn again from its prompt, one paid image call, with a new result, when you save. The image says it is marked, and **Keep image N** takes the mark off. The current image stays until the new one is made. |
72
72
  | **Add generated image** | Adds a new image with an empty prompt at the end. |
73
73
  | **Add provided image** | Adds your own picture at the end. |
74
74
  | **Add a video clip** | Adds a clip (MP4, MOV, M4V, WebM or MKV). It plays muted in an image's place, trimmed, slowed (to half speed at most) or looped to fit. |
75
75
 
76
76
  A project holds at most 60 images, or 240 with **More images for long videos** on.
77
77
 
78
- The **Regenerate** button on an image in the project's Images section does the same thing: it opens Edit project with the change applied to the draft, and saving marks the image outdated.
78
+ The **Regenerate** button on an image in the project's Images section, and **Regenerate all** beside Download all, do it without the settings: they ask once, then make the new images straight away. The video keeps the old images, marked outdated, until you remake it, so you can regenerate several images and render the video once. If the settings have unsaved changes of their own, the images are marked there instead, to go with them when you save.
79
79
 
80
80
  ### Image prompts and More images for long videos
81
81