| # Phân Tích Chi Tiết Quy Trình Hoạt Động `free-workflow.json` | |
| Đây là bản phân tích chi tiết về quy trình xử lý ảnh được định nghĩa trong file `free-workflow.json`. Quy trình này là một luồng công việc Image-to-Image, có chức năng chính là nâng cấp chất lượng (upscale) và tinh chỉnh một hình ảnh có sẵn bằng cách sử dụng ControlNet, Tiled Diffusion và các kỹ thuật khác. | |
| ## Tổng Quan Quy Trình | |
| Quy trình nhận một ảnh đầu vào và hai câu lệnh (prompt dương và âm), sau đó thực hiện hai lần xử lý chính: | |
| 1. **Lần 1 (ControlNet Pass):** Áp dụng ControlNet để đảm bảo cấu trúc của ảnh mới sẽ tuân theo ảnh gốc. | |
| 2. **Lần 2 (Upscale Pass):** Nâng cấp độ phân giải và thêm chi tiết cho ảnh bằng KSampler với các thiết lập tinh chỉnh. | |
| ## Các Giai Đoạn Chính | |
| Quy trình có thể được chia thành 4 giai đoạn logic như sau: | |
| ### Giai đoạn 1: Chuẩn bị và Tải Tài Nguyên | |
| Giai đoạn này tập trung vào việc tải tất cả các thành phần cần thiết để bắt đầu quá trình tạo ảnh. | |
| - **`LoadImage` (Node 17):** Tải hình ảnh đầu vào (`00026-3626113995.png`) để làm cơ sở cho việc xử lý. | |
| - **`CheckpointLoaderSimple` (Node 4):** Tải model nền chính (`juggernaut_reborn.safetensors`). Đây là model Stable Diffusion chính của quy trình. | |
| - **`CR LoRA Stack` (Node 13):** Tải và xếp chồng các model LoRA. Trong trường hợp này, có hai LoRA được sử dụng: | |
| - `more_details.safetensors`: Dùng để tăng thêm chi tiết cho ảnh. | |
| - `SDXLrender_v2.0.safetensors`: Dùng để cải thiện chất lượng kết xuất. | |
| - **`CR Apply LoRA Stack` (Node 14):** Áp dụng các LoRA đã tải vào model chính và CLIP. | |
| - **`CLIPTextEncode` (Node 83 & 7):** Mã hóa các câu lệnh văn bản thành dạng mà model có thể hiểu được. | |
| - **Prompt dương (Node 83):** `masterpiece, best quality, highres` (yêu cầu chất lượng cao). | |
| - **Prompt âm (Node 7):** `(worst quality, low quality, normal quality:2) embedding:JuggernautNegative-neg` (loại bỏ các yếu tố chất lượng thấp). | |
| - **`ToBasicPipe` (Node 24):** Gói tất cả các thành phần đã tải (model, CLIP, VAE, prompts) vào một "đường ống" (pipe) để dễ dàng truyền đi giữa các node. | |
| ### Giai đoạn 2: Áp dụng ControlNet | |
| Giai đoạn này sử dụng ControlNet để điều khiển việc tạo ảnh, đảm bảo kết quả cuối cùng giữ lại được bố cục và các đặc điểm chính từ ảnh đầu vào. | |
| - **`FromBasicPipe` (Node 21):** Giải nén "đường ống" từ Giai đoạn 1 để lấy ra các thành phần cần thiết. | |
| - **`ControlNetLoader` (Node 20):** Tải model ControlNet (`control_v11f1e_sd15_tile.safetensors`). Model `tile` này rất hiệu quả trong việc phân tích và tái tạo chi tiết từ ảnh gốc. | |
| - **`ControlNetApplyAdvanced` (Node 19):** Áp dụng ControlNet lên các prompt. Nó nhận ảnh đầu vào làm ảnh điều khiển, từ đó điều chỉnh các prompt để hướng dẫn KSampler tạo ra một ảnh mới có cấu trúc tương tự ảnh gốc. | |
| - **`ToBasicPipe` (Node 23):** Sau khi áp dụng ControlNet, các thành phần lại được gói vào một "đường ống" mới để chuyển sang giai đoạn tiếp theo. | |
| ### Giai đoạn 3: Nâng Cấp và Tinh Chỉnh (Upscale & Refine) | |
| Đây là giai đoạn phức tạp nhất, nơi ảnh được nâng cấp độ phân giải và được tinh chỉnh bằng một KSampler thứ hai với các thiết lập đặc biệt. | |
| - **`FromBasicPipe` (Node 36):** Giải nén "đường ống" từ Giai đoạn 2. | |
| - **Chuỗi xử lý ảnh đầu vào:** | |
| 1. **`UpscaleModelLoader` (Node 53):** Tải model nâng cấp (`4xNomosUniDAT_otf.pth`). | |
| 2. **`ImageUpscaleWithModel` (Node 52):** Nâng cấp độ phân giải của ảnh đầu vào gốc bằng model vừa tải. | |
| 3. **`ImageScaleBy` (Node 54):** Giảm nhẹ kích thước ảnh vừa được nâng cấp xuống còn 60%. Kỹ thuật này thường được dùng để làm mịn ảnh trước khi đưa vào latent space, giúp giảm nhiễu và tạo ra kết quả cuối cùng sắc nét hơn. | |
| 4. **`VAEEncodeTiled` (Node 46):** Mã hóa hình ảnh đã qua xử lý thành không gian tiềm ẩn (latent space). Đây sẽ là latent đầu vào cho KSampler cuối cùng. | |
| - **Chuỗi xử lý model:** | |
| 1. **`TiledDiffusion` (Node 44):** Áp dụng kỹ thuật "MultiDiffusion" lên model. Kỹ thuật này chia ảnh thành các ô nhỏ (tiles) để xử lý, cho phép tạo ra ảnh có độ phân giải cao mà không cần quá nhiều VRAM. | |
| 2. **`FreeU_V2` (Node 55):** Áp dụng FreeU lên model. Đây là một kỹ thuật giúp cải thiện chất lượng ảnh ở các tần số khác nhau, làm tăng độ tương phản và chi tiết mà không cần thay đổi prompt. | |
| - **`KSampler` (Node 45):** Đây là bước tạo ảnh chính của giai đoạn này. | |
| - Nó nhận model đã được tinh chỉnh bởi `TiledDiffusion` và `FreeU_V2`. | |
| - Nó sử dụng latent từ ảnh đã được upscale/downscale làm điểm bắt đầu. | |
| - **Denoise (0.35):** Chỉ số denoise thấp (0.35) cho thấy KSampler chỉ thay đổi một phần nhỏ (35%) của latent đầu vào, chủ yếu để thêm chi tiết và tinh chỉnh chứ không tạo ra một ảnh hoàn toàn mới. | |
| ### Giai đoạn 4: Kết Xuất và So Sánh | |
| Giai đoạn cuối cùng là giải mã latent thành ảnh và hiển thị kết quả. | |
| - **`VAEDecodeTiled` (Node 48):** Giải mã latent cuối cùng từ KSampler để tạo ra hình ảnh pixel hoàn chỉnh. | |
| - **`PreviewImage` (Node 68):** Hiển thị ảnh kết quả cuối cùng. | |
| - **`Image Comparer` (Node 56):** Cung cấp một giao diện để so sánh trực quan giữa ảnh gốc và ảnh đã được nâng cấp, giúp dễ dàng đánh giá hiệu quả của quy trình. | |