Draw things和Comfyui在mac M芯片上的模型格式与区别

社区话题 📺 VFX Pipeline | 数字创意工作流 Draw things和Comfyui在mac M芯片上的模型格式与区别

标签: ,

  • 该话题为空。
正在查看 0 条回复
  • 作者
    帖子
    • #131970

      追光
      参与者

      这里更深入地探讨Draw things的模型格式 .tensordata 与Comfyui模型格式 .safetensors 的区别,本质上是在讨论 “跨平台通用标准” 与 “苹果硬件深度定制” 之间的架构博弈。以下是基于我目前能找到的技术文档与底层逻辑的深度对比:


      1. 存储结构:静态张量 vs. 动态加载

      .safetensors (ComfyUI/通用):
      这是目前 AI 界的标准格式。它主要采用 FlatBuffers 技术,特点是“零拷贝”加载,且不包含可执行代码(比旧的 .ckpt 安全)。它存储的是原始的、未经针对特定显卡优化的浮点数权重。

      .tensordata (Draw Things):
      这是 Draw Things 作者自创的一种专有格式。它在存储时就已经将权重按照 Apple Metal 框架 所需的内存对齐(Memory Alignment)方式进行了预处理。这意味着当 Draw Things 读取该文件时,数据可以直接映射到 GPU 的显存中,无需再进行复杂的 CPU 换算。

      Draw Things 快速上手指南:从零到一的 AI 绘画之旅


      2. 计算后端:PyTorch vs. Metal/ANE

      ComfyUI (safe): 运行在 PyTorch 之上。PyTorch 是一个高度灵活的框架,它在生成图片时,会根据你的显卡(NVIDIA 或 Mac GPU)实时编译算子。
      Draw Things (tensordata): 放弃了沉重的 PyTorch,直接调用苹果最底层的 Metal 加速库和 Core ML。.tensordata 内部往往针对苹果的 统一内存架构(Unified Memory) 做了优化,减少了数据在 CPU、GPU 和神经网络引擎(ANE)之间传递的延迟。



      3. 量化技术的深度定制

      这是两者最不通用的核心原因:

      .safetensors 通常是 FP16 或 FP32。虽然现在也有量化版,但其量化算法(如 GGUF, EXL2)是为了适配 PC 的 CUDA 核心。

      .tensordata 支持 Draw Things 独有的 Q4P、Q6P、Q8P(量化位宽)。这些量化方案是专门为苹果的 神经网络引擎 (ANE) 设计的。例如,ANE 在处理 6-bit 数据时有极高的能效比,而这种特定的位宽排列在 PC 显卡上反而跑不动。


      4. 模型解析逻辑

      特性Safetensors (ComfyUI)Tensordata (Draw Things)
      通用性极高,几乎所有 AI 软件都支持极低,仅限 Draw Things
      加载速度取决于硬盘 IO 和 PyTorch 初始化极快,类似内存快照直接读取
      内存占用较大,需保留较多中间算子空间极小,针对统一内存做了极致压缩
      底层依赖Python / PyTorch / CUDASwift / Metal / C++

      5. 为什么 Draw Things 还要支持导入 Safe?

      Draw Things for Mac 深度设置指南:榨干 Apple Silicon 的 AI 绘图潜力

      Draw Things 实际上在软件内部内置了一个 “即时转换引擎”:

      当把一个 safe 文件丢给 DT 时,它会启动一个转换程序(Convert),将 Python 风格的权重重新排列、量化,最后封装成 .tensordata。这个过程就像是把 “生肉(Safe)” 按照苹果家厨房的菜谱 “做熟(Tensordata)”。一旦做熟了,它就再也没法放回 ComfyUI 的锅里去了。

      结论:.safetensors 是为了“兼容一切”而生,而 .tensordata 是为了“压榨苹果硬件的每一滴性能”而生。如果你追求跨平台工作流,用 safe;如果你希望在 iPhone 或 Mac 上获得最快的出图速度和最低的发热,.tensordata 是唯一的选择。

正在查看 0 条回复
  • 在下方一键注册,登录后就可以回复啦。