Một thẻ tiêu đề được tạo có nội dung 'FLUX 3 Image Klein vs FLUX 3 Image Klein Pup', phụ đề 'một bên tạo hình ảnh, một bên viết lời nhắc'. Thẻ bên trái ghi 'Klein: bộ tạo 5.6B, 5.6 GB FP8, INT8 từ 8 GB', thẻ bên phải ghi 'Pup: bản tinh chỉnh Qwen3.5 9B, 18.8 GB BF16, Apache 2.0', và phần chân trang ghi 'Cả hai số liệu đều theo thẻ mô hình trên Hugging Face.' Logo OrcaRouter nằm ở góc dưới bên phải.
Guides & Insights

FLUX 3 Image Klein vs FLUX 3 Image Klein Pup: Một mô hình đối đầu với chính người viết prompt của nó

Tác giả

Magnus Corvin

Ngày đăng

Mô hình mới nhất · 20Xem tất cả mô hình →
Benchmark: Artificial Analysis · cập nhật hằng ngày
Quay lại tất cả bài viết

Tên trên kho lưu trữ gợi ra một sự so sánh không hề tồn tại. FLUX 3 Image Klein và FLUX 3 Image Klein Pup trông như hai mô hình trong cùng một dòng, giống như mọi trang “vs” khác trên blog này đều ghép hai trình tạo với những điểm mạnh khác nhau. Chúng không phải vậy. FLUX 3 Image Klein là mô hình hình ảnh 5,6B ra mắt ngày 15 tháng 10 năm 2026. FLUX 3 Image Klein Pup — có tiêu đề “Prompt Upsampler” trên thẻ mô hình — là một mô hình ngôn ngữ 9B mà toàn bộ nhiệm vụ là viết lại prompt ngắn của bạn thành một chú thích dài, chi tiết mà mô hình hình ảnh đã được huấn luyện để tiếp nhận.

Vậy câu hỏi thực sự không phải là cái nào tốt hơn. Mà là liệu cái thứ hai có tùy chọn hay không. Black Forest Labs nói là không: thẻ mô hình nêu rõ rằng Klein "không được thiết kế để chạy mà không có một bộ tăng cường prompt phía trước," và rằng một prompt ngắn được gửi nguyên như đã gõ sẽ cho đầu ra chung chung. Điều đáng xem xét chính là tuyên bố đó, vì chấp nhận nó sẽ thay đổi ngân sách bộ nhớ, độ trễ, nghĩa vụ giấy phép của bạn và — trong một trường hợp cụ thể — độ chính xác của các chỉnh sửa của bạn.

Thực chất mỗi thứ trong hai là gì

Cách phân chia này rạch ròi hơn so với những gì tên gọi gợi ý. Một mô hình có khả năng thị giác, mô hình còn lại thì không, và chỉ một trong hai từng đụng đến điểm ảnh.

• Vai trò — Klein tạo và chỉnh sửa hình ảnh; Pup xuất văn bản và không bao giờ kết xuất bất cứ thứ gì

• Tham số — 5,6B cho bộ tạo sinh, 9B cho bộ tăng mẫu, vì vậy mô hình hỗ trợ là mô hình lớn hơn

• Nguồn gốc — Klein là một mô hình hình ảnh thuộc dòng FLUX 3; Pup là bản tinh chỉnh toàn phần của Qwen/Qwen3.5-9B, bản thân mô hình này được dẫn xuất từ Qwen3.5-9B-Base

• Trọng số trên đĩa — 11,2 GB ở BF16 và 5,6 GB ở FP8 cho Klein; 18,8 GB cho safetensors của Pup ở BF16

• Giấy phép — FLUX Kommunity License cho Klein, với ngưỡng doanh thu 5 triệu USD; Apache 2.0 cho Pup

• Đầu vào — Klein nhận văn bản, hình ảnh tham chiếu và hộp giới hạn; Pup nhận cùng yêu cầu đó cùng với tối đa 10 hình ảnh tham chiếu và trả về một prompt

• Đầu ra — pixel so với văn bản tiếng Anh

Dòng cuối cùng đó là thứ mọi người bỏ sót. Ngôn ngữ đầu ra của Pup luôn là tiếng Anh, ngay cả khi yêu cầu đầu vào bằng một ngôn ngữ khác. Nếu pipeline của bạn ghi log prompt để xem xét, prompt mà người xem xét của bạn thấy không phải là prompt mà người dùng của bạn đã nhập.

Con số 8 GB không duy trì được qua pipeline mặc định.

Tuyên bố phần cứng nổi bật dành cho Klein là bản dựng INT8 chạy trên một card RTX với chỉ 8 GB VRAM. Tuyên bố đó nói về trình tạo, và xét theo tiêu chí của chính nó thì có vẻ vẫn đứng vững — checkpoint lượng tử hóa được xây dựng cho mục đích đó, và các số đo thời gian được công bố kèm theo đều do NVIDIA thực hiện.

Giờ hãy thêm pipeline mặc định. Trọng số của Pup là 18,8 GB ở BF16 trước mọi chi phí phát sinh khi chạy. Bạn không thể nhét 18,8 GB trọng số vào 8 GB VRAM. Hai con số này mô tả hai thứ khác nhau, và tài liệu phát hành đặt chúng đủ gần nhau đến mức người đọc có thể kết luận một cách hợp lý rằng toàn bộ thứ này chạy trên một chiếc card đồ họa cũ. Thực tế thì không, không phải trong cấu hình mà BFL nói rằng mô hình mong đợi.

Có ba lối thoát trung thực, và chúng có cái giá khác nhau:

• Lượng tử hóa upsampler — đã có các bản dựng GGUF từ cộng đồng cho Pup ở các biến thể Q8_0, Q5_K_M, IQ4_XS và IQ3_S với một vision projector riêng, giúp thu nhỏ đáng kể helper nhưng phải đánh đổi phần nào về chất lượng prompt

• Chạy upsampler ở nơi khác — nó là một mô hình văn bản, nên không cần dùng chung GPU với bộ sinh, chỉ cần một chặng mạng

• Bỏ qua bằng --no-pup — miễn phí, tức thì và là tùy chọn mà BFL khuyên không nên dùng

Phép tính bộ nhớ là điều hữu ích nhất cần hiểu về cặp kết hợp này. Nó cũng lý giải một kiểu phàn nàn: ai đó báo rằng Klein chậm hoặc không đủ chỗ, nhưng điều họ thực sự đang báo cáo là họ đã chạy pipeline được tài liệu hóa trên phần cứng được trang bị cho phiên bản rút gọn.

Pup làm gì với một lời nhắc

Nó mở rộng ra. Một yêu cầu như “một người đàn ông dắt chó đi dạo, nắng chiều” sẽ trở thành một chú thích toàn cảnh bao quát chủ thể, bối cảnh, ánh sáng, camera và bố cục — thẻ mô hình mô tả đầu ra là một chú thích dài khoảng vài trăm từ ở cài đặt trung bình của nó. Sau đó, mô hình hình ảnh sẽ điều kiện hóa dựa trên chú thích đó thay vì dựa trên câu của bạn.

Đây là một năng lực thực sự, không phải mánh lới. Các mô hình hình ảnh kiểu diffusion rất nhạy cảm với độ cụ thể của prompt, và một prompt gồm năm từ gần như để mọi quyết định bố cục cho các prior của mô hình. Một upsampler đưa ra những quyết định đó một cách rõ ràng và nhất quán, đó là lý do đầu ra từ pipeline mặc định trông có chủ đích hơn đầu ra từ cùng checkpoint khi được nạp câu thô.

Đó cũng là một sự mất kiểm soát, và sự mất mát diễn ra âm thầm. Câu của bạn không được gắn chú thích — nó bị thay thế. Nếu bộ tăng mẫu quyết định rằng ánh sáng buổi chiều là giờ vàng và con chó là chó border collie, thì bộ tạo không có cách nào biết rằng bạn không hề có ý đó. Với công việc khám phá, đó là một tính năng. Với một danh sách cảnh quay, đó là một biến số mà bạn không hề yêu cầu.

Bốn chế độ, và vì sao chế độ quan trọng hơn cả câu lệnh

Pup không phải một mô hình chỉ có một hành vi duy nhất. Nó chọn một system prompt dựa trên tác vụ, và có bốn loại: text-to-image, image-to-image, text-to-image với bounding box, và image-to-image với bounding box. Sai chế độ sẽ tạo ra một prompt được viết tốt nhưng cho sai tác vụ — một thất bại trông giống như vấn đề chất lượng mô hình nhưng thực tế không phải vậy.

Các thiết lập lấy mẫu cũng khác nhau theo chế độ, và sự khác biệt không chỉ là bề ngoài. Giải mã ở chế độ tham lam với nhiệt độ bằng 0, tối đa 3.584 token mới và tính năng thinking bị tắt. Điểm phạt hiện diện là 1,5 đối với text-to-image và 0 đối với chỉnh sửa. Số 0 đó là có chủ đích: điểm phạt lặp lại khuyến khích mô hình đưa vào nội dung mới, điều mà bạn hoàn toàn không muốn khi nhiệm vụ là diễn đạt lại một cách trung thành chỉ dẫn chỉnh sửa. Ảnh tham chiếu cũng được thay đổi kích thước khác nhau tùy theo số lượng bạn cung cấp — khoảng 1 megapixel cho một ảnh, 724² cho hai ảnh, 512² cho ba ảnh trở lên — vì vậy một tác vụ với mười ảnh tham chiếu đang được điều kiện hóa trên những ảnh nhỏ hơn nhiều so với tác vụ chỉ với một ảnh tham chiếu.

A generated two-card memory diagram titled 'The default pipeline does not fit in 8 GB'. The left card, headed 'FLUX 3 Image Klein', lists 'Parameters 5.6B', 'FP8 weights 5.6 GB', 'BF16 weights 11.2 GB' and 'INT8 build from 8 GB VRAM'. The right card, headed 'FLUX 3 Image Klein Pup', lists 'Parameters 9B', 'BF16 weights 18.8 GB' and 'Licence Apache 2.0'. A bar across the bottom reads 'Default pipeline: generator plus 18.8 GB of upsampler weights'. A footer reads 'Weights per the Hugging Face model cards; the 8 GB claim covers the INT8 generator alone.' The OrcaRouter logo sits bottom-right.

Giấy phép bị chia đôi ở chính giữa.

Đây là phần hầu như không được chú ý và có lẽ nên được chú ý. Hai nửa của quy trình nằm dưới các giấy phép khác nhau. Klein là FLUX Kommunity License: miễn phí cho mục đích thương mại với doanh thu hằng năm dưới 5 triệu USD, phải trả phí cấp phép nếu vượt mức đó. Pup là Apache 2.0, không có điều kiện doanh thu nào cả.

Vì vậy, một công ty trên ngưỡng có thể sử dụng bộ tăng mẫu prompt thoải mái và vẫn cần giấy phép để sử dụng trình tạo mà nó cấp dữ liệu cho. Và một công ty dưới ngưỡng muốn tinh chỉnh phía prompt có nhiều quyền tự do hơn hẳn so với công ty muốn tinh chỉnh phía hình ảnh. Nếu bạn đang có kế hoạch phát hành, hãy đọc riêng hai giấy phép thay vì coi "the Klein stack" là một thứ duy nhất. Nửa thoáng hơn chính là nửa dễ bị bỏ qua.

Điều gì thực sự thay đổi khi bạn tắt nó đi

Tắt Pup chỉ cần một flag và các tác động không đồng đều giữa các tác vụ.

• Text-to-image — mức suy giảm lớn nhất. Lời nhắc ngắn trở nên chung chung, đây chính xác là lỗi mà BFL cảnh báo, và khoảng cách càng lớn khi lời nhắc của bạn càng ngắn

• Đa tham chiếu — upsampler chính là thứ biến "đặt ba người này vào cùng một căn phòng" thành một mô tả có tính đến cả ba tham chiếu; nếu không có nó, độ tuân thủ tham chiếu sẽ lỏng lẻo hơn rõ rệt

• Bố cục bounding-box — chế độ này tồn tại để chuyển ý định không gian thành chú thích giữ nguyên ý định đó, nên nếu bỏ nó đi, gánh nặng lại quay về cách diễn đạt của bạn

• Chỉnh sửa chính xác — trường hợp khó phân định nhất, và cũng là trường hợp mà việc tắt nó đi có thể hữu ích

Gạch đầu dòng cuối cùng đó là điểm phản trực giác và nó xuất phát từ cùng một nơi với hình phạt hiện diện bằng không. Một chỉ thị chỉnh sửa thường hẹp: thay đổi đối tượng này, di chuyển phần tử này, xóa thứ này. Nhiệm vụ của upsampler là mở rộng, nên nó mở rộng cả cảnh xung quanh chỉ thị của bạn lẫn bản thân chỉ thị. Khi chỉnh sửa thực sự mang tính cục bộ, việc mở rộng xung quanh đó tốt nhất cũng chỉ là nhiễu. Khi nó mâu thuẫn với thứ gì đó trong khung hình, nó còn tệ hơn cả nhiễu.

Kinh nghiệm của chính chúng tôi khi chạy Klein trên các chỉnh sửa cục bộ — thay đổi một đối tượng, di chuyển một phần tử vào một vùng có giới hạn, giữ nguyên phần còn lại của khung hình — là mô hình thuyết phục nhất đúng ở chế độ hẹp này. Điều đó khiến câu hỏi về upsampler trở nên sắc nét hơn chứ không hề dịu đi: nhiệm vụ mà bộ tạo mạnh nhất cũng là nhiệm vụ mà việc mở rộng của trợ thủ ít được mong đợi nhất. Hãy kiểm tra cả hai cài đặt trên các câu lệnh chỉnh sửa của chính bạn trước khi quyết định. Đây là trường hợp lời khuyên chung chung của nhà cung cấp và khối lượng công việc cụ thể của bạn có thể xung đột một cách chính đáng.

A screenshot of the Hugging Face model card for black-forest-labs/flux-3-image-klein-pup, showing the title FLUX 3 Image Klein Prompt Upsampler, a description of a 9B vision-language model that expands a short image request into a detailed prompt for FLUX 3 Image, the statement that Klein is not meant to run without a prompt upsampler in front of it, the worked example turning 'A man walking with his dog, afternoon sun' into a 220-word caption, an Apache 2.0 licence, 9B parameters in BF16, and a model tree showing a fine-tune of Qwen3.5-9B.A screenshot of the Hugging Face model card for black-forest-labs/flux-3-image-klein, showing a gated-model notice asking the visitor to agree to share contact information, a sample image grid, a model size of 6B parameters in BF16, the tag 'License: flux-kommunity-license', 3,241 downloads in the last month, and model-tree counts of 1 adapter, 4 fine-tunes and 5 quantizations.

Quyết định, trên thực tế

Nếu bạn đang gọi API của nhà cung cấp thay vì tải bất cứ thứ gì về, thì phần lớn những điều này không còn là vấn đề. Endpoint được lưu trữ tự áp dụng việc upsampling prompt và phục hồi điểm ảnh ở phía máy chủ, nên dù bạn có nghĩ tới hay không thì bạn vẫn đang mua hành vi mở rộng prompt đó. Lựa chọn chỉ thực sự trở nên rõ ràng khi bạn tự lấy trọng số.

Khi bạn làm vậy, cách phân chia đại khái như sau. Hãy giữ Pup nếu lời nhắc của bạn ngắn, công việc của bạn mang tính khám phá, hoặc bạn đang tạo sinh thay vì chỉnh sửa. Hãy bỏ nó đi, hoặc chạy một bản lượng tử hóa, nếu card đồ họa của bạn nhỏ, các chỉnh sửa của bạn hẹp và theo nghĩa đen, hoặc lời nhắc của bạn đã đủ dài và cụ thể đến mức việc mở rộng chủ yếu chỉ thêm thắt nội dung tự bịa. Hãy lượng tử hóa nó nếu bạn muốn cả hai và có thể chấp nhận mất đi một phần chất lượng lời nhắc để đổi lấy việc chạy vừa toàn bộ pipeline trên một thiết bị.

Một lưu ý thực tế khi thử cách này với chi phí thấp: hai nửa hỏng độc lập với nhau, và lớp định tuyến là cách thông thường để tránh đặt cược một đường production vào một endpoint duy nhất. OrcaRouter chạy một API tương thích OpenAI trên hơn 200 mô hình với mức đánh giá 0% — giá niêm yết của nhà cung cấp được chuyển qua nguyên vẹn — và tự động chuyển đổi dự phòng giữa các nhà cung cấp, nên một endpoint bị suy giảm không trở thành một job thất bại. Điều đó không giúp bạn với chính Klein, vốn không nằm trong danh mục 210 mô hình của chúng tôi và không phải là thứ chúng tôi cung cấp. Với pipeline này, trọng số và API của nhà cung cấp là các tuyến; lập luận về định tuyến có ý nghĩa với các mô hình bạn đặt xung quanh nó.

Điều gì sẽ làm thay đổi câu trả lời

Một phân tích ablation đã được công bố. Chưa ai công bố một bản so sánh trực tiếp Klein có và không có Pup trên cùng các prompt, được chấm điểm bởi bất kỳ ai ngoài phòng thí nghiệm, và chính chiếc bảng còn thiếu duy nhất đó là lý do khiến đây vẫn là một quyết định mang tính phán đoán. Cho đến khi bảng đó tồn tại, lập trường có thể bảo vệ là lập trường kém hào nhoáng: upsampler là một phần của hệ thống như được thiết kế, tuyên bố 8 GB không bao gồm nó, và tác vụ duy nhất mà bạn có thể hợp lý ghi đè mặc định lại chính là tác vụ mà mô hình này mạnh nhất.