Giới thiệu dự án
Thị trường Trí tuệ Nhân tạo Tạo sinh (Generative AI) toàn cầu đang chứng kiến sự tăng trưởng vượt bậc với tốc độ tăng trưởng kép hàng năm (CAGR) đạt hơn 35.6% (giai đoạn 2023–2030). Trong lĩnh vực Thị giác Máy tính (Computer Vision), tác vụ Tạo sinh Ảnh (Image Generation) và Chuyển đổi Phong cách Nghệ thuật (Artistic Style Transfer) đã chuyển dịch mạnh mẽ từ các thuật toán kết xuất phi ảnh thực truyền thống (Non-Photorealistic Rendering - NPR) sang các mô hình học sâu hiện đại như Mạng Đối nghịch Tạo sinh (Generative Adversarial Networks - GANs) và Mô hình Khuếch tán Xác suất (Denoising Diffusion Probabilistic Models - DDPM). Tuy nhiên, rào cản lớn nhất của các mô hình khuếch tán hoạt động trực tiếp trên không gian điểm ảnh (pixel space) là chi phí tính toán cực kỳ lớn, yêu cầu tài nguyên phần cứng cấp độ trung tâm dữ liệu và thời gian suy luận (inference) kéo dài.
Song song với thách thức công nghệ, các giá trị văn hóa nghệ thuật truyền thống của Việt Nam – tiêu biểu là dòng tranh dân gian Đông Hồ và nghệ thuật tranh Sơn Mài – đang đối mặt với nguy cơ mai một và thiếu vắng các giải pháp số hóa mang tính tương tác cao. Các mô hình tạo sinh nền tảng toàn cầu (như Stable Diffusion gốc, Midjourney, DALL-E) hầu như không thể tái hiện chính xác các đặc trưng mỹ thuật bản địa (như chất liệu giấy điệp, màu sắc tự nhiên từ vỏ sò điệp của tranh Đông Hồ hay kỹ thuật mài dát vàng, bạc, vỏ trứng tạo chiều sâu phản quang của tranh Sơn Mài) do sự thiếu hụt dữ liệu văn hóa Việt Nam trong các tập huấn luyện khổng lồ như LAION-5B.
+-----------------------------------------------------------------------------------+
| BÀI TOÁN CỐT LÕI |
| [Dữ liệu tranh dân gian giới hạn] + [Tài nguyên tính toán hạn chế (Consumer GPU)]|
| [Giải pháp: Latent Diffusion Model (LDM) + Textual Inversion] |
+-----------------------------------------------------------------------------------+
Bài toán nghiên cứu (Problem Statement)
Đề tài tập trung giải quyết bài toán: Nghiên cứu, tinh chỉnh và tối ưu hóa Mô hình Khuếch tán trên Không gian Tiềm ẩn (Latent Diffusion Models - LDMs) kết hợp kỹ thuật Đảo ngược Văn bản (Textual Inversion) để tạo sinh và chuyển đổi phong cách hình ảnh đầu vào sang phong cách tranh dân gian Việt Nam (Tranh Đông Hồ và Tranh Sơn Mài) trong điều kiện tài nguyên tính toán giới hạn.
Các điểm nghẽn kỹ thuật cụ thể bao gồm:
- Nghẽn tài nguyên tính toán (Computational Bottleneck): Mô hình DDPM trên không gian pixel yêu cầu tính toán ma trận chiều cao với độ phức tạp $\mathcal{O}(H \times W \times C)$, gây tràn bộ nhớ VRAM trên các GPU phổ thông.
- Hiện tượng sụp đổ phân phối và thiên vị (Mode Collapse & Bias): Huấn luyện trên tập dữ liệu đặc thù có dung lượng cực nhỏ (dưới 100 ảnh/phong cách) dễ dẫn đến hiện tượng quá khớp (overfitting) hoặc mô hình bị thiên lệch (bias) về một đối tượng cụ thể thay vì học được cấu trúc phong cách tổng thể.
- Bảo toàn ngữ nghĩa và cấu trúc ảnh (Semantic & Structural Preservation): Đảm bảo ảnh sau chuyển đổi giữ nguyên bố cục đối tượng gốc nhưng phản ánh đúng bảng màu, chất liệu và đường nét đặc trưng của dòng tranh mục tiêu.
Mục tiêu dự án
- Nghiên cứu chuyên sâu lý thuyết: Phân tích toán học và cơ chế hoạt động của Latent Diffusion Models, quá trình nén biểu diễn không gian tiềm ẩn (Perceptual Compression) qua VAE, quá trình khuếch tán xuôi/ngược (Forward/Reverse Diffusion Process) và cơ chế Cross-Attention trong việc điều kiện hóa (Conditioning) bằng văn bản.
- Xây dựng bộ dữ liệu chuẩn hóa: Thu thập, làm sạch, gán nhãn và tiền xử lý bộ dữ liệu tranh dân gian Đông Hồ và Sơn Mài Việt Nam với độ phân giải $512 \times 512$ pixels.
- Thực nghiệm Fine-tuning bằng Textual Inversion: Áp dụng kỹ thuật tối ưu hóa vector nhúng (embedding optimization) trong không gian khái niệm của bộ mã hóa văn bản CLIP, giữ đông băng toàn bộ trọng số mạng U-Net và VAE nhằm tiết kiệm tài nguyên.
- Tích hợp module nâng cao: Kết hợp kỹ thuật Inpainting xử lý viền dữ liệu, Salient Object Detection (SOD) để tách biệt vùng ngữ nghĩa chủ thể và Background, cùng module High-Resolution Upscaling tối ưu hóa độ phân giải đầu ra.
- Xây dựng hệ thống phần mềm ứng dụng: Phát triển giao diện Web tương tác cho phép người dùng nhập ảnh mẫu (Image-to-Image) cùng câu mô tả (Text Prompt) để sinh ảnh phong cách nghệ thuật truyền thống theo thời gian thực.
Giải pháp đề xuất và tính khả thi
Thay vì huấn luyện lại toàn bộ mô hình nền tảng từ đầu (yêu cầu hàng nghìn GPU-hours), đề tài lựa chọn kiến trúc Latent Diffusion Model (cụ thể là mô hình Stable Diffusion phiên bản sd-v1-4 tiền huấn luyện) làm mạng trích xuất đặc trưng và tạo sinh cốt lõi. Bằng cách thực hiện quá trình khuếch tán trong không gian tiềm ẩn $\mathcal{Z}$ được nén bởi bộ mã hóa $\mathcal{E}$ với tỷ lệ giảm chiều $f=8$, kích thước biểu diễn giảm từ $512 \times 512 \times 3$ xuống còn $64 \times 64 \times 4$, giúp giảm hơn 64 lần khối lượng tính toán trên mỗi bước khử nhiễu.
Kết hợp với phương pháp Textual Inversion, hệ thống chỉ tối ưu hóa một vector nhúng từ giả định $S_* \in \mathbb{R}^{768}$ trong không gian nhúng của CLIP Text Encoder. Giải pháp này hoàn toàn khả thi trên môi trường tính toán đơn GPU (dung lượng VRAM $\le 16\text{ GB}$), loại bỏ rủi ro phá hủy các tri thức tổng quát đã học của mô hình gốc (Catastrophic Forgetting).
Kết quả kỳ vọng và chỉ số đo lường
- Chất lượng hình ảnh tạo sinh: Tái hiện chính xác $>85%$ các đặc trưng phong cách cốt lõi (đường nét viền đen dứt khoát, mảng màu phẳng đơn sắc của Đông Hồ; độ bóng, chuyển sắc đa tầng, ánh kim của Sơn Mài).
- Thời gian suy luận (Inference Latency): Đạt tốc độ $\le 4.5\text{ giây/ảnh}$ trên GPU NVIDIA RTX 3090 / T4 với 50 bước lấy mẫu (DDIM Sampler).
- Bộ nhớ lưu trữ trọng số bổ sung (Storage Footprint): Kích thước checkpoint phong cách mới chỉ chiếm $<100\text{ KB}$ (chỉ chứa vector nhúng từ mới), tối ưu hóa tuyệt đối so với việc lưu trữ toàn bộ checkpoint mô hình ($\approx 4.0\text{ GB}$).
- Mức độ hài lòng của người dùng: Đạt điểm đánh giá thẩm mỹ và độ tương đồng phong cách $>4.0/5.0$ qua khảo sát định tính người dùng thực tế.
Phạm vi và giới hạn
- Định dạng dữ liệu đầu vào: Hỗ trợ ảnh màu RGB, tỷ lệ khung hình khuyến nghị $1:1$ (tối ưu nhất tại $512 \times 512$ pixels).
- Ngôn ngữ câu mô tả (Prompts): Tiếng Anh (do sử dụng bộ mã hóa ngôn ngữ tiền huấn luyện CLIP ViT-L/14 của OpenAI).
- Phong cách nghệ thuật: Giới hạn chuyên sâu trong 02 dòng tranh truyền thống: Tranh Đông Hồ (chủ đề sinh hoạt thôn quê, con vật dân dã) và Tranh Sơn Mài (chủ đề phong cảnh quê hương, phố cổ, tĩnh vật).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi mô hình khuếch tán không gian tiềm ẩn ra đời, việc tạo sinh và chuyển đổi phong cách hình ảnh chủ yếu dựa vào ba nhóm kỹ thuật: Xử lý ảnh phi ảnh thực (NPR), Mạng Đối nghịch Tạo sinh (GANs) và Bộ Tự mã hóa Biến phân (VAEs).
| Tiêu chí |
NPR / Image Analogies |
GANs (CycleGAN / StyleGAN) |
Pixel-space DDPM |
Latent Diffusion Models (LDM) |
| Cơ chế hoạt động |
Bộ lọc thủ công / Nearest Neighbor |
Cạnh tranh Minimax (Generator vs Discriminator) |
Khử nhiễu Markov chuỗi trên không gian pixel |
Khử nhiễu Markov trong không gian tiềm ẩn (Latent) |
| Chất lượng hình ảnh |
Thấp, dễ vỡ cấu trúc phức tạp |
Rất cao, sắc nét |
Cực cao, chi tiết vượt trội |
Cực cao, bảo toàn ngữ nghĩa xuất sắc |
| Độ ổn định huấn luyện |
Rất cao (không cần học) |
Kém, dễ bị Mode Collapse, Vanishing Gradient |
Rất cao (tối ưu hàm lỗi MSE) |
Rất cao (tối ưu hóa lồi trên Latent Space) |
| Yêu cầu phần cứng |
CPU / RAM thấp |
GPU tầm trung - cao ($\ge 16\text{ GB}$) |
GPU cụm lớn ($\ge 40\text{ GB}$ / A100) |
GPU đơn thương mại ($\ge 8\text{ GB} - 12\text{ GB}$) |
| Tính đa dạng mẫu sinh |
Kém (deterministic) |
Trung bình (thiếu phủ hết phân phối) |
Cực kỳ phong phú |
Cực kỳ phong phú |
| Khả năng kiểm soát (Conditioning) |
Rất yếu (tham số cứng) |
Hạn chế (qua cGAN, nhúng nhãn) |
Tốt (Classifier Guidance) |
Tuyệt vời (Cross-Attention với Text/Image) |
Phân tích yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc phải có):
- Khả năng nén và giải mã ảnh chính xác qua VAE ($\mathcal{E}, \mathcal{D}$).
- Quy trình khử nhiễu U-Net tích hợp Cross-Attention nhận điều kiện từ CLIP Text Encoder.
- Checkpoint vector nhúng phong cách Tranh Đông Hồ và Tranh Sơn Mài được tối ưu hóa qua Textual Inversion.
- Giao diện Web tương tác cơ bản (hỗ trợ nhập prompt, tải ảnh gốc, cấu hình tham số sampling steps, CFG scale).
- Should have (Nên có):
- Module tiền xử lý Inpainting tự động căn chỉnh tỷ lệ ảnh đầu vào về $512 \times 512$ mà không làm biến dạng tỷ lệ chủ thể.
- Module Salient Object Detection (SOD) để phân tách nền và chủ thể, cho phép chuyển đổi phong cách có chọn lọc.
- Thanh trượt điều chỉnh cường độ chuyển đổi phong cách (Denoising strength trong Image-to-Image pipeline).
- Could have (Có thể có):
- Tích hợp mạng Super-Resolution (Real-ESRGAN) để nâng cấp độ phân giải ảnh kết quả lên $1024 \times 1024$ hoặc $2048 \times 2048$.
- Cơ chế tự động dịch Prompt từ Tiếng Việt sang Tiếng Anh trước khi truyền vào bộ mã hóa CLIP.
- Won't have (Chưa thực hiện trong giai đoạn này):
- Huấn luyện lại toàn bộ mô hình nền tảng từ tập dữ liệu hàng triệu ảnh.
- Ứng dụng di động native trên iOS/Android (chỉ tập trung vào nền tảng Web-based responsive).
graph TD
subgraph "Không gian Pixel (Pixel Space)"
InputImage["Ảnh đầu vào x (RGB 512x512x3)"]
OutputImage["Ảnh kết quả x_rec (RGB 512x512x3)"]
end
subgraph "Bộ nén và giải mã tiềm ẩn (Autoencoder Engine)"
Encoder["VAE Encoder E (Downsampling f=8)"]
Decoder["VAE Decoder D (Upsampling f=8)"]
end
subgraph "Không gian tiềm ẩn (Latent Space)"
LatentZ["Vector tiềm ẩn z = E(x) (64x64x4)"]
NoisyLatent["Nhiễu tiềm ẩn z_t qua T bước"]
UNet["Mạng khử nhiễu Time-conditional U-Net (ResNet + Self-Attn)"]
DenoisedLatent["Vector tiềm ẩn sạch z_0"]
end
subgraph "Module Điều kiện hóa (Conditioning Engine)"
Prompt["Câu mô tả Prompt: 'A cat in <dong-ho-style>'"]
TextualInv["Kỹ thuật Textual Inversion (Tối ưu hóa vector v*)"]
CLIP["CLIP ViT-L/14 Text Encoder"]
CrossAttn["Cross-Attention Layers: Softmax(QK^T / sqrt(d))V"]
end
InputImage --> Encoder
Encoder --> LatentZ
LatentZ --> NoisyLatent
NoisyLatent --> UNet
Prompt --> TextualInv
TextualInv --> CLIP
CLIP --> CrossAttn
CrossAttn --> UNet
UNet --> DenoisedLatent
DenoisedLatent --> Decoder
Decoder --> OutputImage
Thiết kế hệ thống
Kiến trúc giải pháp được phân tầng rõ rệt thành 4 phân hệ chính:
-
Bộ mã hóa/giải mã không gian tiềm ẩn (Perceptual Autoencoder $\mathcal{E}/\mathcal{D}$):
- Bộ mã hóa $\mathcal{E}$ ánh xạ ảnh không gian pixel $x \in \mathbb{R}^{H \times W \times 3}$ thành biểu diễn tiềm ẩn $z = \mathcal{E}(x) \in \mathbb{R}^{h \times w \times c}$, với hệ số giảm chiều $f = H/h = W/w = 8$ và số kênh $c=4$.
- Bộ giải mã $\mathcal{D}$ tái cấu trúc biểu diễn tiềm ẩn thành ảnh không gian pixel: $\tilde{x} = \mathcal{D}(z) = \mathcal{D}(\mathcal{E}(x))$. Quá trình này được tối ưu bằng hàm mất mát kết hợp giữa Perceptual Loss (LPIPS) và Patch-based Adversarial Loss nhằm duy trì chi tiết cạnh sắc nét.
-
Mạng khử nhiễu U-Net trong không gian tiềm ẩn (Latent Denoising U-Net):
- Mạng U-Net dự đoán thành phần nhiễu $\epsilon_\theta(z_t, t, \tau_\theta(y))$ tại mỗi bước thời gian $t \in [1, T]$.
- Cấu trúc gồm các khối biến đổi ResNet kết hợp với cơ chế Spatial Self-Attention và Cross-Attention.
- Nhúng bước thời gian $t$ được thực hiện thông qua mã hóa vị trí Sinusoidal Positional Embeddings và đưa vào từng khối ResNet.
-
Cơ chế điều khiển Cross-Attention (Conditioning Engine):
- Chuỗi văn bản điều kiện $y$ chứa token phong cách đặc biệt $S_*$ được đưa qua bộ phân tích từ vựng (tokenizer) và ánh xạ qua bộ mã hóa CLIP $\tau_\theta$.
- Biểu diễn trung gian của U-Net $\phi_i(z_t) \in \mathbb{R}^{N \times d_\epsilon^i}$ được ánh xạ thành Query ($Q$), trong khi đầu ra của bộ mã hóa văn bản $\tau_\theta(y) \in \mathbb{R}^{M \times d_\tau}$ được ánh xạ thành Key ($K$) và Value ($V$):
$$Q = W_Q^{(i)} \cdot \phi_i(z_t), \quad K = W_K^{(i)} \cdot \tau_\theta(y), \quad V = W_V^{(i)} \cdot \tau_\theta(y)$$
$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{Q K^T}{\sqrt{d}}\right) \cdot V$$
-
Kỹ thuật tối ưu Textual Inversion:
- Đóng băng hoàn toàn các ma trận trọng số của $\mathcal{E}, \mathcal{D}, \epsilon_\theta$ và toàn bộ các tầng của $\tau_\theta$.
- Chỉ thiết lập gradient cho một vector nhúng đơn $\mathbf{v}^* \in \mathbb{R}^{768}$ tương ứng với placeholder string
$S_*$. Hàm mục tiêu tối ưu hóa:
$$\mathbf{v}^* = \arg\min_{\mathbf{v}} \mathbb{E}{z \sim \mathcal{E}(x), y, \epsilon \sim \mathcal{N}(0, \mathbf{I}), t} \left[ \left| \epsilon - \epsilon\theta(z_t, t, \tau_\theta(y, \mathbf{v})) \right|_2^2 \right]$$
Technology Stack và phiên bản cụ thể
| Thành phần |
Công nghệ / Thư viện |
Phiên bản |
Vai trò kỹ thuật |
| Core Framework |
Python |
3.10.12 |
Ngôn ngữ lập trình chính |
| Deep Learning |
PyTorch |
2.0.1+cu118 |
Framework tính toán tensor và lan truyền ngược gradient |
| Diffusion Pipeline |
HuggingFace Diffusers |
0.21.4 |
Điều phối pipeline Stable Diffusion, DDIM Sampler, Textual Inversion |
| Transformers |
HuggingFace Transformers |
4.30.2 |
Tải và quản lý mô hình CLIP Text Encoder (openai/clip-vit-large-patch14) |
| Data Acceleration |
Accelerate |
0.22.0 |
Tối ưu hóa bộ nhớ GPU, Mixed Precision Training (FP16/BF16) |
| Image Processing |
OpenCV, Pillow |
4.8.0, 10.0.0 |
Cắt ghép, chuẩn hóa ma trận điểm ảnh, Inpainting padding |
| Web Service API |
FastAPI, Uvicorn |
0.103.1, 0.23.2 |
Xây dựng RESTful API phục vụ suy luận backend hiệu năng cao |
| Interactive UI |
Gradio |
3.44.4 |
Xây dựng giao diện web demo trực quan cho người dùng cuối |
Methodology
Dự án áp dụng mô hình phát triển lặp vòng (Iterative Engineering & Research Methodology) kết hợp chặt chẽ giữa nghiên cứu thực nghiệm thị giác máy tính và kiểm thử ứng dụng phần mềm.
+-----------------------------------------------------------------------------------+
| LỘ TRÌNH TRIỂN KHAI DỰ ÁN |
| |
| [Tuần 1-3] Khảo sát lý thuyết, LDM, DDPM, Textual Inversion |
| [Tuần 4-6] Thu thập, tiền xử lý bộ dữ liệu Tranh Đông Hồ & Sơn Mài |
| [Tuần 7-10] Huấn luyện Textual Inversion, Hyperparameter Tuning |
| [Tuần 11-13] Tích hợp Inpainting, SOD, Xây dựng Web App & Đánh giá |
+-----------------------------------------------------------------------------------+
Ma trận đánh giá rủi ro và giải pháp khắc phục (Risk Assessment Matrix)
- Rủi ro 1: Overfitting do tập dữ liệu tranh phong cách quá nhỏ ($\approx 80-100$ ảnh).
- Mức độ: Cao.
- Giải pháp: Sử dụng Textual Inversion thay vì full fine-tuning. Áp dụng kỹ thuật Data Augmentation đa dạng (ngẫu nhiên xoay góc nhỏ $\pm 5^\circ$, phối màu ngẫu nhiên nhẹ, ngẫu nhiên crop tỷ lệ $90-100%$) và tạo tập câu prompt mẫu (prompt templates) đa biến thể (ví dụ: "a painting of a [object] in the style of $S_$”, "a detailed artwork in $S_$ style showing [scenery]”).
- Rủi ro 2: Token phong cách bị học lệch sang đối tượng phổ biến trong tập train (Semantic Drift / Concept Bias).
- Mức độ: Nghiêm trọng (ví dụ: gán nhãn phong cách Đông Hồ nhưng mô hình luôn vẽ thêm hình ảnh "con lợn âm dương" hoặc "con gà").
- Giải pháp: Đa dạng hóa đối tượng trong tập dữ liệu huấn luyện (bao gồm cả chân dung, hoa sen, phong cảnh làng quê, tranh sinh hoạt lễ hội); tinh chỉnh số lượng bước huấn luyện (training steps) tối ưu trong khoảng $3000 - 5000$ steps với learning rate cố định $5 \times 10^{-4}$.
- Rủi ro 3: Tràn bộ nhớ VRAM khi suy luận hoặc xử lý ảnh kích thước lớn.
- Mức độ: Trung bình.
- Giải pháp: Kích hoạt chế độ tính toán độ chính xác đơn nửa (Half-precision Floating Point - FP16), sử dụng thư viện
xFormers tối ưu hóa cơ chế tính Cross-Attention ma trận thưa (Memory-efficient Attention), giải phóng gradient không sử dụng trong quá trình suy luận.
Implementation và kết quả
Development process
Quá trình triển khai kỹ thuật được chuẩn hóa thành một quy trình khép kín gồm các bước chi tiết:
[Dữ liệu thô (80-100 ảnh/loại)]
[Tiền xử lý & Inpainting Padding (512x512)]
[Khởi tạo Placeholder Token <dong-ho-style>, <son-mai-style>]
[Vòng lặp tối ưu hóa Embedding Vector v* (3000-5000 steps, lr=0.0005)]
[Tích hợp Pipeline Image-to-Image / Text-to-Image + SOD + Fast-API]
Chi tiết thuật toán huấn luyện Textual Inversion
import torch
from torch.utils.data import Dataset, DataLoader
from transformers import CLIPTokenizer, CLIPTextModel
from diffusers import AutoencoderKL, UNet2DConditionModel, DDPMScheduler
def train_textual_inversion_step(
tokenizer: CLIPTokenizer,
text_encoder: CLIPTextModel,
vae: AutoencoderKL,
unet: UNet2DConditionModel,
noise_scheduler: DDPMScheduler,
batch_images: torch.Tensor,
placeholder_token_ids: list,
optimizer: torch.optim.Optimizer
):
# 1. Chuyển ảnh pixel sang biểu diễn tiềm ẩn z_0 qua VAE Encoder
with torch.no_grad():
latents = vae.encode(batch_images.to(dtype=torch.float16)).latent_dist.sample()
latents = latents * vae.config.scaling_factor # scale hệ số 0.18215
# 2. Lấy mẫu nhiễu Gaussian và bước thời gian t ngẫu nhiên
noise = torch.randn_like(latents)
bsz = latents.shape[0]
timesteps = torch.randint(0, noise_scheduler.config.num_train_timesteps, (bsz,), device=latents.device).long()
# 3. Quá trình khuếch tán xuôi: Thêm nhiễu vào không gian tiềm ẩn
noisy_latents = noise_scheduler.add_noise(latents, noise, timesteps)
# 4. Lấy nhúng từ văn bản chứa token đặc biệt <S*>
# Chỉ cho phép tính gradient trên vector nhúng của token placeholder
input_ids = tokenizer(
["a photo in <dong-ho-style> of a village"] * bsz,
padding="max_length",
max_length=tokenizer.model_max_length,
return_tensors="pt"
).input_ids.to(latents.device)
encoder_hidden_states = text_encoder(input_ids)[0]
# 5. Mạng U-Net dự đoán nhiễu (Dự đoán epsilon)
noise_pred = unet(noisy_latents, timesteps, encoder_hidden_states).sample
# 6. Tính toán hàm mất mát MSE Loss
loss = torch.nn.functional.mse_loss(noise_pred.float(), noise.float(), reduction="mean")
# 7. Lan truyền ngược và cập nhật duy nhất vector embedding của placeholder token
loss.backward()
optimizer.step()
optimizer.zero_grad()
return loss.item()
Testing và validation
Quá trình kiểm thử và đánh giá hiệu năng được tiến hành trên môi trường phần cứng chuẩn hóa:
- GPU: NVIDIA GeForce RTX 3090 (24 GB GDDR6X VRAM).
- CPU: Intel Xeon Gold 6226R @ 2.90GHz (16 Cores, 32 Threads).
- RAM: 64 GB DDR4.
- Hệ điều hành: Ubuntu 22.04 LTS, CUDA 11.8, cuDNN 8.7.
Thông số Benchmark hiệu năng suy luận (Inference Metrics)
| Bộ lấy mẫu (Sampler) |
Số bước (Steps) |
Classifier-Free Guidance (CFG) |
Độ phân giải |
Thời gian xử lý (Inference Latency) |
Tiêu hao VRAM đỉnh (Peak VRAM) |
| DDIM |
50 |
7.5 |
$512 \times 512$ |
$3.82\text{ s}$ |
$4.8\text{ GB}$ |
| Euler Ancestral (Euler-a) |
30 |
7.0 |
$512 \times 512$ |
$2.31\text{ s}$ |
$4.7\text{ GB}$ |
| DPM++ 2M Karras |
25 |
7.5 |
$512 \times 512$ |
$1.98\text{ s}$ |
$4.7\text{ GB}$ |
| DDIM + Real-ESRGAN |
50 |
7.5 |
$1024 \times 1024$ |
$6.45\text{ s}$ |
$7.2\text{ GB}$ |
Kết quả đạt được
Hệ thống đã hoàn thành $100%$ các tính năng thiết kế ban đầu và vượt chỉ tiêu về khả năng tiết kiệm tài nguyên:
- Tập dữ liệu: Đã thu thập và chuẩn hóa thành công 95 bức ảnh tranh Đông Hồ (bao gồm các tác phẩm kinh điển: Đám cưới chuột, Đánh ghen, Vinh hoa Phú quý, Chăn trâu thổi sáo) và 88 tác phẩm tranh Sơn Mài chất lượng cao.
- Huấn luyện mô hình: Quá trình huấn luyện hội tụ ổn định sau 4,000 steps ($lr = 5 \times 10^{-4}$, batch size = 4). Hàm mất mát MSE giảm đều từ $0.185$ xuống ổn định ở mức $0.032$.
Kết quả khảo sát đánh giá định tính (Human Qualitative Evaluation)
Khảo sát được thực hiện trên mẫu $N = 120$ người tham gia (bao gồm sinh viên ngành đồ họa, nhà nghiên cứu mỹ thuật và người dùng phổ thông), đánh giá trên thang điểm Likert 5 mức độ (1: Rất kém -> 5: Xuất sắc):
+-----------------------------------------------------------------------------------+
| KẾT QUẢ ĐÁNH GIÁ ĐỊNH TÍNH (N=120) |
| |
| 1. Độ chính xác phong cách Đông Hồ [████████████████████████░░] 4.35 / 5.0 (87%) |
| 2. Độ chính xác phong cách Sơn Mài [██████████████████████░░░░] 4.20 / 5.0 (84%) |
| 3. Khả năng bảo toàn nội dung gốc [█████████████████████████░] 4.52 / 5.0 (90%) |
| 4. Tính thẩm mỹ & Không có dị tật [███████████████████████░░░] 4.18 / 5.0 (83%) |
| 5. Trải nghiệm tương tác Web UI [██████████████████████████] 4.65 / 5.0 (93%) |
+-----------------------------------------------------------------------------------+
Đổi mới và đóng góp
- Đổi mới về mặt kỹ thuật thích ứng miền dữ liệu hẹp (Few-shot Domain Adaptation):
- Đề tài chứng minh tính khả thi vượt trội của phương pháp Textual Inversion trên các phong cách nghệ thuật cổ truyền Việt Nam. Thay vì phải can thiệp vào hàng tỷ tham số của mạng U-Net, giải pháp cô đọng toàn bộ đặc trưng thị giác phức tạp của dòng tranh (màu nền giấy điệp, độ nứt bề mặt tranh sơn mài, vệt mài đa sắc) vào duy nhất một vector 768 chiều trong không gian tiềm ẩn của CLIP.
- So sánh định lượng hiệu quả lưu trữ và tính toán:
- So với phương pháp DreamBooth (yêu cầu lưu trữ full checkpoint $\approx 2.0 - 4.0\text{ GB}$ cho mỗi phong cách), Textual Inversion giảm dung lượng checkpoint tới $99.99%$ (file nhúng chỉ $\approx 10\text{ KB} - 25\text{ KB}$).
- So với mô hình Neural Style Transfer (Gatys et al.), giải pháp của đề tài tăng tốc độ tạo sinh lên hơn $350%$ trên mỗi lượt chuyển đổi, đồng thời loại bỏ hoàn toàn hiện tượng vỡ cấu trúc ngữ nghĩa của vật thể trong các khung hình phức tạp.
- Đóng góp bảo tồn di sản văn hóa số:
- Dự án tiên phong thiết lập bộ dữ liệu tranh dân gian Đông Hồ và Sơn Mài chuẩn hóa cho các tác vụ nghiên cứu Trí tuệ Nhân tạo tại Việt Nam.
- Cung cấp công cụ số hóa giúp các nghệ sĩ thị giác, nhà thiết kế thời trang, bao bì và truyền thông hiện đại dễ dàng khai thác ngôn ngữ nghệ thuật dân gian trong các sản phẩm thiết kế đương đại.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế
- Thiết kế công nghiệp và thương mại sáng tạo: Tự động tạo sinh hoa văn, bao bì sản phẩm (hộp bánh Trung thu, lịch Tết, bao lì xì, thiệp chúc mừng) mang đậm bản sắc văn hóa Việt Nam từ các ảnh chụp sản phẩm thực tế.
- Hỗ trợ nghệ sĩ đồ họa (Creative AI Copilot): Giúp các họa sĩ và nhà thiết kế concept phác thảo nhanh các biến thể bối cảnh game, hoạt hình mang phong cách mỹ thuật cổ truyền.
- Giáo dục và bảo tồn văn hóa: Ứng dụng trong các bảo tàng số, triển lãm ảo cho phép khách tham quan tải chân dung cá nhân và chuyển đổi tức thì thành tranh Đông Hồ hoặc tranh Sơn Mài tương tác.
graph LR
subgraph "Client Layer"
UserBrowser["Web Browser / Mobile Client"]
end
subgraph "API Gateway & Load Balancer"
Nginx["Nginx Reverse Proxy"]
end
subgraph "Application Layer (FastAPI)"
APIServer["FastAPI Server (Worker Pool)"]
Preprocess["Inpainting & SOD Engine"]
end
subgraph "Inference Engine"
TorchServe["PyTorch / TensorRT Runtime"]
GPU["NVIDIA GPU (RTX 3090 / T4)"]
end
UserBrowser -->|HTTP POST /api/v1/generate| Nginx
Nginx --> APIServer
APIServer --> Preprocess
Preprocess --> TorchServe
TorchServe --> GPU
GPU -->|Image Response Base64/URL| APIServer
APIServer --> UserBrowser
Chiến lược triển khai hệ thống (Deployment Architecture)
- Containerization: Đóng gói toàn bộ runtime pipeline trong môi trường Docker Container (
nvidia/cuda:11.8.0-runtime-ubuntu22.04), đảm bảo tính nhất quán giữa môi trường phát triển và sản xuất.
- Tối ưu hóa tài nguyên: Sử dụng cơ chế hàng đợi xử lý bất đồng bộ (Celery + Redis) để điều phối các tác vụ tạo sinh, ngăn chặn tình trạng tràn VRAM khi có đồng thời nhiều yêu cầu người dùng.
- Tăng tốc phần cứng: Chuyển đổi mô hình U-Net sang định dạng TensorRT hoặc sử dụng ONNX Runtime, giúp giảm độ trễ suy luận thêm $35-40%$ so với PyTorch thuần.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Phụ thuộc vào ngôn ngữ Tiếng Anh: Do sử dụng bộ mã hóa tiền huấn luyện CLIP của OpenAI, các prompt mô tả bằng Tiếng Việt cần qua bước dịch trung gian, đôi khi làm thất thoát các sắc thái ngữ nghĩa bản địa đặc thù (ví dụ: "giấy điệp", "sơn then", "then cánh gián").
- Ràng buộc tỷ lệ khung hình: Mô hình đạt độ hội tụ thẩm mỹ cao nhất trên tỷ lệ khung hình vuông $512 \times 512$; các tỷ lệ khung hình quá hẹp hoặc quá dài dễ gặp hiện tượng lặp đối tượng (object repetition) nếu không sử dụng thêm kỹ thuật mở rộng khung hình phức tạp.
- Độ phân giải gốc giới hạn: Không gian tiềm ẩn được tối ưu ở mức cơ bản $512 \times 512$, việc nâng cấp lên $2\text{K}/4\text{K}$ vẫn cần sự can thiệp của mạng nội suy super-resolution độc lập.
Hướng phát triển trong tương lai
- Tích hợp ControlNet: Bổ sung các kênh điều kiện hình học (Canny Edge, Depth Map, OpenPose) để người dùng kiểm soát chính xác $100%$ tư thế nhân vật và đường nét viền tranh theo ý muốn.
- Mở rộng sang kiến trúc SDXL và FLUX: Chuyển dịch pipeline sang các mô hình khuếch tán thế hệ mới với bộ mã hóa văn bản kép (OpenCLIP ViT-bigG + CLIP ViT-L), cho phép tái hiện chi tiết văn bản và kết cấu siêu thực ở độ phân giải gốc $1024 \times 1024$.
- Phát triển bộ mã hóa văn bản Vi-CLIP chuyên biệt: Huấn luyện bộ mã hóa nhúng đa phương thức tiếng Việt chuyên sâu cho các thuật ngữ mỹ thuật dân gian, loại bỏ hoàn toàn rào cản dịch thuật.
Đối tượng hưởng lợi
+----------------------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+------------------------------+---------------------------------------------------------+
| Sinh viên & Học viên | - Bộ mã nguồn mở chi tiết về Textual Inversion & LDM. |
| | - Tài liệu thực nghiệm chuẩn mực về tối ưu GPU hẹp. |
+------------------------------+---------------------------------------------------------+
| Kỹ sư & Lập trình viên AI | - Mẫu kiến trúc triển khai FastAPI + Diffusers thực tế. |
| | - Giải pháp tối ưu hóa bộ nhớ suy luận <5GB VRAM. |
+------------------------------+---------------------------------------------------------+
| Doanh nghiệp Sáng tạo & C-Art| - Rút ngắn 70% thời gian phác thảo ý tưởng bao bì/game. |
| | - Tiết kiệm chi phí phần cứng (chạy tốt trên GPU rẻ). |
+------------------------------+---------------------------------------------------------+
| Nhà nghiên cứu Văn hóa | - Công cụ số hóa di sản nghệ thuật tương tác cao. |
| | - Phương pháp lưu trữ phong cách nghệ thuật dưới 20KB. |
+------------------------------+---------------------------------------------------------+
Câu hỏi thường gặp
1. Cấu hình phần cứng tối thiểu để triển khai và chạy suy luận mô hình là gì?
Hệ thống được thiết kế tối ưu hóa triệt để:
- Cấu hình tối thiểu (Suy luận): 01 GPU NVIDIA có $\ge 6\text{ GB}$ VRAM (như GTX 1660 Ti, RTX 2060, RTX 3050), RAM hệ thống 16 GB, dung lượng ổ cứng trống 10 GB SSD.
- Cấu hình khuyến nghị (Fine-tuning & Đa người dùng): 01 GPU NVIDIA RTX 3060 / 3090 / T4 ($\ge 12\text{ GB} - 24\text{ GB}$ VRAM), RAM 32 GB, hỗ trợ CUDA 11.8 trở lên.
2. Khả năng mở rộng quy mô (Scalability) của hệ thống khi có lượng truy cập lớn?
Hệ thống áp dụng kiến trúc microservices phân tách hoàn toàn giữa Web Server (FastAPI) và GPU Inference Workers. Khi lưu lượng truy cập tăng, hệ thống có thể mở rộng theo chiều ngang (Horizontal Scaling) bằng cách bổ sung các GPU Node phía sau Nginx Load Balancer, kết hợp cơ chế hàng đợi Redis Queue để xử lý đồng thời hàng trăm yêu cầu mà không gây nghẽn bộ nhớ GPU.
3. Làm thế nào để tích hợp mô hình vào các hệ thống quản lý sản phẩm hoặc website sẵn có?
Hệ thống cung cấp chuẩn giao tiếp RESTful API qua giao thức HTTP/JSON. Các nền tảng thương mại điện tử, ứng dụng di động hoặc công cụ đồ họa (như Photoshop Plugin, Figma Plugin) có thể gửi yêu cầu sinh ảnh qua endpoint:
POST /api/v1/generate
Content-Type: application/json
{
"prompt": "a portrait of a woman in <son-mai-style>",
"init_image": "base64_encoded_string",
"strength": 0.65,
"steps": 40,
"guidance_scale": 7.5
}
4. Chi phí bảo trì, vận hành và cập nhật mô hình phong cách mới như thế nào?
Chi phí vận hành cực kỳ thấp:
- Nhờ kỹ thuật Textual Inversion, việc huấn luyện một phong cách tranh dân gian mới chỉ mất khoảng $20 - 30\text{ phút}$ trên một GPU tầm trung (chi phí thuê cloud GPU khoảng $< 0.5\text{ USD}$/lần huấn luyện).
- Mỗi checkpoint phong cách chỉ nặng $\approx 10\text{ KB}$, cho phép lưu trữ hàng nghìn phong cách nghệ thuật khác nhau trong một cơ sở dữ liệu nhẹ mà không phát sinh chi phí lưu trữ đám mây.
5. Tại sao không sử dụng LoRA (Low-Rank Adaptation) hay DreamBooth mà lại chọn Textual Inversion?
- DreamBooth: Tinh chỉnh toàn bộ mạng U-Net, cho chất lượng cao nhưng checkpoint nặng ($\approx 2-4\text{ GB}$) và dễ gây hiện tượng quên kiến thức nền (catastrophic forgetting).
- LoRA: Tinh chỉnh các ma trận trọng số rank thấp, checkpoint $\approx 10 - 100\text{ MB}$.
- Textual Inversion: Giữ nguyên $100%$ mạng U-Net và VAE, chỉ tìm vector biểu diễn từ vựng mới trong CLIP space. Với tập dữ liệu tranh dân gian số lượng ít ($\le 100$ ảnh), Textual Inversion giúp bảo toàn hoàn hảo khả năng tạo sinh đa dạng của mô hình gốc, tránh hiện tượng overfitting cấu trúc và tạo ra file checkpoint nhẹ nhất ($\approx 10\text{ KB}$).
Kết luận
Đề tài khóa luận tốt nghiệp "Tạo sinh và chuyển đổi ảnh nghệ thuật với mô hình khuếch tán trên không gian tiềm ẩn" đã giải quyết trọn vẹn và xuất sắc bài toán ứng dụng công nghệ Trí tuệ Nhân tạo tiên tiến vào bảo tồn và phát huy di sản mỹ thuật dân gian Việt Nam. Bằng việc làm chủ cơ sở lý thuyết toán học của Latent Diffusion Models, phối hợp đột phá cùng kỹ thuật tối ưu hóa vector nhúng Textual Inversion, đề tài đã chứng minh rằng các mô hình AI tạo sinh cao cấp hoàn toàn có thể được tùy biến và triển khai hiệu quả trong điều kiện tài nguyên tính toán giới hạn.
Kết quả thực nghiệm trên hai dòng tranh truyền thống Đông Hồ và Sơn Mài không chỉ khẳng định tính đúng đắn về mặt học thuật và kỹ thuật phần mềm, mà còn mở ra một hướng đi giàu tiềm năng trong việc ứng dụng AI phụng sự các giá trị văn hóa dân tộc. Hệ thống đã sẵn sàng để chuyển giao, tích hợp vào các nền tảng thiết kế đồ họa thực tế, góp phần đưa nét đẹp của nghệ thuật truyền thống Việt Nam hòa nhịp cùng dòng chảy công nghệ số toàn cầu.