Add files via upload
This commit is contained in:
committed by
GitHub
parent
d0733d0083
commit
dd166ace5d
Binary file not shown.
@@ -0,0 +1,440 @@
|
||||
% =======================================================================================
|
||||
% WARLOCK-STUDIO 2.2 - USER MANUAL & TECHNICAL DOCUMENTATION
|
||||
% =======================================================================================
|
||||
% Manual Version: 5.0 (Final Documented Edition)
|
||||
% Author: Iván Eduardo Chavez Ayub (Reviewed and Improved by AI)
|
||||
%
|
||||
% This document is a robust and professional LaTeX template designed for
|
||||
% technical manuals. It includes a clear structure, custom styles, and a
|
||||
% configuration optimized for readability and aesthetics.
|
||||
% =======================================================================================
|
||||
|
||||
|
||||
% ---------------------------------------------------------------------------------------
|
||||
% DOCUMENT SETUP
|
||||
% ---------------------------------------------------------------------------------------
|
||||
% \documentclass defines the document type and base options.
|
||||
% - 11pt: Base font size. A good balance between density and readability.
|
||||
% - a4paper: Defines the standard international paper size.
|
||||
\documentclass[11pt, a4paper]{article}
|
||||
|
||||
|
||||
% %%% --- PACKAGE IMPORTS --- %%%
|
||||
% Packages add new functionalities to LaTeX.
|
||||
|
||||
% --- Essential Packages ---
|
||||
\usepackage[utf8]{inputenc} % Allows writing UTF-8 characters (like accents) directly.
|
||||
\usepackage[T1]{fontenc} % Modern font encoding for correct display and copying from PDF.
|
||||
\usepackage[english]{babel} % Support for the English language (hyphenation, etc.).
|
||||
|
||||
% --- Page Layout and Design ---
|
||||
\usepackage{geometry} % For configuring margins and page layout.
|
||||
\usepackage{graphicx} % For including images (\includegraphics).
|
||||
\usepackage{fancyhdr} % For customizing headers and footers.
|
||||
\usepackage{xcolor} % To use colors by name or code (HTML, RGB, etc.).
|
||||
\usepackage{float} % Provides the [H] specifier to "float exactly here".
|
||||
|
||||
% --- Typography and Text Style ---
|
||||
% \usepackage{firasans} % EXAMPLE: Modern Sans-Serif font (keep commented if not installed).
|
||||
\usepackage{textcomp} % Provides additional symbols like the copyright symbol.
|
||||
\usepackage{fontawesome5} % Allows using Font Awesome icons (e.g., \faInfoCircle).
|
||||
|
||||
% --- Tables, Lists, and Boxes ---
|
||||
\usepackage{booktabs} % For creating professional-looking tables (\toprule, \midrule, \bottomrule).
|
||||
\usepackage{longtable} % For tables that can span multiple pages.
|
||||
\usepackage{tabularx} % For tables with flexible-width columns that occupy the full text width.
|
||||
\usepackage{array} % Advanced tools for table columns.
|
||||
\usepackage{enumitem} % For advanced control over the format of lists (itemize, enumerate).
|
||||
\usepackage{tcolorbox} % For creating colored and customizable text boxes.
|
||||
\usepackage{titlesec} % For customizing the format of section titles (\section, \subsection).
|
||||
\usepackage{titletoc} % Control over the table of contents.
|
||||
|
||||
% --- Utilities and Links ---
|
||||
\usepackage{hyperref} % To create hyperlinks within the document and to external URLs.
|
||||
% It's good practice to load it last.
|
||||
|
||||
|
||||
% %%% --- PAGE GEOMETRY SETUP --- %%%
|
||||
% Defines the margins and spaces for the header/footer.
|
||||
\geometry{
|
||||
a4paper, % Paper size
|
||||
margin=2.5cm, % Uniform margin for all sides
|
||||
headheight=15pt, % Height reserved for the header
|
||||
footskip=30pt % Distance from the bottom of the text to the footer
|
||||
}
|
||||
|
||||
|
||||
% %%% --- CUSTOM COLOR PALETTE --- %%%
|
||||
% A corporate color palette is defined to maintain visual consistency.
|
||||
% The HTML model is used for easy selection from design tools.
|
||||
\definecolor{WarlockRed}{HTML}{C11919}
|
||||
\definecolor{WarlockGold}{HTML}{ECD125}
|
||||
\definecolor{WarlockDark}{HTML}{212325}
|
||||
\definecolor{WarlockGray}{HTML}{333333}
|
||||
\definecolor{WarlockLightGray}{HTML}{F5F5F5}
|
||||
\definecolor{WarlockBlue}{HTML}{005A9B}
|
||||
\definecolor{InfoBlue}{HTML}{E7F3FE}
|
||||
\definecolor{WarnYellow}{HTML}{FFFBE6}
|
||||
\definecolor{WarnBorder}{HTML}{FFBE0B}
|
||||
|
||||
% Sets the default text color for the entire document.
|
||||
\color{WarlockGray}
|
||||
|
||||
|
||||
% %%% --- HYPERLINK CONFIGURATION --- %%%
|
||||
% Customizes the appearance of links generated by 'hyperref'.
|
||||
\hypersetup{
|
||||
colorlinks=true, % Links will be colored instead of boxed.
|
||||
linkcolor=WarlockRed, % Color for internal links (to sections, figures, etc.).
|
||||
filecolor=WarlockRed, % Color for links to local files.
|
||||
urlcolor=WarlockRed, % Color for links to external URLs.
|
||||
pdftitle={Warlock-Studio 2.2 User Manual & Technical Documentation}, % PDF metadata.
|
||||
pdfauthor={Iván Eduardo Chavez Ayub (Reviewed by AI)} % PDF metadata.
|
||||
}
|
||||
|
||||
|
||||
% %%% --- SECTION TITLE STYLE --- %%%
|
||||
% 'titlesec' is used to define a custom style for sections.
|
||||
% \titleformat{<command>}[<shape>]{<format>}{<label>}{<sep>}{<before-code>}
|
||||
\titleformat{\section}
|
||||
{\normalfont\Large\bfseries\color{WarlockRed}} % Title format: Normal font, Large, bold, red color.
|
||||
{\thesection.} % Label: The section number followed by a period.
|
||||
{1em} % Horizontal separation between the label and the title.
|
||||
{} % Code to execute before the title (none in this case).
|
||||
|
||||
\titleformat{\subsection}
|
||||
{\normalfont\large\bfseries\color{WarlockRed!70!black}} % Similar to \section, but with a darker color.
|
||||
{\thesubsection.}
|
||||
{1em}
|
||||
{}
|
||||
|
||||
% \titlespacing*{<command>}{<left-space>}{<before-space>}{<after-space>}
|
||||
\titlespacing*{\section}
|
||||
{0pt} % Space to the left of the title.
|
||||
{3.5ex plus 1ex minus .2ex} % Vertical space BEFORE the title (with flexibility).
|
||||
{2.3ex plus .2ex} % Vertical space AFTER the title (with flexibility).
|
||||
|
||||
|
||||
% %%% --- CUSTOM TEXT BOX DEFINITIONS --- %%%
|
||||
% 'tcolorbox' is used to create "box" environments for information and warnings.
|
||||
\tcbuselibrary{skins, breakable, shadows} % Additional libraries are loaded for more styles.
|
||||
% 'breakable' allows boxes to split across pages.
|
||||
% 'shadows' adds shadow effects.
|
||||
|
||||
% Box for general information.
|
||||
\newtcolorbox{infobox}{
|
||||
colback=InfoBlue, % Background color of the box.
|
||||
colframe=WarlockBlue, % Border color.
|
||||
fonttitle=\bfseries, % Font for the box title (bold).
|
||||
coltitle=WarlockBlue, % Color of the title text.
|
||||
title=\faInfoCircle\hspace{0.5em} Information, % Title content (icon + text).
|
||||
breakable, % Allows the box to split across pages.
|
||||
pad at break=2mm, % Internal padding when the box breaks.
|
||||
enhanced, % Activates advanced rendering modes.
|
||||
drop shadow={WarlockGray!50!white} % Adds a subtle shadow.
|
||||
}
|
||||
|
||||
% Box for important warnings.
|
||||
\newtcolorbox{warnbox}{
|
||||
colback=WarnYellow,
|
||||
colframe=WarnBorder,
|
||||
fonttitle=\bfseries,
|
||||
coltitle=WarnBorder!80!black,
|
||||
title=\faExclamationTriangle\hspace{0.5em} Warning,
|
||||
breakable,
|
||||
pad at break=2mm,
|
||||
enhanced,
|
||||
drop shadow={WarnBorder!50!white}
|
||||
}
|
||||
|
||||
% Custom command to format inline code.
|
||||
% \newcommand{<name>}[<args>]{<definition>}
|
||||
\newcommand{\inlinecode}[1]{\colorbox{WarlockLightGray}{\small\texttt{#1}}}
|
||||
|
||||
|
||||
% %%% --- HEADER AND FOOTER SETUP --- %%%
|
||||
% 'fancyhdr' is used to control the content of headers and footers.
|
||||
\pagestyle{fancy}
|
||||
\fancyhf{} % Clears all header and footer fields.
|
||||
|
||||
% \fancyhead[L/C/R]{...} defines the header content (Left, Center, Right).
|
||||
\fancyhead[L]{\textit{Warlock-Studio 2.2}}
|
||||
\fancyhead[R]{\leftmark} % \leftmark displays the current section name.
|
||||
|
||||
% \fancyfoot[L/C/R]{...} defines the footer content.
|
||||
\fancyfoot[L]{\includegraphics[height=0.8cm]{logo.png}} % Assumes 'logo.png' is in the same folder.
|
||||
\fancyfoot[C]{\thepage} % Displays the current page number.
|
||||
\fancyfoot[R]{\textcopyright~2025 Warlock-Studio}
|
||||
|
||||
% Defines the thickness of the separator lines.
|
||||
\renewcommand{\headrulewidth}{0.4pt}
|
||||
\renewcommand{\footrulewidth}{0.4pt}
|
||||
|
||||
% Redefines how the section mark is generated to include the number.
|
||||
\renewcommand{\sectionmark}[1]{\markboth{\thesection. #1}{}}
|
||||
|
||||
|
||||
% =======================================================================================
|
||||
% BEGIN DOCUMENT BODY
|
||||
% =======================================================================================
|
||||
\begin{document}
|
||||
|
||||
% %%% --- TITLE PAGE --- %%%
|
||||
% A striking and professional cover page is created using a full-page 'tcolorbox'.
|
||||
\begin{titlepage}
|
||||
\begin{tcolorbox}[
|
||||
%--- Box Style ---
|
||||
colback=WarlockDark, % Dark background.
|
||||
colframe=WarlockGold, % Gold border.
|
||||
sharp corners, % Straight corners instead of rounded.
|
||||
boxrule=1.5pt, % Border thickness.
|
||||
%--- Alignment and Size ---
|
||||
halign=center, % Horizontal content alignment.
|
||||
valign=center, % Vertical content alignment.
|
||||
height=\dimexpr\textheight-1cm\relax % Box height (full text height minus 1cm).
|
||||
]
|
||||
%--- Cover Page Content ---
|
||||
\centering % Centers the internal elements.
|
||||
|
||||
\includegraphics[width=0.5\textwidth]{logo.png}\par % Logo.
|
||||
|
||||
\vfill % Flexible space to push content.
|
||||
|
||||
\color{white} % Changes text color to white for contrast.
|
||||
|
||||
{\Huge\bfseries Warlock-Studio\par}
|
||||
\vspace{0.7cm} % Fixed vertical space.
|
||||
{\Large -- User Manual \& Technical Documentation --\par}
|
||||
\vspace{0.2cm}
|
||||
{\Large Version 2.2\par}
|
||||
|
||||
\vfill % Another flexible space.
|
||||
|
||||
{\large Iván Eduardo Chavez Ayub\par}
|
||||
\href{https://github.com/Ivan-Ayub97}{\texttt{\color{WarlockGold}@Ivan-Ayub97 on GitHub}}\par % Styled link.
|
||||
|
||||
\vspace{1.5cm}
|
||||
|
||||
{\large \today\par} % Displays the compilation date.
|
||||
\end{tcolorbox}
|
||||
\thispagestyle{empty} % Hides header and footer on the cover page.
|
||||
\end{titlepage}
|
||||
|
||||
|
||||
% %%% --- ABSTRACT AND TABLE OF CONTENTS --- %%%
|
||||
\pagestyle{fancy} % Restores the 'fancy' page style after the cover page.
|
||||
|
||||
% The 'abstract' environment creates a summary of the document.
|
||||
\begin{abstract}
|
||||
\noindent % Prevents indentation on the first line.
|
||||
This document is a comprehensive technical guide for Warlock-Studio 2.2. The information has been validated and enriched with a deep analysis of the source code to provide precise details about its architecture, an advanced optimization guide, and a robust troubleshooting manual.
|
||||
\end{abstract}
|
||||
|
||||
\newpage % Page break before the table of contents.
|
||||
\tableofcontents % Generates the table of contents automatically.
|
||||
\newpage % Page break after the table of contents.
|
||||
|
||||
|
||||
% %%% --- MAIN BODY OF THE MANUAL --- %%%
|
||||
|
||||
% --- Section 1: Introduction ---
|
||||
\section{Introduction}
|
||||
Warlock-Studio is an AI-powered media enhancement and upscaling suite, designed to deliver high-quality results through an accessible user interface. Version 2.2 introduces key improvements in stability, performance, and user experience, establishing it as a robust tool for content creators and enthusiasts.
|
||||
|
||||
\subsection{What's New in Version 2.2}
|
||||
The code analysis reveals the following substantial improvements:
|
||||
% 'itemize' is used for bulleted lists. [leftmargin=*] aligns the list with the paragraph margin.
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \textbf{Thread Management and Safe Closures:} Concurrency management has been improved using \texttt{Lock} and \texttt{RLock} to ensure the process state is updated safely and to prevent race conditions when processing videos. The process termination (\texttt{terminate}) is now more robust.
|
||||
\item \textbf{Proactive Memory Optimization:} During long video processing, the application now explicitly calls Python's garbage collector (\texttt{gc.collect()}) after processing batches of frames, significantly reducing the likelihood of out-of-memory errors.
|
||||
\item \textbf{GPU Error Handling:} A specific handler for GPU memory errors during video upscaling has been added. If an "out of memory" error is detected, the application automatically reduces the \textit{tile} size and retries the process.
|
||||
\item \textbf{Splash Screen:} A 10-second splash screen has been added, improving the perception of the application's initial load time.
|
||||
\item \textbf{Logging and Diagnostics:} The application creates log files (\texttt{warlock\_studio.log} and \texttt{error\_log.txt}) in the user's \textbf{Documents} folder, making it easier to diagnose problems.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Main Features}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \textbf{AI Upscaling:} Uses state-of-the-art models like Real-ESRGAN, BSRGAN, and SRVGGNetCompact.
|
||||
\item \textbf{Frame Interpolation:} Increases FPS or creates smooth slow-motion effects using RIFE models.
|
||||
\item \textbf{Noise Reduction:} Includes dedicated IRCNN models for cleaning images and videos.
|
||||
\item \textbf{Hardware Acceleration:} Uses the ONNX Runtime engine with the DirectML provider (\texttt{DmlExecutionProvider}) for GPU acceleration compatible with DirectX 12.
|
||||
\item \textbf{Advanced Video Encoding:} Supports hardware-accelerated encoders from NVIDIA (NVENC), AMD (AMF), and Intel (QSV).
|
||||
\end{itemize}
|
||||
|
||||
|
||||
% --- Section 2: Installation ---
|
||||
\section{Installation and Program Architecture}
|
||||
|
||||
\subsection{System Requirements}
|
||||
% 'table' is used for tables that don't split across pages. [H] forces its position.
|
||||
\begin{table}[H]
|
||||
\centering % Centers the table on the page.
|
||||
% 'tabular' is the environment that draws the table. {ll} defines two left-aligned columns.
|
||||
\begin{tabular}{ll}
|
||||
\toprule % Top line of the table (from booktabs).
|
||||
\textbf{Component} & \textbf{Requirement} \\
|
||||
\midrule % Middle line of the table (from booktabs).
|
||||
Operating System & Windows 10 (64-bit) or later \\
|
||||
RAM & 8 GB (Minimum), 16 GB (Recommended) \\
|
||||
Graphics Card (GPU) & \textbf{DirectX 12} compatible. \textbf{Recommended: 4+ GB VRAM}. \\
|
||||
Storage & 2 GB of free space. An SSD is recommended for better performance. \\
|
||||
\bottomrule % Bottom line of the table (from booktabs).
|
||||
\end{tabular}
|
||||
\caption{Hardware and software requirements for Warlock-Studio 2.2.}
|
||||
\end{table}
|
||||
|
||||
\subsection{File Structure and Dependencies}
|
||||
\begin{infobox}
|
||||
Warlock-Studio is a self-contained application. The following components are included in the installation and require no action from the user.
|
||||
\end{infobox}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \inlinecode{ffmpeg.exe:} Located in the \texttt{Assets} folder, it is the engine for all video manipulation, encoding, and decoding.
|
||||
\item \inlinecode{exiftool.exe:} Also in \texttt{Assets}, it is used to read and write metadata (EXIF, XMP), ensuring that the original file information is preserved.
|
||||
\item \textbf{AI Models:} The models in \texttt{.onnx} format are located in the \texttt{AI-onnx} folder.
|
||||
\item \textbf{User Preferences:} A file named \inlinecode{Warlock-Studio_2.2_UserPreference.json} is saved in the user's \textbf{Documents} folder.
|
||||
\item \textbf{Logs:} Log files are stored in \texttt{Documents\textbackslash Warlock-Studio_2.2_Logs}.
|
||||
\end{itemize}
|
||||
|
||||
|
||||
% --- Section 3: Model Guide ---
|
||||
\section{Detailed Guide to AI Models}
|
||||
The choice of AI model is the most important factor for quality and processing time.
|
||||
|
||||
\subsection{Model Comparison Table}
|
||||
The following table details the relative VRAM usage of each model.
|
||||
% 'longtable' is for tables that can span multiple pages. The column definition is similar to 'tabular'.
|
||||
% 'p{<width>}' is used for the last column, creating a fixed-width paragraph with automatic line wrapping.
|
||||
\begin{longtable}{l l c c p{6.5cm}}
|
||||
\toprule
|
||||
\textbf{Model} & \textbf{Main Function} & \textbf{Scale} & \textbf{VRAM Weight} & \textbf{Recommended Use Case} \\
|
||||
\midrule
|
||||
\endhead % \endhead defines the header that will be repeated on each page.
|
||||
|
||||
\multicolumn{5}{c}{\textit{Denoising Models}} \\
|
||||
\midrule
|
||||
\texttt{IRCNN\_Mx1} & Denoise & x1 & 4.0 & Moderate noise. \\
|
||||
\texttt{IRCNN\_Lx1} & Denoise & x1 & 4.0 & Intense noise. \\
|
||||
\midrule
|
||||
\multicolumn{5}{c}{\textit{High-Quality Upscaling Models (Slow)}} \\
|
||||
\midrule
|
||||
\texttt{BSRGANx4} & Upscale & x4 & 0.6 & Realistic photos. Excellent fine detail. \\
|
||||
\texttt{BSRGANx2} & Upscale & x2 & 0.7 & Similar to x4 but for a smaller upscale. \\
|
||||
\texttt{RealESRGANx4} & Upscale & x4 & 0.6 & General purpose, good for textures. \\
|
||||
\texttt{RealESRNetx4} & Upscale & x4 & 2.2 & Alternative to RealESRGAN, can be faster. \\
|
||||
\midrule
|
||||
\multicolumn{5}{c}{\textit{High-Speed Upscaling Models (Lightweight)}} \\
|
||||
\midrule
|
||||
\texttt{RealESR\_Gx4} & Upscale & x4 & 2.2 & Fast upscaling, ideal for videos. \\
|
||||
\texttt{RealESR\_Animex4} & Upscale & x4 & 2.2 & Optimized for anime and cartoons. \\
|
||||
\midrule
|
||||
\multicolumn{5}{c}{\textit{Frame Interpolation Models (Video Only)}} \\
|
||||
\midrule
|
||||
\texttt{RIFE} & Interpolate & N/A & N/A & Maximum interpolation quality. \\
|
||||
\texttt{RIFE\_Lite} & Interpolate & N/A & N/A & Faster version, ideal for GPUs with < 4 GB VRAM. \\
|
||||
\bottomrule
|
||||
\caption{Guide to AI model selection and their impact on VRAM.}
|
||||
\label{tab:modelos} % \label to be able to reference the table with \ref{tab:modelos}.
|
||||
\end{longtable}
|
||||
|
||||
|
||||
% --- Section 4: Optimization ---
|
||||
\section{Configuration and Performance Optimization}
|
||||
|
||||
\subsection{Critical Performance Parameters}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \textbf{Input Resolution \%:} The most effective adjustment for speed. It reduces the resolution before processing it with AI. A value between \textbf{50\% and 75\%} is usually ideal.
|
||||
\item \textbf{GPU VRAM Limiter (GB):} Define your GPU's VRAM. It is used to calculate the size of the processing \textit{tiles} and prevent memory errors.
|
||||
\item \textbf{AI Multithreading:} For videos only. It processes multiple frames in parallel, speeding up the process but consuming more VRAM and CPU.
|
||||
\item \textbf{AI Blending:} Blends the original image with the processed image. Useful for reducing artifacts when using a low \textit{Input Resolution}.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{The User Preferences File}
|
||||
The \inlinecode{Warlock-Studio_2.2_UserPreference.json} file saves your settings.
|
||||
% 'tabularx' is used for the table to automatically occupy 100% of the text width.
|
||||
% The 'X' column is a flexible column that expands to fill the available space.
|
||||
\begin{table}[H]
|
||||
\centering
|
||||
\small % Reduces the font size inside the table.
|
||||
\begin{tabularx}{\textwidth}{l X}
|
||||
\toprule
|
||||
\textbf{JSON Key} & \textbf{Description} \\
|
||||
\midrule
|
||||
\texttt{default\_AI\_model} & The last selected AI model. \\
|
||||
\texttt{default\_AI\_multithreading} & The number of processing threads for video. \\
|
||||
\texttt{default\_gpu} & The last selected GPU (Auto, GPU 1, etc.). \\
|
||||
\texttt{default\_keep\_frames} & Whether to keep the video frames ("ON" or "OFF"). \\
|
||||
\texttt{default\_image\_extension} & Default image extension (\texttt{.png}, \texttt{.jpg}, etc.). \\
|
||||
\texttt{default\_video\_extension} & Default video extension (\texttt{.mp4}, \texttt{.mkv}, etc.). \\
|
||||
\texttt{default\_video\_codec} & The default video encoder (x264, hevc\_nvenc, etc.). \\
|
||||
\texttt{default\_blending} & The selected blending level (Low, Medium, High). \\
|
||||
\texttt{default\_output\_path} & The last selected output path. \\
|
||||
\texttt{default\_input\_resize\_factor} & The input resolution percentage value. \\
|
||||
\texttt{default\_output\_resize\_factor} & The output resolution percentage value. \\
|
||||
\texttt{default\_VRAM\_limiter} & The GPU VRAM limiter value. \\
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
\caption{Keys saved in the user preferences file.}
|
||||
\end{table}
|
||||
|
||||
% --- Section 5: Troubleshooting ---
|
||||
\section{Advanced Troubleshooting Guide}
|
||||
\begin{warnbox}
|
||||
The \textbf{Number 1} cause of errors is \textbf{special characters} in file paths and names. Avoid using: \texttt{', ", @, \#, \$, \%, \&, *, [, ], ?, etc.}.
|
||||
\end{warnbox}
|
||||
|
||||
% 'description' is for definition lists.
|
||||
% [style=nextline] places the text on the line following the term.
|
||||
\begin{description}[leftmargin=*, style=nextline, itemsep=0.8em]
|
||||
\item[\faBan\ Error: "FFmpeg encoding failed: Invalid argument"]
|
||||
\textbf{Cause:} Invalid file name or path.
|
||||
\textbf{Solution:} Rename the file and/or its containing folder, removing any special characters.
|
||||
|
||||
\item[\faMemory\ Error: "out of memory" or unexpected crash]
|
||||
\textbf{Cause:} The GPU ran out of video memory (VRAM).
|
||||
\textbf{Solution:}
|
||||
% 'enumerate' is for numbered lists. 'nosep' reduces space between items.
|
||||
\begin{enumerate}[nosep, leftmargin=*]
|
||||
\item Lower the \textbf{VRAM Limiter} to a value equal to or less than your GPU's actual VRAM.
|
||||
\item Lower the \textbf{Input Resolution \%} to 75\% or less.
|
||||
\item For videos, decrease the \textbf{AI Multithreading} threads or turn it "OFF".
|
||||
\item The application will try to recover from this error automatically.
|
||||
\end{enumerate}
|
||||
|
||||
\item[\faTachometerAlt\ Error: "cannot convert float NaN to integer"]
|
||||
\textbf{Cause:} GPU driver timeout, often due to overload or overheating.
|
||||
\textbf{Solution:} Restart the process \textbf{without deleting the generated frames folder}. The application will read the existing frames and resume work from where it failed.
|
||||
|
||||
\item[\faVolumeMute\ Issue: Output video has no audio]
|
||||
\textbf{Cause:} The original video had no audio track, a \textit{Slowmotion} mode was used, or the audio codec was incompatible.
|
||||
\textbf{Solution:} The program first tries to copy the audio stream directly. If that fails, it tries to re-encode to AAC. If all fails, it saves the video without audio. Using the \inlinecode{.mkv} container for the output may help.
|
||||
|
||||
\item[\faQuestionCircle\ Issue: Application won't open or closes on startup]
|
||||
\textbf{Cause:} Corrupt settings, lack of permissions, or an environment error.
|
||||
\textbf{Solution:}
|
||||
\begin{enumerate}[nosep, leftmargin=*]
|
||||
\item Go to your \textbf{Documents} folder and delete the \inlinecode{Warlock-Studio_2.2_UserPreference.json} file.
|
||||
\item Check the log files in \texttt{Documents\textbackslash Warlock-Studio_2.2_Logs} for detailed error messages.
|
||||
\item Ensure your GPU drivers are up to date.
|
||||
\end{enumerate}
|
||||
\end{description}
|
||||
|
||||
% --- Section 6: Architecture ---
|
||||
\section{Advanced Architecture and Processes}
|
||||
|
||||
\subsection{Inference Engine and Hardware Acceleration}
|
||||
Warlock-Studio uses \textbf{ONNX Runtime} with the \textbf{DirectML} provider (\inlinecode{DmlExecutionProvider}). This translates AI operations into \textbf{DirectX 12} calls, ensuring broad compatibility with NVIDIA, AMD, and Intel GPUs.
|
||||
|
||||
\subsection{Tiling System and Memory Management}
|
||||
To handle high-resolution files, the application splits each frame into fragments (\textit{tiles}). The size of these tiles is dynamically calculated using the \textbf{VRAM Limiter}. Additionally, Python's garbage collector (\inlinecode{gc.collect()}) is invoked to force memory release and ensure stability.
|
||||
|
||||
\subsection{Resume and Checkpoint Functionality}
|
||||
If a video process is interrupted, the processed frames are saved. When restarting the task, the \inlinecode{check\_video\_upscaling\_resume} function detects these files and resumes work from where it left off, saving time.
|
||||
|
||||
\subsection{Asynchronous Frame Writing}
|
||||
During video upscaling, the frames processed by the GPU are sent to a separate writer thread. This allows the GPU to immediately start processing the next batch without waiting for the (slower) disk writing operation to finish, thus maximizing performance.
|
||||
|
||||
|
||||
% =======================================================================================
|
||||
% END OF DOCUMENT
|
||||
% =======================================================================================
|
||||
\end{document}
|
||||
Binary file not shown.
@@ -0,0 +1,429 @@
|
||||
% ---------------------------------------------------------------------------------------
|
||||
% CONFIGURACIÓN DEL DOCUMENTO
|
||||
% ---------------------------------------------------------------------------------------
|
||||
% \documentclass define el tipo de documento y las opciones base.
|
||||
% - 11pt: Tamaño de fuente base. Un buen equilibrio entre densidad y legibilidad.
|
||||
% - a4paper: Define el tamaño del papel estándar internacional.
|
||||
\documentclass[11pt, a4paper]{article}
|
||||
|
||||
|
||||
% %%% --- IMPORTACIÓN DE PAQUETES --- %%%
|
||||
% Los paquetes añaden nuevas funcionalidades a LaTeX.
|
||||
|
||||
% --- Paquetes Esenciales ---
|
||||
\usepackage[utf8]{inputenc} % Permite escribir caracteres UTF-8 (acentos, ñ) directamente.
|
||||
\usepackage[T1]{fontenc} % Codificación de fuentes moderna para una correcta visualización y copiado de PDF.
|
||||
\usepackage[spanish,es-noshorthands]{babel} % Soporte para el idioma español. La opción 'es-noshorthands' es
|
||||
% CRÍTICA para evitar conflictos con otros paquetes.
|
||||
|
||||
% --- Configuración de Página y Diseño ---
|
||||
\usepackage{geometry} % Para configurar los márgenes y el diseño de la página.
|
||||
\usepackage{graphicx} % Para incluir imágenes (\includegraphics).
|
||||
\usepackage{fancyhdr} % Para personalizar encabezados y pies de página.
|
||||
\usepackage{xcolor} % Para usar colores por nombre o código (HTML, RGB, etc.).
|
||||
\usepackage{float} % Proporciona el especificador [H] para "flotar aquí exactamente".
|
||||
|
||||
% --- Tipografía y Estilo de Texto ---
|
||||
% \usepackage{firasans} % EJEMPLO: Fuente Sans-Serif moderna (mantener comentada si no está instalada).
|
||||
\usepackage{textcomp} % Provee símbolos adicionales como el de copyright.
|
||||
\usepackage{fontawesome5} % Permite usar iconos de Font Awesome (ej: \faInfoCircle).
|
||||
|
||||
% --- Tablas, Listas y Cajas ---
|
||||
\usepackage{booktabs} % Para crear tablas de aspecto profesional (\toprule, \midrule, \bottomrule).
|
||||
\usepackage{longtable} % Para tablas que pueden ocupar varias páginas.
|
||||
\usepackage{tabularx} % Para tablas con columnas de ancho flexible que ocupan todo el ancho del texto.
|
||||
\usepackage{array} % Herramientas avanzadas para columnas en tablas.
|
||||
\usepackage{enumitem} % Para un control avanzado sobre el formato de las listas (itemize, enumerate).
|
||||
\usepackage{tcolorbox} % Para crear cajas de texto coloreadas y personalizables.
|
||||
\usepackage{titlesec} % Para personalizar el formato de los títulos de sección (\section, \subsection).
|
||||
\usepackage{titletoc} % Control sobre la tabla de contenidos.
|
||||
|
||||
% --- Utilidades y Enlaces ---
|
||||
\usepackage{hyperref} % Para crear hipervínculos dentro del documento y a URLs externas.
|
||||
% Es una buena práctica cargarlo al final.
|
||||
|
||||
|
||||
% %%% --- CONFIGURACIÓN DE GEOMETRÍA DE LA PÁGINA --- %%%
|
||||
% Se definen los márgenes y espacios para el encabezado/pie de página.
|
||||
\geometry{
|
||||
a4paper, % Tamaño de papel
|
||||
margin=2.5cm, % Margen uniforme para todos los lados
|
||||
headheight=15pt, % Altura reservada para el encabezado
|
||||
footskip=30pt % Distancia desde el final del texto hasta el pie de página
|
||||
}
|
||||
|
||||
|
||||
% %%% --- PALETA DE COLORES PERSONALIZADA --- %%%
|
||||
% Se define una paleta de colores corporativa para mantener la consistencia visual.
|
||||
% Se usa el modelo HTML para una fácil selección desde herramientas de diseño.
|
||||
\definecolor{WarlockRed}{HTML}{C11919}
|
||||
\definecolor{WarlockGold}{HTML}{ECD125}
|
||||
\definecolor{WarlockDark}{HTML}{212325}
|
||||
\definecolor{WarlockGray}{HTML}{333333}
|
||||
\definecolor{WarlockLightGray}{HTML}{F5F5F5}
|
||||
\definecolor{WarlockBlue}{HTML}{005A9B}
|
||||
\definecolor{InfoBlue}{HTML}{E7F3FE}
|
||||
\definecolor{WarnYellow}{HTML}{FFFBE6}
|
||||
\definecolor{WarnBorder}{HTML}{FFBE0B}
|
||||
|
||||
% Se establece el color de texto por defecto para todo el documento.
|
||||
\color{WarlockGray}
|
||||
|
||||
|
||||
% %%% --- CONFIGURACIÓN DE HIPERVÍNCULOS --- %%%
|
||||
% Se personaliza la apariencia de los enlaces generados por 'hyperref'.
|
||||
\hypersetup{
|
||||
colorlinks=true, % Los enlaces serán coloreados en lugar de encajonados.
|
||||
linkcolor=WarlockRed, % Color para enlaces internos (a secciones, figuras, etc.).
|
||||
filecolor=WarlockRed, % Color para enlaces a archivos locales.
|
||||
urlcolor=WarlockRed, % Color para enlaces a URLs externas.
|
||||
pdftitle={Warlock-Studio 2.2 User Manual & Technical Documentation}, % Metadatos del PDF.
|
||||
pdfauthor={Iván Eduardo Chavez Ayub (Revisado por IA)} % Metadatos del PDF.
|
||||
}
|
||||
|
||||
|
||||
% %%% --- ESTILO DE TÍTULOS DE SECCIÓN --- %%%
|
||||
% Se usa 'titlesec' para definir un estilo personalizado para las secciones.
|
||||
% \titleformat{<comando>}[<forma>]{<formato>}{<etiqueta>}{<separación>}{<código-antes>}
|
||||
\titleformat{\section}
|
||||
{\normalfont\Large\bfseries\color{WarlockRed}} % Formato del título: Fuente normal, grande, negrita, color rojo.
|
||||
{\thesection.} % Etiqueta: El número de la sección seguido de un punto.
|
||||
{1em} % Separación horizontal entre la etiqueta y el título.
|
||||
{} % Código a ejecutar antes del título (en este caso, ninguno).
|
||||
|
||||
\titleformat{\subsection}
|
||||
{\normalfont\large\bfseries\color{WarlockRed!70!black}} % Similar a \section, pero con un color más oscuro.
|
||||
{\thesubsection.}
|
||||
{1em}
|
||||
{}
|
||||
|
||||
% \titlespacing*{<comando>}{<espacio-izq>}{<espacio-arriba>}{<espacio-abajo>}
|
||||
\titlespacing*{\section}
|
||||
{0pt} % Espaciado a la izquierda del título.
|
||||
{3.5ex plus 1ex minus .2ex} % Espaciado vertical ANTES del título (con flexibilidad).
|
||||
{2.3ex plus .2ex} % Espaciado vertical DESPUÉS del título (con flexibilidad).
|
||||
|
||||
|
||||
% %%% --- DEFINICIÓN DE CAJAS DE TEXTO PERSONALIZADAS --- %%%
|
||||
% Se usa 'tcolorbox' para crear entornos de "cajas" para información y advertencias.
|
||||
\tcbuselibrary{skins, breakable, shadows} % Se cargan bibliotecas adicionales para más estilos.
|
||||
% 'breakable' permite que las cajas se dividan entre páginas.
|
||||
% 'shadows' añade efectos de sombra.
|
||||
|
||||
% Caja para información general.
|
||||
\newtcolorbox{infobox}{
|
||||
colback=InfoBlue, % Color de fondo de la caja.
|
||||
colframe=WarlockBlue, % Color del borde.
|
||||
fonttitle=\bfseries, % Fuente del título de la caja (negrita).
|
||||
coltitle=WarlockBlue, % Color del texto del título.
|
||||
title=\faInfoCircle\hspace{0.5em} Información, % Contenido del título (icono + texto).
|
||||
breakable, % Permite que la caja se parta entre páginas.
|
||||
pad at break=2mm, % Espaciado interno cuando la caja se rompe.
|
||||
enhanced, % Activa modos de renderizado avanzados.
|
||||
drop shadow={WarlockGray!50!white} % Añade una sombra sutil.
|
||||
}
|
||||
|
||||
% Caja para advertencias importantes.
|
||||
\newtcolorbox{warnbox}{
|
||||
colback=WarnYellow,
|
||||
colframe=WarnBorder,
|
||||
fonttitle=\bfseries,
|
||||
coltitle=WarnBorder!80!black,
|
||||
title=\faExclamationTriangle\hspace{0.5em} Advertencia,
|
||||
breakable,
|
||||
pad at break=2mm,
|
||||
enhanced,
|
||||
drop shadow={WarnBorder!50!white}
|
||||
}
|
||||
|
||||
% Comando personalizado para formatear código en línea.
|
||||
% \newcommand{<nombre>}[<argumentos>]{<definición>}
|
||||
\newcommand{\inlinecode}[1]{\colorbox{WarlockLightGray}{\small\texttt{#1}}}
|
||||
|
||||
|
||||
% %%% --- CONFIGURACIÓN DE ENCABEZADO Y PIE DE PÁGINA --- %%%
|
||||
% Se usa 'fancyhdr' para controlar el contenido de encabezados y pies.
|
||||
\pagestyle{fancy}
|
||||
\fancyhf{} % Limpia todos los campos del encabezado y pie de página.
|
||||
|
||||
% \fancyhead[L/C/R]{...} define el contenido de la cabecera (Izquierda, Centro, Derecha).
|
||||
\fancyhead[L]{\textit{Warlock-Studio 2.2}}
|
||||
\fancyhead[R]{\leftmark} % \leftmark muestra el nombre de la sección actual.
|
||||
|
||||
% \fancyfoot[L/C/R]{...} define el contenido del pie de página.
|
||||
\fancyfoot[L]{\includegraphics[height=0.8cm]{logo.png}} % Asume que 'logo.png' está en la misma carpeta.
|
||||
\fancyfoot[C]{\thepage} % Muestra el número de página actual.
|
||||
\fancyfoot[R]{\textcopyright~2025 Warlock-Studio}
|
||||
|
||||
% Se definen los grosores de las líneas de separación.
|
||||
\renewcommand{\headrulewidth}{0.4pt}
|
||||
\renewcommand{\footrulewidth}{0.4pt}
|
||||
|
||||
% Se redefine cómo se genera la marca de sección para que incluya el número.
|
||||
\renewcommand{\sectionmark}[1]{\markboth{\thesection. #1}{}}
|
||||
|
||||
|
||||
% =======================================================================================
|
||||
% INICIO DEL CUERPO DEL DOCUMENTO
|
||||
% =======================================================================================
|
||||
\begin{document}
|
||||
|
||||
% %%% --- PÁGINA DE TÍTULO --- %%%
|
||||
% Se crea una portada impactante y profesional usando un 'tcolorbox' a toda página.
|
||||
\begin{titlepage}
|
||||
\begin{tcolorbox}[
|
||||
%--- Estilo de la caja ---
|
||||
colback=WarlockDark, % Fondo oscuro.
|
||||
colframe=WarlockGold, % Borde dorado.
|
||||
sharp corners, % Esquinas rectas en lugar de redondeadas.
|
||||
boxrule=1.5pt, % Grosor del borde.
|
||||
%--- Alineación y Tamaño ---
|
||||
halign=center, % Alineación horizontal del contenido.
|
||||
valign=center, % Alineación vertical del contenido.
|
||||
height=\dimexpr\textheight-1cm\relax % Altura de la caja (toda la altura del texto menos 1cm).
|
||||
]
|
||||
%--- Contenido de la Portada ---
|
||||
\centering % Centra los elementos internos.
|
||||
|
||||
\includegraphics[width=0.5\textwidth]{logo.png}\par % Logo.
|
||||
|
||||
\vfill % Espacio flexible para empujar el contenido.
|
||||
|
||||
\color{white} % Cambia el color del texto a blanco para contraste.
|
||||
|
||||
{\Huge\bfseries Warlock-Studio\par}
|
||||
\vspace{0.7cm} % Espacio vertical fijo.
|
||||
{\Large -- Manual Técnico del Usuario y Documentación --\par}
|
||||
\vspace{0.2cm}
|
||||
{\Large Versión 2.2\par}
|
||||
|
||||
\vfill % Otro espacio flexible.
|
||||
|
||||
{\large Iván Eduardo Chavez Ayub\par}
|
||||
\href{https://github.com/Ivan-Ayub97}{\texttt{\color{WarlockGold}@Ivan-Ayub97 en GitHub}}\par % Enlace con estilo.
|
||||
|
||||
\vspace{1.5cm}
|
||||
|
||||
{\large \today\par} % Muestra la fecha de compilación.
|
||||
\end{tcolorbox}
|
||||
\thispagestyle{empty} % Oculta el encabezado y pie de página en la portada.
|
||||
\end{titlepage}
|
||||
|
||||
|
||||
% %%% --- RESUMEN Y TABLA DE CONTENIDOS --- %%%
|
||||
\pagestyle{fancy} % Restaura el estilo de página 'fancy' después de la portada.
|
||||
|
||||
% El entorno 'abstract' crea un resumen del documento.
|
||||
\begin{abstract}
|
||||
\noindent % Evita la sangría en la primera línea.
|
||||
Este documento es una guía técnica exhaustiva para Warlock-Studio 2.2. La información ha sido validada y enriquecida con un análisis profundo del código fuente para proporcionar detalles precisos sobre su arquitectura, una guía de optimización avanzada y un manual de solución de problemas robusto.
|
||||
\end{abstract}
|
||||
|
||||
\newpage % Salto de página antes de la tabla de contenidos.
|
||||
\tableofcontents % Genera la tabla de contenidos automáticamente.
|
||||
\newpage % Salto de página después de la tabla de contenidos.
|
||||
|
||||
|
||||
% %%% --- CUERPO PRINCIPAL DEL MANUAL --- %%%
|
||||
|
||||
% --- Sección 1: Introducción ---
|
||||
\section{Introducción}
|
||||
Warlock-Studio es una suite de mejora y escalado de medios impulsada por IA, diseñada para ofrecer resultados de alta calidad a través de una interfaz de usuario accesible. La versión 2.2 introduce mejoras clave en estabilidad, rendimiento y la experiencia del usuario, consolidándose como una herramienta robusta para creadores de contenido y entusiastas.
|
||||
|
||||
\subsection{Novedades en la Versión 2.2}
|
||||
El análisis del código revela las siguientes mejoras sustanciales:
|
||||
% Se usa 'itemize' para listas con viñetas. [leftmargin=*] alinea la lista con el margen del párrafo.
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \textbf{Gestión de Hilos y Cierres Seguros:} Se ha mejorado la gestión de concurrencia mediante \texttt{Lock} y \texttt{RLock} para garantizar que el estado del proceso se actualice de forma segura y se eviten condiciones de carrera al procesar videos. La terminación del proceso (\texttt{terminate}) ahora es más robusta.
|
||||
\item \textbf{Optimización de Memoria Proactiva:} Durante el procesamiento de videos largos, la aplicación ahora invoca explícitamente al recolector de basura de Python (\texttt{gc.collect()}) después de procesar lotes de fotogramas, reduciendo significativamente la probabilidad de errores de memoria insuficiente.
|
||||
\item \textbf{Manejo de Errores de GPU:} Se ha añadido un manejador específico para errores de memoria de la GPU durante el escalado de video. Si se detecta un error "out of memory", la aplicación reduce automáticamente el tamaño de los \textit{tiles} y reintenta el proceso.
|
||||
\item \textbf{Pantalla de Bienvenida (Splash Screen):} Se ha añadido una pantalla de inicio de 10 segundos que mejora la percepción de la carga inicial de la aplicación.
|
||||
\item \textbf{Registro (Logging) y Diagnóstico:} La aplicación crea archivos de registro (\texttt{warlock\_studio.log} y \texttt{error\_log.txt}) en la carpeta de \textbf{Documentos} del usuario, facilitando el diagnóstico de problemas.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Características Principales}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \textbf{Escalado por IA:} Utiliza modelos de última generación como Real-ESRGAN, BSRGAN y SRVGGNetCompact.
|
||||
\item \textbf{Interpolación de Fotogramas:} Aumenta los FPS o crea efectos de cámara lenta fluidos usando modelos RIFE.
|
||||
\item \textbf{Reducción de Ruido:} Incluye modelos IRCNN dedicados a la limpieza de imágenes y videos.
|
||||
\item \textbf{Aceleración por Hardware:} Usa el motor ONNX Runtime con el proveedor DirectML (\texttt{DmlExecutionProvider}) para una aceleración por GPU compatible con DirectX 12.
|
||||
\item \textbf{Codificación de Video Avanzada:} Soporte para codificadores acelerados por hardware de NVIDIA (NVENC), AMD (AMF) e Intel (QSV).
|
||||
\end{itemize}
|
||||
|
||||
|
||||
% --- Sección 2: Instalación ---
|
||||
\section{Instalación y Arquitectura del Programa}
|
||||
|
||||
\subsection{Requisitos del Sistema}
|
||||
% Se usa 'table' para tablas que no se dividen entre páginas. [H] fuerza su posición.
|
||||
\begin{table}[H]
|
||||
\centering % Centra la tabla en la página.
|
||||
% 'tabular' es el entorno que dibuja la tabla. {ll} define dos columnas alineadas a la izquierda.
|
||||
\begin{tabular}{ll}
|
||||
\toprule % Línea superior de la tabla (de booktabs).
|
||||
\textbf{Componente} & \textbf{Requisito} \\
|
||||
\midrule % Línea media de la tabla (de booktabs).
|
||||
Sistema Operativo & Windows 10 (64-bit) o posterior \\
|
||||
Memoria RAM & 8 GB (Mínimo), 16 GB (Recomendado) \\
|
||||
Tarjeta Gráfica (GPU) & Compatible con \textbf{DirectX 12}. \textbf{Recomendado: 4+ GB VRAM}. \\
|
||||
Almacenamiento & 2 GB de espacio libre. Se recomienda un SSD para un mejor rendimiento. \\
|
||||
\bottomrule % Línea inferior de la tabla (de booktabs).
|
||||
\end{tabular}
|
||||
\caption{Requisitos de hardware y software para Warlock-Studio 2.2.}
|
||||
\end{table}
|
||||
|
||||
\subsection{Estructura de Archivos y Dependencias}
|
||||
\begin{infobox}
|
||||
Warlock-Studio es una aplicación autocontenida. Los siguientes componentes se incluyen en la instalación y no requieren acción por parte del usuario.
|
||||
\end{infobox}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \inlinecode{ffmpeg.exe:} Ubicado en la carpeta \texttt{Assets}, es el motor para toda la manipulación, codificación y decodificación de video.
|
||||
\item \inlinecode{exiftool.exe:} También en \texttt{Assets}, se utiliza para leer y escribir metadatos (EXIF, XMP), asegurando que la información original del archivo se preserve.
|
||||
\item \textbf{Modelos IA:} Los modelos en formato \texttt{.onnx} se encuentran en la carpeta \texttt{AI-onnx}.
|
||||
\item \textbf{Preferencias de Usuario:} Se guarda un archivo \inlinecode{Warlock-Studio_2.2_UserPreference.json} en la carpeta de \textbf{Documentos} del usuario.
|
||||
\item \textbf{Registros (Logs):} Los archivos de registro se almacenan en \texttt{Documentos\textbackslash Warlock-Studio_2.2_Logs}.
|
||||
\end{itemize}
|
||||
|
||||
|
||||
% --- Sección 3: Guía de Modelos ---
|
||||
\section{Guía Detallada de Modelos de IA}
|
||||
La elección del modelo de IA es el factor más importante para la calidad y el tiempo de procesamiento.
|
||||
|
||||
\subsection{Tabla Comparativa de Modelos}
|
||||
La siguiente tabla detalla el uso relativo de VRAM de cada modelo.
|
||||
% 'longtable' es para tablas que pueden ocupar varias páginas. La definición de columnas es similar a 'tabular'.
|
||||
% Se usa 'p{<ancho>}' para la última columna, creando un párrafo de ancho fijo con ajuste de línea automático.
|
||||
\begin{longtable}{l l c c p{6.5cm}}
|
||||
\toprule
|
||||
\textbf{Modelo} & \textbf{Función Principal} & \textbf{Escala} & \textbf{Peso VRAM} & \textbf{Caso de Uso Recomendado} \\
|
||||
\midrule
|
||||
\endhead % \endhead define el encabezado que se repetirá en cada página.
|
||||
|
||||
\multicolumn{5}{c}{\textit{Modelos de Reducción de Ruido (Denoising)}} \\
|
||||
\midrule
|
||||
\texttt{IRCNN\_Mx1} & Denoise & x1 & 4.0 & Ruido moderado. \\
|
||||
\texttt{IRCNN\_Lx1} & Denoise & x1 & 4.0 & Ruido intenso. \\
|
||||
\midrule
|
||||
\multicolumn{5}{c}{\textit{Modelos de Escalado - Alta Calidad (Lentos)}} \\
|
||||
\midrule
|
||||
\texttt{BSRGANx4} & Upscale & x4 & 0.6 & Fotografías realistas. Excelente detalle fino. \\
|
||||
\texttt{BSRGANx2} & Upscale & x2 & 0.7 & Similar a x4 pero para un escalado menor. \\
|
||||
\texttt{RealESRGANx4} & Upscale & x4 & 0.6 & Uso general, bueno para texturas. \\
|
||||
\texttt{RealESRNetx4} & Upscale & x4 & 2.2 & Alternativa a RealESRGAN, puede ser más rápido. \\
|
||||
\midrule
|
||||
\multicolumn{5}{c}{\textit{Modelos de Escalado - Alta Velocidad (Ligeros)}} \\
|
||||
\midrule
|
||||
\texttt{RealESR\_Gx4} & Upscale & x4 & 2.2 & Escalado rápido, ideal para videos. \\
|
||||
\texttt{RealESR\_Animex4} & Upscale & x4 & 2.2 & Optimizado para anime y dibujos animados. \\
|
||||
\midrule
|
||||
\multicolumn{5}{c}{\textit{Modelos de Interpolación de Fotogramas (Solo Video)}} \\
|
||||
\midrule
|
||||
\texttt{RIFE} & Interpolar & N/A & N/A & Máxima calidad de interpolación. \\
|
||||
\texttt{RIFE\_Lite} & Interpolar & N/A & N/A & Versión más rápida, ideal para GPUs con < 4 GB VRAM. \\
|
||||
\bottomrule
|
||||
\caption{Guía de selección de modelos de IA y su impacto en VRAM.}
|
||||
\label{tab:modelos} % \label para poder referenciar la tabla con \ref{tab:modelos}.
|
||||
\end{longtable}
|
||||
|
||||
|
||||
% --- Sección 4: Optimización ---
|
||||
\section{Configuración y Optimización del Rendimiento}
|
||||
|
||||
\subsection{Parámetros Críticos de Rendimiento}
|
||||
\begin{itemize}[leftmargin=*]
|
||||
\item \textbf{Input Resolution \%:} El ajuste más efectivo para la velocidad. Reduce la resolución antes de procesarla con IA. Un valor entre \textbf{50\% y 75\%} suele ser ideal.
|
||||
\item \textbf{GPU VRAM Limiter (GB):} Defina la VRAM de su GPU. Se usa para calcular el tamaño de los \textit{tiles} de procesamiento y evitar errores de memoria.
|
||||
\item \textbf{AI Multithreading:} Solo para videos. Procesa varios fotogramas en paralelo. Acelera el proceso pero consume más VRAM y CPU.
|
||||
\item \textbf{AI Blending:} Combina la imagen original con la procesada. Útil para reducir artefactos cuando se usa un \textit{Input Resolution} bajo.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{El Fichero de Preferencias de Usuario}
|
||||
El archivo \inlinecode{Warlock-Studio_2.2_UserPreference.json} guarda su configuración.
|
||||
% Se usa 'tabularx' para que la tabla ocupe automáticamente el 100% del ancho del texto.
|
||||
% La columna 'X' es una columna flexible que se expande para llenar el espacio disponible.
|
||||
\begin{table}[H]
|
||||
\centering
|
||||
\small % Reduce el tamaño de la fuente dentro de la tabla.
|
||||
\begin{tabularx}{\textwidth}{l X}
|
||||
\toprule
|
||||
\textbf{Clave JSON} & \textbf{Descripción} \\
|
||||
\midrule
|
||||
\texttt{default\_AI\_model} & El último modelo de IA seleccionado. \\
|
||||
\texttt{default\_AI\_multithreading} & El número de hilos de procesamiento para video. \\
|
||||
\texttt{default\_gpu} & La última GPU seleccionada (Auto, GPU 1, etc.). \\
|
||||
\texttt{default\_keep\_frames} & Si se deben conservar los fotogramas de video ("ON" o "OFF"). \\
|
||||
\texttt{default\_image\_extension} & Extensión de imagen por defecto (\texttt{.png}, \texttt{.jpg}, etc.). \\
|
||||
\texttt{default\_video\_extension} & Extensión de video por defecto (\texttt{.mp4}, \texttt{.mkv}, etc.). \\
|
||||
\texttt{default\_video\_codec} & El codificador de video por defecto (x264, hevc\_nvenc, etc.). \\
|
||||
\texttt{default\_blending} & El nivel de mezcla seleccionado (Low, Medium, High). \\
|
||||
\texttt{default\_output\_path} & La última ruta de salida seleccionada. \\
|
||||
\texttt{default\_input\_resize\_factor} & El valor del porcentaje de resolución de entrada. \\
|
||||
\texttt{default\_output\_resize\_factor} & El valor del porcentaje de resolución de salida. \\
|
||||
\texttt{default\_VRAM\_limiter} & El valor del limitador de VRAM de la GPU. \\
|
||||
\bottomrule
|
||||
\end{tabularx}
|
||||
\caption{Claves guardadas en el archivo de preferencias del usuario.}
|
||||
\end{table}
|
||||
|
||||
% --- Sección 5: Solución de Problemas ---
|
||||
\section{Guía Avanzada de Solución de Problemas}
|
||||
\begin{warnbox}
|
||||
La causa \textbf{Número 1} de errores son los \textbf{caracteres especiales} en rutas y nombres de archivo. Evite usar: \texttt{', ", @, \#, \$, \%, \&, *, [, ], ?, etc.}.
|
||||
\end{warnbox}
|
||||
|
||||
% 'description' es para listas de definiciones.
|
||||
% [style=nextline] coloca el texto en la línea siguiente al término.
|
||||
\begin{description}[leftmargin=*, style=nextline, itemsep=0.8em]
|
||||
\item[\faBan\ Error: "FFmpeg encoding failed: Invalid argument"]
|
||||
\textbf{Causa:} Nombre de archivo o ruta no válida.
|
||||
\textbf{Solución:} Renombre el archivo y/o la carpeta eliminando caracteres especiales.
|
||||
|
||||
\item[\faMemory\ Error: "out of memory" o cierre inesperado]
|
||||
\textbf{Causa:} La GPU se quedó sin memoria de video (VRAM).
|
||||
\textbf{Solución:}
|
||||
% 'enumerate' es para listas numeradas. 'nosep' reduce el espacio entre ítems.
|
||||
\begin{enumerate}[nosep, leftmargin=*]
|
||||
\item Reduzca el \textbf{VRAM Limiter} a un valor igual o inferior al de su GPU.
|
||||
\item Baje el \textbf{Input Resolution \%} a 75\% o menos.
|
||||
\item Para videos, disminuya los hilos de \textbf{AI Multithreading} o apáguelo.
|
||||
\item La aplicación intentará recuperarse de este error automáticamente.
|
||||
\end{enumerate}
|
||||
|
||||
\item[\faTachometerAlt\ Error: "cannot convert float NaN to integer"]
|
||||
\textbf{Causa:} Timeout del driver de la GPU, a menudo por sobrecarga o sobrecalentamiento.
|
||||
\textbf{Solución:} Reinicie el proceso \textbf{sin borrar la carpeta de fotogramas}. El programa reanudará el trabajo donde se quedó.
|
||||
|
||||
\item[\faVolumeMute\ Problema: Video de salida sin audio]
|
||||
\textbf{Causa:} El video original no tenía audio, se usó un modo \textit{Slowmotion} o el códec de audio era incompatible.
|
||||
\textbf{Solución:} El programa intenta copiar el audio, si falla, lo re-codifica a AAC. Si todo falla, guarda el video sin audio. Usar \inlinecode{.mkv} en la salida puede ayudar.
|
||||
|
||||
\item[\faQuestionCircle\ Problema: La aplicación no se abre]
|
||||
\textbf{Causa:} Configuración corrupta, falta de permisos o error del entorno.
|
||||
\textbf{Solución:}
|
||||
\begin{enumerate}[nosep, leftmargin=*]
|
||||
\item Elimine el archivo \inlinecode{Warlock-Studio_2.2_UserPreference.json} en su carpeta de \textbf{Documentos}.
|
||||
\item Revise los archivos de registro en \texttt{Documentos\textbackslash Warlock-Studio_2.2_Logs}.
|
||||
\item Asegúrese de que sus controladores de GPU estén actualizados.
|
||||
\end{enumerate}
|
||||
\end{description}
|
||||
|
||||
% --- Sección 6: Arquitectura ---
|
||||
\section{Arquitectura y Procesos Avanzados}
|
||||
|
||||
\subsection{Motor de Inferencia y Aceleración por Hardware}
|
||||
Warlock-Studio utiliza \textbf{ONNX Runtime} con el proveedor \textbf{DirectML} (\inlinecode{DmlExecutionProvider}). Este traduce las operaciones de IA a llamadas de \textbf{DirectX 12}, garantizando una amplia compatibilidad con GPUs de NVIDIA, AMD e Intel.
|
||||
|
||||
\subsection{Sistema de Tiles y Gestión de Memoria}
|
||||
Para manejar archivos de alta resolución, la aplicación divide cada fotograma en fragmentos (\textit{tiles}). El tamaño de estos se calcula dinámicamente usando el \textbf{VRAM Limiter}. Además, se invoca al recolector de basura de Python (\inlinecode{gc.collect()}) para forzar la liberación de memoria y garantizar estabilidad.
|
||||
|
||||
\subsection{Funcionalidad de Reanudación y Checkpoints}
|
||||
Si un proceso de video se interrumpe, los fotogramas procesados se guardan. Al reiniciar la tarea, la función \inlinecode{check\_video\_upscaling\_resume} detecta estos archivos y continúa el trabajo desde donde falló, ahorrando tiempo.
|
||||
|
||||
\subsection{Escritura Asíncrona de Fotogramas}
|
||||
Durante el escalado de video, los fotogramas procesados se envían a un hilo de escritura separado. Esto permite a la GPU procesar el siguiente lote sin esperar a que la escritura en disco (más lenta) termine, maximizando el rendimiento.
|
||||
|
||||
|
||||
% =======================================================================================
|
||||
% FIN DEL DOCUMENTO
|
||||
% =======================================================================================
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user