Files
Warlock-Studio-Universal/Manual/Warlock-Studio_Manual.tex
T

332 lines
14 KiB
TeX

\documentclass[a4paper,11pt]{article}
% =========================================================
% PACKAGES & CONFIGURATION
% =========================================================
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[margin=1in, bottom=1.2in]{geometry}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{titlesec}
\usepackage{fancyhdr}
\usepackage{tcolorbox}
\usepackage{fontawesome5} % For icons
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{tikz}
\usepackage{float}
\usepackage{hyperref}
\usepackage{enumitem}
\usetikzlibrary{shapes.geometric, arrows, positioning}
\tcbuselibrary{skins, breakable}
% =========================================================
% WARLOCK STUDIO BRANDING COLORS (From Source Code)
% =========================================================
\definecolor{WarlockBg}{HTML}{0A0A0A} % Main Background
\definecolor{WarlockRed}{HTML}{D41C1C} % Accent Red
\definecolor{WarlockGold}{HTML}{FDEF2F} % Accent Gold
\definecolor{WarlockDark}{HTML}{303030} % Widget Background
\definecolor{WarlockText}{HTML}{FFFFFF} % White Text
\definecolor{WarlockGray}{HTML}{B5B4B4} % Secondary Text
% Header and Footer
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{2pt}
\renewcommand{\footrule}{\hbox to\headwidth{\color{WarlockRed}\leaders\hrule height \footrulewidth\hfill}}
\fancyhead[R]{\textbf{\textcolor{WarlockDark}{Warlock-Studio v5.1}}}
\fancyhead[L]{\textcolor{WarlockGray}{User Manual}}
\fancyfoot[C]{\thepage}
\fancyfoot[R]{\includegraphics[height=0.8cm]{logo.png}} % Logo at footer
% Section Styling
\titleformat{\section}
{\color{WarlockRed}\normalfont\Large\bfseries\uppercase}
{\thesection}{1em}{}[{\titlerule[1pt]}]
\titleformat{\subsection}
{\color{WarlockDark}\normalfont\large\bfseries}
{\thesubsection}{1em}{}
% Custom Boxes for Information grouping
\newtcolorbox{infobox}[1]{
colback=WarlockDark!10!white,
colframe=WarlockDark,
fonttitle=\bfseries,
title=#1,
arc=0mm,
boxrule=1pt,
leftrule=4pt
}
\newtcolorbox{warningbox}[1]{
colback=red!5!white,
colframe=WarlockRed,
fonttitle=\bfseries,
title=\faExclamationTriangle\ #1,
arc=0mm,
boxrule=1pt,
leftrule=4pt,
coltitle=white
}
\newtcolorbox{tipbox}[1]{
colback=WarlockGold!10!white,
colframe=orange!80!black,
fonttitle=\bfseries,
title=\faLightbulb\ #1,
arc=0mm,
boxrule=1pt,
leftrule=4pt,
coltitle=black
}
% Hyperlink Setup
\hypersetup{
colorlinks=true,
linkcolor=WarlockRed,
filecolor=magenta,
urlcolor=blue,
pdftitle={Warlock-Studio Manual},
}
% =========================================================
% DOCUMENT CONTENT
% =========================================================
\begin{document}
% --- COVER PAGE ---
\begin{titlepage}
\begin{center}
\vspace*{2cm}
\includegraphics[width=0.4\textwidth]{logo.png}\\[1cm]
{\Huge \textbf{WARLOCK-STUDIO}}\\[0.5cm]
{\Large \textit{AI Upscaling \& Interpolation Suite}}\\[0.2cm]
{\large Version 5.1}
\vspace{2cm}
\begin{tcolorbox}[colback=WarlockDark, colframe=WarlockRed, width=0.8\textwidth, arc=2mm]
\centering \textcolor{white}{\textbf{\Large USER OPERATING MANUAL}}
\end{tcolorbox}
\vfill
\textbf{Developed by Ivan-Ayub97}\\
\today
\end{center}
\end{titlepage}
\tableofcontents
\newpage
% ---------------------------------------------------------
% SECTION 1: INTRODUCTION
% ---------------------------------------------------------
\section{Introduction}
Warlock-Studio is a comprehensive GUI application designed for AI-driven image and video enhancement. It integrates state-of-the-art neural networks to perform Upscaling, Denoising, Face Restoration, and Frame Interpolation.
Built on Python, CustomTkinter, and ONNX Runtime, Warlock-Studio optimizes hardware resources (CPU and GPU) to deliver great results.
\begin{infobox}{System Requirements}
\begin{itemize}
\item \textbf{OS:} Windows 10/11 (x64)
\item \textbf{RAM:} Minimum 8GB (16GB+ recommended)
\item \textbf{GPU:} NVIDIA (CUDA), AMD/Intel (DirectML), or CPU (Slow fallback)
\item \textbf{Dependencies:} FFmpeg (included in assets), Visual C++ Redistributable.
\end{itemize}
\end{infobox}
% ---------------------------------------------------------
% SECTION 2: INTERFACE & USAGE
% ---------------------------------------------------------
\section{Interface Overview & Usage}
The interface is divided into functional blocks designed for a linear workflow: \textit{Load $\rightarrow$ Configure $\rightarrow$ Process}.
\subsection{1. Input Section}
Located on the left side (or top, depending on layout), this area handles file ingestion.
\begin{itemize}
\item \textbf{Drag \& Drop:} You can drag images or videos directly onto the window.
\item \textbf{Manual Select:} Clicking the button opens a file dialog.
\item \textbf{File List:} Selected files appear in a scrollable list showing resolution, duration, and calculated output resolution based on current settings.
\end{itemize}
\subsection{2. AI Configuration}
This is the core control panel.
\begin{description}
\item[AI Model:] Selects the neural network architecture (see Chapter 3).
\item[AI Multithreading:] Controls how many frames are processed simultaneously.
\begin{itemize}
\item \textit{Recommendation:} Set to "2 threads" for mid-range GPUs. Use "OFF" (1 thread) for high-resolution upscaling (4K) to save VRAM.
\end{itemize}
\item[Frame Generation (RIFE):] Only active when RIFE models are selected. Interpolates frames to increase smoothness (e.g., 30fps $\rightarrow$ 60fps).
\end{description}
\subsection{3. Hardware & Performance}
\begin{itemize}
\item \textbf{GPU Selection:} Choose specific GPU or "Auto".
\item \textbf{VRAM Limiter:} \textbf{Crucial Setting.} This defines the tile size for processing.
\begin{itemize}
\item \textit{Integrated Graphics:} Set to 2GB or lower.
\item \textit{Dedicated GPU (e.g., RTX 3060):} Set to match your card's VRAM (e.g., 6GB-8GB).
\end{itemize}
\end{itemize}
\begin{tipbox}{Tiling Technology}
Warlock-Studio uses "Tiling". If an image is too large for VRAM, it splits the image into small squares, processes them, and merges them back. The \textbf{VRAM Limiter} controls the size of these squares.
\end{tipbox}
\subsection{4. Resolution Control}
\begin{itemize}
\item \textbf{Input Resolution \%:} Downscales the image \textit{before} AI processing. Useful for speeding up 4K video processing (e.g., set to 50\%).
\item \textbf{Output Resolution \%:} Downscales the image \textit{after} AI processing.
\end{itemize}
\subsection{5. Output Settings}
\begin{itemize}
\item \textbf{Image Ext:} PNG (Lossless), JPG (Fast), BMP/TIFF (Uncompressed).
\item \textbf{Video Ext:} MP4, MKV, AVI, MOV.
\item \textbf{Video Codec:}
\begin{itemize}
\item \textbf{x264/x265:} CPU Encoding (High quality, slow).
\item \textbf{NVENC:} NVIDIA Hardware (Fast).
\item \textbf{AMF:} AMD Hardware.
\item \textbf{QSV:} Intel Hardware.
\end{itemize}
\end{itemize}
% ---------------------------------------------------------
% SECTION 3: AI MODELS EXPLAINED
% ---------------------------------------------------------
\newpage
\section{AI Models Library}
Warlock-Studio includes varied models optimized for specific scenarios. Use this table to choose the right tool.
\begin{table}[h!]
\centering
\renewcommand{\arraystretch}{1.3}
\begin{tabularx}{\textwidth}{|l|l|X|}
\hline
\rowcolor{WarlockDark} \textcolor{white}{\textbf{Category}} & \textcolor{white}{\textbf{Model Name}} & \textcolor{white}{\textbf{Best Use Case}} \\ \hline
\multirow{2}{*}{\textbf{Denoising}} & IRCNN\_Mx1 & Removing grain/noise without changing resolution. Fast. \\
& IRCNN\_Lx1 & Heavier denoising for very grainy sources. \\ \hline
\multirow{2}{*}{\textbf{Anime / Art}} & RealESR\_Animex4 & \textbf{Best for Cartoons/Anime.} Removes compression artifacts and sharpens lines. \\
& RealESR\_Gx4 & General purpose fast upscaling. \\ \hline
\multirow{4}{*}{\textbf{Realistic}} & BSRGANx4 & \textbf{Best for Real World video.} Adds texture and realistic details. \\
& BSRGANx2 & 2x version of above. Slightly faster. \\
& RealESRGANx4 & Good balance between sharpness and texture. \\
& RealESRNetx4 & Smoother look, less texture hallucination. \\ \hline
\textbf{Faces} & GFPGAN & \textbf{Face Restoration.} Miraculous recovery of blurry/small faces. \\ \hline
\textbf{Interpolation} & RIFE / Lite & Increasing Frame Rate (30$\rightarrow$60fps). Creates intermediate frames. \\ \hline
\end{tabularx}
\caption{Warlock-Studio Model Reference Guide}
\end{table}
\subsection*{When NOT to use certain models:}
\begin{itemize}
\item Do \textbf{not} use \textit{RealESR\_Animex4} on realistic photos; it will make skin look like plastic (oil painting effect).
\item Do \textbf{not} use \textit{GFPGAN} on non-human subjects or high-quality faces (it might alter facial features slightly).
\end{itemize}
% ---------------------------------------------------------
% SECTION 4: WORKFLOW DIAGRAMS
% ---------------------------------------------------------
\section{Process Workflows}
\subsection{Video Upscaling Pipeline}
Understanding the internal process helps in troubleshooting speed issues.
\vspace{0.5cm}
\begin{center}
\begin{tikzpicture}[node distance=1.5cm]
\tikzstyle{startstop} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=WarlockRed!30]
\tikzstyle{process} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=WarlockGold!30]
\tikzstyle{decision} = [diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!10]
\tikzstyle{arrow} = [thick,->,>=stealth]
\node (in) [startstop] {Input Video};
\node (extract) [process, below of=in] {Extract Frames (FFmpeg)};
\node (resize1) [process, below of=extract] {Input Resize \%};
\node (ai) [process, below of=resize1] {AI Inference (ONNX)};
\node (blend) [decision, below of=ai, yshift=-0.5cm] {Blending?};
\node (merge) [process, below of=blend, yshift=-0.5cm] {Merge Upscale + Original};
\node (encode) [process, below of=merge] {Encode Video (FFmpeg)};
\node (out) [startstop, below of=encode] {Output Video};
\draw [arrow] (in) -- (extract);
\draw [arrow] (extract) -- (resize1);
\draw [arrow] (resize1) -- (ai);
\draw [arrow] (ai) -- (blend);
\draw [arrow] (blend) -- node[anchor=east] {Yes} (merge);
\draw [arrow] (blend.east) -- ++(1,0) |- node[anchor=south] {No} (encode.east);
\draw [arrow] (merge) -- (encode);
\draw [arrow] (encode) -- (out);
\end{tikzpicture}
\end{center}
% ---------------------------------------------------------
% SECTION 5: TROUBLESHOOTING
% ---------------------------------------------------------
\newpage
\section{Troubleshooting & Error Codes}
The integrated console (bottom of the app) provides real-time logs. Here are common errors and fixes.
\subsection{Common Runtime Errors}
\begin{table}[h!]
\centering
\begin{tabularx}{\textwidth}{|l|X|}
\hline
\rowcolor{WarlockRed} \textcolor{white}{\textbf{Error / Symptom}} & \textcolor{white}{\textbf{Solution}} \\ \hline
\textbf{CUDA / Out of Memory} & The AI model requires more VRAM than available. \newline \textbf{Fix:} Lower the "GPU VRAM" setting (e.g., set to 2). Lower "AI Multithreading" to OFF. \\ \hline
\textbf{FFmpeg not found} & The application cannot process video/audio. \newline \textbf{Fix:} Ensure \texttt{ffmpeg.exe} is in the \texttt{Assets/} folder. \\ \hline
\textbf{Gray/Black Output} & Often caused by incompatible Video Codecs. \newline \textbf{Fix:} Switch output codec to \texttt{x264} (Software) or check GPU driver updates. \\ \hline
\textbf{Process Stops Immediately} & File path issue. \newline \textbf{Fix:} Avoid special characters or emojis in filenames/folders. Move files to a simple path like \texttt{C:/Upscale/}. \\ \hline
\textbf{DLL Load Failed} & Missing Visual C++ dependencies. \newline \textbf{Fix:} Install latest MSVC Redistributable. \\ \hline
\end{tabularx}
\end{table}
\begin{warningbox}{Checkpoint Recovery}
If the app crashes during a long video upscale, \textbf{do not delete the temporary folder}. Warlock-Studio will detect the processed frames and resume from where it left off automatically upon restarting the same job.
\end{warningbox}
\subsection{Performance Tuning Tips}
\begin{itemize}
\item \textbf{Slow Speed?} Ensure "Process Priority" in Preferences is set to "High". Check if you are using CPU instead of GPU (Console will say \texttt{CPUExecutionProvider}).
\item \textbf{Low Quality?} Try disabling "Blending" (set to OFF). Increase "Input Resolution \%" to 100.
\item \textbf{Glitchy Video?} If using Interpolation (RIFE), scene changes might look weird. This is a limitation of current AI flow generation.
\end{itemize}
% ---------------------------------------------------------
% SECTION 6: PREFERENCES
% ---------------------------------------------------------
\section{Preferences Menu}
Accessible via the \faCog\ icon in the top right.
\begin{itemize}
\item \textbf{App Theme:} Switch between Dark/Light modes.
\item \textbf{ONNX Provider:} Force specific backend (CUDA vs DirectML). \textit{Auto} is recommended.
\item \textbf{Clean Temp Files:} Removes leftover \texttt{.tmp} files and frame folders from crashed sessions.
\item \textbf{Extended Logging:} Enables detailed debug logs for error reporting.
\end{itemize}
\vspace{2cm}
\begin{center}
\textit{Warlock-Studio is an open-source tool. \\ Thank you for using it.}
\end{center}
\end{document}