Safetensors vs .ckpt và .pt: cách tải mô hình AI an toàn và kiểm tra bằng SHA-256
Tổng quan
File mô hình trước đây là Python pickle (.ckpt, .pt, .pth, .bin). Pickle là đối tượng Python được tuần tự hóa, và khi tải vào có thể chạy code tùy ý được nhúng trong đó; đã phát hiện nhiều checkpoint độc hại trên các trang chia sẻ năm 2023 và 2024. Định dạng .safetensors, do Hugging Face tạo ra, chỉ lưu tensor và một header JSON, nên khi tải vào không thể chạy code. Mọi giao diện hiện tại đều ưu tiên định dạng này và hầu hết mặc định từ chối hoặc quét pickle. Nếu mô hình chỉ có .ckpt, ưu tiên phiên bản safetensors đã chuyển đổi từ nguồn bạn tin cậy, hoặc tự chuyển đổi trong môi trường an toàn.
An toàn không chỉ là về code. File đổi tên, bị cắt bớt hoặc thay thế sẽ cho kết quả sai và mất nhiều giờ. Cách khắc phục là dùng hash: SHA-256 của file được công bố, hiển thị trên mỗi trang mô hình cùng với hash AutoV2 ngắn hơn (10 ký tự đầu) mà A1111 và Civitai cũng hiển thị. Tính hash file tải về và so sánh; khớp nghĩa là bạn có đúng file tác giả đăng, không khớp nghĩa là có gì đó đã thay đổi giữa file và bạn.
Trang web cũng quan trọng. Tải từ trang của tác giả (kho Hugging Face hoặc trang mô hình Civitai được liên kết từ trang mô hình này) thay vì các trang tải lại; dùng hash để kiểm tra các bản sao và torrent. Hoặc không tải gì cả: các đối tác đám mây liên kết từ mỗi trang mô hình đã lưu trữ file đã được xác minh.
Tham khảo
Tên | Kiểu | Ý nghĩa |
|---|---|---|
.safetensors | format | Tensor cộng với header JSON; không thể chạy code; có thể ánh xạ bộ nhớ, tải nhanh. Chuẩn từ 2023. |
.ckpt / .pt / .pth / .bin | format | Python pickle; có thể chạy code khi tải. Tránh từ nguồn không rõ; giao diện hiện đại cảnh báo hoặc chặn. |
.gguf | format | |
SHA-256 | hash | 64 ký tự hex nhận diện chính xác file. Trên trang mô hình ở dưới danh sách file. |
AutoV2 | hash | |
certutil -hashfile FILE SHA256 | Windows | Lệnh tính hash có sẵn; PowerShell: Get-FileHash FILE. |
shasum -a 256 FILE | Mac / Linux | Có sẵn; trên Linux dùng sha256sum FILE. |
Pickle scanner | tool | picklescan hoặc quét tích hợp trong UI báo các import đáng ngờ trong file .ckpt; quét sạch không đảm bảo an toàn. |
Từng bước
- Mở mô hình trên trang này và sao chép SHA-256 (hoặc AutoV2) từ danh sách file; ghi nhớ kích thước file.
- Theo link nguồn đến trang của tác giả và tải biến thể .safetensors. Nếu chỉ có .ckpt, tìm bản chuyển sang safetensors trên cùng trang hoặc từ tài khoản chuyển đổi uy tín.
- Kiểm tra kích thước trước: file nhỏ hơn nhiều so với ghi là bị cắt bớt.
- Tính hash: Windows PowerShell Get-FileHash .\model.safetensors; Mac/Linux shasum -a 256 model.safetensors. So sánh 10 ký tự đầu với AutoV2 trên trang mô hình, hoặc toàn bộ chuỗi với SHA-256.
- Nếu khớp: chuyển file vào thư mục đúng (checkpoints, loras, controlnet, vae) và làm mới UI. A1111 và Forge hiển thị AutoV2 bên cạnh tên mô hình; cũng phải khớp.
- Nếu không khớp: xóa và tải lại từ trang tác giả; nếu file tác giả khác với ghi trên trang, tác giả đã cập nhật (kiểm tra phiên bản) hoặc dữ liệu của chúng ta lỗi thời; báo qua link cộng đồng Telegram trong FAQ.
- Với .ckpt bạn phải: chạy quét pickle, chỉ tải trong môi trường có thể xây lại, và chuyển ngay sang safetensors (ComfyUI và A1111 đều có công cụ chuyển) để không bao giờ tải pickle nữa.
- Để bỏ qua tất cả bước này, nhấn nút PirateDiffusion hoặc BitVector trên trang mô hình; file lưu trữ đó đã được xác minh.
Ví dụ
Tính hash trên Windows
Get-FileHash "C:\ComfyUI\models\checkpoints\juggernautXL_v9.safetensors"
certutil -hashfile "C:\ComfyUI\models\checkpoints\juggernautXL_v9.safetensors" SHA256
Tính hash trên Mac hoặc Linux
shasum -a 256 ~/ComfyUI/models/checkpoints/juggernautXL_v9.safetensors
Chuyển đổi .ckpt một lần bằng Python
from safetensors.torch import save_file; import torch
sd = torch.load("model.ckpt", map_location="cpu", weights_only=True)["state_dict"]; save_file(sd, "model.safetensors")
Mẹo
- Hugging Face hiển thị SHA-256 của mọi file trong kho (nhấn vào file, "Copy SHA256"); Civitai hiển thị AutoV2 và SHA-256 trong chi tiết file. Cả hai phải giống với ghi trên trang mô hình này.
- Phần mềm diệt virus cách ly file giữa chừng tải gây file bị cắt bớt và hash sai; nên cho thư mục mô hình vào danh sách trắng thay vì tắt quét.
- Kiểm tra hash cũng giúp phát hiện torrent hoặc bản sao cung cấp phiên bản cũ cùng tên.
- Safetensors không bảo vệ khỏi mô hình kém chất lượng, chỉ chống chạy code; ví dụ trên trang mô hình và điểm heat cho biết file có đáng dùng hay không.
- File LoRA từ người huấn luyện luôn là safetensors; LoRA dưới dạng .pt là dấu hiệu cảnh báo trừ khi là embedding từ năm 2022.
- Giữ file văn bản chứa hash bên cạnh thư mục mô hình; một năm sau bạn sẽ không nhớ "v3" nào là của mình.
Khắc phục sự cố
Hash không khớp với trang mô hình
Vì sao xảy ra
Tải bị cắt bớt, phiên bản khác, hoặc file bị thay thế.
Cách sửa
So sánh kích thước, tải lại từ tác giả, kiểm tra phiên bản; báo lỗi qua link cộng đồng nếu dữ liệu lỗi thời.
UI từ chối tải .ckpt
Vì sao xảy ra
Cài đặt an toàn pickle.
Cách sửa
Tìm hoặc tạo bản safetensors; không tắt cài đặt an toàn.
Quét pickle báo import đáng ngờ
Vì sao xảy ra
Code trong pickle, có thể độc hại hoặc lạ.
Cách sửa
Không tải file đó. Tìm bản safetensors.
Tải xuống lớn gấp đôi kích thước ghi
Vì sao xảy ra
Phiên bản fp32 trong khi trang ghi fp16, hoặc checkpoint đầy đủ thay vì LoRA.
Cách sửa
Chọn biến thể đúng với ghi trên trang; cả hai đều hợp lệ nhưng khác cách hoạt động.
File mở được nhưng cho ảnh lỗi
Vì sao xảy ra
Gia đình mô hình sai hoặc file bị hỏng nhưng đủ kích thước.
Cách sửa
Kiểm tra hash; tải với checkpoint đúng gia đình.
Câu hỏi
Safetensors luôn an toàn chứ?
An toàn khỏi chạy code, đúng vậy. Nhưng không nói lên chất lượng hay giấy phép mô hình; những thứ đó do trang mô hình quyết định.
Tại sao một số kho vẫn có .bin hoặc .pt?
Phiên bản cũ và một số code nghiên cứu. Hầu hết có safetensors kèm theo; dùng bản đó.
Hash có thay đổi khi đổi tên file không?
Không. Hash là của nội dung; tên file không ảnh hưởng.
Còn file GGUF thì sao?
Đó là định dạng tensor không chạy code; kiểm tra hash giống nhau.
Hash trên trang này lấy từ đâu?
Từ file tác giả công bố lúc ghi danh sách; hiển thị để bạn kiểm tra tải xuống, và bạn có thể báo sửa qua chat cộng đồng.
Liên kết và nguồn
- Safetensors documentation
- picklescan
- Hugging Face security notes on pickles
- Models browser
- PirateDiffusionAD
Mô hình trong hướng dẫn này
Người viết
Quản lý kho: mọi LoRA, mọi quant, mọi file ai đó đổi tên thành final_v2_REAL.safetensors. Đo phần cứng bằng số lần render Wan trước bữa tối. Sẽ cho bạn số VRAM, rồi bảo nó sai vì bạn đang mở Chrome. Mở trọng số ra hoặc không được coi là đã giao hàng.
Tất cả hướng dẫn của Quartermaster
Hướng dẫn liên quan
Cách cài đặt LoRA: thư mục, kiểm tra file và sử dụng lần đầu trong ComfyUI, Forge, Automatic1111 và Draw Things
24 Tháng 9, 2025
Checkpoint vs LoRA vs embedding vs ControlNet: file nào làm gì
8 Tháng 10, 2025
Hugging Bay là gì? Một chỉ mục mirror cho các mô hình mở và cách xác minh tải xuống bằng mã băm của nó
5 Tháng 10, 2026
LoRA là gì và cách sử dụng nó trong ComfyUI, Forge, Automatic1111 và trên đám mây
20 Tháng 5, 2026
Mở weights vs mã nguồn mở vs chỉ API: bạn thực sự được phép làm gì
29 Tháng 7, 2026
Tệp GGUF là gì? Giải thích về các mô hình lượng tử hóa (Q4, Q8, fp8, NF4)
26 Tháng 8, 2026
Các lựa chọn thay thế Civitai: nơi tìm và tải mô hình AI năm 2026
16 Tháng 9, 2026
Hướng dẫn khác
Lỗi ComfyUI và cách sửa: nút đỏ, thiếu mô hình, hết bộ nhớ CUDA
12 Tháng 5, 2026
CUDA hết bộ nhớ: mỗi mô hình AI cần bao nhiêu VRAM và cách để vừa vặn
18 Tháng 5, 2026
Lỗi và cách sửa Stable Diffusion WebUI Forge (Flux, SDXL, VRAM thấp)
16 Tháng 5, 2026
Yêu cầu VRAM cho mọi mô hình AI hình ảnh và video phổ biến (2026): độ chính xác đầy đủ, FP8 và GGUF
6 Tháng 10, 2026
Cách các mô hình hình ảnh AI tạo sinh hoạt động: giải thích đơn giản về khuếch tán, latent và bộ mã hóa văn bản
28 Tháng 8, 2025
