Model
.ai
theo dõi các mô hình AI mở

Safetensors vs .ckpt và .pt: cách tải mô hình AI an toàn và kiểm tra bằng SHA-256

Chủ đề: Lỗi và cách khắc phục
Bởi Quartermaster
Đăng ngày 1 Tháng 4, 2026

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
Tensor lượng tử kèm metadata (dòng llama.cpp); không chạy code. Dùng cho GGUF Flux, Qwen và LLMs.
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
10 ký tự đầu của SHA-256, như A1111, Forge và Civitai hiển thị.
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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Để 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.

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 khác