Model
.ai
theo dõi các mô hình AI mở

Giải thích ControlNet: tư thế, độ sâu, đường viền và ảnh tham chiếu cho SD 1.5, SDXL và Flux

Chủ đề: Viết prompt
Bởi Captain
Đăng ngày 18 Tháng 2, 2026

Tổng quan

Prompt nói bạn vẽ gì; ControlNet nói bạn vẽ ở đâu. Nó là một mạng phụ, được huấn luyện theo từng dòng model, đọc ảnh điều khiển (tư thế dạng hình que, bản đồ độ sâu, bản vẽ đường viền, nét vẽ nguệch ngoạc, bản đồ phân đoạn) và điều khiển bộ lọc nhiễu để kết quả khớp với cấu trúc đó. Prompt vẫn quyết định chủ đề, phong cách và ánh sáng; ảnh điều khiển cố định bố cục. Đây là cách người ta có cùng tư thế cho mười nhân vật, biến render 3D thành ảnh chụp, hoặc giữ đúng hình dạng sản phẩm.
Có hai bước luôn xảy ra. Đầu tiên bộ tiền xử lý biến ảnh gốc thành ảnh điều khiển (OpenPose vẽ khung xương, MiDaS hoặc Depth Anything ước lượng độ sâu, Canny tìm đường viền, Lineart theo dõi nét vẽ). Rồi mô hình ControlNet cho dòng model của bạn dùng ảnh đó khi tạo ảnh. Dùng ảnh gốc thay vì bản đồ tiền xử lý là lỗi số một của người mới; lỗi hai là dùng ControlNet SD 1.5 trên checkpoint SDXL.
Flux và các model 2025 thay đổi nhiều: Black Forest Labs cung cấp Flux Depth và Flux Canny dưới dạng model đầy đủ và LoRA, Union ControlNets gom nhiều loại trong một file cho SDXL và Flux, và các trình chỉnh sửa theo hướng dẫn (Qwen Image Edit, Kontext) làm nhiều việc "giữ cái này, đổi cái kia" mà không cần ảnh điều khiển. Danh mục trên trang này gắn tag ControlNets dưới mục "khác" theo dòng model; trang model ghi rõ loại điều khiển.

Tham khảo

Tên
Kiểu
Ý nghĩa
OpenPose
control type
Điểm chính trên cơ thể, tay và mặt dưới dạng hình que. Chuyển tư thế, dàn dựng, nhân vật nhất quán. Yếu ở tay trừ khi bật mô hình tay.
Depth (MiDaS, Zoe, Depth Anything)
control type
Bản đồ độ sâu màu xám. Giữ bố cục không gian và camera trong khi cho phép thay đổi phong cách hoàn toàn. Loại điều khiển dễ chịu nhất cho chuyển ảnh chụp sang minh họa.
Canny / Lineart / SoftEdge (HED)
control type
Bản vẽ đường viền. Canny sắc nét và nghiêm ngặt, Lineart cho tranh vẽ, SoftEdge lỏng lẻo. Dùng cho hình dạng sản phẩm, kiến trúc, logo.
Scribble
control type
Nét vẽ thô bạn tự vẽ thành bố cục. Độ mạnh thấp (0.5-0.7) nếu không kết quả trông giống nét vẽ.
Tile
control type
Hướng dẫn nâng cấp hoặc chi tiết để giữ đúng với ảnh đầu vào độ phân giải thấp. Động cơ cho hầu hết quy trình "nâng cấp tối ưu".
IP-Adapter / Redux / reference
image conditioning
Không phải ControlNet: điều kiện theo phong cách hoặc khuôn mặt ảnh thay vì cấu trúc. Kết hợp với ControlNet để có cả hai.
Strength / weight
0.4-1.0
Mức độ bắt buộc cấu trúc. 0.8 cho tư thế và độ sâu, 0.5-0.7 cho đường viền và nét vẽ.
Start / end percent
0.0-1.0
Phần nào của quá trình lọc nhiễu áp dụng điều khiển. Kết thúc ở 0.6-0.8 cho phép model tự do hoàn thiện chi tiết và loại bỏ cảm giác "vẽ theo nét".
Family files
SD 1.5: lllyasviel control_v11 | SDXL: diffusers / xinsir Union | Flux: Flux Depth/Canny, Shakker Union, InstantX
Mỗi dòng model cần ControlNet riêng; dung lượng 0.7-2.5 GB. File Union gom nhiều loại.

Từng bước

  1. Chọn loại điều khiển phù hợp: tư thế cho người, độ sâu cho cảnh và thay đổi phong cách, Canny hoặc Lineart cho hình dạng cứng, nét vẽ cho ý tưởng, tile cho nâng cấp.
  2. Tải ControlNet cho dòng model checkpoint của bạn vào models/controlnet (ComfyUI) hoặc models/ControlNet (A1111, Forge). File Union tiết kiệm dung lượng nếu dùng nhiều loại.
  3. Tải ảnh gốc và chạy bộ tiền xử lý tương ứng (ComfyUI: các node controlnet_aux; A1111: extension ControlNet làm trực tiếp). Xem trước ảnh điều khiển; sửa nếu khung xương thiếu chi.
  4. ComfyUI: Áp dụng ControlNet (Advanced) giữa CLIP Text Encode và KSampler, nối ảnh điều khiển và model ControlNet, độ mạnh 0.8, bắt đầu 0, kết thúc 0.8.
  5. A1111 / Forge: bật ControlNet đơn vị 0, chọn bộ tiền xử lý và model cùng loại, trọng số 0.8, bước điều khiển kết thúc 0.8, bật pixel perfect.
  6. Viết prompt cho thứ bạn muốn thấy, không phải cho tư thế (tư thế đã được xử lý). Tạo bốn seed.
  7. Giảm độ mạnh hoặc phần trăm kết thúc nếu ảnh trông như vẽ theo nét hoặc phẳng; tăng nếu cấu trúc lệch. Xếp thêm đơn vị thứ hai (tư thế + độ sâu) cho bố cục khó.
  8. Trên cloud, PirateDiffusion áp dụng ControlNet khi bạn trả lời ảnh gốc với /render và cờ điều khiển; BitVector có tư thế và độ sâu trong công cụ ảnh.

Ví dụ

Chuyển tư thế trong ComfyUI (SDXL)

Load Image (reference photo) -> DWPose Estimator (body + hands) -> Apply ControlNet Advanced (xinsir controlnet-union-sdxl, type openpose, strength 0.8, end 0.75) -> KSampler
Prompt: a knight in weathered plate armour standing on a cliff at dawn, cinematic, 35mm

Ảnh sang tranh màu nước với độ sâu (A1111 / Forge)

ControlNet unit 0: preprocessor depth_anything, model control_sdxl_depth, weight 0.7, end 0.7, pixel perfect
Prompt: loose watercolour illustration of a harbour town, paper texture, soft morning light

Flux Canny LoRA

Load Diffusion Model (flux1-dev-fp8) -> LoraLoaderModelOnly (flux1-canny-dev-lora, 0.85) -> InstructPixToPixConditioning (canny image) -> KSampler (guidance 30)

Mẹo

  • Độ sâu tốt hơn Canny khi chuyển ảnh chụp sang minh họa vì giữ kết cấu tự do; Canny tốt hơn độ sâu cho logo và sản phẩm vì giữ đường viền chính xác.
  • Phần trăm kết thúc là cài đặt mà nhiều người không bao giờ chỉnh và là thứ sửa được cảm giác nhựa, vẽ theo nét.
  • Thay đổi kích thước ảnh điều khiển theo kích thước tạo ảnh với tỉ lệ khung hình giống nhau; hình dạng không khớp sẽ cắt mất khung xương.
  • OpenPose từ ảnh của bạn là cách nhanh nhất để có thư viện tư thế nhất quán cho nhân vật.
  • Với Flux, LoRA Depth và Canny của Black Forest Labs nhẹ hơn model điều khiển đầy đủ và đủ dùng cho hầu hết công việc.
  • Trình chỉnh sửa theo hướng dẫn (Qwen Image Edit, Kontext) thường thay thế bước ControlNet cho chỉnh sửa "cùng cảnh, khác chủ thể"; xem hướng dẫn Qwen Image Edit.

Khắc phục sự cố

ControlNet không hoạt động

Vì sao xảy ra
Không khớp dòng model (ControlNet SD 1.5 trên SDXL), hoặc dùng ảnh gốc thay vì bản đồ tiền xử lý.

Cách sửa
Chọn đúng dòng model; chạy bộ tiền xử lý và xem trước kết quả.

Kết quả trông như vẽ theo nét và phẳng

Vì sao xảy ra
Độ mạnh 1.0 với phần trăm kết thúc 1.0.

Cách sửa
Độ mạnh 0.7, kết thúc 0.7; để model tự hoàn thiện.

Khung xương thiếu tay hoặc chi

Vì sao xảy ra
Bộ tiền xử lý nhận diện kém trên ảnh lộn xộn.

Cách sửa
Dùng DWPose bật tay, cắt ảnh gốc, hoặc chỉnh khung xương trong node OpenPose editor.

Hết bộ nhớ với hai đơn vị

Vì sao xảy ra
Mỗi ControlNet lên đến 2.5 GB.

Cách sửa
Dùng model Union cho cả hai loại, hoặc ControlNet fp8; xem hướng dẫn VRAM.

ControlNet Flux tạo nhiễu

Vì sao xảy ra
Node điều kiện sai hoặc CFG trên 1 với model guidance-distilled.

Cách sửa
Dùng node theo trang model chỉ định và CFG 1 với hướng dẫn theo trang.

Câu hỏi

ControlNet có phải LoRA không?

Không. Nó là mạng riêng đọc ảnh; LoRA thay đổi trọng số model từ text. LoRA Depth và Canny của Flux là ngoại lệ: model điều khiển đóng gói dưới dạng LoRA.

Có dùng ControlNet với video được không?

Có: Wan VACE và Wan Fun ControlNets nhận chuỗi tư thế hoặc độ sâu; hướng dẫn video trên trang này có nói về chúng.

Có cần cài bộ tiền xử lý không?

Có, chúng tải về lần đầu dùng (controlnet_aux trong ComfyUI, extension trong A1111). Kích thước nhỏ.

IP-Adapter hay ControlNet cái nào tốt hơn?

Tùy việc: IP-Adapter sao chép phong cách hoặc nhận dạng từ ảnh, ControlNet sao chép cấu trúc. Nhiều quy trình dùng cả hai.

Có chạy trên cloud được không?

PirateDiffusion và BitVector có sẵn ControlNets cho model của họ; bạn cung cấp ảnh gốc và loại điều khiển.

Mô hình trong hướng dẫn này

Người viết
Điều hành con tàu này. Có những ý kiến về thời gian giải mã VAE mà chẳng ai hỏi. Tin rằng trọng số muốn được tự do và bất kỳ mô hình nào bạn không thể tải xuống đều là đăng ký với thêm bước. Sẽ không trả lời câu hỏi về 400 GB checkpoint trên NAS.
Tất cả hướng dẫn của Captain

Hướng dẫn khác