150 lines
5.6 KiB
Markdown
150 lines
5.6 KiB
Markdown
---
|
|||
|
|
name: ai-vid-stock
|
||
|
|
description: "Manage AI video stock materials on TrueNAS — add, search, list, and remove start frames, audio, character refs, and misc images."
|
||
|
|
version: 1.0.0
|
||
|
|
author: Hermes Agent
|
||
|
|
license: MIT
|
||
|
|
platforms: [linux]
|
||
|
|
metadata:
|
||
|
|
hermes:
|
||
|
|
tags: [ai-video, stock-materials, truenas, smb, ltx, comfyui]
|
||
|
|
---
|
||
|
|
|
||
|
|
# AI Video Stock Material Manager
|
||
|
|
|
||
|
|
Manage stock materials for the LTX video pipeline stored on TrueNAS at `10.0.0.117`.
|
||
|
|
|
||
|
|
## Storage Location
|
||
|
|
|
||
|
|
| Setting | Value |
|
||
|
|
|---------|-------|
|
||
|
|
| Server | 10.0.0.117 (TrueNAS) |
|
||
|
|
| Share | proxmoxBackup (read-write, guest access) |
|
||
|
|
| Root path | `ai_vid_stock_material/` |
|
||
|
|
| Access | `smbclient -N //10.0.0.117/proxmoxBackup` |
|
||
|
|
|
||
|
|
## Directory Structure
|
||
|
|
|
||
|
|
```
|
||
|
|
ai_vid_stock_material/
|
||
|
|
├── README.md ← inventory (keep updated)
|
||
|
|
├── start_frames/ ← first/last frame images for I2V
|
||
|
|
├── audio/ ← TTS clips, ambient sounds, music
|
||
|
|
├── character_refs/ ← character reference images for ID LoRA
|
||
|
|
├── misc_images/ ← unsorted images, potential stock
|
||
|
|
├── scripts/ ← generation scripts, prompt templates
|
||
|
|
├── workflows/ ← ComfyUI workflow JSONs
|
||
|
|
├── outputs/ ← rendered videos (concat finals)
|
||
|
|
└── docs/ ← plans, state docs, story ideas
|
||
|
|
```
|
||
|
|
|
||
|
|
## Commands
|
||
|
|
|
||
|
|
### List all stock materials
|
||
|
|
|
||
|
|
```bash
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material; ls start_frames/*; ls audio/*; ls character_refs/*; ls misc_images/*; ls scripts/*; ls workflows/*'
|
||
|
|
```
|
||
|
|
|
||
|
|
### List a specific category
|
||
|
|
|
||
|
|
```bash
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material; ls <category>/*'
|
||
|
|
```
|
||
|
|
|
||
|
|
Categories: `start_frames`, `audio`, `character_refs`, `misc_images`, `scripts`, `workflows`
|
||
|
|
|
||
|
|
### Search by filename pattern
|
||
|
|
|
||
|
|
```bash
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material; ls start_frames/*' 2>/dev/null | grep -i "<pattern>"
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material; ls audio/*' 2>/dev/null | grep -i "<pattern>"
|
||
|
|
# ... repeat for each category
|
||
|
|
```
|
||
|
|
|
||
|
|
### Add a file (upload)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material/<category>; put <local_path> <remote_filename>'
|
||
|
|
```
|
||
|
|
|
||
|
|
Example:
|
||
|
|
```bash
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material/start_frames; put /tmp/new_frame.png scene_07_start.png'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Add from remote server (e.g., .202 ComfyUI)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. Download from remote
|
||
|
|
sshpass -p 'passw0rd' scp [email protected]:~/comfy-ui/input/<filename> /tmp/
|
||
|
|
|
||
|
|
# 2. Upload to TrueNAS
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material/<category>; put /tmp/<filename> <filename>'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Remove a file
|
||
|
|
|
||
|
|
```bash
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material/<category>; rm <filename>'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Download a file from stock
|
||
|
|
|
||
|
|
```bash
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material/<category>; get <filename> <local_path>'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Download entire category
|
||
|
|
|
||
|
|
```bash
|
||
|
|
mkdir -p /tmp/stock_dl/<category>
|
||
|
|
cd /tmp/stock_dl/<category>
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c "cd ai_vid_stock_material/<category>; prompt OFF; mget *"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Update README inventory after changes
|
||
|
|
|
||
|
|
After adding/removing files, update the README.md on TrueNAS:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Download current README
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material; get README.md /tmp/README.md'
|
||
|
|
|
||
|
|
# Edit /tmp/README.md to reflect changes
|
||
|
|
|
||
|
|
# Upload updated README
|
||
|
|
smbclient -N //10.0.0.117/proxmoxBackup -c 'cd ai_vid_stock_material; put /tmp/README.md README.md'
|
||
|
|
```
|
||
|
|
|
||
|
|
## Category Guidelines
|
||
|
|
|
||
|
|
| Category | What goes here | File types |
|
||
|
|
|----------|---------------|------------|
|
||
|
|
| start_frames | First/last frame images for I2V generation | .png, .jpg |
|
||
|
|
| audio | TTS clips, ambient sounds, music for video | .mp3, .wav |
|
||
|
|
| character_refs | Reference images for ID LoRA character consistency | .png, .jpg |
|
||
|
|
| misc_images | Unsorted images, potential stock, inspiration | .png, .jpg |
|
||
|
|
| scripts | Generation scripts, prompt templates, automation | .py, .sh, .json, .txt |
|
||
|
|
| workflows | ComfyUI workflow JSONs (exported from UI) | .json |
|
||
|
|
|
||
|
|
## Pitfalls
|
||
|
|
|
||
|
|
- **SMB path separators are backslashes** — use `cd ai_vid_stock_material\\start_frames` in smbclient, not forward slashes.
|
||
|
|
- **No mount available** — the cifs kernel module is not present on the Hermes host. Use smbclient for all operations. Do not attempt `mount.cifs`.
|
||
|
|
- **smbclient `mget`/`mput` need `prompt OFF`** — otherwise it prompts for every file.
|
||
|
|
- **Spaces in filenames** — quote them in smbclient commands.
|
||
|
|
- **Keep README.md updated** — it's the inventory of record. After any add/remove, update it.
|
||
|
|
- **TrueNAS guest access** — no credentials needed. If auth errors appear, the share config may have changed.
|
||
|
|
- **Large files** — smbclient `put`/`get` works for files up to several GB. For bulk transfers, consider using the TrueNAS web UI at `http://10.0.0.117`.
|
||
|
|
|
||
|
|
## LTX Pipeline Wiring Bug (2026-07-21)
|
||
|
|
|
||
|
|
**Symptom:** Subject duplication in LTX Director renders — a frozen duplicate of the start frame appears alongside the generated motion. All outputs are 249 frames instead of 240.
|
||
|
|
|
||
|
|
**Root cause:** Node 132 (LTXDirectorGuide refiner) takes its `latent` input from the uncropped stage-1 output (`["34", 0]`) instead of the cropped output (`["55", 2]`). The guide frames from stage 1 leak through as actual video.
|
||
|
|
|
||
|
|
**Fix:** Point `132.inputs.latent` at `["55", 2]` instead of `["34", 0]`. Verify output is exactly 240 frames.
|
||
|
|
|
||
|
|
**Reference:** `/home/n8n/workspace/general/ltx-pipeline-state.md` — full render history and diagnosis.
|