tag:github.com,2008:https://github.com/ack00gar/FunGen-AI-Powered-Funscript-Generator/releases
Release notes from FunGen-AI-Powered-Funscript-Generator
2025-10-01T17:21:26Z
tag:github.com,2008:Repository/901243922/renamer
2025-10-03T15:16:38Z
VR renamer tool
<h1>VR Video Format Detector & Renamer</h1>
<p>Automatic VR video format detection and renaming tool using simple machine learning.</p>
<p><strong>Feel like saying thank you? Support me here:</strong> <a href="https://ko-fi.com/k00gar" rel="nofollow">https://ko-fi.com/k00gar</a></p>
<h2>Features</h2>
<ul>
<li><strong>ML-based detection</strong>: Uses Random Forest classifier trained on quite some videos</li>
<li><strong>Detects</strong>: Projection type (fisheye, 180°), layout (SBS/TB), alpha channel (including alpha-packed)</li>
<li><strong>Fast</strong>: ~5 seconds per video (optimized FFmpeg extraction)</li>
<li><strong>Batch processing</strong>: Process single files or entire directories recursively</li>
<li><strong>Safe operation</strong>: Dry-run mode by default - preview changes before applying</li>
<li><strong>Cross-platform</strong>: Works on Windows, macOS, Linux</li>
</ul>
<h2>Requirements</h2>
<ul>
<li>Python 3.7+</li>
<li>ffmpeg/ffprobe (must be in PATH)</li>
<li>Dependencies: <code>pip install scikit-learn numpy opencv-python</code></li>
</ul>
<h2>Quick Start</h2>
<h3>Analyze a single video (dry-run):</h3>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python3 vr_rename.py video.mp4"><pre>python3 vr_rename.py video.mp4</pre></div>
<p>Output example:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="============================================================
File: video.mp4
Resolution: 5760x2880
Video Type: VR
Projection: fisheye
Layout: sbs
FOV: 190°
Alpha: Yes
Suggested name: video_FISHEYE_SBS_ALPHA.mp4"><pre class="notranslate"><code>============================================================
File: video.mp4
Resolution: 5760x2880
Video Type: VR
Projection: fisheye
Layout: sbs
FOV: 190°
Alpha: Yes
Suggested name: video_FISHEYE_SBS_ALPHA.mp4
</code></pre></div>
<h3>Rename a single video:</h3>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python3 vr_rename.py video.mp4 --rename"><pre>python3 vr_rename.py video.mp4 --rename</pre></div>
<h3>Process entire directory:</h3>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python3 vr_rename.py /path/to/videos/"><pre>python3 vr_rename.py /path/to/videos/</pre></div>
<h3>Recursively process all subdirectories:</h3>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="python3 vr_rename.py /path/to/videos/ --recursive --rename"><pre>python3 vr_rename.py /path/to/videos/ --recursive --rename</pre></div>
<h2>Usage</h2>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="usage: vr_rename.py [-h] [-r] [--rename] [-v] [-m MODEL] path
positional arguments:
path Video file or directory path
optional arguments:
-h, --help show this help message and exit
-r, --recursive Process directories recursively
--rename Actually rename files (default is dry-run)
-v, --verbose Verbose output
-m MODEL, --model MODEL
Path to model file (default: vr_detector_model_rf.pkl)"><pre class="notranslate"><code>usage: vr_rename.py [-h] [-r] [--rename] [-v] [-m MODEL] path
positional arguments:
path Video file or directory path
optional arguments:
-h, --help show this help message and exit
-r, --recursive Process directories recursively
--rename Actually rename files (default is dry-run)
-v, --verbose Verbose output
-m MODEL, --model MODEL
Path to model file (default: vr_detector_model_rf.pkl)
</code></pre></div>
<h2>Supported Formats</h2>
<ul>
<li><strong>Projections</strong>: fisheye, hemisphere (180°)</li>
<li><strong>Layouts</strong>: SBS (side-by-side), TB (top-bottom)</li>
<li><strong>Alpha channel</strong>: Detects both native alpha and alpha-packed (fisheye only)</li>
<li><strong>Video formats</strong>: MP4, MKV, AVI, MOV, WebM, M4V</li>
</ul>
<h2>Naming Convention</h2>
<p>Generated filenames follow the pattern:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{original_name}_{PROJECTION}_{LAYOUT}_{ALPHA}.{ext}"><pre class="notranslate"><code>{original_name}_{PROJECTION}_{LAYOUT}_{ALPHA}.{ext}
</code></pre></div>
<p>Examples:</p>
<ul>
<li><code>video_FISHEYE_SBS.mp4</code></li>
<li><code>scene_180_TB.mkv</code></li>
<li><code>movie_FISHEYE_SBS_ALPHA.mp4</code></li>
</ul>
<p>Existing VR format tags in filenames are automatically cleaned up before adding new tags.</p>
<h2>Model Information</h2>
<ul>
<li><strong>Type</strong>: Random Forest Classifier</li>
<li><strong>Training samples</strong>: 883 videos with manual validation</li>
<li><strong>Features</strong>: Histogram correlation, edge detection, brightness analysis (20 features)</li>
<li><strong>Performance</strong>: ~5 seconds per video (4K-8K)</li>
</ul>
<h2>Troubleshooting</h2>
<p><strong>"Model file not found"</strong></p>
<ul>
<li>Ensure <code>vr_detector_model_rf.pkl</code> is in the same directory as the script</li>
</ul>
<p><strong>"ffprobe: command not found"</strong></p>
<ul>
<li>Install ffmpeg: <a href="https://ffmpeg.org/download.html" rel="nofollow">https://ffmpeg.org/download.html</a></li>
<li>Ensure ffmpeg/ffprobe are in your system PATH</li>
</ul>
<p><strong>"Could not analyze video"</strong></p>
<ul>
<li>Video file may be corrupted or unsupported format</li>
<li>Check file permissions</li>
</ul>
<h2>Safety Features</h2>
<ul>
<li><strong>Dry-run by default</strong>: Preview changes before applying</li>
<li><strong>Error handling</strong>: Continues processing other files if one fails</li>
<li><strong>Verbose logging</strong>: Track what's happening with <code>-v</code> flag</li>
</ul>
<h2>License</h2>
<p>Free to use and modify.</p>
ack00gar
tag:github.com,2008:Repository/901243922/models-v1.1.0
2025-07-19T07:20:49Z
models-v1.1.0
<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/ack00gar/FunGen-AI-Powered-Funscript-Generator/pull/24">#24</a> from gavonmothma/patch-3</p>
<p>Update README.md</p>
ack00gar