Document the system-RAM / Windows pagefile requirement (three users crashed on 64GB with no guidance anywhere)
Browse files- INSTRUCTIONS.md +230 -189
INSTRUCTIONS.md
CHANGED
|
@@ -1,189 +1,230 @@
|
|
| 1 |
-
# JoyAI-Echo Multishot β Full Instructions
|
| 2 |
-
|
| 3 |
-
This is the complete, step-by-step guide. If you only read one file, read
|
| 4 |
-
this one. It covers install, your first render, where the reference image
|
| 5 |
-
goes, LoRAs, performance settings, and every common failure with its fix.
|
| 6 |
-
|
| 7 |
-
---
|
| 8 |
-
|
| 9 |
-
## 1. What this workflow actually is (read this first β it prevents confusion)
|
| 10 |
-
|
| 11 |
-
This is a **multi-shot text-to-video** pipeline with **joint audio** (voice and
|
| 12 |
-
picture generated together, not dubbed). You write one or more SHOTS; each shot
|
| 13 |
-
renders separately, and a **cross-shot memory bank** carries your character's
|
| 14 |
-
face, wardrobe, and voice from shot to shot. The thing that makes it work is
|
| 15 |
-
simple but strict:
|
| 16 |
-
|
| 17 |
-
> **Repeat your character's description sentence WORD-FOR-WORD IDENTICAL in
|
| 18 |
-
> every shot.** The memory bank keys on it. Reword it even slightly and the
|
| 19 |
-
> face drifts.
|
| 20 |
-
|
| 21 |
-
It is **not** a classic image-to-video workflow. You do not have to provide an
|
| 22 |
-
image at all β text alone holds identity. You *can* add a reference image to
|
| 23 |
-
lock the face harder (section 6), but it works differently from normal i2v:
|
| 24 |
-
it pre-seeds the memory bank rather than becoming frame one.
|
| 25 |
-
|
| 26 |
-
---
|
| 27 |
-
|
| 28 |
-
## 2. What you need
|
| 29 |
-
|
| 30 |
-
| thing | where it goes | notes |
|
| 31 |
-
|---|---|---|
|
| 32 |
-
| RealRebelAI's ComfyUI_JoyAI_Echo_GGUF_Nodes | `ComfyUI/custom_nodes/` | the BASE pack β install it first |
|
| 33 |
-
| This patch (the folder in this zip) | copied OVER the base pack | replace files when asked |
|
| 34 |
-
| A model build (see table below) | `ComfyUI/models/diffusion_models/` (safetensors) or `models/unet/` (GGUF) | one of: bf16, fp8, Q8_0, Q5_0 |
|
| 35 |
-
| A FULL checkpoint (bf16 or fp8) | `ComfyUI/models/diffusion_models/` | **required even when using a GGUF** β the GGUF is the transformer only; the VAEs and vocoder load from the full checkpoint |
|
| 36 |
-
| Gemma-3-12B-it text encoder | `ComfyUI/models/text_encoders/` | use TRUE BASE Gemma β single-file safetensors or the clean Q8_0 encoder GGUF. **Do not** use the circulating "joyecho" Gemma GGUF: it is a different model and produces duplicated people |
|
| 37 |
-
| ComfyUI-Easy-Use + ComfyUI-Custom-Scripts | `custom_nodes/` | two helper packs used by two convenience nodes; or delete those two nodes |
|
| 38 |
-
|
| 39 |
-
Which model build:
|
| 40 |
-
|
| 41 |
-
| you have | use |
|
| 42 |
-
|---|---|
|
| 43 |
-
| RTX 40/50-series, 24 GB+ | fp8 (fast) or Q8_0 GGUF (highest quant fidelity) |
|
| 44 |
-
| RTX 30-series or older, 24 GB | Q8_0 GGUF |
|
| 45 |
-
| 16 GB card | Q5_0 GGUF |
|
| 46 |
-
| 32 GB+ and patience | bf16 |
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
##
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# JoyAI-Echo Multishot β Full Instructions
|
| 2 |
+
|
| 3 |
+
This is the complete, step-by-step guide. If you only read one file, read
|
| 4 |
+
this one. It covers install, your first render, where the reference image
|
| 5 |
+
goes, LoRAs, performance settings, and every common failure with its fix.
|
| 6 |
+
|
| 7 |
+
---
|
| 8 |
+
|
| 9 |
+
## 1. What this workflow actually is (read this first β it prevents confusion)
|
| 10 |
+
|
| 11 |
+
This is a **multi-shot text-to-video** pipeline with **joint audio** (voice and
|
| 12 |
+
picture generated together, not dubbed). You write one or more SHOTS; each shot
|
| 13 |
+
renders separately, and a **cross-shot memory bank** carries your character's
|
| 14 |
+
face, wardrobe, and voice from shot to shot. The thing that makes it work is
|
| 15 |
+
simple but strict:
|
| 16 |
+
|
| 17 |
+
> **Repeat your character's description sentence WORD-FOR-WORD IDENTICAL in
|
| 18 |
+
> every shot.** The memory bank keys on it. Reword it even slightly and the
|
| 19 |
+
> face drifts.
|
| 20 |
+
|
| 21 |
+
It is **not** a classic image-to-video workflow. You do not have to provide an
|
| 22 |
+
image at all β text alone holds identity. You *can* add a reference image to
|
| 23 |
+
lock the face harder (section 6), but it works differently from normal i2v:
|
| 24 |
+
it pre-seeds the memory bank rather than becoming frame one.
|
| 25 |
+
|
| 26 |
+
---
|
| 27 |
+
|
| 28 |
+
## 2. What you need
|
| 29 |
+
|
| 30 |
+
| thing | where it goes | notes |
|
| 31 |
+
|---|---|---|
|
| 32 |
+
| RealRebelAI's ComfyUI_JoyAI_Echo_GGUF_Nodes | `ComfyUI/custom_nodes/` | the BASE pack β install it first |
|
| 33 |
+
| This patch (the folder in this zip) | copied OVER the base pack | replace files when asked |
|
| 34 |
+
| A model build (see table below) | `ComfyUI/models/diffusion_models/` (safetensors) or `models/unet/` (GGUF) | one of: bf16, fp8, Q8_0, Q5_0 |
|
| 35 |
+
| A FULL checkpoint (bf16 or fp8) | `ComfyUI/models/diffusion_models/` | **required even when using a GGUF** β the GGUF is the transformer only; the VAEs and vocoder load from the full checkpoint |
|
| 36 |
+
| Gemma-3-12B-it text encoder | `ComfyUI/models/text_encoders/` | use TRUE BASE Gemma β single-file safetensors or the clean Q8_0 encoder GGUF. **Do not** use the circulating "joyecho" Gemma GGUF: it is a different model and produces duplicated people |
|
| 37 |
+
| ComfyUI-Easy-Use + ComfyUI-Custom-Scripts | `custom_nodes/` | two helper packs used by two convenience nodes; or delete those two nodes |
|
| 38 |
+
|
| 39 |
+
Which model build:
|
| 40 |
+
|
| 41 |
+
| you have | use |
|
| 42 |
+
|---|---|
|
| 43 |
+
| RTX 40/50-series, 24 GB+ | fp8 (fast) or Q8_0 GGUF (highest quant fidelity) |
|
| 44 |
+
| RTX 30-series or older, 24 GB | Q8_0 GGUF |
|
| 45 |
+
| 16 GB card | Q5_0 GGUF |
|
| 46 |
+
| 32 GB+ and patience | bf16 |
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
### System RAM and the Windows pagefile - READ THIS IF COMFYUI DIES WHILE LOADING
|
| 50 |
+
|
| 51 |
+
**A 24-32 GB GPU is not the binding constraint. System RAM is.** Loading a model
|
| 52 |
+
here materializes the whole checkpoint in system RAM as owned copies (not
|
| 53 |
+
memory-mapped), and the quantize / LoRA-fuse pass stacks more on top. The bf16
|
| 54 |
+
build is 46 GB on disk, so peak system usage runs well past what 64 GB of RAM
|
| 55 |
+
alone can provide.
|
| 56 |
+
|
| 57 |
+
**Symptoms** (all the same root cause):
|
| 58 |
+
- RAM climbs to ~100% while **VRAM stays almost idle**, then ComfyUI exits
|
| 59 |
+
- `Windows fatal exception: access violation` with a stack ending in
|
| 60 |
+
`sft_loader.py` / `create_vae_wrappers`
|
| 61 |
+
- the whole machine hangs or reboots during the first load
|
| 62 |
+
|
| 63 |
+
There is no catchable Python error for this - the process is killed by the OS.
|
| 64 |
+
|
| 65 |
+
**Fixes, cheapest first:**
|
| 66 |
+
|
| 67 |
+
1. **Raise the Windows pagefile. This is the usual fix and costs only disk.**
|
| 68 |
+
Settings > System > About > Advanced system settings > Performance Settings >
|
| 69 |
+
Advanced > Virtual memory > Change. Untick "Automatically manage", select an
|
| 70 |
+
SSD, choose Custom size, and set **65536-131072 MB (64-128 GB)**. Reboot.
|
| 71 |
+
The peak is brief; with a large pagefile it spills to disk instead of dying.
|
| 72 |
+
Machines with 64 GB RAM and a default pagefile are the ones that crash.
|
| 73 |
+
2. **Raise `resident_blocks` on the Generate node.** With `sequential_offload`
|
| 74 |
+
on, blocks that are NOT resident live in system RAM. `resident_blocks=1`
|
| 75 |
+
means 47 of 48 blocks sit in RAM while your VRAM goes unused. Push it up
|
| 76 |
+
until VRAM is nearly full - roughly **24-30 on a 32 GB card, 12 on 24 GB**.
|
| 77 |
+
This moves load off RAM and onto the card you bought.
|
| 78 |
+
3. **Use a GGUF** in `model_file` - GGUF weights stay packed and memory-mapped
|
| 79 |
+
rather than copied into RAM.
|
| 80 |
+
4. **Avoid the fp8 FILE unless you are also using an fp8 toggle.** Loaded on its
|
| 81 |
+
own it is upcast to bf16 at load, so a 25 GB file becomes ~50 GB in RAM. It
|
| 82 |
+
saves disk, not memory.
|
| 83 |
+
5. Close other applications, and load no LoRAs on the first successful run
|
| 84 |
+
(fusion allocates extra at the peak).
|
| 85 |
+
|
| 86 |
+
Recent versions print a system-memory estimate before loading and warn when it
|
| 87 |
+
looks too tight, instead of letting Windows fall over silently.
|
| 88 |
+
|
| 89 |
+
## 3. Install
|
| 90 |
+
|
| 91 |
+
1. Install the base pack (RealRebelAI's) into `ComfyUI/custom_nodes/` if you
|
| 92 |
+
have not already.
|
| 93 |
+
2. Copy this zip's `ComfyUI_JoyAI_Echo_GGUF_Nodes` folder into
|
| 94 |
+
`ComfyUI/custom_nodes/`, REPLACING files when asked.
|
| 95 |
+
3. Restart ComfyUI.
|
| 96 |
+
4. Open `workflow/JoyEcho_Multishot_Workflow_PUBLIC.json` (drag it onto the
|
| 97 |
+
ComfyUI canvas, or Workflows > Open).
|
| 98 |
+
|
| 99 |
+
## 4. First render in five minutes
|
| 100 |
+
|
| 101 |
+
1. Copy `workflow/example_multishot.json` into `ComfyUI/input/joyecho_prompts/`
|
| 102 |
+
(create the folder if it does not exist).
|
| 103 |
+
2. In the **Model Loader** node: pick your DiT in `model_file` (GGUF or
|
| 104 |
+
safetensors). If you picked a GGUF, ALSO set `checkpoint_path` to your full
|
| 105 |
+
bf16/fp8 checkpoint. Pick your Gemma in `gemma_file`.
|
| 106 |
+
3. In the **Prompt Source** node: pick `example_multishot.json`.
|
| 107 |
+
4. Queue. First run encodes the prompts (a few minutes); every later run of the
|
| 108 |
+
same prompts skips encoding entirely (you will see `Conditioning cache HIT`).
|
| 109 |
+
|
| 110 |
+
Where your output goes β THREE places, by design:
|
| 111 |
+
|
| 112 |
+
| file | what it is |
|
| 113 |
+
|---|---|
|
| 114 |
+
| `output/joyecho/shot_000.mp4`, `shot_001.mp4`, ... | each shot, saved the moment it finishes (watch progress live) |
|
| 115 |
+
| `output/output_#####.mp4` | the assembled full video from SaveVideo (native resolution, with shot transitions) |
|
| 116 |
+
| `output/joyecho/<name>_<timestamp>_MASTER.mp4` | the upscaled master, built automatically in the background a few minutes after the run ends |
|
| 117 |
+
|
| 118 |
+
## 5. Writing your own shots
|
| 119 |
+
|
| 120 |
+
Your prompt file is either a `.json` file: `{"prompts": ["shot 1 text",
|
| 121 |
+
"shot 2 text", ...]}` β or a `.txt` in the same format the example shows. Rules
|
| 122 |
+
that matter:
|
| 123 |
+
|
| 124 |
+
- **The identity sentence is byte-identical in every shot.** Copy-paste it.
|
| 125 |
+
Include: appearance, wardrobe, and a voice description WITH an explicit
|
| 126 |
+
accent ("in a casual American accent" β the model defaults to British if you
|
| 127 |
+
do not say otherwise).
|
| 128 |
+
- One shot is ~12.5 seconds at the default 313 frames. A comfortable spoken
|
| 129 |
+
line for one shot is **about 20-30 words**, in double quotes.
|
| 130 |
+
- For talking shots, keep the framing **medium close-up or tighter** and the
|
| 131 |
+
resolution height 864+. In wide shots the mouth is smaller than the model
|
| 132 |
+
can resolve and lip sync suffers no matter what you write.
|
| 133 |
+
- Describe sound affirmatively in every shot ("Quiet diegetic sound only:
|
| 134 |
+
rain on the window and a ticking radiator") β otherwise the model invents
|
| 135 |
+
drones and music.
|
| 136 |
+
- Do not write "no X" in a prompt β it renders the X. State what IS there.
|
| 137 |
+
|
| 138 |
+
## 6. THE REFERENCE IMAGE β "where do I insert the source image?"
|
| 139 |
+
|
| 140 |
+
As of v1.4 the graph ships with a **Reference Image (OPTIONAL)** node just
|
| 141 |
+
below the Generate node, deliberately unconnected - unconnected nodes never
|
| 142 |
+
run, so it is safe to ignore. To use it: load your image there and drag its
|
| 143 |
+
IMAGE output to the `reference_image` input on the left edge of
|
| 144 |
+
JoyEcho_Generate. If you are on an older graph without the node:
|
| 145 |
+
|
| 146 |
+
1. Right-click the canvas > **Add Node > image > Load Image**.
|
| 147 |
+
2. Load your character image (a portrait render or photo-style still works
|
| 148 |
+
best β clear face, front or three-quarter angle).
|
| 149 |
+
3. Drag from the Load Image node's **IMAGE** output to the **`reference_image`**
|
| 150 |
+
input socket on the left edge of the **JoyEcho_Generate** node.
|
| 151 |
+
4. Queue as normal.
|
| 152 |
+
|
| 153 |
+
What it does: the image is planted into the cross-shot memory bank as a
|
| 154 |
+
permanent anchor, so EVERY shot is conditioned on that face and look β on top
|
| 155 |
+
of (not instead of) your identity sentence. Keep the identity sentence anyway,
|
| 156 |
+
and make it describe the same person as the image.
|
| 157 |
+
|
| 158 |
+
The `reference_zoom` widget (default 1.2) crops the reference in ~20% before
|
| 159 |
+
conditioning. Why: a reference at exactly the render size is treated as
|
| 160 |
+
continuable content β the first shot opens ON your image like classic i2v,
|
| 161 |
+
which usually is not what you want in a multi-shot piece. 1.2 keeps the
|
| 162 |
+
identity and drops that behavior. If you WANT shot 1 to start from your image
|
| 163 |
+
(true i2v-style opening), set `reference_zoom` to 1.0.
|
| 164 |
+
|
| 165 |
+
Advanced: the RefPicker node can auto-load reference folders per character by
|
| 166 |
+
name (a folder `ComfyUI/input/joyecho_refs/alice/` is used whenever "alice"
|
| 167 |
+
appears in your prompts). For single-character work the Load Image route above
|
| 168 |
+
is simpler.
|
| 169 |
+
|
| 170 |
+
## 7. LoRAs
|
| 171 |
+
|
| 172 |
+
As of v1.4 the loader takes **multiple LoRAs**, and the workflow ships with
|
| 173 |
+
the node for it: the **LoRA Stack** node, already wired into the Model Loader.
|
| 174 |
+
|
| 175 |
+
- Pick up to three LoRAs in its dropdowns, each with its own strength slider.
|
| 176 |
+
Slots left on `(none)` do nothing.
|
| 177 |
+
- Need more than three? Add another LoRA Stack node (Add Node > JoyAI-Echo >
|
| 178 |
+
JoyEcho LoRA Stack) and chain it: first node's `lora_stack` output into the
|
| 179 |
+
second node's `lora_stack` input, second node into the Model Loader.
|
| 180 |
+
- Everything stacks with the Model Loader's own `lora_file` pick.
|
| 181 |
+
|
| 182 |
+
Power users / automation: `lora_path` also accepts a text list β one entry per
|
| 183 |
+
line or comma-separated, each with an optional strength suffix
|
| 184 |
+
(`my_style.safetensors@0.7`). Same result, no extra nodes.
|
| 185 |
+
|
| 186 |
+
All LoRAs are fused into the model at load, so there is no per-step cost.
|
| 187 |
+
Note: LoRAs apply on the **safetensors DiT path** only β they are ignored when
|
| 188 |
+
a GGUF is selected as the DiT (existing limitation, stated in the tooltip).
|
| 189 |
+
|
| 190 |
+
## 8. Performance settings by VRAM
|
| 191 |
+
|
| 192 |
+
| widget | what to set |
|
| 193 |
+
|---|---|
|
| 194 |
+
| `sequential_offload` | ON below 32 GB VRAM. Streams transformer blocks over PCIe. |
|
| 195 |
+
| `resident_blocks` | With offload ON: how many of the 48 blocks stay on the GPU. Rough guide: 24 GB card + fp8/GGUF -> ~20-24; 16 GB -> 8-12; raise until VRAM is nearly full. |
|
| 196 |
+
| `fp8_scaled_mm` | RTX 40/50-series ONLY. Native fp8 compute, real speedup. Leave OFF on 30-series and older. |
|
| 197 |
+
| `low_vram` (encoder) | ON if Gemma encoding OOMs; slower but ~3 GB. |
|
| 198 |
+
| resolution | 544x960 is a fast preview. For dialogue, raise height to 864+. |
|
| 199 |
+
| `hires_factor` | 1.0 = off (default). The background AutoFinish upscale usually covers you. |
|
| 200 |
+
| `head_trim_frames` | Leave at 14 (default). Trims the unstable first ~0.5s of each shot, where identity morph and lip-sync error concentrate. |
|
| 201 |
+
|
| 202 |
+
## 9. After updating this patch β one-time step
|
| 203 |
+
|
| 204 |
+
Open your workflow, glance at the LAST few widgets on the Generate node
|
| 205 |
+
(reference_zoom / resident_blocks / hires), fix anything that looks wrong, and
|
| 206 |
+
SAVE. ComfyUI stores widget values by position; a graph saved under an older
|
| 207 |
+
pack version can load a few trailing widgets scrambled until you re-save it
|
| 208 |
+
once. If you ever find yourself re-entering the same two or three values after
|
| 209 |
+
every restart β this is why, and one save ends it.
|
| 210 |
+
|
| 211 |
+
## 10. Troubleshooting
|
| 212 |
+
|
| 213 |
+
| symptom | cause / fix |
|
| 214 |
+
|---|---|
|
| 215 |
+
| Error: "checkpoint_path is empty" | You picked a GGUF in model_file. GGUFs are the transformer only β set checkpoint_path to a full bf16/fp8 checkpoint too. |
|
| 216 |
+
| Two copies of your character / wrong wardrobe / garbled identity | Wrong text encoder. Use TRUE BASE Gemma-3-12B-it (safetensors or the clean Q8_0 encoder GGUF). The "joyecho" Gemma GGUF is a different model β replace it. |
|
| 217 |
+
| Face drifts between shots | Your identity sentence is not byte-identical across shots. Copy-paste it; do not reword. |
|
| 218 |
+
| Voice is British | State the accent in every shot: "in a casual American accent". |
|
| 219 |
+
| Random music / horror drones | Add an explicit sound line to every shot; leave `negative_scale_audio` at 0.3. |
|
| 220 |
+
| Lip sync poor in wide shots | Physics of resolution: mouth too small. Medium close-up + height 864+ for talking shots. |
|
| 221 |
+
| Widgets reset every restart | Section 9 β re-save the graph once. |
|
| 222 |
+
| First run very slow | Normal: prompt encoding + caches build. Subsequent runs with the same prompts skip encoding entirely. |
|
| 223 |
+
| Master video missing | It arrives a few minutes AFTER the run ends (background worker). Check `output/joyecho/` for `*_MASTER.mp4` and the `_autofinish_*.log` next to it. |
|
| 224 |
+
| OOM during generation | sequential_offload ON, lower resident_blocks, lower resolution, low_vram ON for the encoder. |
|
| 225 |
+
|
| 226 |
+
---
|
| 227 |
+
|
| 228 |
+
Model downloads, measurements, and a live demo Space are linked from the
|
| 229 |
+
model listings. AI-generated content must be disclosed as such (LTX-2
|
| 230 |
+
Community License; the JoyAI-Echo component is research / non-commercial).
|