Compare commits
23 Commits
4c8fb82536
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| cac5e84b77 | |||
| d3c2550f15 | |||
| 9845e6e900 | |||
| 5814142ca4 | |||
| 4a8388f30a | |||
| 31e56d3f7f | |||
| 7526a80868 | |||
| f0a5b8eeff | |||
| bbc6e7483a | |||
| e45ed60eb3 | |||
| 78bf707530 | |||
| c2a1b586ae | |||
| 936262f423 | |||
| 1ac9891a72 | |||
| aad97c9c7a | |||
| c94d1eaa79 | |||
| 0754593671 | |||
| aa84a5fe48 | |||
| ffc6939279 | |||
| 0984f12064 | |||
| 666ec70a85 | |||
| d4cb142724 | |||
| dd59f5266a |
@@ -0,0 +1,68 @@
|
||||
# Simple helper script to get structDir from project config.json
|
||||
# Reads config.json from .config folder in project root
|
||||
|
||||
param(
|
||||
[string]$ProjectRoot
|
||||
)
|
||||
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
if ([string]::IsNullOrWhiteSpace($ProjectRoot)) {
|
||||
# Try to determine project root from script location
|
||||
if ($PSScriptRoot) {
|
||||
$ProjectRoot = Split-Path -Parent $PSScriptRoot
|
||||
}
|
||||
elseif ($MyInvocation.MyCommand.Path) {
|
||||
$ProjectRoot = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
|
||||
}
|
||||
else {
|
||||
Write-Error "Unable to determine project root. Please provide -ProjectRoot parameter."
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
$configPath = Join-Path -Path $ProjectRoot -ChildPath '.config\config.json'
|
||||
|
||||
if (-not (Test-Path -LiteralPath $configPath -PathType Leaf)) {
|
||||
Write-Error "config.json not found at: $configPath"
|
||||
exit 1
|
||||
}
|
||||
|
||||
try {
|
||||
$config = Get-Content -LiteralPath $configPath -Raw -ErrorAction Stop | ConvertFrom-Json
|
||||
|
||||
if ($config.PSObject.Properties.Name -contains 'structDir') {
|
||||
$structDir = $config.structDir
|
||||
if ($null -ne $structDir -and ($structDir -isnot [string] -or $structDir.Trim().Length -gt 0)) {
|
||||
# If it's an absolute path, resolve it
|
||||
if ([System.IO.Path]::IsPathRooted($structDir)) {
|
||||
$resolved = Resolve-Path -LiteralPath $structDir -ErrorAction SilentlyContinue
|
||||
if ($null -ne $resolved) {
|
||||
Write-Output $resolved.Path
|
||||
exit 0
|
||||
}
|
||||
Write-Output $structDir
|
||||
exit 0
|
||||
}
|
||||
# Relative path - resolve relative to config location
|
||||
$candidate = Join-Path -Path (Split-Path -Parent $configPath) -ChildPath $structDir
|
||||
$resolvedCandidate = Resolve-Path -LiteralPath $candidate -ErrorAction SilentlyContinue
|
||||
if ($null -ne $resolvedCandidate) {
|
||||
Write-Output $resolvedCandidate.Path
|
||||
exit 0
|
||||
}
|
||||
Write-Output $candidate
|
||||
exit 0
|
||||
}
|
||||
}
|
||||
|
||||
# Default: return the directory containing config.json (project root)
|
||||
Write-Output $ProjectRoot
|
||||
exit 0
|
||||
}
|
||||
catch {
|
||||
Write-Error "Failed to read or parse config.json: $($_.Exception.Message)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"dailyFormat": "YYYY-MM-DD",
|
||||
"structDir": "D:\\0 ProjectStructure",
|
||||
"zipper": "7z",
|
||||
"compression": 0,
|
||||
"Max7zInst": 0,
|
||||
"zipsegLimit": "2G"
|
||||
}
|
||||
+116
-41
@@ -1,50 +1,125 @@
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.exr filter=lfs diff=lfs merge=lfs -text
|
||||
*.hdr filter=lfs diff=lfs merge=lfs -text
|
||||
*.blend filter=lfs diff=lfs merge=lfs -text
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.abc filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
# Git LFS attributes configuration
|
||||
# All listed file types will be tracked by Git LFS
|
||||
|
||||
# Video files
|
||||
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||
*.mkv filter=lfs diff=lfs merge=lfs -text
|
||||
*.obj filter=lfs diff=lfs merge=lfs -text
|
||||
*.max filter=lfs diff=lfs merge=lfs -text
|
||||
*.ma filter=lfs diff=lfs merge=lfs -text
|
||||
*.bvh filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.c4d filter=lfs diff=lfs merge=lfs -text
|
||||
*.mov filter=lfs diff=lfs merge=lfs -text
|
||||
*.blend1 filter=lfs diff=lfs merge=lfs -text
|
||||
*.3ds filter=lfs diff=lfs merge=lfs -text
|
||||
*.hdf5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.psd filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.fbx filter=lfs diff=lfs merge=lfs -text
|
||||
*.fbxkey filter=lfs diff=lfs merge=lfs -text
|
||||
*.mb filter=lfs diff=lfs merge=lfs -text
|
||||
*.ma filter=lfs diff=lfs merge=lfs -text
|
||||
*.tiff filter=lfs diff=lfs merge=lfs -text
|
||||
*.ai filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.MOV filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||
*.webm filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Image files
|
||||
*.bmp filter=lfs diff=lfs merge=lfs -text
|
||||
*.exr filter=lfs diff=lfs merge=lfs -text
|
||||
*.gif filter=lfs diff=lfs merge=lfs -text
|
||||
*.hdr filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.tga filter=lfs diff=lfs merge=lfs -text
|
||||
*.tif filter=lfs diff=lfs merge=lfs -text
|
||||
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||
*.bmp filter=lfs diff=lfs merge=lfs -text
|
||||
*.eps filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.avi filter=lfs diff=lfs merge=lfs -text
|
||||
*.tiff filter=lfs diff=lfs merge=lfs -text
|
||||
*.webp filter=lfs diff=lfs merge=lfs -text
|
||||
*.heic filter=lfs diff=lfs merge=lfs -text
|
||||
*.HEIC filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# 3D/CG files
|
||||
*.3ds filter=lfs diff=lfs merge=lfs -text
|
||||
*.abc filter=lfs diff=lfs merge=lfs -text
|
||||
*.blend filter=lfs diff=lfs merge=lfs -text
|
||||
*.blend1 filter=lfs diff=lfs merge=lfs -text
|
||||
*.blend2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.bvh filter=lfs diff=lfs merge=lfs -text
|
||||
*.bvh.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.c4d filter=lfs diff=lfs merge=lfs -text
|
||||
*.dae filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
*.fbx filter=lfs diff=lfs merge=lfs -text
|
||||
*.fbxkey filter=lfs diff=lfs merge=lfs -text
|
||||
*.ma filter=lfs diff=lfs merge=lfs -text
|
||||
*.max filter=lfs diff=lfs merge=lfs -text
|
||||
*.mb filter=lfs diff=lfs merge=lfs -text
|
||||
*.obj filter=lfs diff=lfs merge=lfs -text
|
||||
*.usd filter=lfs diff=lfs merge=lfs -text
|
||||
*.usdz filter=lfs diff=lfs merge=lfs -text
|
||||
*.vdb filter=lfs diff=lfs merge=lfs -text
|
||||
*.aep filter=lfs diff=lfs merge=lfs -text
|
||||
*.prproj filter=lfs diff=lfs merge=lfs -text
|
||||
*.prin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bphys filter=lfs diff=lfs merge=lfs -text
|
||||
*.bobj filter=lfs diff=lfs merge=lfs -text
|
||||
*.bvel filter=lfs diff=lfs merge=lfs -text
|
||||
*.bpointcache filter=lfs diff=lfs merge=lfs -text
|
||||
*.blob filter=lfs diff=lfs merge=lfs -text
|
||||
*.unitypackage filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Houdini files
|
||||
*.hiplc filter=lfs diff=lfs merge=lfs -text
|
||||
*.bgeo filter=lfs diff=lfs merge=lfs -text
|
||||
*.bgeo.sc filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Flip Fluids cache files
|
||||
*.data filter=lfs diff=lfs merge=lfs -text
|
||||
*.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ffp3 filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Substance files
|
||||
*.sbs filter=lfs diff=lfs merge=lfs -text
|
||||
*.sbsar filter=lfs diff=lfs merge=lfs -text
|
||||
*.spp filter=lfs diff=lfs merge=lfs -text
|
||||
*.spp filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Audio files
|
||||
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||
*.wav filter=lfs diff=lfs merge=lfs -text
|
||||
*.m4a filter=lfs diff=lfs merge=lfs -text
|
||||
*.aac filter=lfs diff=lfs merge=lfs -text
|
||||
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||
*.flac filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Archive/Compression files
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.7z.[0-9][0-9][0-9] filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Documents
|
||||
*.docx filter=lfs diff=lfs merge=lfs -text
|
||||
*.xlsx filter=lfs diff=lfs merge=lfs -text
|
||||
*.eps filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Adobe files
|
||||
*.aegraphic filter=lfs diff=lfs merge=lfs -text
|
||||
*.aep filter=lfs diff=lfs merge=lfs -text
|
||||
*.prel filter=lfs diff=lfs merge=lfs -text
|
||||
*.prin filter=lfs diff=lfs merge=lfs -text
|
||||
*.prmf filter=lfs diff=lfs merge=lfs -text
|
||||
*.prproj filter=lfs diff=lfs merge=lfs -text
|
||||
*.ai filter=lfs diff=lfs merge=lfs -text
|
||||
*.psd filter=lfs diff=lfs merge=lfs -text
|
||||
*.pk filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkf filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
|
||||
# Davinci Resolve files
|
||||
*.dpx filter=lfs diff=lfs merge=lfs -text
|
||||
*.drp filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Data files
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.hdf5 filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Other
|
||||
*.uni filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdn filter=lfs diff=lfs merge=lfs -text
|
||||
*.pur filter=lfs diff=lfs merge=lfs -text
|
||||
*.db filter=lfs diff=lfs merge=lfs -text
|
||||
*.raw filter=lfs diff=lfs merge=lfs -text
|
||||
*.lnk filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Python files
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
# Adobe Alternatives
|
||||
*.xcf filter=lfs diff=lfs merge=lfs -text
|
||||
*.af filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
+16
-18
@@ -40,13 +40,7 @@
|
||||
*~
|
||||
*.tmp
|
||||
*.temp
|
||||
|
||||
# Blender internal cache files
|
||||
*.bpy
|
||||
*.bmesh
|
||||
*.bvh
|
||||
*.bobj
|
||||
*.bphys
|
||||
BL_proxy/
|
||||
|
||||
# OS generated files
|
||||
.DS_Store
|
||||
@@ -83,11 +77,6 @@ desktop.ini
|
||||
# *.aac
|
||||
# *.ogg
|
||||
|
||||
# Archive files
|
||||
*.zip
|
||||
*.rar
|
||||
*.tar.gz
|
||||
|
||||
# Log files
|
||||
*.log
|
||||
|
||||
@@ -118,12 +107,13 @@ temp/
|
||||
tmp/
|
||||
cache/
|
||||
|
||||
# image sequences
|
||||
Renders/**
|
||||
!Renders/_zipped/
|
||||
!Renders/_zipped/**
|
||||
!Renders/**/
|
||||
!Renders/**/*.bat
|
||||
!Renders/**/*.log
|
||||
seq/
|
||||
Renders/
|
||||
png/
|
||||
Pr/3_background/RenderRegions/
|
||||
Pr/3_background/background/
|
||||
|
||||
# Premiere
|
||||
*.prlock
|
||||
@@ -131,4 +121,12 @@ Adobe Premiere Pro Video Previews/
|
||||
Adobe Premiere Pro Audio Previews/
|
||||
Adobe Premiere Pro (Beta) Video Previews/
|
||||
Adobe Premiere Pro (Beta) Audio Previews/
|
||||
Pr/3_background/RnR/
|
||||
footage/
|
||||
plates/
|
||||
|
||||
RnR/
|
||||
|
||||
# Microsoft Office temporary files
|
||||
~$*
|
||||
|
||||
.specstory/
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
# SpecStory explanation file
|
||||
/.what-is-this.md
|
||||
# SpecStory project identity file
|
||||
/.project.json
|
||||
@@ -1,244 +0,0 @@
|
||||
<!-- Generated by SpecStory -->
|
||||
|
||||
<!-- cursor Session c94f4a58-8269-4d9c-960c-470f5a0bd4c7 (2025-10-09 18:12Z) -->
|
||||
|
||||
# Encode large image sequence with ffmpeg (2025-10-09 18:12Z)
|
||||
|
||||
_**User (2025-10-29 04:20Z)**_
|
||||
|
||||
losslessly encode the freakishly large image sequence in D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark to E:\3_background_dark using ffmpeg, nvidia nvenc with CQ=0. 60fps.
|
||||
|
||||
---
|
||||
|
||||
_**Assistant (default)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
Checking the source image sequence to identify the format and frame range.
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **list_dir**
|
||||
|
||||
<details>
|
||||
<summary>Listed directory undefined • **0** results</summary>
|
||||
|
||||
No results found
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **run_terminal_cmd**
|
||||
|
||||
```bash
|
||||
dir "D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark" | Select-Object -First 5
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
Directory: D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark
|
||||
|
||||
Mode LastWriteTime Length Name
|
||||
---- ------------- ------ ----
|
||||
-a--- 10/26/2025 2:33 PM 49803735 3_background_dark_0000.png
|
||||
-a--- 10/26/2025 12:17 PM 49803388 3_background_dark_0001.png
|
||||
-a--- 10/26/2025 1:19 PM 49799657 3_background_dark_0002.png
|
||||
-a--- 10/26/2025 9:56 AM 49800635 3_background_dark_0003.png
|
||||
-a--- 10/26/2025 1:39 PM 49806719 3_background_dark_0004.png
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **run_terminal_cmd**
|
||||
|
||||
```bash
|
||||
dir "D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark" | Select-Object -Last 5
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
Directory: D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark
|
||||
|
||||
Mode LastWriteTime Length Name
|
||||
---- ------------- ------ ----
|
||||
----- 10/27/2025 12:37 AM 49805765 3_background_dark_9995.png
|
||||
----- 10/26/2025 11:21 PM 49805316 3_background_dark_9996.png
|
||||
----- 10/26/2025 9:46 PM 49808654 3_background_dark_9997.png
|
||||
----- 10/27/2025 12:13 AM 49806734 3_background_dark_9998.png
|
||||
----- 10/26/2025 11:34 PM 49805629 3_background_dark_9999.png
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Image sequence goes from `0000` to `9999` (10,000 frames); each frame is ~50MB.
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **create_plan**
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-10-29 04:20Z)**_
|
||||
|
||||
No. There are 14,401 frames. I want nvenc hevc in an mp4 container. Is the preset slow, or is it 7? I forget what the exact arguments are.
|
||||
|
||||
---
|
||||
|
||||
_**Assistant (default)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
Verifying the exact frame range and NVENC preset syntax. Updating the plan.
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **run_terminal_cmd**
|
||||
|
||||
```bash
|
||||
Get-ChildItem "D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark\*.png" | Measure-Object | Select-Object -ExpandProperty Count
|
||||
```
|
||||
|
||||
```
|
||||
14401
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **run_terminal_cmd**
|
||||
|
||||
```bash
|
||||
$frames = Get-ChildItem "D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark\*.png"; Write-Host "First: $($frames[0].BaseName)"; Write-Host "Last: $($frames[-1].BaseName)"
|
||||
```
|
||||
|
||||
```
|
||||
First: 3_background_dark_0000
|
||||
Last: 3_background_dark_9999
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **run_terminal_cmd**
|
||||
|
||||
```bash
|
||||
$frames = Get-ChildItem "D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark\*.png" | Sort-Object Name; Write-Host "Start: $($frames[0].Name)"; Write-Host "End: $($frames[-1].Name)"; Write-Host "Total count: $($frames.Count)"
|
||||
```
|
||||
|
||||
```
|
||||
Start: 3_background_dark_0000.png
|
||||
End: 3_background_dark_9999.png
|
||||
Total count: 14401
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-10-29 04:20Z)**_
|
||||
|
||||
you might as well do all 14401 frames.
|
||||
|
||||
---
|
||||
|
||||
_**Assistant (default)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
Checking ffmpeg NVENC HEVC preset syntax. Updating the plan to use the full 14,401 frames in an MP4 container.
|
||||
|
||||
|
||||
---
|
||||
|
||||
Received invalid string to replace in plan
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **create_plan**
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-10-29 04:20Z)**_
|
||||
|
||||
No, process all 14401 frames.
|
||||
|
||||
---
|
||||
|
||||
_**Assistant (default)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
Command uses `%04d.png` which only captures frames 0000–9999, missing the rest. Checking for five-digit frame numbers.
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **run_terminal_cmd**
|
||||
|
||||
```bash
|
||||
Get-ChildItem "D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark\*.png" | Where-Object { $_.Name -match '_\d{5}\.' } | Select-Object Name -First 10
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Tool use: **run_terminal_cmd**
|
||||
|
||||
```bash
|
||||
$frames = Get-ChildItem "D:\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark\*.png" | Sort-Object Name; Write-Host "Unique count: $($frames | Select-Object -ExpandProperty BaseName -Unique | Measure-Object | Select-Object -ExpandProperty Count)"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,466 +0,0 @@
|
||||
<!-- Generated by SpecStory, Markdown v2.0.0 -->
|
||||
|
||||
<!-- cursor Session 4aeb7f9e-851f-4b2a-ae52-01c07b68e74f (2025-11-01 15:48Z) -->
|
||||
|
||||
# PNG rendering error troubleshooting (2025-11-01 15:48Z)
|
||||
|
||||
_**User (2025-11-01 15:48Z)**_
|
||||
|
||||
why is this happening to render
|
||||
|
||||
|
||||
|
||||
libpng error: IDAT: CRC error
|
||||
|
||||
ImageInput::read_image() failed: PNG read error: IDAT: CRC error
|
||||
|
||||
PNG library error
|
||||
|
||||
IMB_load_image_from_memory: unknown file-format (R:\Creative\artsy\maya\2025-02 BondingArtifact\Renders\3_background\2025-10-26\3_background_dark\3_background_dark_5489.png)
|
||||
|
||||
---
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Reviewing the open file to understand the render configuration and identify why PNGs are being corrupted.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||||
<details><summary>Tool use: **read_file** • Read file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="search" data-tool-name="codebase_search">
|
||||
<details>
|
||||
<summary>Tool use: **codebase_search** • Searched codebase "How are PNG images saved or written during rendering?" • **3** results</summary>
|
||||
|
||||
| File | Lines |
|
||||
|------|-------|
|
||||
| `.gitignore` | L134 |
|
||||
| `.gitattributes` | L47 |
|
||||
| `misc/checklist.txt` | L52 |
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Checking the render configuration and the corrupt file path for clues.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="search" data-tool-name="codebase_search">
|
||||
<details>
|
||||
<summary>Tool use: **codebase_search** • Searched codebase "Where are render output files written or saved?" • **10** results</summary>
|
||||
|
||||
| File | Lines |
|
||||
|------|-------|
|
||||
| `.gitignore` | L134 |
|
||||
| `assets/Objects/gems/tx/BlackOnyx/Designer/BlackOnyx.sbs` | L3573-3642 |
|
||||
| `misc/checklist.txt` | L52 |
|
||||
| `misc/metadata.bat` | L23 |
|
||||
| `misc/filenames.bat` | L1 |
|
||||
| `.cursorindexingignore` | L3 |
|
||||
| `.gitattributes` | L47 |
|
||||
| `assets/Objects/gems/tx/BlackOnyx/Designer/BlackOnyx.sbs` | L1475-1533 |
|
||||
| `misc/BRANDING.txt` | L2 |
|
||||
| `assets/Objects/gems/tx/BlackOnyx/Designer/BlackOnyx.sbs` | L1976-2034 |
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="grep" data-tool-name="grep">
|
||||
<details>
|
||||
<summary>Tool use: **grep** • Grep for "3_background" • 0 matches</summary>
|
||||
|
||||
Output mode: content
|
||||
|
||||
|
||||
_No matches found_
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
This PNG CRC error indicates the file was corrupted during render. The path `R:\...` suggests a network drive, which is a common source.
|
||||
|
||||
Common causes:
|
||||
- Network storage issues: timeouts, interruptions, or bad connections corrupt writes
|
||||
- Concurrent access: another process (comp, preview, antivirus) reading while a worker writes
|
||||
- Incomplete writes: file read before the write finishes
|
||||
- Antivirus/backup: scanning or copying files while they’re being written
|
||||
|
||||
Checking the render script for timing or synchronization issues:
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||||
<details><summary>Tool use: **read_file** • Read file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Solutions to fix this:
|
||||
|
||||
### **Immediate fixes:**
|
||||
|
||||
1. **Check if the file is actually corrupted**
|
||||
- Verify frame `5489` on the R: drive
|
||||
- If corrupted, re-render just that frame
|
||||
|
||||
2. **Render to local storage first, then copy**
|
||||
- Change the render output to a local drive (C: or D:)
|
||||
- After rendering completes, copy to the network drive
|
||||
- Reduces corruption risk from network interruptions
|
||||
|
||||
3. **Increase chunk_size**
|
||||
- In your Flamenco job settings, increase `chunk_size` (currently defaults to 1)
|
||||
- Fewer concurrent writes = less contention
|
||||
|
||||
4. **Temporarily disable antivirus/backup scanning**
|
||||
- Exclude the render output folder from real-time scanning
|
||||
- Network drives are often scanned aggressively
|
||||
|
||||
### **Network storage specific:**
|
||||
|
||||
5. **Check network drive health**
|
||||
- Test the R: drive connection stability
|
||||
- Run `chkdsk R: /f` if it's accessible
|
||||
- Check for network timeouts or packet loss
|
||||
|
||||
6. **Add file write delay/sync**
|
||||
- If possible, configure Blender to flush writes completely before finishing
|
||||
- Use `--python-expr` to add a small delay after rendering completes
|
||||
|
||||
### **For the current corrupted frame:**
|
||||
|
||||
The file `3_background_dark_5489.png` is corrupted. Either:
|
||||
- Re-render frame 5489 specifically, or
|
||||
- Skip it and continue (if it's not critical)
|
||||
|
||||
Should I help modify the Flamenco script to render to a local directory first, or focus on diagnosing the network storage issue?
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-11-02 23:49Z)**_
|
||||
|
||||
How do I ensure my image can be denoised without rendering in future? Can saving as EXR fix it?
|
||||
|
||||
---
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
Checking how denoising and output formats are configured. Reviewing the render script for format/pass options and searching the codebase for denoising-related settings.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="search" data-tool-name="codebase_search">
|
||||
<details>
|
||||
<summary>Tool use: **codebase_search** • Searched codebase "How are denoising passes or denoising data configured for rendering?" • **7** results</summary>
|
||||
|
||||
| File | Lines |
|
||||
|------|-------|
|
||||
| `misc/checklist.txt` | L52 |
|
||||
| `assets/Objects/gems/tx/BlackOnyx/Designer/BlackOnyx.sbs` | L3573-3642 |
|
||||
| `.gitignore` | L134 |
|
||||
| `assets/Objects/gems/tx/BlackOnyx/Designer/BlackOnyx.sbs` | L1431-1479 |
|
||||
| `assets/Objects/gems/tx/BlackOnyx/Designer/BlackOnyx.sbs` | L73 |
|
||||
| `.gitattributes` | L47 |
|
||||
| `assets/Objects/gems/tx/BlackOnyx/Designer/BlackOnyx.sbs` | L1858-1925 |
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="grep" data-tool-name="grep">
|
||||
<details>
|
||||
<summary>Tool use: **grep** • Grep for "denois" • 0 matches</summary>
|
||||
|
||||
Output mode: content
|
||||
|
||||
|
||||
_No matches found_
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="grep" data-tool-name="grep">
|
||||
<details>
|
||||
<summary>Tool use: **grep** • Grep for "EXR|exr|OpenEXR" • 0 matches</summary>
|
||||
|
||||
Output mode: content
|
||||
|
||||
|
||||
_No matches found_
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
EXR can enable post-render denoising, but you need to enable the denoising passes when rendering.
|
||||
|
||||
- EXR stores multiple passes/layers in one file (denoising data, beauty, etc.)
|
||||
- EXR stores 32-bit float data (vs 8-bit PNG), preserving detail
|
||||
- PNG cannot store denoising passes, so denoising later isn't possible
|
||||
|
||||
Updating the render script to automatically enable denoising passes when EXR is selected:
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||||
<details><summary>Tool use: **read_file** • Read file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
Adding code to automatically enable denoising passes when rendering to EXR:
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file">
|
||||
<details><summary>Tool use: **read_file** • Read file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="write" data-tool-name="search_replace">
|
||||
|
||||
<details><summary>Tool use: **code_edit** • Edit file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js</summary>
|
||||
|
||||
</details>
|
||||
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-11-02 23:49Z)**_
|
||||
|
||||
Don't edit anything. just tell me what I should set my render settings to.
|
||||
|
||||
---
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
Here’s what to set in Blender so you can denoise later:
|
||||
|
||||
## Render settings
|
||||
|
||||
### 1. Output format
|
||||
- Output Properties tab → Output section
|
||||
- Set File Format to OpenEXR or OpenEXR Multilayer
|
||||
- OpenEXR Multilayer is better if you need multiple passes later
|
||||
|
||||
### 2. Enable denoising passes
|
||||
- Output Properties tab → View Layer Properties → Passes section
|
||||
- Enable:
|
||||
- Denoising Normal
|
||||
- Denoising Albedo
|
||||
- Denoising Shadow (optional, helps quality)
|
||||
|
||||
### 3. Cycles denoising (during render)
|
||||
- Render Properties tab → Denoising section
|
||||
- Denoiser: OpenImageDenoise (or OptiX if on NVIDIA)
|
||||
- Enable Denoising
|
||||
- If using Passes → Data:
|
||||
- Enable Normal
|
||||
- Enable Albedo (optional if not using denoising passes)
|
||||
|
||||
### 4. Render passes to save
|
||||
- View Layer Properties → Passes → Data:
|
||||
- Enable Normal
|
||||
- Enable Albedo (if you want them as separate passes)
|
||||
- With OpenEXR Multilayer, passes are stored as layers in the file
|
||||
|
||||
## Why this works
|
||||
|
||||
- EXR stores all passes in one file
|
||||
- 32-bit float preserves detail
|
||||
- Denoising Normal/Albedo passes let you re-denoise later
|
||||
- You can denoise post-render in Compositor or with external tools
|
||||
|
||||
## After rendering
|
||||
|
||||
You can re-denoise later:
|
||||
- In Blender Compositor: load the EXR, use Denoise node with the passes
|
||||
- Or keep render denoising off during render and denoise entirely in post
|
||||
|
||||
Note: PNG cannot store denoising passes, so you can’t re-denoise PNG renders later. EXR is required for this workflow.
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-11-02 23:49Z)**_
|
||||
|
||||
So, when I send to sheepit, denoising will be disabled if I use the tiling option (which splits the frame into 2x2, 3x3, 4x4, or 6x6 so multiple workers can render one frame simultaneously, then they are combined) but I need to denoise it because the results are so noisy.
|
||||
|
||||
---
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
For SheepIt with tiling, you can't denoise during rendering (denoising needs the full frame), but you can denoise the combined EXR frames afterward if you save the required passes.
|
||||
|
||||
## Render settings for SheepIt + tiling
|
||||
|
||||
### 1. Output format
|
||||
- File Format: OpenEXR Multilayer (or OpenEXR)
|
||||
- Required so denoising passes are saved per tile and combined
|
||||
|
||||
### 2. View Layer passes (critical)
|
||||
- View Layer Properties → Passes → Data:
|
||||
- Enable Denoising Normal
|
||||
- Enable Denoising Albedo
|
||||
- Enable Denoising Shadow (recommended)
|
||||
- View Layer Properties → Passes → Combined:
|
||||
- Enable Denoising Data (if available; some versions)
|
||||
|
||||
### 3. Cycles render settings
|
||||
- Render Properties → Denoising:
|
||||
- Denoiser: OpenImageDenoise (or OptiX if available)
|
||||
- Keep Denoising enabled in settings
|
||||
- Note: With tiling, denoising won't run during render, but passes will still be saved.
|
||||
|
||||
### 4. After SheepIt combines tiles
|
||||
You'll have EXR files with:
|
||||
- Combined beauty pass (noisy)
|
||||
- Denoising Normal pass
|
||||
- Denoising Albedo pass
|
||||
- Denoising Shadow pass (if enabled)
|
||||
|
||||
## Denoise the combined frames
|
||||
|
||||
### Option A: Blender Compositor
|
||||
1. Open a combined EXR in Image Editor or Compositor
|
||||
2. Use Denoise node:
|
||||
- Connect Combined (beauty)
|
||||
- Connect Denoising Normal
|
||||
- Connect Denoising Albedo
|
||||
- Optionally connect Denoising Shadow
|
||||
3. Export the denoised result
|
||||
|
||||
### Option B: External tools
|
||||
- OIDN (OpenImageDenoise CLI)
|
||||
- GIMP (with EXR support)
|
||||
- Natron or other compositing software
|
||||
|
||||
## Summary
|
||||
- Render EXR with Denoising Normal, Denoising Albedo (and Shadow if available)
|
||||
- Tiles will combine these passes into full-frame EXRs
|
||||
- Denoise the combined EXRs in post using those passes
|
||||
|
||||
This way you get fast tiled rendering on SheepIt and clean denoised results afterward.
|
||||
|
||||
---
|
||||
|
||||
_**User (2025-11-03 07:09Z)**_
|
||||
|
||||
Ach, looks like I can't render splits. this makes splits kind of useless for me... so I can't send this blend with such high samples because it's so long that each machine doesn't get it, but if I split it, I'll just have to denoise it after anyway... is there a better solution for denoising than the compositing solution I devised?
|
||||
|
||||
---
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
Given SheepIt’s EXR restriction (no splits), here are practical alternatives:
|
||||
|
||||
## Option 1: Render with splits in PNG + enable render-time denoising
|
||||
- Render to PNG (splits allowed)
|
||||
- In Cycles: enable Denoising (OpenImageDenoise or OptiX)
|
||||
- Denoising should run per tile during render
|
||||
- Result: already denoised when tiles combine
|
||||
|
||||
Note: Verify that SheepIt/Blender doesn’t disable denoising with splits. Test a single split frame first.
|
||||
|
||||
## Option 2: Lower samples + better denoising (recommended)
|
||||
Modern denoisers work well with fewer samples:
|
||||
- Reduce samples (e.g., 128–256 instead of 1000+)
|
||||
- Keep denoising enabled during render
|
||||
- Render to PNG with splits enabled
|
||||
- Benefits: faster renders, workers complete tasks, denoised output
|
||||
|
||||
## Option 3: AI denoisers that don’t need passes
|
||||
If render-time denoising doesn’t work with splits, use standalone denoisers:
|
||||
- Neat Video (plugin for Premiere/AE/Resolve)
|
||||
- Topaz DeNoise AI
|
||||
- Adobe Lightroom/Photoshop AI Denoise
|
||||
|
||||
Trade-off: No denoising passes needed, but single-pass input only.
|
||||
|
||||
## Option 4: Hybrid two-pass workflow
|
||||
If you need high samples:
|
||||
1. Pass 1: Render beauty only with splits (PNG), high samples
|
||||
2. Pass 2: Render denoising passes (Normal/Albedo) full-frame, low samples, EXR
|
||||
3. Composite: Combine passes in Blender Compositor and denoise
|
||||
|
||||
Downside: Two renders, more work.
|
||||
|
||||
## Recommendation
|
||||
Try Option 1 first: PNG + splits + render-time denoising enabled. If that doesn’t work or quality isn’t enough, use Option 2 (lower samples + denoising). The quality difference with modern denoisers is often minimal, and render time drops significantly.
|
||||
|
||||
If you can share sample count and resolution, I can suggest specific settings.
|
||||
|
||||
---
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
<!-- Generated by SpecStory, Markdown v2.0.0 -->
|
||||
|
||||
<!-- cursor Session b83f8a7d-e74a-40ee-90fd-e66cfc30956e (2025-11-02 20:29Z) -->
|
||||
|
||||
# Seamless video looping in Premiere (2025-11-02 20:29Z)
|
||||
|
||||
_**User (2025-11-02 20:29Z)**_
|
||||
|
||||
I'm trying to seamlessly loop a video in premiere. I have a morph cut that works really well, but I can't get it to work so that the final frame looks identical to the first frame. I can get it to loop on itself infinitely with morph cuts, but I want to get that in the video file itself so it loops properly in OBS.
|
||||
|
||||
---
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
To export a seamless loop from Premiere so OBS plays it back seamlessly:
|
||||
|
||||
1. Ensure the loop point frames match:
|
||||
- Set an In/Out range around the morph cut.
|
||||
- Trim to a frame boundary at both ends.
|
||||
- Optionally add a 1-frame freeze (copy of first frame) at the end if needed.
|
||||
|
||||
2. Export settings:
|
||||
- Set the In/Out range to include the full loop.
|
||||
- Use an export format that preserves frames and avoids frame drops (e.g., H.264 with high quality, or ProRes if possible).
|
||||
- Disable frame blending or other post-processing that could alter frames.
|
||||
|
||||
3. Verify frame match:
|
||||
- In the Timeline, place the playhead at the start and end frames.
|
||||
- Check in Program Monitor (step frame-by-frame) that the last frame matches the first frame.
|
||||
|
||||
If the morph cut in the preview looks seamless but the export doesn’t:
|
||||
- The transition may be interpolated: duplicate the first frame at the end, then export.
|
||||
- Try a different export codec/settings that better preserves frames.
|
||||
|
||||
Should I help you verify the codec/settings or automate any trimming/freeze frame steps?
|
||||
|
||||
---
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,43 @@
|
||||
@echo off
|
||||
setlocal EnableExtensions EnableDelayedExpansion
|
||||
|
||||
set "REN_DIR=%~dp0"
|
||||
for %%I in ("%REN_DIR%..") do set "PROJ_ROOT=%%~fI"
|
||||
|
||||
set "CONFIG_DIR=%PROJ_ROOT%\.config"
|
||||
set "CONFIG_PATH=%CONFIG_DIR%\config.json"
|
||||
set "GET_STRUCT_DIR=%CONFIG_DIR%\GetStructDir.ps1"
|
||||
|
||||
if not exist "%CONFIG_PATH%" (
|
||||
echo [ERROR] config.json not found at %CONFIG_PATH%
|
||||
echo Please run CfgDeploy.ps1 to deploy helper files.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if not exist "%GET_STRUCT_DIR%" (
|
||||
echo [ERROR] GetStructDir.ps1 not found at %GET_STRUCT_DIR%
|
||||
echo Please run CfgDeploy.ps1 to deploy helper files.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
||||
"Set-StrictMode -Version Latest; $structDir = & '%GET_STRUCT_DIR%' -ProjectRoot '%PROJ_ROOT%'; if (-not $structDir) { throw \"Failed to get structDir from GetStructDir.ps1\" }; $pyPath = Join-Path $structDir 'compress_sequence_pngs.py'; if (-not (Test-Path -LiteralPath $pyPath)) { throw \"compress_sequence_pngs.py not found at $pyPath\" }; Write-Output $pyPath"`) do set "PY_SCRIPT=%%~I"
|
||||
|
||||
if not defined PY_SCRIPT (
|
||||
echo [ERROR] Unable to resolve compress_sequence_pngs.py path from config.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
pushd "%PROJ_ROOT%" >nul 2>&1
|
||||
|
||||
python "%PY_SCRIPT%" %*
|
||||
set "ERR=!ERRORLEVEL!"
|
||||
|
||||
popd >nul 2>&1
|
||||
|
||||
if !ERR! NEQ 0 (
|
||||
echo PNG compression failed ^(exit code !ERR!^).
|
||||
exit /b !ERR!
|
||||
)
|
||||
|
||||
exit /b 0
|
||||
@@ -0,0 +1,42 @@
|
||||
@echo off
|
||||
setlocal EnableExtensions EnableDelayedExpansion
|
||||
|
||||
set "REN_DIR=%~dp0"
|
||||
for %%I in ("%REN_DIR%..") do set "PROJ_ROOT=%%~fI"
|
||||
|
||||
set "CONFIG_DIR=%PROJ_ROOT%\.config"
|
||||
set "CONFIG_PATH=%CONFIG_DIR%\config.json"
|
||||
set "GET_STRUCT_DIR=%CONFIG_DIR%\GetStructDir.ps1"
|
||||
|
||||
if not exist "%CONFIG_PATH%" (
|
||||
echo [ERROR] config.json not found at %CONFIG_PATH%
|
||||
echo Please run CfgDeploy.ps1 to deploy helper files.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if not exist "%GET_STRUCT_DIR%" (
|
||||
echo [ERROR] GetStructDir.ps1 not found at %GET_STRUCT_DIR%
|
||||
echo Please run CfgDeploy.ps1 to deploy helper files.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
||||
"Set-StrictMode -Version Latest; $structDir = & '%GET_STRUCT_DIR%' -ProjectRoot '%PROJ_ROOT%'; if (-not $structDir) { throw \"Failed to get structDir from GetStructDir.ps1\" }; $pyPath = Join-Path $structDir 'zip_sequences.py'; if (-not (Test-Path -LiteralPath $pyPath)) { throw \"zip_sequences.py not found at $pyPath\" }; Write-Output $pyPath"`) do set "PY_SCRIPT=%%I"
|
||||
|
||||
if not defined PY_SCRIPT (
|
||||
echo [ERROR] Unable to resolve zip_sequences.py path from config.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
pushd "%PROJ_ROOT%" >nul 2>&1
|
||||
|
||||
python "%PY_SCRIPT%" --mode expand --verbose %*
|
||||
set "ERR=!ERRORLEVEL!"
|
||||
|
||||
if not "!ERR!"=="0" (
|
||||
echo Failed to expand render sequence archives (exit code !ERR!).
|
||||
)
|
||||
|
||||
popd >nul 2>&1
|
||||
exit /b !ERR!
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
@echo off
|
||||
setlocal EnableExtensions
|
||||
|
||||
set "script_dir=%~dp0"
|
||||
set "current_dir=%CD%"
|
||||
set "PROJ_ROOT="
|
||||
|
||||
REM First, check project level (one directory up from current) - most common case
|
||||
for %%I in ("%current_dir%..") do set "project_level=%%~fI"
|
||||
set "project_config=%project_level%\.config\config.json"
|
||||
if exist "%project_config%" (
|
||||
set "PROJ_ROOT=%project_level%"
|
||||
)
|
||||
|
||||
REM If not found at project level, search up from current working directory
|
||||
if not defined PROJ_ROOT (
|
||||
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "Set-StrictMode -Version Latest; $dir = '%current_dir%'; $found = $null; while ($dir -and -not $found) { $configPath = Join-Path $dir '.config\config.json'; if (Test-Path -LiteralPath $configPath) { $found = $dir; break }; $parent = Split-Path -Parent $dir; if ($parent -eq $dir) { break }; $dir = $parent }; if ($found) { Write-Output $found } else { Write-Output '' }"`) do set "PROJ_ROOT=%%I"
|
||||
)
|
||||
|
||||
REM If still not found, try searching from script location
|
||||
if not defined PROJ_ROOT (
|
||||
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "Set-StrictMode -Version Latest; $dir = '%script_dir%'; $found = $null; while ($dir -and -not $found) { $configPath = Join-Path $dir '.config\config.json'; if (Test-Path -LiteralPath $configPath) { $found = $dir; break }; $parent = Split-Path -Parent $dir; if ($parent -eq $dir) { break }; $dir = $parent }; if ($found) { Write-Output $found } else { Write-Output '' }"`) do set "PROJ_ROOT=%%I"
|
||||
)
|
||||
|
||||
REM Fallback: try original logic (script in 3 ProjectStructure)
|
||||
if not defined PROJ_ROOT (
|
||||
for %%I in ("%script_dir%..\..") do set "PROJ_ROOT=%%~fI"
|
||||
)
|
||||
|
||||
set "CONFIG_DIR=%PROJ_ROOT%\.config"
|
||||
set "CONFIG_PATH=%CONFIG_DIR%\config.json"
|
||||
|
||||
if not exist "%CONFIG_PATH%" (
|
||||
echo [ERROR] config.json not found at %CONFIG_PATH%
|
||||
if defined project_config (
|
||||
echo Also checked: %project_config%
|
||||
)
|
||||
echo Please run CfgDeploy.ps1 to deploy helper files.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set "GET_STRUCT_DIR=%CONFIG_DIR%\GetStructDir.ps1"
|
||||
|
||||
if not exist "%GET_STRUCT_DIR%" (
|
||||
echo [ERROR] GetStructDir.ps1 not found at %GET_STRUCT_DIR%
|
||||
echo Please run CfgDeploy.ps1 to deploy helper files.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
||||
"Set-StrictMode -Version Latest; $structDir = & '%GET_STRUCT_DIR%' -ProjectRoot '%PROJ_ROOT%'; if (-not $structDir) { throw \"Failed to get structDir from GetStructDir.ps1\" }; $ps1Path = Join-Path $structDir 'UpdateSequences.ps1'; if (-not (Test-Path -LiteralPath $ps1Path)) { throw \"UpdateSequences.ps1 not found at $ps1Path\" }; Write-Output $ps1Path"`) do set "ps1=%%I"
|
||||
|
||||
if not defined ps1 (
|
||||
echo [ERROR] Unable to resolve UpdateSequences.ps1 path from config.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM Run from batch directory (sequences next to batch, or submodule root)
|
||||
set "WORK_DIR=%script_dir%"
|
||||
if "%WORK_DIR:~-1%"=="\" set "WORK_DIR=%WORK_DIR:~0,-1%"
|
||||
pushd "%WORK_DIR%" >nul 2>&1
|
||||
|
||||
echo Running PowerShell update script in %WORK_DIR%...
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File "%ps1%"
|
||||
set "rc=%errorlevel%"
|
||||
|
||||
popd >nul 2>&1
|
||||
echo PowerShell exited with RC=%rc%
|
||||
echo Done.
|
||||
pause >nul
|
||||
exit /b %rc%
|
||||
@@ -0,0 +1,44 @@
|
||||
@echo off
|
||||
setlocal EnableExtensions EnableDelayedExpansion
|
||||
|
||||
set "REN_DIR=%~dp0"
|
||||
for %%I in ("%REN_DIR%..") do set "PROJ_ROOT=%%~fI"
|
||||
|
||||
set "CONFIG_DIR=%PROJ_ROOT%\.config"
|
||||
set "CONFIG_PATH=%CONFIG_DIR%\config.json"
|
||||
set "GET_STRUCT_DIR=%CONFIG_DIR%\GetStructDir.ps1"
|
||||
|
||||
if not exist "%CONFIG_PATH%" (
|
||||
echo [ERROR] config.json not found at %CONFIG_PATH%
|
||||
echo Please run CfgDeploy.ps1 to deploy helper files.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if not exist "%GET_STRUCT_DIR%" (
|
||||
echo [ERROR] GetStructDir.ps1 not found at %GET_STRUCT_DIR%
|
||||
echo Please run CfgDeploy.ps1 to deploy helper files.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
for /f "usebackq delims=" %%I in (`powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
||||
"Set-StrictMode -Version Latest; $structDir = & '%GET_STRUCT_DIR%' -ProjectRoot '%PROJ_ROOT%'; if (-not $structDir) { throw \"Failed to get structDir from GetStructDir.ps1\" }; $pyPath = Join-Path $structDir 'zip_sequences.py'; if (-not (Test-Path -LiteralPath $pyPath)) { throw \"zip_sequences.py not found at $pyPath\" }; Write-Output $pyPath"`) do set "PY_SCRIPT=%%~I"
|
||||
|
||||
if not defined PY_SCRIPT (
|
||||
echo [ERROR] Unable to resolve zip_sequences.py path from config.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
pushd "%PROJ_ROOT%" >nul 2>&1
|
||||
|
||||
python "%PY_SCRIPT%" --verbose %*
|
||||
set "ERR=!ERRORLEVEL!"
|
||||
|
||||
popd >nul 2>&1
|
||||
|
||||
if !ERR! NEQ 0 (
|
||||
echo Failed to update render sequence archives ^(exit code !ERR!^).
|
||||
exit /b !ERR!
|
||||
)
|
||||
|
||||
exit /b 0
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,755 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"path": "GaslightRender_0001_smol.png",
|
||||
"size": 1314893,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0002_smol.png",
|
||||
"size": 1313348,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0003_smol.png",
|
||||
"size": 1315914,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0004_smol.png",
|
||||
"size": 1313312,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0005_smol.png",
|
||||
"size": 1313593,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0006_smol.png",
|
||||
"size": 1313468,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0007_smol.png",
|
||||
"size": 1313348,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0008_smol.png",
|
||||
"size": 1314946,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0009_smol.png",
|
||||
"size": 1313692,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0010_smol.png",
|
||||
"size": 1314428,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0011_smol.png",
|
||||
"size": 1312732,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0012_smol.png",
|
||||
"size": 1313267,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0013_smol.png",
|
||||
"size": 1314221,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0014_smol.png",
|
||||
"size": 1313849,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0015_smol.png",
|
||||
"size": 1310199,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0016_smol.png",
|
||||
"size": 1312486,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0017_smol.png",
|
||||
"size": 1312541,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0018_smol.png",
|
||||
"size": 1311190,
|
||||
"mtime_ns": 1768224630000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0019_smol.png",
|
||||
"size": 1309670,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0020_smol.png",
|
||||
"size": 1306466,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0021_smol.png",
|
||||
"size": 1304395,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0022_smol.png",
|
||||
"size": 1305700,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0023_smol.png",
|
||||
"size": 1307220,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0024_smol.png",
|
||||
"size": 1304413,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0025_smol.png",
|
||||
"size": 1306317,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0026_smol.png",
|
||||
"size": 1309123,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0027_smol.png",
|
||||
"size": 1310699,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0028_smol.png",
|
||||
"size": 1314322,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0029_smol.png",
|
||||
"size": 1316319,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0030_smol.png",
|
||||
"size": 1320289,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0031_smol.png",
|
||||
"size": 1322718,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0032_smol.png",
|
||||
"size": 1322477,
|
||||
"mtime_ns": 1768224632000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0033_smol.png",
|
||||
"size": 1326523,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0034_smol.png",
|
||||
"size": 1327634,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0035_smol.png",
|
||||
"size": 1328020,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0036_smol.png",
|
||||
"size": 1322281,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0037_smol.png",
|
||||
"size": 1319889,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0038_smol.png",
|
||||
"size": 1316591,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0039_smol.png",
|
||||
"size": 1314249,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0040_smol.png",
|
||||
"size": 1314908,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0041_smol.png",
|
||||
"size": 1314807,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0042_smol.png",
|
||||
"size": 1314356,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0043_smol.png",
|
||||
"size": 1314021,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0044_smol.png",
|
||||
"size": 1313900,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0045_smol.png",
|
||||
"size": 1316146,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0046_smol.png",
|
||||
"size": 1318470,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0047_smol.png",
|
||||
"size": 1319829,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0048_smol.png",
|
||||
"size": 1320204,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0049_smol.png",
|
||||
"size": 1319277,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0050_smol.png",
|
||||
"size": 1315570,
|
||||
"mtime_ns": 1768224634000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0051_smol.png",
|
||||
"size": 1309482,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0052_smol.png",
|
||||
"size": 1309299,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0053_smol.png",
|
||||
"size": 1307088,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0054_smol.png",
|
||||
"size": 1312295,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0055_smol.png",
|
||||
"size": 1314831,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0056_smol.png",
|
||||
"size": 1320013,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0057_smol.png",
|
||||
"size": 1322155,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0058_smol.png",
|
||||
"size": 1324364,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0059_smol.png",
|
||||
"size": 1325740,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0060_smol.png",
|
||||
"size": 1324279,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0061_smol.png",
|
||||
"size": 1323881,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0062_smol.png",
|
||||
"size": 1325941,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0063_smol.png",
|
||||
"size": 1327218,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0064_smol.png",
|
||||
"size": 1323713,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0065_smol.png",
|
||||
"size": 1318789,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0066_smol.png",
|
||||
"size": 1313072,
|
||||
"mtime_ns": 1768224636000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0067_smol.png",
|
||||
"size": 1315390,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0068_smol.png",
|
||||
"size": 1315820,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0069_smol.png",
|
||||
"size": 1317280,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0070_smol.png",
|
||||
"size": 1315049,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0071_smol.png",
|
||||
"size": 1311222,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0072_smol.png",
|
||||
"size": 1308802,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0073_smol.png",
|
||||
"size": 1308087,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0074_smol.png",
|
||||
"size": 1309417,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0075_smol.png",
|
||||
"size": 1310063,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0076_smol.png",
|
||||
"size": 1311418,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0077_smol.png",
|
||||
"size": 1315723,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0078_smol.png",
|
||||
"size": 1323026,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0079_smol.png",
|
||||
"size": 1323078,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0080_smol.png",
|
||||
"size": 1322507,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0081_smol.png",
|
||||
"size": 1318159,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0082_smol.png",
|
||||
"size": 1315877,
|
||||
"mtime_ns": 1768224638000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0083_smol.png",
|
||||
"size": 1322511,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0084_smol.png",
|
||||
"size": 1330246,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0085_smol.png",
|
||||
"size": 1331194,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0086_smol.png",
|
||||
"size": 1332136,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0087_smol.png",
|
||||
"size": 1329262,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0088_smol.png",
|
||||
"size": 1327430,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0089_smol.png",
|
||||
"size": 1326032,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0090_smol.png",
|
||||
"size": 1324507,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0091_smol.png",
|
||||
"size": 1319304,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0092_smol.png",
|
||||
"size": 1315404,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0093_smol.png",
|
||||
"size": 1310132,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0094_smol.png",
|
||||
"size": 1306885,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0095_smol.png",
|
||||
"size": 1301504,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0096_smol.png",
|
||||
"size": 1302432,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0097_smol.png",
|
||||
"size": 1303583,
|
||||
"mtime_ns": 1768224640000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0098_smol.png",
|
||||
"size": 1304187,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0099_smol.png",
|
||||
"size": 1307840,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0100_smol.png",
|
||||
"size": 1305506,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0101_smol.png",
|
||||
"size": 1304058,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0102_smol.png",
|
||||
"size": 1309332,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0103_smol.png",
|
||||
"size": 1311408,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0104_smol.png",
|
||||
"size": 1314596,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0105_smol.png",
|
||||
"size": 1314829,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0106_smol.png",
|
||||
"size": 1318015,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0107_smol.png",
|
||||
"size": 1318524,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0108_smol.png",
|
||||
"size": 1316618,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0109_smol.png",
|
||||
"size": 1311391,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0110_smol.png",
|
||||
"size": 1307907,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0111_smol.png",
|
||||
"size": 1305224,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0112_smol.png",
|
||||
"size": 1306102,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0113_smol.png",
|
||||
"size": 1304951,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0114_smol.png",
|
||||
"size": 1305348,
|
||||
"mtime_ns": 1768224642000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0115_smol.png",
|
||||
"size": 1308871,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0116_smol.png",
|
||||
"size": 1313680,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0117_smol.png",
|
||||
"size": 1320779,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0118_smol.png",
|
||||
"size": 1320154,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0119_smol.png",
|
||||
"size": 1326529,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0120_smol.png",
|
||||
"size": 1324248,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0121_smol.png",
|
||||
"size": 1323292,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0122_smol.png",
|
||||
"size": 1314498,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0123_smol.png",
|
||||
"size": 1308455,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0124_smol.png",
|
||||
"size": 1308081,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0125_smol.png",
|
||||
"size": 1312534,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0126_smol.png",
|
||||
"size": 1317550,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0127_smol.png",
|
||||
"size": 1319903,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0128_smol.png",
|
||||
"size": 1322448,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0129_smol.png",
|
||||
"size": 1324189,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0130_smol.png",
|
||||
"size": 1323207,
|
||||
"mtime_ns": 1768224644000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0131_smol.png",
|
||||
"size": 1317711,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0132_smol.png",
|
||||
"size": 1318075,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0133_smol.png",
|
||||
"size": 1318271,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0134_smol.png",
|
||||
"size": 1316939,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0135_smol.png",
|
||||
"size": 1311837,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0136_smol.png",
|
||||
"size": 1304112,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0137_smol.png",
|
||||
"size": 1305315,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0138_smol.png",
|
||||
"size": 1312858,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0139_smol.png",
|
||||
"size": 1313852,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0140_smol.png",
|
||||
"size": 1311923,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0141_smol.png",
|
||||
"size": 1310865,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0142_smol.png",
|
||||
"size": 1305689,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0143_smol.png",
|
||||
"size": 1306430,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0144_smol.png",
|
||||
"size": 1308202,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0145_smol.png",
|
||||
"size": 1317299,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0146_smol.png",
|
||||
"size": 1318569,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0147_smol.png",
|
||||
"size": 1316181,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0148_smol.png",
|
||||
"size": 1314887,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0149_smol.png",
|
||||
"size": 1310618,
|
||||
"mtime_ns": 1768224646000000000
|
||||
},
|
||||
{
|
||||
"path": "GaslightRender_0150_smol.png",
|
||||
"size": 1311947,
|
||||
"mtime_ns": 1768224646000000000
|
||||
}
|
||||
],
|
||||
"segmented": false
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,425 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"path": "Shot8_004018.png",
|
||||
"size": 866766,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004019.png",
|
||||
"size": 871246,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004020.png",
|
||||
"size": 873317,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004021.png",
|
||||
"size": 876071,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004022.png",
|
||||
"size": 887541,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004023.png",
|
||||
"size": 898335,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004024.png",
|
||||
"size": 905205,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004025.png",
|
||||
"size": 919968,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004026.png",
|
||||
"size": 925912,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004027.png",
|
||||
"size": 935539,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004028.png",
|
||||
"size": 942162,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004029.png",
|
||||
"size": 951532,
|
||||
"mtime_ns": 1768205628000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004030.png",
|
||||
"size": 953920,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004031.png",
|
||||
"size": 964268,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004032.png",
|
||||
"size": 971920,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004033.png",
|
||||
"size": 978965,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004034.png",
|
||||
"size": 981684,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004035.png",
|
||||
"size": 990623,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004036.png",
|
||||
"size": 995651,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004037.png",
|
||||
"size": 1004230,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004038.png",
|
||||
"size": 1009950,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004039.png",
|
||||
"size": 1020395,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004040.png",
|
||||
"size": 1023997,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004041.png",
|
||||
"size": 1032408,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004042.png",
|
||||
"size": 1039542,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004043.png",
|
||||
"size": 1052044,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004044.png",
|
||||
"size": 1051756,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004045.png",
|
||||
"size": 1058263,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004046.png",
|
||||
"size": 1066458,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004047.png",
|
||||
"size": 1075622,
|
||||
"mtime_ns": 1768205630000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004048.png",
|
||||
"size": 1082467,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004049.png",
|
||||
"size": 1090450,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004050.png",
|
||||
"size": 1094862,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004051.png",
|
||||
"size": 1106209,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004052.png",
|
||||
"size": 1110096,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004053.png",
|
||||
"size": 1111634,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004054.png",
|
||||
"size": 1126302,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004055.png",
|
||||
"size": 1123991,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004056.png",
|
||||
"size": 1132126,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004057.png",
|
||||
"size": 1132271,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004058.png",
|
||||
"size": 1135523,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004059.png",
|
||||
"size": 1136507,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004060.png",
|
||||
"size": 1139100,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004061.png",
|
||||
"size": 1138669,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004062.png",
|
||||
"size": 1134137,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004063.png",
|
||||
"size": 1131869,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004064.png",
|
||||
"size": 1130702,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004065.png",
|
||||
"size": 1128809,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004066.png",
|
||||
"size": 1125556,
|
||||
"mtime_ns": 1768205632000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004067.png",
|
||||
"size": 1123025,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004068.png",
|
||||
"size": 1118703,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004069.png",
|
||||
"size": 1114028,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004070.png",
|
||||
"size": 1109311,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004071.png",
|
||||
"size": 1107082,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004072.png",
|
||||
"size": 1105924,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004073.png",
|
||||
"size": 1104692,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004074.png",
|
||||
"size": 1105974,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004075.png",
|
||||
"size": 1110362,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004076.png",
|
||||
"size": 1113927,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004077.png",
|
||||
"size": 1113856,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004078.png",
|
||||
"size": 1117356,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004079.png",
|
||||
"size": 1119070,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004080.png",
|
||||
"size": 1118662,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004081.png",
|
||||
"size": 1122722,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004082.png",
|
||||
"size": 1123322,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004083.png",
|
||||
"size": 1123475,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004084.png",
|
||||
"size": 1121035,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004085.png",
|
||||
"size": 1118859,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004086.png",
|
||||
"size": 1117692,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004087.png",
|
||||
"size": 1119076,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004088.png",
|
||||
"size": 1119180,
|
||||
"mtime_ns": 1768205634000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004089.png",
|
||||
"size": 1115442,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004090.png",
|
||||
"size": 1114394,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004091.png",
|
||||
"size": 1108429,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004092.png",
|
||||
"size": 1104239,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004093.png",
|
||||
"size": 1100273,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004094.png",
|
||||
"size": 1098006,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004095.png",
|
||||
"size": 1097915,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004096.png",
|
||||
"size": 1101503,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004097.png",
|
||||
"size": 1103370,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004098.png",
|
||||
"size": 1110481,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004099.png",
|
||||
"size": 1116828,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004100.png",
|
||||
"size": 1118674,
|
||||
"mtime_ns": 1768205636000000000
|
||||
},
|
||||
{
|
||||
"path": "Shot8_004101.png",
|
||||
"size": 1128417,
|
||||
"mtime_ns": 1768205636000000000
|
||||
}
|
||||
],
|
||||
"segmented": false
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"path": "219_goodbye_RR3_0002.png",
|
||||
"size": 213028,
|
||||
"mtime_ns": 1768202284000000000
|
||||
}
|
||||
],
|
||||
"segmented": false
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,760 @@
|
||||
{
|
||||
"files": [
|
||||
{
|
||||
"path": "goodbye_test_0000.png",
|
||||
"size": 3633825,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0001.png",
|
||||
"size": 3648636,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0002.png",
|
||||
"size": 3648632,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0003.png",
|
||||
"size": 3648627,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0004.png",
|
||||
"size": 3648500,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0005.png",
|
||||
"size": 3648617,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0006.png",
|
||||
"size": 3648530,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0007.png",
|
||||
"size": 3648472,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0008.png",
|
||||
"size": 3648524,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0009.png",
|
||||
"size": 3648674,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0010.png",
|
||||
"size": 3648517,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0011.png",
|
||||
"size": 3648592,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0012.png",
|
||||
"size": 3648528,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0013.png",
|
||||
"size": 3648520,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0014.png",
|
||||
"size": 3648599,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0015.png",
|
||||
"size": 3648597,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0016.png",
|
||||
"size": 3648635,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0017.png",
|
||||
"size": 3648464,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0018.png",
|
||||
"size": 3648360,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0019.png",
|
||||
"size": 3648466,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0020.png",
|
||||
"size": 3648458,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0021.png",
|
||||
"size": 3648208,
|
||||
"mtime_ns": 1768202922000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0022.png",
|
||||
"size": 3648171,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0023.png",
|
||||
"size": 3648057,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0024.png",
|
||||
"size": 3648055,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0025.png",
|
||||
"size": 3648127,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0026.png",
|
||||
"size": 3648006,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0027.png",
|
||||
"size": 3648131,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0028.png",
|
||||
"size": 3648090,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0029.png",
|
||||
"size": 3647915,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0030.png",
|
||||
"size": 3647764,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0031.png",
|
||||
"size": 3647775,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0032.png",
|
||||
"size": 3647547,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0033.png",
|
||||
"size": 3647459,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0034.png",
|
||||
"size": 3647259,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0035.png",
|
||||
"size": 3647205,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0036.png",
|
||||
"size": 3647097,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0037.png",
|
||||
"size": 3647209,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0038.png",
|
||||
"size": 3647175,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0039.png",
|
||||
"size": 3647200,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0040.png",
|
||||
"size": 3646893,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0041.png",
|
||||
"size": 3646783,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0042.png",
|
||||
"size": 3646753,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0043.png",
|
||||
"size": 3646722,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0044.png",
|
||||
"size": 3646766,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0045.png",
|
||||
"size": 3646741,
|
||||
"mtime_ns": 1768202924000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0046.png",
|
||||
"size": 3646567,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0047.png",
|
||||
"size": 3646457,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0048.png",
|
||||
"size": 3646253,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0049.png",
|
||||
"size": 3646222,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0050.png",
|
||||
"size": 3646402,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0051.png",
|
||||
"size": 3645968,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0052.png",
|
||||
"size": 3645290,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0053.png",
|
||||
"size": 3645480,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0054.png",
|
||||
"size": 3645709,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0055.png",
|
||||
"size": 3645157,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0056.png",
|
||||
"size": 3645267,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0057.png",
|
||||
"size": 3644931,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0058.png",
|
||||
"size": 3644781,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0059.png",
|
||||
"size": 3644779,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0060.png",
|
||||
"size": 3644354,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0061.png",
|
||||
"size": 3644607,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0062.png",
|
||||
"size": 3644446,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0063.png",
|
||||
"size": 3643974,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0064.png",
|
||||
"size": 3643688,
|
||||
"mtime_ns": 1768202926000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0065.png",
|
||||
"size": 3643712,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0066.png",
|
||||
"size": 3643686,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0067.png",
|
||||
"size": 3643323,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0068.png",
|
||||
"size": 3643260,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0069.png",
|
||||
"size": 3643393,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0070.png",
|
||||
"size": 3643151,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0071.png",
|
||||
"size": 3643200,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0072.png",
|
||||
"size": 3643278,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0073.png",
|
||||
"size": 3642914,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0074.png",
|
||||
"size": 3642830,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0075.png",
|
||||
"size": 3642642,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0076.png",
|
||||
"size": 3642668,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0077.png",
|
||||
"size": 3642560,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0078.png",
|
||||
"size": 3642520,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0079.png",
|
||||
"size": 3642433,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0080.png",
|
||||
"size": 3642347,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0081.png",
|
||||
"size": 3642377,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0082.png",
|
||||
"size": 3642152,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0083.png",
|
||||
"size": 3642059,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0084.png",
|
||||
"size": 3642055,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0085.png",
|
||||
"size": 3641814,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0086.png",
|
||||
"size": 3641792,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0087.png",
|
||||
"size": 3641687,
|
||||
"mtime_ns": 1768202928000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0088.png",
|
||||
"size": 3641567,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0089.png",
|
||||
"size": 3641471,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0090.png",
|
||||
"size": 3641458,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0091.png",
|
||||
"size": 3641196,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0092.png",
|
||||
"size": 3640966,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0093.png",
|
||||
"size": 3641185,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0094.png",
|
||||
"size": 3641048,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0095.png",
|
||||
"size": 3641040,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0096.png",
|
||||
"size": 3641171,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0097.png",
|
||||
"size": 3641412,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0098.png",
|
||||
"size": 3641374,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0099.png",
|
||||
"size": 3641404,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0100.png",
|
||||
"size": 3641348,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0101.png",
|
||||
"size": 3641405,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0102.png",
|
||||
"size": 3641633,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0103.png",
|
||||
"size": 3641694,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0104.png",
|
||||
"size": 3641858,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0105.png",
|
||||
"size": 3642070,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0106.png",
|
||||
"size": 3642285,
|
||||
"mtime_ns": 1768202930000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0107.png",
|
||||
"size": 3642387,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0108.png",
|
||||
"size": 3642890,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0109.png",
|
||||
"size": 3642871,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0110.png",
|
||||
"size": 3642913,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0111.png",
|
||||
"size": 3643281,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0112.png",
|
||||
"size": 3643592,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0113.png",
|
||||
"size": 3643732,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0114.png",
|
||||
"size": 3644243,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0115.png",
|
||||
"size": 3644323,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0116.png",
|
||||
"size": 3644932,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0117.png",
|
||||
"size": 3645270,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0118.png",
|
||||
"size": 3645333,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0119.png",
|
||||
"size": 3645917,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0120.png",
|
||||
"size": 3646207,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0121.png",
|
||||
"size": 3646786,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0122.png",
|
||||
"size": 3647093,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0123.png",
|
||||
"size": 3648046,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0124.png",
|
||||
"size": 3648277,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0125.png",
|
||||
"size": 3648397,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0126.png",
|
||||
"size": 3648708,
|
||||
"mtime_ns": 1768202932000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0127.png",
|
||||
"size": 3648699,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0128.png",
|
||||
"size": 3648928,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0129.png",
|
||||
"size": 3649071,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0130.png",
|
||||
"size": 3649132,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0131.png",
|
||||
"size": 3649104,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0132.png",
|
||||
"size": 3649363,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0133.png",
|
||||
"size": 3649510,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0134.png",
|
||||
"size": 3649244,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0135.png",
|
||||
"size": 3649552,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0136.png",
|
||||
"size": 3649321,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0137.png",
|
||||
"size": 3649485,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0138.png",
|
||||
"size": 3649484,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0139.png",
|
||||
"size": 3649657,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0140.png",
|
||||
"size": 3649960,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0141.png",
|
||||
"size": 3649603,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0142.png",
|
||||
"size": 3650194,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0143.png",
|
||||
"size": 3649980,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0144.png",
|
||||
"size": 3649786,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0145.png",
|
||||
"size": 3649776,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0146.png",
|
||||
"size": 3650040,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0147.png",
|
||||
"size": 3649989,
|
||||
"mtime_ns": 1768202934000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0148.png",
|
||||
"size": 3650212,
|
||||
"mtime_ns": 1768202936000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0149.png",
|
||||
"size": 3650136,
|
||||
"mtime_ns": 1768202936000000000
|
||||
},
|
||||
{
|
||||
"path": "goodbye_test_0150.png",
|
||||
"size": 3650160,
|
||||
"mtime_ns": 1768202936000000000
|
||||
}
|
||||
],
|
||||
"segmented": false
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
# This is an Asset Catalog Definition file for Blender.
|
||||
#
|
||||
# Empty lines and lines starting with `#` will be ignored.
|
||||
# The first non-ignored line should be the version indicator.
|
||||
# Other lines are of the format "UUID:catalog/path/for/assets:simple catalog name"
|
||||
|
||||
VERSION 1
|
||||
|
||||
a8867233-bda2-447a-a422-11e748fecd71:worlds:worlds
|
||||
@@ -0,0 +1,211 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
script_version=0.3.1
|
||||
echo "Script Version: $script_version"
|
||||
#default stuff
|
||||
username=""
|
||||
renderkey=""
|
||||
autosettings=""
|
||||
gpu_cores=""
|
||||
client_name=""
|
||||
run_cpu_client="n"
|
||||
bypass_confirm="n"
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
key="$1"
|
||||
case $key in
|
||||
-username)
|
||||
username="$2"
|
||||
shift 2;;
|
||||
-renderkey)
|
||||
renderkey="$2"
|
||||
shift 2;;
|
||||
-autosettings)
|
||||
autosettings="$2"
|
||||
shift 2;;
|
||||
-gpucores)
|
||||
gpu_cores="$2"
|
||||
shift 2;;
|
||||
-clientname)
|
||||
client_name="$2"
|
||||
shift 2;;
|
||||
-cores)
|
||||
cpu_cores="$2"
|
||||
shift 2;;
|
||||
-cpu)
|
||||
if [ "$2" == "y" ]; then
|
||||
run_cpu_client="y"
|
||||
else
|
||||
run_cpu_client="n"
|
||||
fi
|
||||
shift 2;;
|
||||
-y)
|
||||
bypass_confirm="y"
|
||||
shift 1;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
line_thing="------------------------------------"
|
||||
amount_of_gpus=$(nvidia-smi -L | wc -l)
|
||||
amount_of_ram=$(free -h | awk '/^Mem:/ {print $7}' | sed 's/[^0-9]*//g')
|
||||
cpu_cores_fixed=$(nproc)
|
||||
|
||||
echo "$line_thing"
|
||||
echo "Welcome to the Vast.ai Sheepit setup script! Please follow the on-screen instructions to continue."
|
||||
echo "$line_thing"
|
||||
|
||||
if [ -z "$username" ]; then
|
||||
read -r -p "Enter your username: " username < /dev/tty
|
||||
fi
|
||||
if [ -z "$renderkey" ]; then
|
||||
read -r -p "Enter your render key: " renderkey < /dev/tty
|
||||
fi
|
||||
if [ -z "$autosettings" ]; then
|
||||
read -r -p "Do you want to use auto settings? (y/n): " autosettings < /dev/tty
|
||||
fi
|
||||
if [ -z "$client_name" ]; then
|
||||
read -r -p "Enter client name (no spaces): " client_name < /dev/tty
|
||||
fi
|
||||
|
||||
|
||||
if [[ "$autosettings" =~ ^[Yy]$ ]]; then
|
||||
echo "$line_thing"
|
||||
echo "Auto settings enabled."
|
||||
num_gpus=$amount_of_gpus
|
||||
gpu_rec_amount_ram=$(( amount_of_ram / num_gpus ))
|
||||
RAM=$gpu_rec_amount_ram
|
||||
if [ -z "$gpu_cores" ]; then
|
||||
gpu_cores=2
|
||||
fi
|
||||
else
|
||||
echo "$line_thing"
|
||||
echo "There are $amount_of_gpus NVIDIA GPUs in this machine."
|
||||
while true; do
|
||||
read -r -p "Enter the number of GPUs you would like to use for sheepit (1-$amount_of_gpus): " num_gpus < /dev/tty
|
||||
if [[ "$num_gpus" =~ ^[1-9][0-9]*$ && "$num_gpus" -le "$amount_of_gpus" ]]; then
|
||||
break
|
||||
else
|
||||
echo "Please enter a valid positive integer for the number of GPUs (1-$amount_of_gpus)."
|
||||
fi
|
||||
done
|
||||
gpu_rec_amount_ram=$(( amount_of_ram / num_gpus ))
|
||||
amount_of_gpus1=$(( num_gpus + 1 ))
|
||||
cpu_rec_amount_ram=$(( amount_of_ram / amount_of_gpus1 ))
|
||||
echo "$line_thing"
|
||||
echo "This machine has ${amount_of_ram}GB RAM available."
|
||||
echo "It is recommended to use ${gpu_rec_amount_ram}GB of RAM per GPU client, or ${cpu_rec_amount_ram}GB if also running a CPU client."
|
||||
read -r -p "Enter amount of RAM for each client in GB: " RAM < /dev/tty
|
||||
RAM="${RAM//[^0-9]/}"
|
||||
while true; do
|
||||
read -r -p "Enter number of cores for each GPU client: " gpu_cores < /dev/tty
|
||||
if [[ "$gpu_cores" =~ ^[1-9][0-9]*$ ]]; then
|
||||
break
|
||||
else
|
||||
echo "Please enter a valid positive integer."
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ "$run_cpu_client" == "y" ]]; then
|
||||
WANT_CPU="y"
|
||||
else
|
||||
if [[ "$autosettings" =~ ^[Yy]$ ]]; then
|
||||
WANT_CPU="n"
|
||||
else
|
||||
read -r -p "Do you want to run a CPU client as well? (y/n): " WANT_CPU < /dev/tty
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$WANT_CPU" =~ ^[Yy]$ ]]; then
|
||||
cores_used_for_gpu=$(( num_gpus * gpu_cores ))
|
||||
cores_left=$(( cpu_cores_fixed - cores_used_for_gpu ))
|
||||
if [[ "$autosettings" =~ ^[Yy]$ ]]; then
|
||||
cpu_cores=$cores_left
|
||||
else
|
||||
|
||||
echo "This machine has $cpu_cores_fixed CPU cores."
|
||||
echo "With GPU clients using $cores_used_for_gpu cores, there are $cores_left cores available for the CPU client."
|
||||
while true; do
|
||||
read -r -p "Enter number of cores for the CPU client: " cpu_cores < /dev/tty
|
||||
if [[ "$cpu_cores" =~ ^[1-9][0-9]*$ ]]; then
|
||||
break
|
||||
else
|
||||
echo "Please enter a valid positive integer."
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "$line_thing"
|
||||
echo "These are the settings selected, is this ok? (Y/n)"
|
||||
echo "Client name: $client_name"
|
||||
echo "GPU Clients: $num_gpus"
|
||||
echo "RAM per client: ${RAM}GB"
|
||||
echo "Cores per GPU: ${gpu_cores}"
|
||||
echo "Sheepit user: ${username}"
|
||||
echo "Renderkey: ${renderkey}"
|
||||
if [[ "$WANT_CPU" =~ ^[Yy]$ ]]; then
|
||||
echo "Run a CPU client: Yes"
|
||||
echo "CPU cores: $cpu_cores"
|
||||
else
|
||||
echo "Run a CPU client: No"
|
||||
fi
|
||||
|
||||
if [[ "$bypass_confirm" != "y" ]]; then
|
||||
read -r -p "(Y/n): " confirm < /dev/tty
|
||||
if [[ "$confirm" =~ ^[Nn]$ ]]; then
|
||||
echo "Aborted"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Starting sheepit..."
|
||||
|
||||
apt update
|
||||
apt install -y sudo
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
sudo apt install -y tmux default-jre blender wget xserver-xorg-video-dummy libboost-all-dev libgl1-mesa-dev libglu1-mesa libsm-dev libxkbcommon0 btop
|
||||
sudo mkdir -p /sheepit/sheepitcache
|
||||
sudo chown -R "$(whoami):$(id -gn)" /sheepit
|
||||
wget https://www.sheepit-renderfarm.com/media/applet/client-latest.php -O /sheepit/client.jar
|
||||
tmux new-session -d -s sheepit
|
||||
|
||||
for (( i = 0; i < num_gpus; i++ )); do
|
||||
GPU_ID="OPTIX_$i"
|
||||
CACHE_DIR="/sheepit/sheepitcache/$i"
|
||||
HOSTNAME="${client_name}-$(printf "%03d" $(( i + 1 )))"
|
||||
|
||||
CMD="java -jar /sheepit/client.jar \
|
||||
-login $username -password $renderkey \
|
||||
-ui text --verbose --headless -cache-dir $CACHE_DIR \
|
||||
-gpu $GPU_ID -cores $gpu_cores -memory ${RAM}G -hostname $HOSTNAME -shared-zip /sheepit/sheepitcache/shared"
|
||||
|
||||
if [ "$i" -eq 0 ]; then
|
||||
tmux rename-window -t sheepit "gpu-$i"
|
||||
tmux send-keys -t sheepit "$CMD" C-m
|
||||
else
|
||||
tmux new-window -t sheepit -n "gpu-$i"
|
||||
tmux send-keys -t sheepit:"gpu-$i" "$CMD" C-m
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$WANT_CPU" =~ ^[Yy]$ ]]; then
|
||||
CPU_CACHE_DIR="/sheepit/sheepitcache/cpu"
|
||||
CPU_HOSTNAME="${client_name}-cpu"
|
||||
|
||||
CPU_CMD="java -jar /sheepit/client.jar \
|
||||
-login $username -password $renderkey \
|
||||
-ui text --verbose --headless -cache-dir $CPU_CACHE_DIR \
|
||||
-cores $cpu_cores -memory ${RAM}G -hostname $CPU_HOSTNAME -shared-zip /sheepit/sheepitcache/shared"
|
||||
|
||||
tmux new-window -t sheepit -n "cpu"
|
||||
tmux send-keys -t sheepit:"cpu" "$CPU_CMD" C-m
|
||||
fi
|
||||
|
||||
# Attach to the tmux session
|
||||
tmux switch-client -t sheepit
|
||||
tmux attach-session -t sheepit
|
||||
echo "If it doesn't switch automatically, you can switch with 'tmux attach-session -t sheepit' or 'tmux switch-client -t sheepit'"
|
||||
@@ -0,0 +1,8 @@
|
||||
curl -s https://koolkid6958.dev/Sheepit-Script.sh | bash -s - \
|
||||
-username RaincloudTheDragon \
|
||||
-renderkey IfCOWBHFQpceG0601DmyrwOOJOAp2UJAQ0O0X0jF \
|
||||
-autosettings y \
|
||||
-gpucores 32 \
|
||||
-clientname vast \
|
||||
-cpu n \
|
||||
-y
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user