OpenArchLabOpen Architecture — From Models to Systems

TI · Kiến trúc huấn luyện sinh ảnh

ControlNet và adapters: thêm điều khiển không gian

Huấn luyện nhánh điều khiển từ cạnh, độ sâu hoặc tư thế, giữ backbone sinh ảnh cố định và phân biệt nhánh này với bộ mã hóa hiểu ảnh.

LESSON ID ti-control GROUP Kiến trúc huấn luyện
Mục lục bài học

1Định nghĩa

ControlNet là cách thêm điều kiện không gian vào mô hình chữ thành ảnh đã học, chẳng hạn bản đồ cạnh, độ sâu hoặc tư thế. Một nhánh được học biến tín hiệu điều khiển thành đặc trưng cộng vào backbone, để mô tả chữ không phải gánh toàn bộ yêu cầu bố cục.

Dữ liệu nay gồm ảnh đích, chú thích và bản đồ điều khiển căn chỉnh theo cùng crop. Backbone có thể giữ cố định trong khi nhánh mới học bằng loss gỡ nhiễu; điều kiện chữ vẫn cung cấp nội dung và không bị thay thế mặc định bởi bản đồ cạnh.

Ví dụ đời thường: Người vẽ nhận thêm phác thảo đường viền bên cạnh phiếu yêu cầu chữ. Phác thảo giúp đặt hình đúng chỗ nhưng chưa xác định hết màu sắc, chất liệu; nó hướng bố cục chứ không phải bản ảnh đích hoàn chỉnh.

2Luồng

Mã 4E khớp sơ đồ Tab 01. Giai đoạn 10 khớp Tab 02; ánh xạ không có nghĩa mọi kỹ thuật của ô đều được triển khai trong lab.

Sơ đồ kiến trúc huấn luyện · 24 ô (1A → 5D)

Kiến trúc huấn luyện LLM · Ánh xạ với Bài Lab tổng hợp

Bắt đầu 1A → 1B, tách ảnh sang 1C và chữ sang 1D. Cột 2 tạo trạng thái nhiễu, điều kiện và target để 2D dự đoán; 3A → 3D chấm và sửa trọng số. next batch lặp về dữ liệu, load weights xuống 5A → 5D để sampling không gradient. Cột 4 là các lựa chọn, không phải chuỗi bước bắt buộc. Liên kết Lab trong pop-over nêu phần thực thi và phần chỉ giải thích.

Sơ đồ huấn luyện sinh ảnh gồm 24 ô từ 1A đến 5D
4E4 · Quy mô và phương pháp
bản đồ không gian + backbone cố định

4E · Nhánh điều khiển

Thêm tín hiệu cạnh, độ sâu hoặc tư thế để điều khiển vị trí trong ảnh sinh.

Nhận gì
Ảnh đích, prompt và bản đồ không gian đã áp cùng crop/resize/lật.
Làm gì, vì sao
Học nhánh điều khiển tạo đặc trưng cộng vào backbone; ControlNet gốc nối bằng lớp khởi tạo zero.
Ra gì
Trọng số nhánh mới, dùng cùng denoiser nền để lấy mẫu có điều khiển.
Ví dụ, cách đọc ô
Lật ảnh mà không lật bản đồ cạnh tạo cặp xung đột, dù loss vẫn có thể giảm.
Lưu ý
Lab không có ControlNet; áp cho DiT phải xác định cách chèn token/đặc trưng, không chép nguyên U-Net.
Sơ đồ luồng (3 bước)
  1. Nhận đầu vào

    ControlNet là cách thêm điều kiện không gian vào mô hình chữ thành ảnh đã học, chẳng hạn bản đồ cạnh, độ sâu hoặc tư thế.

  2. Biến đổi và nối hệ thống

    Đọc ô 4E và các bước giải thích bên dưới.

  3. Đối chiếu thực hành

    Giai đoạn 10 của lab; xem bảng ánh xạ để phân biệt thực thi với phần chỉ giải thích.

Mã Mermaid
flowchart TD
  step1["Nhận đầu vào"]
  step2["Biến đổi và nối hệ thống"]
  step3["Đối chiếu thực hành"]
  step1 --> step2
  step2 --> step3

3Giải pháp

Vị trí trên sơ đồ: 4E. Tiền đề: biết tensor/attention từ LLM Foundations và loss, gradient, AdamW từ LLM Training (Text); phần dưới nhắc lại kiến thức cần dùng tại chỗ.

Nhắc lại điều kiện và residual

Residual là phần được cộng thêm vào biểu diễn hiện có. Nhánh điều khiển tạo residual ở một số tầng để hướng denoiser theo bản đồ. ControlNet gốc nối nhánh mới bằng các lớp zero-convolution: phép lọc lân cận không gian dùng chung trọng số khởi tạo bằng 0. Đầu ra kết nối ban đầu bằng 0 giúp giữ đầu ra của nền đã học; điều này không có nghĩa toàn bộ nhánh có gradient zero mãi mãi.

Căn chỉnh trước khi tối ưu

Tạo bản đồ cạnh/depth/pose từ cùng ảnh hoặc nguồn điều khiển đã biết, rồi áp cùng phép crop, resize và lật. Nếu ảnh bị lật mà bản đồ không lật, mô hình bị dạy hai vị trí xung đột. Bản đồ độ sâu là ước lượng tương đối theo công cụ tạo nó, không mặc định là số mét chính xác.

ControlNet gốc dùng backbone U-Net; khi áp dụng cho DiT cần xác định nơi chèn đặc trưng và cách xử lý token, không chỉ sao chép tên lớp. Adapter là tên rộng cho nhánh/thành phần thêm; có adapter cho tín hiệu ảnh hoặc phong cách, không phải tất cả đều là ControlNet. Học nhánh điều khiển không đồng nghĩa huấn luyện sâu ViT/CLIP/VLM hiểu ảnh.

Đánh giá hai mục tiêu

Ô 4E dùng lại vòng ở cột 1–3 với một đầu vào phụ và tập tham số mới. Giai đoạn 10 của Bài Lab tổng hợp chỉ chỉ ra ranh giới này, không có nhánh ControlNet hay bản đồ độ sâu; LoRA ở khối 8 không được đổi tên thành ControlNet để tính là đã thực hiện.

4Profiling

  • Khởi tạo và đóng băng

    So đầu ra backbone trước/sau gắn nhánh zero trên cùng input, rồi kiểm tra chỉ tham số nhánh học đổi. Sau đó mới đo chất lượng điều khiển ở dữ liệu chưa gặp.

  • Bám điều khiển và bám chữ

    Cố định prompt/seed, đổi mức điều khiển; xem vật thể có theo vị trí lẫn mô tả không. Cạnh khớp hơn nhưng ảnh mất nội dung hoặc méo cần được ghi như đánh đổi, không chỉ báo một điểm tốt nhất.

Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.

5Ví dụ

Tự kiểm tra phép lật

Nếu lật ảnh trái–phải nhưng giữ bản đồ pose cũ, loss có thể vẫn giảm không? Có, mô hình có thể bỏ qua điều khiển hoặc học tương quan sai. Kiểm tra overlay ảnh/bản đồ trực quan trước khi dùng loss làm bằng chứng.

Chọn phương pháp

Chỉ cần học phong cách màu, không cần bố cục cố định: có bắt buộc ControlNet không? Không. Thử fine-tuning hoặc LoRA; chọn nhánh không gian khi yêu cầu thực sự có bản đồ điều khiển.

6Thuật ngữ

Spatial condition
Điều kiện có vị trí tương ứng với lưới ảnh như cạnh, pose hoặc depth.
Zero convolution
Lớp convolution có trọng số khởi tạo 0 dùng để nối nhánh điều khiển vào backbone.
Glossary (1)
Giới hạn của mô hình thu nhỏ
Số lab chỉ thuộc dữ liệu hình học và cấu hình đã nêu; không suy ra chất lượng ảnh tự nhiên hoặc hiệu năng GPU.

7Bài liên quan

8Nguồn