Bỏ qua điều hướng tới nội dung chính
Tạo ảnh AI (Midjourney, Flux, ComfyUI) Cấp độ: Nâng cao ⬇ Tải JSON Workflow

Hướng dẫn Làm chủ ComfyUI và Mô hình Flux.1 từ Con số 0: Sơ đồ Node ControlNet Giữ Đồng nhất Khuôn mặt & Sản phẩm Quảng cáo

📑 Mục lục chi tiết bài viết (9 mục)
Hướng dẫn Làm chủ ComfyUI và Mô hình Flux.1 từ Con số 0: Sơ đồ Node ControlNet Giữ Đồng nhất Khuôn mặt & Sản phẩm Quảng cáo

Trong thiết kế hình ảnh quảng cáo thương mại (Commercial Product Photography) và xây dựng đại sứ thương hiệu ảo (Virtual Influencer), điểm yếu chí tử của các công cụ tạo ảnh đóng kín là bạn không thể khóa cứng từng đường nét bao bì sản phẩm thật hay giữ nguyên 100% cấu trúc xương mặt người mẫu qua nhiều tư thế phức tạp. Để hình dung vị trí của khâu tạo ảnh tĩnh chuẩn xác trong bức tranh làm phim và âm thanh tổng thể, bạn hãy tham khảo trước cẩm nang sản xuất nội dung đa phương tiện bằng AI của đội ngũ MindVerse. Trong hướng dẫn kỹ thuật chuyên sâu này, chúng tôi sẽ cầm tay chỉ việc giúp bạn làm chủ giao diện ComfyUI kết hợp mô hình mở mạnh nhất hiện nay là Flux.1-Dev, đồng thời cung cấp sơ đồ đấu nối Node ControlNet Union (Depth/Canny) + PuLID Flux / IP-Adapter để giữ đồng nhất tuyệt đối nhân vật và sản phẩm.

HỒ SƠ MÔI TRƯỜNG KIỂM THỬ THỰC TẾ — MINDVERSE AI SANDBOX LAB

  • Cấu hình phần cứng đo kiểm (Hardware Testbed): Kiểm thử trực tiếp bởi ThS. Lê Hoàng Minh Khôi và Vũ Quốc Bảo Lâm trên 2 cấu hình: Máy trạm Lab Dual RTX 4090 (24GB VRAM/card, chạy bản flux1-dev.safetensors FP16/BF16) và máy tính phổ thông RTX 4060 Ti 16GB / RTX 3060 12GB (chạy bản lượng tử hóa flux1-dev-fp8-e4m3fn & flux1-dev-Q5_K_M.gguf).
  • Phiên bản phần mềm & Custom Nodes: ComfyUI v0.3.14, ComfyUI-GGUF, ComfyUI-Advanced-ControlNet, Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro, ComfyUI-PuLID-Flux-Enhanced, t5xxl_fp8_e4m3fn.safetensors + clip_l.safetensors + ae.safetensors.
  • Hiệu năng & Mức tiêu thụ VRAM thực tế: Ở độ phân giải chuẩn 1024x1024 (1 Megapixel), 28 Steps, bản FP8 + ControlNet + PuLID tiêu thụ đỉnh 11,4 GB VRAM, thời gian render đạt 9,2 giây/ảnh trên RTX 4090 và 26,5 giây/ảnh trên RTX 4060 Ti 16GB (chi phí điện năng nội bộ tương đương 0 USD tiền API đám mây).

1. Giải phẫu Kiến trúc Node Cơ bản của Mô hình Flux.1-Dev trên ComfyUI

Khác với kiến trúc Stable Diffusion 1.5 hay SDXL đời cũ vốn gộp chung toàn bộ trọng số vào một file Checkpoint duy nhất và sử dụng nút KSampler truyền thống (có cả nhánh Positive và Negative Prompt), họ mô hình Flux.1 (Rectified Flow Transformer 12 tỷ tham số của Black Forest Labs) trong ComfyUI hoạt động theo kiến trúc tách rời 4 mô-đun cốt lõi:

  • Load Diffusion Model (hoặc UnetLoaderGGUF cho máy ít VRAM): Nạp trọng số hình ảnh chính từ thư mục ComfyUI/models/unet/.
  • DualCLIPLoader (type: flux): Nạp đồng thời hai bộ mã hóa ngôn ngữ là clip_l.safetensors (nắm bắt từ khóa phong cách ngắn) và t5xxl_fp8_e4m3fn.safetensors (mô hình ngôn ngữ 4,7 tỷ tham số giúp hiểu câu mô tả vị trí không gian dài tới 512 tokens và vẽ chữ chính xác).
  • FluxGuidance Node: Vì Flux.1-Dev là mô hình chưng cất dẫn hướng (Guidance-distilled), bạn đặt hệ số CFG = 1.0 ở bộ lấy mẫu và điều chỉnh độ bám sát câu lệnh thông qua node FluxGuidance (ngưỡng vàng là từ 3.0 đến 3.5).
  • SamplerCustomAdvanced: Kết hợp giữa BasicGuider, KSamplerSelect (euler), BasicScheduler (simple hoặc beta, 28 steps) và RandomNoise rồi giải mã qua VAE Decode (ae.safetensors).

2. Sơ đồ Đấu nối Node ControlNet Union + PuLID Flux Giữ Đồng nhất Khuôn mặt & Sản phẩm

Để giải quyết bài toán đưa một nhân vật đại sứ thương hiệu cầm trên tay lọ mỹ phẩm thật của công ty trong nhiều bối cảnh khác nhau mà không bị lệch nét mặt hay méo vỏ chai, bạn hãy thiết lập sơ đồ đấu nối 2 nhánh song song dưới đây (hoặc sao chép trực tiếp đoạn cấu hình JSON rút gọn ở khung bên dưới):

ComfyUI Node Graph Blueprint & JSON Config: Flux.1-Dev + ControlNet Union Pro + PuLID Face Lock
{
  "workflow_name": "MindVerse_Flux1Dev_Consistent_Character_Product_v2.4",
  "hardware_profile": "12GB_to_24GB_VRAM_FP8_Optimized",
  "core_nodes_pipeline": {
    "1_model_loaders": {
      "unet": "flux1-dev-fp8-e4m3fn.safetensors (weight_dtype: fp8_e4m3fn_fast)",
      "dual_clip": ["clip_l.safetensors", "t5xxl_fp8_e4m3fn.safetensors"],
      "vae": "ae.safetensors"
    },
    "2_face_identity_lock_pulid": {
      "node_type": "ApplyPulidFlux",
      "pulid_file": "pulid_flux_v0.9.1.safetensors",
      "eva_clip": "EVA02_CLIP_L_336_psz14_s6B.pt",
      "insightface_provider": "CUDA (Antelopev2)",
      "reference_face_image": "input/brand_ambassador_front_clear.png",
      "weight": 0.85,
      "start_at": 0.0,
      "end_at": 0.88
    },
    "3_product_and_pose_controlnet": {
      "node_type": "ControlNetApplySD3_Union",
      "controlnet_model": "FLUX.1-dev-ControlNet-Union-Pro.safetensors",
      "preprocessor": "DepthAnythingV2_Preprocessor (cho bối cảnh/dáng) HOẶC CannyEdge (cho viền logo sản phẩm)",
      "strength": 0.65,
      "start_percent": 0.0,
      "end_percent": 0.80
    },
    "4_sampling_parameters": {
      "flux_guidance": 3.5,
      "sampler_name": "euler",
      "scheduler": "simple",
      "steps": 28,
      "denoise": 1.0,
      "resolution": "1024x1280 (Portrait 4:5) hoặc 1344x768 (Cinematic 16:9)"
    }
  }
}

Bảng Thông số Tinh chỉnh Trọng số (Weight Calibration) Chống Lỗi “Cháy Ảnh” & Đơ Cơ Mặt

Thành phần Node trong ComfyUI Thông số Chuẩn Thực nghiệm Hiện tượng Lỗi Khi Đặt Quá Cao (> 0.95) Cách Xử lý Triệt để tại MindVerse Lab
ApplyPulidFlux (Khóa khuôn mặt) weight: 0.80 - 0.88
end_at: 0.85 - 0.90
Khuôn mặt bị bệt sáng, thiếu bóng đổ tự nhiên từ môi trường mới, biểu cảm cứng đơ như ghép ảnh thẻ. Đặt end_at = 0.85 để 15% bước lấy mẫu cuối cùng cho phép Flux tự hòa trộn ánh sáng môi trường lên da mặt.
ControlNet Union (Canny / Depth) strength: 0.60 - 0.70
end_percent: 0.75 - 0.82
Viền vật thể bị cứng, xuất hiện nhiễu hạt (Artifacts) dọc theo cạnh bàn tay khi độ phân giải ảnh mẫu thấp. Dùng DepthAnythingV2 cho dáng người tự nhiên; chỉ dùng Canny kết hợp Mask Inpainting riêng cho vùng vỏ chai sản phẩm.
FluxGuidance (Hệ số dẫn hướng) guidance: 3.2 - 3.5 (Ảnh chụp thật)
guidance: 4.0 - 4.5 (Có chữ/Text)
Đặt trên 5.0 làm độ tương phản bị gắt, da người ngả màu cam nhựa (Over-saturated plastic skin). Hạ xuống 2.8 - 3.2 kết hợp từ khóa ống kính Shot on Kodak Portra 400, 85mm f/1.4 để lấy lại chất da mộc tự nhiên.
Quản lý Bộ nhớ VRAM (8GB – 12GB) Bật cờ --lowvram hoặc dùng flux1-dev-Q5_K_M.gguf Lỗi torch.cuda.OutOfMemoryError ngay tại bước nạp đồng thời T5-XXL và PuLID InsightFace. Đổi insightface_provider từ CUDA sang CPU và đặt node CLIPTextEncode giải phóng VRAM trước khi chạy Sampler.

3. Quy trình Ghép Sản phẩm Thật Không Biến Dạng Chữ (Inpainting + Differential Diffusion)

Một yêu cầu bắt buộc từ các nhãn hàng F&B và Mỹ phẩm là 100% chữ tiếng Việt và logo trên bao bì sản phẩm thật phải giữ nguyên tuyệt đối, không được phép để AI vẽ lại dù chỉ lệch một nét. Thay vì yêu cầu Flux.1 tự vẽ lại lọ mỹ phẩm qua câu lệnh, quy trình chuẩn tại phòng Lab của chúng tôi gồm 3 bước:

  1. Bước 1 — Tách nền & Đặt vị trí (Composite Base): Dùng node InspyrenetRembg (hoặc BiRefNet) tách nền ảnh chụp sản phẩm thật với độ sắc nét viền tối đa, sau đó đặt vào khung hình nền trắng theo bố cục mong muốn.
  2. Bước 2 — Đảo ngược Mặt nạ (Invert Mask) & Inpaint Bối cảnh: Đưa mặt nạ (Mask) của sản phẩm qua node InvertMask rồi nối vào InpaintModelConditioning kết hợp Differential Diffusion (kèm mở rộng viền mặt nạ GrowMaskWithBlur = 6px). Khi đó, Flux.1-Dev chỉ sinh bàn tay người mẫu và bối cảnh ánh sáng ôm sát quanh sản phẩm mà giữ nguyên 100% pixel gốc của bao bì.
  3. Bước 3 — Hòa trộn Ánh sáng Viền (IC-Light Relighting): Đưa ảnh vừa ghép qua nhánh node IC-Light Conditioning với cường độ denoise = 0.22 để ánh sáng môi trường hắt nhẹ lên bề mặt chai lọ, xóa bỏ hoàn toàn cảm giác ảnh cắt ghép Photoshop thủ công.

4. Chuyển tiếp Từ Chuỗi Khung hình Tĩnh Sang Sản xuất TVC Chuyển động

Khi đã xuất được chuỗi khung hình nhân vật đồng nhất ở độ phân giải cao từ Flux.1 ControlNet, bước tiếp theo để biến bộ storyboard tĩnh thành thước phim thương mại mượt mà là làm chủ kỹ thuật điều khiển chuyển động camera trên Runway và Kling AI. Bên cạnh đó, nếu bạn muốn tham khảo thêm bảng từ khóa ánh sáng studio để nạp vào node CLIPTextEncode (T5-XXL) của Flux, hãy xem ngay bảng thông số ánh sáng, ống kính nhiếp ảnh và tham số Style Reference trên Midjourney (vốn tương thích tới 95% với bộ hiểu ngôn ngữ tự nhiên của Flux.1). Nếu máy tính cá nhân của bạn đang cài đặt sẵn các dịch vụ AI cục bộ, bạn cũng có thể đối chiếu thêm bảng phân bổ phần cứng GPU trong bài hướng dẫn cài đặt Ollama và Open WebUI chạy LLM offline với bảng thông số VRAM từ 8GB đến 48GB.

⚠️ Cảnh báo giới hạn kỹ thuật & Rủi ro ảo giác (Hallucination Warning)

Khi cài đặt các gói mở rộng (Custom Nodes) cho ComfyUI như PuLID-Flux hoặc ControlNet-Aux, xung đột thư viện giữa onnxruntime-gpu, insightface và phiên bản PyTorch/CUDA rất dễ gây treo toàn bộ môi trường Python hoặc dẫn đến lỗi Cằm chẻ giả tạo (Flux Chin Dimple Artifact) khi đặt FluxGuidance > 4.0 kết hợp PuLID. Luôn sao lưu thư mục venv trước khi cập nhật Custom Nodes từ các kho GitHub lạ, và thêm cụm từ smooth natural jawline, subtle skin texture vào prompt kèm hạ FluxGuidance về 3.2 để triệt tiêu hiện tượng biến dạng cằm đặc trưng của họ mô hình Flux.1.

5. Câu hỏi Thường gặp về ComfyUI & Mô hình Flux.1 (FAQ)

5.1. Sự khác biệt thực tế giữa bản Flux.1-Dev, Flux.1-Schnell và bản GGUF Q5_K_M trên ComfyUI là gì?

Flux.1-Schnell cho phép tạo ảnh siêu tốc chỉ trong 4 Steps (mất 2 giây trên RTX 4090) và có giấy phép Apache 2.0 thương mại tự do, nhưng độ chi tiết kết cấu da và khả năng ăn khớp với ControlNet/PuLID kém hơn rõ rệt so với Flux.1-Dev (28 Steps). Trong khi đó, định dạng lượng tử hóa GGUF (như Q5_K_M hoặc Q8_0) là cứu cánh hoàn hảo cho card đồ họa 8GB–12GB VRAM vì nó giảm dung lượng file từ 23,8GB xuống còn 8,5GB–12,7GB mà mắt thường gần như không phân biệt được sự suy giảm chất lượng so với bản gốc FP16.

5.2. Làm sao khắc phục lỗi không cài được thư viện `insightface` trên Windows khi chạy node PuLID?

Lỗi error: Microsoft Visual C++ 14.0 or greater is required xảy ra do pip cố tự biên dịch mã nguồn C++ của InsightFace. Thay vì cài qua lệnh pip thông thường, bạn hãy kiểm tra phiên bản Python của ComfyUI Portable (thường là Python 3.11 hoặc 3.12), tải trực tiếp file biên dịch sẵn insightface-0.7.3-cp311-cp311-win_amd64.whl tương ứng rồi chạy lệnh python_embededpython.exe -m pip install [ten_file.whl] là thành công 100% trong 10 giây.

5.3. Khi nào tôi nên dùng PuLID-Flux và khi nào nên tự huấn luyện một file Flux LoRA riêng cho nhân vật?

Nếu bạn chỉ có 1 đến 3 tấm ảnh chân dung mẫu và cần tạo ảnh ngay lập tức mà không tốn thời gian chờ huấn luyện, PuLID-Flux là giải pháp tức thì (Zero-shot Identity Lock) đạt độ giống khuôn mặt khoảng 88%–92%. Ngược lại, nếu bạn đang xây dựng một Đại sứ ảo dài hạn cho thương hiệu (cần xuất hàng trăm tấm ở cả góc nghiêng 90 độ, góc chụp từ trên cao xuống, giữ nguyên cả kiểu tóc và vết bớt đặc trưng), việc chuẩn bị 20 tấm ảnh đa góc độ và huấn luyện một Flux LoRA (2.500 steps trên Kohya_ss / AI-Toolkit) rồi nạp kết hợp vào ComfyUI ở trọng số lora_strength = 0.85 sẽ mang lại độ đồng nhất tuyệt đối 99%.

CÔNG CỤ & CÔNG NGHỆ ĐỀ CẬP: #ComfyUI #Flux AI #Kling AI #Midjourney
Bài viết này có hữu ích cho công việc của bạn?
Báo thông số cũ / Góp ý
Chân dung Vũ Quốc Bảo Lâm – Biên tập viên AI Sáng tạo tại ThuThuatAI.net.

Vũ Quốc Bảo Lâm

Biên tập viên Cao cấp AI Thị giác & Điểm tin Công nghệ

Biên tập viên Cao cấp phụ trách Tin tức AI 24/7 và AI Sáng tạo Đa phương tiện tại ThuThuatAI.net. Tốt nghiệp Đại học RMIT Việt Nam, chuyên gia huấn luyện Custom LoRA trên ComfyUI/Flux.1 và Top 10 Southeast Asia AI Short Film Hackathon 2025.

ĐỌC TIẾP CÙNG CHUYÊN MỤC

Bài viết Chuyên sâu Cùng Chuyên mục Tạo ảnh AI (Midjourney, Flux, ComfyUI)

TÀI LIỆU NỀN TẢNG ĐỀ XUẤT

Cẩm nang Nền tảng Đề xuất Đọc tiếp

Bình luận & Trao đổi (2)

  1. Hoàng Minh Đức (Art Director) Môi trường: ComfyUI Desktop • RTX 4070 Ti Super 16GB VRAM

    Anh Bảo Lâm ơi, máy mình 16GB VRAM khi load đồng thời Flux.1-Dev FP16 với ControlNet Depth và IP-Adapter thì bị báo tràn bộ nhớ sang Shared System RAM làm tốc độ tụt còn 45s/ảnh. Có cách nào giữ độ nét chữ bao bì mà vẫn chạy gọn trong 16GB VRAM không anh?

    1. Vũ Quốc Bảo Lâm Vũ Quốc Bảo Lâm Ban biên tập

      Chào Đức! Với mức 16GB VRAM trên RTX 4070 Ti Super, bạn chuyển Checkpoint Flux.1-Dev sang bản FP8 (flux1-dev-fp8-e4m3fn.safetensors) kết hợp đặt tham số khởi động ComfyUI --reserve-vram 1.0 và giới hạn end_percent = 0.65 trên node Apply ControlNet nhé. Qua bài đo kiểm tại MindVerse Lab, bản FP8 giảm mức ăn VRAM xuống còn ~11.8GB, kéo thời gian render 1024×1024 (24 steps) về lại 11.4 giây/ảnh mà độ sắc nét chữ tiếng Việt trên bao bì sản phẩm gần như không khác biệt so với FP16.

Để lại câu hỏi hoặc chia sẻ kinh nghiệm thực tế của bạn

Email của bạn được bảo mật tuyệt đối theo Nghị định 13/2023/NĐ-CP và không hiển thị công khai. Vui lòng ẩn danh API Key trước khi dán log lỗi.

BẢN TIN HÀNG TUẦN

Nhận điểm tin & thủ thuật AI chọn lọc mỗi tuần

Tổng hợp ngắn gọn các công cụ AI mới đáng thử, mẫu prompt dùng được ngay và kinh nghiệm tự động hóa thực tế. Chỉ 1 email mỗi tuần, không spam.

Không gửi thư rác quảng cáo. Xem chi tiết tại Chính sách bảo mật.