2 điểm bởi GN⁺ 2024-02-14 | 1 bình luận | Chia sẻ qua WhatsApp
  • Stable Cascade là codebase chính thức của Stability AI, cung cấp các script huấn luyện/suy luận và nhiều checkpoint mô hình cho mô hình tạo ảnh dựa trên kiến trúc Würstchen
  • Khác biệt cốt lõi là nó hoạt động trong không gian tiềm ẩn (latent space) nhỏ hơn rất nhiều so với Stable Diffusion, mã hóa ảnh 1024x1024 thành 24x24 thay vì 128x128 như Stable Diffusion để giảm thời gian suy luận và chi phí huấn luyện
  • Mô hình gồm chuỗi 3 giai đoạn Stage A, Stage B, Stage C; Stage A và B phụ trách nén ảnh, còn Stage C phụ trách tạo biểu diễn tiềm ẩn 24x24 từ prompt văn bản
  • Các tính năng được cung cấp gồm text-to-image, image variations, image-to-image, ControlNet, LoRA, tái tạo ảnh, huấn luyện từ đầu và fine-tuning; cũng có thể truy cập qua diffusers 🤗
  • Codebase đang ở giai đoạn phát triển ban đầu, nên có thể có lỗi không mong muốn hoặc mã huấn luyện/suy luận chưa được tối ưu; mã nguồn theo giấy phép MIT License, còn trọng số mô hình theo Stability AI Non-Commercial Research Community License

Vấn đề mà Stable Cascade muốn giải quyết

  • Stable Cascade là codebase chính thức của Stable Cascade, cung cấp script huấn luyện và suy luận cùng nhiều mô hình có thể sử dụng
  • Mô hình dựa trên kiến trúc Würstchen
  • Khác biệt chính so với các mô hình như Stable Diffusion là nó hoạt động trong không gian tiềm ẩn nhỏ hơn rất nhiều
    • Stable Diffusion dùng hệ số nén 8 để mã hóa ảnh 1024x1024 thành 128x128
    • Stable Cascade đạt hệ số nén 42, cho phép mã hóa ảnh 1024x1024 thành 24x24
    • Mô hình có điều kiện theo văn bản được huấn luyện trong không gian tiềm ẩn nén mạnh này
  • Không gian tiềm ẩn nhỏ giúp suy luận nhanh hơn và huấn luyện rẻ hơn
  • Phiên bản trước của kiến trúc này đã đạt mức giảm chi phí 16 lần so với Stable Diffusion 1.5

Hiệu năng và hiệu quả

  • Stable Cascade được giới thiệu là mô hình phù hợp cho các trường hợp coi trọng hiệu quả
  • Các cách mở rộng quen thuộc như fine-tuning, LoRA, ControlNet, IP-Adapter, LCM cũng có thể áp dụng với phương pháp này
  • Trong đánh giá nội bộ, Stable Cascade cho hiệu năng tốt nhất gần như ở mọi phép so sánh về cả độ bám promptchất lượng thẩm mỹ
  • Đánh giá bởi con người được thực hiện bằng cách trộn parti-prompts và aesthetic prompts
    • Stable Cascade được so sánh ở 30 bước suy luận
    • Các đối tượng so sánh gồm Playground v2 50 bước, SDXL 50 bước, SDXL Turbo 1 bước và Würstchen v2 30 bước
  • Mô hình lớn nhất có nhiều hơn Stable Diffusion XL 1,4 tỷ tham số nhưng vẫn cho thời gian suy luận nhanh hơn

Cấu trúc mô hình 3 giai đoạn

  • Đúng như tên gọi, Stable Cascade gồm 3 mô hình Stage A, Stage B, Stage C tạo thành cấu trúc cascade để sinh ảnh
  • Stage A và Stage B có vai trò nén ảnh tương tự VAE của Stable Diffusion
  • Stage C nhận prompt văn bản và tạo biểu diễn tiềm ẩn 24 x 24 nhỏ
  • Stage A là VAE, còn Stage B và Stage C là các mô hình khuếch tán
  • Bản phát hành này cung cấp các checkpoint sau
    • Stage C: bản 1 tỷ tham số và bản 3,6 tỷ tham số
    • Stage B: bản 700 triệu tham số và bản 1,5 tỷ tham số
    • Stage A: 20 triệu tham số, được cố định do kích thước nhỏ
  • Với Stage C, do phần lớn công việc fine-tuning tập trung vào bản 3,6 tỷ tham số nên họ đặc biệt khuyến nghị dùng bản 3,6 tỷ
  • Với Stage B, cả hai phiên bản đều cho kết quả tốt, nhưng bản 1,5 tỷ tham số vượt trội hơn trong việc tái tạo các chi tiết nhỏ và tinh tế
  • Để có kết quả tốt nhất, tài liệu đề xuất dùng các biến thể lớn hơn ở từng giai đoạn

Tính năng suy luận và notebook

  • Có thể chạy mô hình bằng các notebook trong phần inference
  • Phần này bao gồm chi tiết về tải mô hình, yêu cầu tính toán và hướng dẫn sử dụng
  • Text-to-Image

    • text_to_image.ipynb cung cấp các chức năng cơ bản text-to-image, image variations và image-to-image
    • Image variations có thể hiểu embedding của ảnh để tạo ra các biến thể của ảnh đã cho; trong ví dụ không có prompt nào được cung cấp
    • Image-to-image hoạt động bằng cách thêm nhiễu vào ảnh đến một mức nhất định rồi tạo ảnh từ điểm khởi đầu đó
    • Trong ví dụ, ảnh bên trái được thêm nhiễu 80% và dùng chú thích A person riding a rodent.
    • Mô hình cũng có thể được truy cập qua thư viện diffusers 🤗 thông qua tài liệu stable-cascade trên Hugging Face
  • ControlNet

    • controlnet.ipynb trình bày cách dùng ControlNet được cung cấp cho Stable Cascade hoặc ControlNet do người dùng tự huấn luyện
    • ControlNet trong bản phát hành này bao gồm Inpainting / Outpainting, Face Identity, Canny và Super Resolution
    • Face Identity ControlNet sẽ được phát hành sau
    • Có thể dùng trong cùng một notebook, chỉ cần thay đổi cấu hình cho từng ControlNet
  • LoRA

    • Stable Cascade cung cấp triển khai riêng cho việc huấn luyện và sử dụng LoRA
    • LoRA có thể được dùng để fine-tuning Stage C, mô hình điều kiện theo văn bản
    • Có thể thêm và huấn luyện token mới, đồng thời thêm các lớp LoRA vào mô hình
    • lora.ipynb cho thấy cách dùng LoRA đã được huấn luyện
  • Tái tạo ảnh

    • reconstruct_images.ipynb cho thấy cách mã hóa/giải mã ảnh và lợi ích của phương pháp nén mạnh
    • Diffusion Autoencoder của Stable Cascade cho phép làm việc trong không gian nén rất cao
    • Có thể dùng Stage A và Stage B như cách dùng VAE của Stable Diffusion để huấn luyện mô hình riêng
    • Batch ví dụ 4 x 3 x 1024 x 1024 được mã hóa thành 4 x 16 x 24 x 24
    • Hệ số nén theo không gian là 1024 / 24 = 42.67
    • Sau đó có thể giải mã lại thành 4 x 3 x 1024 x 1024 bằng Stage A và Stage B
    • Kết quả tái tạo được cho là rất gần với ảnh gốc ngay cả ở các chi tiết nhỏ, điều mà theo tài liệu là không thể với VAE tiêu chuẩn và các phương pháp tương tự

Huấn luyện, ứng dụng, giấy phép

  • Mã huấn luyện bao gồm huấn luyện Stable Cascade từ đầu, fine-tuning, ControlNet và LoRA
  • Cách huấn luyện chi tiết được cung cấp trong training folder
  • Codebase đang ở giai đoạn phát triển ban đầu
    • Có thể có lỗi không mong muốn
    • Mã huấn luyện và suy luận có thể chưa được tối ưu hoàn toàn
    • Nếu có quan tâm, họ dự định tiếp tục phát hành các bản cập nhật phản ánh những cải tiến và tối ưu mới nhất
    • Họ sẵn sàng nhận ý tưởng, phản hồi và đóng góp cập nhật
  • Để chạy ứng dụng Gradio, trước tiên cài đặt các gói sau
  • Từ thư mục gốc của dự án, chạy ứng dụng Gradio bằng lệnh sau
    • PYTHONPATH=./ python3 gradio_app/app.py
  • Mã nguồn tuân theo MIT LICENSE
  • Trọng số mô hình có thể tải từ Hugging Face tuân theo STABILITY AI NON-COMMERCIAL RESEARCH COMMUNITY LICENSE

1 bình luận

 
GN⁺ 2024-02-14
Ý kiến trên Hacker News
  • Sau vài giờ dùng thử, có vẻ khả năng tuân thủ prompt đã tốt hơn nhiều
    Trước mắt chất lượng có vẻ thấp hơn một số mô hình SDXL, nhưng tôi sẽ tạm chưa kết luận cho đến khi thử nghiệm thêm vài ngày nữa
    Tốc độ cũng nhanh, cảm giác nhanh hơn khoảng 2–3 lần so với SDXL không phải bản turbo

    • Tôi sẽ luôn chọn khả năng tuân thủ prompt thay vì chất lượng
      Nếu phải dùng đến ControlNet, OpenPose, thậm chí depth map để ép ra một hình dáng hoặc độ sâu cụ thể, thì giải pháp cho mỗi lần tạo ảnh trở nên quá tùy biến
      Tự thử thì thấy nó cải thiện ở mặt làm theo prompt, và hình ảnh cũng dễ nhìn hơn với tôi
    • Tôi tò mò cần bao nhiêu VRAM
      Nghe nói mô hình lớn nhất có nhiều hơn SDXL 1,4 tỷ tham số, mà SDXL vốn đã đòi hỏi khá nhiều VRAM
    • Có chạy được trên CPU không?
  • Rất ấn tượng
    Theo tôi hiểu thì Stability AI hiện đang nhận vốn đầu tư mạo hiểm, nhưng có vẻ họ không thể tránh khỏi việc đốt rất nhiều tiền, và cũng chưa rõ mô hình kinh doanh có bền vững hay không
    Có lẽ họ xứng đáng được nhận tài trợ nghiên cứu từ chính phủ

    • Stability AI đã đốt rất nhiều tiền trong một thời gian, nên có vẻ các mô hình mới nhất như Stable Cascade không còn là mã nguồn mở với giấy phép thân thiện cho thương mại nữa
      Có nguồn tin nói rằng vào thời điểm thỏa thuận với Intel, họ đang chi khoảng 8 triệu USD mỗi tháng cho hóa đơn và lương, còn doanh thu chỉ bằng một phần nhỏ con số đó
      Doanh thu tháng 8 là 1,2 triệu USD, và từng có một bài đăng X của Mostaque nói rằng phần mềm và dịch vụ đang hướng tới 3 triệu USD trong tháng đó, nhưng sau đó đã bị xóa
      https://fortune.com/2023/11/29/stability-ai-sale-intel-ceo-r...
    • Trước đây tôi từng thấy nhà sáng lập Stability AI, Emad, bình luận đâu đó trên HN về mô hình kinh doanh chính xác là gì và sau này sẽ ra sao
      Hôm nay tìm kiếm trên HN không được đúng lắm nên tôi không tìm lại được bình luận cụ thể đang nhớ
      Nếu ai tìm được thì trang người dùng ở đây: https://news.ycombinator.com/user?id=emadm
    • Tôi nghĩ Stability nên nhận tài trợ nghiên cứu
    • Các nhà nghiên cứu không thuộc stability.ai mà thuộc các trường đại học ở Đức và Canada
      Vậy tôi tò mò cấu trúc này vận hành thế nào
      Đây có phải là công việc độc quyền cho stability.ai không?
  • Nhìn commit thì giấy phép đã đổi từ MIT sang giấy phép tùy chỉnh riêng: https://github.com/Stability-AI/StableCascade/commit/209a526...
    Về mặt pháp lý, có thể dùng snapshot cũ trước khi đổi giấy phép theo giấy phép MIT ban đầu không?

    • Ý định dùng giấy phép phi thương mại có vẻ khá rõ ràng, nên nếu thực sự làm căng thì có thể thành chuyện ra tòa
      Thông thường tòa án sẽ nhìn tổng thể hơn và xem xét ý định, đồng thời cũng hiểu rằng có thể xảy ra sai sót hành chính
      Tuy nhiên có thể có ngoại lệ nếu một công ty nào đó nói rằng họ đã tin vào giấy phép cũ và đầu tư nhiều tài nguyên
      Thời điểm commit có vẻ khá quan trọng. Nếu kho chỉ ở trạng thái MIT trong vài giờ trước khi công khai, thì có lẽ khó để một doanh nghiệp tuyên bố rằng họ đã thực sự đầu tư đáng kể
    • Có thể
      Commit đó vẫn có thể được dùng tùy ý theo giấy phép MIT tại thời điểm công khai
      Giống như bạn đã mua ebook, rồi sau này ấn bản 2 chỉ phát hành bìa cứng, thì ebook ấn bản 1 vẫn có thể đọc được
    • Kiến trúc mô hình, mã huấn luyện, v.v. dường như vẫn là MIT, còn trọng số — kết quả huấn luyện trên cụm GPU khổng lồ — và bộ dữ liệu đã dùng thì có vẻ nằm dưới giấy phép mới
    • Mã là MIT, còn mô hình là giấy phép phi thương mại
      Các tác phẩm khác nhau nằm dưới các giấy phép khác nhau
      Stability AI nói rằng giấy phép phi thương mại này là vì đây là bản xem trước công nghệ, giống SDXL 0.9
    • Giấy phép MIT không có tính lây nhiễm như GPL
      Bạn có thể đóng một codebase được cấp phép MIT, nhưng không thể hồi tố thay đổi giấy phép của mã cũ đã công khai
      Commit ban đầu của Stability có giấy phép MIT, nên có thể fork commit đó và làm gì tùy ý
      Phần rắc rối là họ có commit đổi giấy phép từ MIT sang độc quyền, nhưng không có thay đổi mã nào
      Điều này có khả năng không hợp lệ, vì không thể phân phối cùng một codebase dưới hai giấy phép mâu thuẫn nhau
      Giấy phép mới chỉ có thể áp cho các thay đổi được thêm vào codebase sau khi đổi giấy phép
      Tôi sẽ không nói là “bất hợp pháp”, nhưng vì họ đã phân phối cùng phần mềm đó dưới giấy phép mở, nên nếu tuyên bố đó là phần mềm độc quyền thì có lẽ khó đứng vững trước tòa
  • Có một playground đã được tối ưu ở đây: https://www.fal.ai/models/stable-cascade

    • “sign in to run” có vẻ đang bỏ lỡ một cơ hội marketing
      Đặc biệt là trong lĩnh vực cạnh tranh khốc liệt như hiện nay, và nhóm người dùng HN có khả năng sẽ chọn tự chạy nếu bị yêu cầu đăng ký chỉ để thử tạo một ảnh
  • Cũng như các trình tạo ảnh khác mà tôi đã thử, cái này cũng không tạo đúng phím đàn piano [1]
    Có lẽ cần một cách tiếp cận khác để đếm được các cụm phím đen
    [1] https://fal.ai/models/stable-cascade?share=13d35b76-d32f-45c...

    • Tôi nghĩ chuyện này còn hơn thế
      Với tôi, khi tạo ảnh liên quan đến bóng rổ thì đa số có nhiều hơn một quả bóng
      Tôi không phải chuyên gia, nhưng có vẻ việc huấn luyện không nắm được, hoặc chỉ nắm được một phần, các ràng buộc cơ bản của đời sống văn hóa con người, kiểu như mọi phím đàn piano phải giống nhau hay trong một trận đấu chỉ có một quả bóng
    • Cũng như bàn tay người, tính nhất quán là vấn đề có thể giải quyết bằng cách tăng quy mô mô hình và huấn luyện
  • Mô hình này được xây dựng trên kiến trúc Würstchen
    Có một video trong đó một trong các tác giả giải thích rất rõ mô hình này hoạt động như thế nào
    https://www.youtube.com/watch?v=ogJsCPqgFMk

    • Đây là một video hay, tóm tắt như sau :)
      Gemini Advanced> Summarize this video: https://www.youtube.com/watch?v=ogJsCPqgFMk
      Video này nói về phương pháp huấn luyện mô hình khuếch tán văn bản-thành-hình ảnh tên là Würstchen
      Nó hiệu quả hơn nhiều so với các phương pháp hiện có như Stable Diffusion 1.4, và có thể cho kết quả tương tự dù chỉ dùng 1/16 thời gian huấn luyện và lượng tính toán
      Điểm cốt lõi là quy trình nén 2 giai đoạn
      Giai đoạn đầu dùng VQ-VAE để nén hình ảnh vào không gian tiềm ẩn nhỏ hơn 4 lần so với không gian tiềm ẩn mà Stable Diffusion dùng, và giai đoạn thứ hai dùng mô hình khuếch tán để nén tiếp không gian tiềm ẩn thêm 10 lần
      Vì vậy, tỷ lệ nén tổng cộng là 40 lần, cao hơn nhiều so với mức nén 8 lần của Stable Diffusion
      Nhờ không gian tiềm ẩn đã được nén, mô hình khuếch tán văn bản-thành-hình ảnh của Würstchen nhỏ hơn nhiều và có thể huấn luyện nhanh hơn so với mô hình Stable Diffusion
      Würstchen có thể được huấn luyện trên một GPU đơn với 24.000 giờ GPU, trong khi Stable Diffusion 1.4 cần 150.000 giờ GPU
      Dù hiệu quả, nó vẫn có thể tạo ảnh có chất lượng tương tự Stable Diffusion, và đôi khi cho chất lượng tốt hơn ở ảnh có độ phân giải cao hơn hoặc nhiều chi tiết hơn
      Nhìn chung, Würstchen là một bước tiến quan trọng trong lĩnh vực tạo ảnh từ văn bản, cho phép huấn luyện mô hình hiệu quả hơn và rẻ hơn, qua đó mở rộng phạm vi ứng dụng như hình ảnh marketing, minh họa sách và avatar cá nhân hóa
  • Có cách nào dùng nó để tạo nhiều ảnh của cùng một mô hình không?
    Ví dụ tạo các ảnh của một mẫu ô tô được xoay ở nhiều góc khác nhau, nhưng tất cả vẫn giữ nguyên cùng một chiếc ô tô được sinh ra

    • Có lẽ ai đó có tài nguyên nên huấn luyện Zero123 [1] trên backbone này
      [1] https://zero123.cs.columbia.edu/
    • Có thể
      Có thể tạo luồng ảnh đầu vào => embedding => N ảnh, và nếu tính đến cả góc nhìn kết xuất 3D thì áp dụng ControlNet cho N ảnh đó là được
      Tham khảo: “The model can also understand image embeddings, which makes it possible to generate variations of a given image (left). There was no prompt given here.”
  • Tôi nhớ trước đây đã thử nghiệm đủ thứ với hai nhà nghiên cứu này để tìm cách tối ưu nối Stage B có điều kiện với biểu diễn tiềm ẩn
    Cuối cùng chúng tôi đã bỏ cuộc vì cách chỉ đơn giản nối thêm các kênh đầu vào với bản upsample theo láng giềng gần nhất của biểu diễn tiềm ẩn lại cho kết quả tốt hơn so với cross-attention rất fancy có thêm embedding vị trí 2D tương đối
    Mô hình này trước đây được biết đến với tên Würstchen v3

  • Nó có chạy trên AMD không?
    Tôi không tìm thấy thông tin hỗ trợ
    Người dùng chạy Stable Diffusion trên AMD hẳn đang bị suy giảm hiệu năng, nên đây là một tính năng khá quan trọng đối với những dự án như thế này

  • Tôi nghĩ điều ấn tượng nhất là nén
    Việc có thể nén ảnh 42 lần là một lợi thế rất lớn trên thiết bị di động, kết nối Internet kém, hoặc cả hai

    • Đó là nén 42 lần theo chiều không gian, và cần 16 kênh thay vì 3 kênh RGB
    • Đến giờ có lẽ ai đó đang làm một codec video dựa trên AI nhanh, bao gồm một mô hình nhỏ đã tiền huấn luyện và chạy được cả trong môi trường bộ nhớ hạn chế như TV
      Theo hướng cung cấp độ phân giải 8K với băng thông thấp