Mô hình tạo ảnh FLUX nhanh và là mã nguồn mở
(replicate.com)- Tốc độ chạy FLUX trên Replicate đã nhanh hơn đáng kể, đồng thời mã tối ưu hóa cũng được công khai, cho phép kiểm tra cách triển khai và mở rộng tùy chỉnh
- Theo phép đo end-to-end, FLUX.1 [schnell] giảm xuống còn 0,29 giây ở 512x512·4 steps và 0,72 giây ở 1024x1024·4 steps
- Cải thiện tốc độ là kết quả của việc kết hợp tối ưu hóa dựa trên
flux-fp8-api,torch.compile, CuDNN attention kernel nhanh của nightly Torch và API HTTP đồng bộ mới - Lượng tử hóa của
flux-fp8-apilàm thay đổi đầu ra đôi chút, nhưng tác động đến chất lượng là nhỏ; nếu cần có thể tắt bằnggo_fast=false - Replicate công khai các cải tiến cho FLUX và đang hợp tác với AI Compiler Study Group cùng các nhà nghiên cứu để tạo ra FLUX mã nguồn mở nhanh
Tốc độ chạy FLUX và demo công khai
- Việc chạy mô hình FLUX trên Replicate đã nhanh hơn, và phần triển khai tối ưu hóa được công khai dưới dạng mã nguồn mở
- Tốc độ end-to-end đo từ miền Tây Hoa Kỳ bằng client Python như sau
- FLUX.1 [schnell], 512x512, 4 steps: 0,29 giây, P90 0,49 giây
- FLUX.1 [schnell], 1024x1024, 4 steps: 0,72 giây, P90 0,95 giây
- FLUX.1 [dev], 1024x1024, 28 steps: 3,03 giây, P90 3,90 giây
- Demo FLUX.1 [schnell] được cung cấp theo kiểu nhập liệu thời gian thực, và bạn cũng có thể xem toàn bộ ứng dụng cùng mã nguồn
Cách tối ưu hóa và kiểm soát chất lượng
- Nhiều mô hình trên Replicate do cộng đồng đóng góp, nhưng mô hình FLUX được duy trì với sự hợp tác của Black Forest Labs
- Hai hạng mục công việc đã được áp dụng để cải thiện tốc độ
- Lấy flux-fp8-api của Alex Redden làm điểm khởi đầu, sử dụng
torch.compilevà CuDNN attention kernel nhanh trong bản build nightly Torch - Thêm API HTTP đồng bộ mới của Replicate để mọi mô hình ảnh hoạt động nhanh hơn
- Lấy flux-fp8-api của Alex Redden làm điểm khởi đầu, sử dụng
- Lượng tử hóa của
flux-fp8-apilàm thay đổi đầu ra mô hình đôi chút, nhưng tác động đến chất lượng là nhỏ- Có công cụ so sánh đầu ra của hàng nghìn prompt trên FLUX.1 [schnell] và FLUX.1 [dev], và bạn có thể trực tiếp xem kết quả so sánh
- Có thể vô hiệu hóa tối ưu hóa này bằng cách đặt đầu vào
go_fastthànhfalse
- Vì thường không rõ nhà cung cấp mô hình có áp dụng các tối ưu hóa ảnh hưởng đến chất lượng hay không, Replicate công khai cách tối ưu hóa và cho phép người dùng tắt chúng
Mã nguồn mở và cách khai thác
- Mã tối ưu hóa FLUX được công khai tại github.com/replicate/cog-flux
- Replicate công khai các cải tiến FLUX dưới dạng mã nguồn mở, đồng thời hợp tác với AI Compiler Study Group và các nhà nghiên cứu AI để tạo ra phiên bản FLUX mã nguồn mở nhanh
- Những việc có thể làm với FLUX gồm
1 bình luận
Ý kiến trên Hacker News
Các mô hình văn bản-thành-hình ảnh có cảm giác kém hiệu quả. Tôi tự hỏi liệu có thể, và có tốt hơn không, nếu chia thành các bước như văn bản→scene graph→hình ảnh được phân đoạn theo ngữ nghĩa→hình ảnh cuối cùng
Có vẻ từng bước có thể được huấn luyện riêng và mô-đun hóa; cũng sẽ dễ chỉnh sửa hình ảnh hơn thay vì phải làm lại toàn bộ bằng đầu ra prompt mới. Như vậy việc tạo ra kiểu "đối tượng x ở cạnh đối tượng y, và phía trên có chữ foo" sẽ dễ hơn nhiều, còn phong cách nghệ thuật hay mức độ chân thực có thể giao cho mô hình render cuối cùng, tách biệt với việc tuân thủ prompt
Cảm giác giống video2video hoặc mô hình img2img theo từng khung hình để cải thiện đầu ra của trò chơi điện tử
https://www.theverge.com/2021/5/12/22432945/intel-gta-v-real...
https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
Nếu có thể huấn luyện một mạng nơ-ron đi từ a→b và một mạng nơ-ron đi từ b→c, thì thường có thể thay tổ hợp đó bằng một mạng nơ-ron đơn giản hơn đi trực tiếp từ a→c. Điều này hợp lý vì có thể có thông tin bị mất khi chuyển a thành b. Một mạng nơ-ron đơn lẻ đảm bảo thông tin liên quan của a cần để tạo c được truyền lên các tầng cao hơn
Cách trích xuất đặc trưng rồi suy luận như con người nghe có vẻ hợp lý, nhưng rốt cuộc có vẻ mở rộng pattern matching thuần túy theo kiểu máy tính làm lại dễ hơn
Việc mô tả mọi thứ cùng một lúc rồi hy vọng kết quả vừa ý là không hợp lý
Nó bắt đầu từ nhiễu rồi dần dần thêm ngày càng nhiều chi tiết
Tôi muốn một bức ảnh lông tơ quả đào màu xanh ngọc bị đóng băng
Giấy phép phi thương mại không phải là nguồn mở. Vì nếu chủ bản quyền gốc ngừng bảo trì thì người khác không thể tiếp tục, hoặc phải làm như nô lệ miễn phí
Cốt lõi của nguồn mở nằm ở việc điều gì có thể xảy ra khi tác giả gốc ngừng làm. Nguồn mở cấp cho bất kỳ ai giấy phép tiếp tục phát triển, và điều đó đương nhiên bao gồm cả khả năng được nhận tiền. Nếu thiếu khía cạnh này thì không nên gọi là nguồn mở
Chỉ FLUX.1 [schnell] là nguồn mở (Apache2), còn FLUX.1 [dev] là giấy phép phi thương mại
https://huggingface.co/ostris/OpenFLUX.1/
Nếu muốn thử FLUX.schnell dễ dàng, chỉ cần đưa prompt vào URL của Pollinations
https://pollinations.ai/p/a_donkey_holding_a_sign_with_flux_...
https://pollinations.ai/p/a_donkey_holding_a_sign_with_flux_...
https://pollinations.ai/p/Minimalist%20and%20conceptual%20ar...
Tốc độ thật sự đáng kinh ngạc. Chỉ với ba GPU L40S mà tạo 8.000 ảnh mỗi 30 phút cho người dùng. Nói thêm, tôi là người của Pollinations
Việc tôi thích làm nhất với Flux là tạo hình ảnh nền trắng cho Substack. Phần văn bản đi kèm rất xuất sắc, và thông qua artwork cũng có thể truyền tải điều gì đó về mặt thị giác
[1]https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_...
Tôi không biết mình có lập trường rõ ràng về chuyện này không. Công nghệ thì vẫn tiếp tục tiến lên. Dù vậy, chuyện này vẫn thú vị
Flux là ứng viên hàng đầu về tuân thủ prompt trong số các hệ thống tạo ảnh host cục bộ, nhưng độ sâu trường ảnh nông xuất hiện khắp nơi thì khó loại bỏ đến mức gây khó chịu
Tôi vừa hủy đăng ký Midjourney. Với những việc tôi muốn làm thì nó có cảm giác tụt lại quá xa
Tôi cũng đã cân nhắc khá lâu việc dùng Replicate và Ideogram
Chưa đầy một năm kể từ khi Emad sa sút mà đã có một mô hình open source chạy local tốt hơn xuất hiện, đúng là điên rồ. Điều đó cho thấy hào lũy của các công ty này nông đến mức nào, và nhờ họ đốt một lượng tiền khổng lồ mà chúng ta được hưởng lợi
Có ai biết FLUX 1.1 được huấn luyện bằng gì không? Tôi đã tạo gần 100 ảnh bằng model pro với prompt hai từ kiểu “tên file camera + một từ đơn giản”, và tất cả đều trông như ảnh chụp bằng điện thoại của ai đó
Nếu không có chữ thì đến mức tôi thậm chí sẽ không nghĩ đó là ảnh AI. Đôi khi trông như ảnh bị cắt, rồi có rất nhiều ảnh đồ ăn, bàn ăn bừa bộn và căn hộ
Họ đã scrape bài đăng Facebook công khai, Snapchat, Vkontakte à? Hay đã mua ảnh cá nhân từ OneDrive hoặc Dropbox? Nếu đặt từ thứ hai là tên phụ nữ thì gần như lúc nào bộ lọc NSFW cũng kích hoạt. Vì vậy tôi đoán tập huấn luyện có khá nhiều ảnh rất riêng tư
Hãy tự xem thử. Cẩn thận nhạc tự phát
people: https://vm.tiktok.com/ZGdeXEhMg/
food and stuff: https://vm.tiktok.com/ZGdeXEBDK/
signs: https://vm.tiktok.com/ZGdeXoAgy/
[edit] Nhìn những hình ảnh này khiến tôi thấy khó chịu như đang xem ảnh riêng tư của ai đó. Một prompt như “IMG00012.JPG forbid” không có đủ thông tin gợi dẫn để mô tả những hình ảnh như vậy, nên tất cả hẳn phải đến từ dữ liệu huấn luyện
Tôi không tin FLUX 1.1 pro đã dùng một tập huấn luyện khác về căn bản so với các model công khai trước đây. Chỉ là nó có thể dễ bị kiểu sinh ảnh này hơn
Cảm giác thật sự rất lạ. Vậy nên xin hỏi lại: có thông tin nào về dữ liệu huấn luyện được dùng cho các model này không?
Hai bài Reddit bên dưới có đề cập một chút đến quy ước đặt tên file này
DSC_0001-9999.JPG - mặc định của Nikon
DSCF0001-9999.JPG - mặc định của Fujifilm
IMG_0001-9999.JPG - ảnh thông thường
P0001-9999.JPG - mặc định của Panasonic
CIMG0001-9999.JPG - mặc định của Casio
PICT0001-9999.JPG - mặc định của Sony
Photo_0001-9999.JPG - ảnh Android
VID_0001-9999.mp4 - video thông thường
Ngoài ra tôi cũng đã tạo phiên bản tên file phần mềm 3D. Tôi đã thử tất cả, và chỉ một số có hiệu quả
Autodesk Filmbox (FBX): my_model0001-9999.fbx
Stereolithography (STL): Model0001-9999.stl
3ds Max: 3ds_Scene0001-9999.max
Cinema 4D: Project0001-9999.c4d
Maya (ASCII): Animation0001-9999.ma
SketchUp: SketchUp0001-9999.skp
[1]: https://www.reddit.com/r/StableDiffusion/comments/1fxkt3p/co...
[2]: https://www.reddit.com/r/StableDiffusion/comments/1fxdm1n/i_...
Cùng với việc hiệu chỉnh mạnh đối với văn bản, rất có khả năng họ đã tinh chỉnh rất nhiều để model ưu tiên các hình ảnh đậm chất flux
Dù họ theo quy trình nào, chỉ cần có một số thuật ngữ nhất định là đã khiến model trở nên quá nhạy, tác động còn mạnh hơn LoRA
Những ảnh bạn đưa ra không đặc biệt đáng chú ý trong toàn bộ bối cảnh. Không cần nhiều công sức để vượt khỏi định dạng ảnh mặc định và thu được kết quả siêu thực. Cá nhân tôi nghĩ họ không phải đang cố che giấu tính siêu thực, mà gần hơn là đặt mặc định theo kiểu ảnh mọi người muốn
Tôi không hiểu vì sao tất cả bình luận phê bình Flux đều bị downvote hoặc gắn cờ, khá là lạ
Họ trỏ tới trang so sánh và tuyên bố chất lượng tương tự, nhưng trước hết rất rõ là độ chi tiết ít hơn nhiều. Tệ hơn là ví dụ “góc nhìn 3/4 từ phía trước của một chiếc Corvette 2017 màu vàng đang ôm cua trên đường núi nhìn xuống thung lũng xanh vào ngày nhiều mây”
Model gốc hiển thị phía trước, còn phiên bản tốc độ lại hiển thị phía sau của Corvette. Đó là một bức hoàn toàn khác. Không phải tương tự, mà khác biệt rõ rệt
https://flux-quality-comparison.vercel.app/
Mỗi khi có thread về model của Meta, lại có hàng loạt chỉnh sửa rằng đó không phải open source thật sự
Vậy thì với FLUX cũng cần nói rõ. Trong số các model được công bố, chỉ có FLUX schnell là open source, và vì được chưng cất từ model độc quyền nên khó xử lý hơn nhiều
Trớ trêu là các model Llama của Meta, xét từ góc độ thực dụng, có giấy phép dễ dãi hơn nhiều, và cũng rất dễ fine-tune bằng framework open source của chính Meta hoặc nhiều công cụ bên thứ ba. Còn FLUX schnell thì không như vậy
Tôi nghĩ cộng đồng open source nên tập trung lực quanh OpenFLUX hoặc các dự án tương tự nhằm sửa các ràng buộc nhân tạo của Schnell: https://huggingface.co/ostris/OpenFLUX.1
Họ nói rằng “đã thêm một API HTTP đồng bộ mới giúp tất cả các mô hình hình ảnh của Replicate nhanh hơn nhiều”, nhưng tại sao đồng bộ thì lại nhanh? Tôi bấm vào xem thử
https://replicate.com/changelog/2024-10-09-synchronous-api
“Giờ đây, các thư viện client và API giúp việc chạy mô hình nhanh hơn nhiều, đặc biệt là khi trả về tệp”
…thì cũng cảm ơn đấy?
Tôi đang chia sẻ sự bức bối với tư cách một lập trình viên. Nếu muốn để lại ấn tượng và khiến chúng tôi trở thành người ủng hộ, mong họ giải thích rõ hơn một chút