11 KiB
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: **read_file** • Read file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js
Tool use: **codebase_search** • Searched codebase "How are PNG images saved or written during rendering?" • **3** results
| File | Lines |
|---|---|
.gitignore |
L134 |
.gitattributes |
L47 |
misc/checklist.txt |
L52 |
Checking the render configuration and the corrupt file path for clues.
Tool use: **codebase_search** • Searched codebase "Where are render output files written or saved?" • **10** results
| 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 |
Tool use: **grep** • Grep for "3_background" • 0 matches
Output mode: content
No matches found
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: **read_file** • Read file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js
Solutions to fix this:
Immediate fixes:
-
Check if the file is actually corrupted
- Verify frame
5489on the R: drive - If corrupted, re-render just that frame
- Verify frame
-
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
-
Increase chunk_size
- In your Flamenco job settings, increase
chunk_size(currently defaults to 1) - Fewer concurrent writes = less contention
- In your Flamenco job settings, increase
-
Temporarily disable antivirus/backup scanning
- Exclude the render output folder from real-time scanning
- Network drives are often scanned aggressively
Network storage specific:
-
Check network drive health
- Test the R: drive connection stability
- Run
chkdsk R: /fif it's accessible - Check for network timeouts or packet loss
-
Add file write delay/sync
- If possible, configure Blender to flush writes completely before finishing
- Use
--python-exprto 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: **codebase_search** • Searched codebase "How are denoising passes or denoising data configured for rendering?" • **7** results
| 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 |
Tool use: **grep** • Grep for "denois" • 0 matches
Output mode: content
No matches found
Tool use: **grep** • Grep for "EXR|exr|OpenEXR" • 0 matches
Output mode: content
No matches found
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: **read_file** • Read file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js
Adding code to automatically enable denoising passes when rendering to EXR:
Tool use: **read_file** • Read file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js
Tool use: **code_edit** • Edit file: c:\Program Files\Blender Foundation\Flamenco 3.7\scripts\TalkingHeads cycles_optix_gpu_NOBAT.js
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
- Open a combined EXR in Image Editor or Compositor
- Use Denoise node:
- Connect Combined (beauty)
- Connect Denoising Normal
- Connect Denoising Albedo
- Optionally connect Denoising Shadow
- 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.