abelxiaoxing/ComfyUI_Sana

Python

4

1 commits

updated Jul 15, 2025

See the code

README

ComfyUI Sana Nodes

Sana文生图模型的ComfyUI自定义节点。

功能

  • Sana模型加载: 支持加载标准的Sana模型和SanaSprint模型。
  • 显存优化: 提供“高”和“低”两种显存模式,以适应不同配置的硬件。
    • 高模式: 优化性能,将模型完整加载到VRAM中。
    • 低模式: 优化显存占用,使用enable_model_cpu_offload()和NF4量化加载文本编码器,显著降低显存需求。
  • PAG支持: 支持Perturbed-Attention-Guidance,可在高显存模式下(非Sprint模型)启用,以提升生成图像的细节和对齐度。
  • Torch Compile: 可选的torch.compile优化,linux下用于加速模型推理(会增加初次加载时间)。

安装

  1. 安装此节点:

    # 导航到你的ComfyUI自定义节点目录
    cd ComfyUI/custom_nodes/
    
    # 克隆本仓库
    git clone https://github.com/abelxiaoxing/ComfyUI_Sana.git
    

    安装所需依赖

    pip install -r requirements.txt
    
  2. 下载Sana模型: 此节点会从 ComfyUI/models/sana/ 目录加载模型。

    模型下载实例 (Sana Sprint 1.6B):

    # 导航到ComfyUI的模型目录
    cd ComfyUI/models/
    
    # 创建sana目录(如果不存在)
    mkdir sana
    cd sana
    
    # 确保已安装 git-lfs (https://git-lfs.com)
    git lfs install
    
    # 克隆模型仓库
    git clone https://hf-mirror.com/Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diff
    

    下载完成后,你的模型文件结构应如下所示:

    ComfyUI/
    └── models/
        └── sana/
            └── Sana_Sprint_1.6B_1024px_diff/
                ├── text_encoder/
                ├── transformer/
                ├── vae/
                └── ...
    
  3. 重启ComfyUI

如何使用

工作流中包含两个主要节点:

1. Sana模型加载器 (SanaModelLoader)

此节点负责加载Sana模型并进行配置。

  • model_name: 选择要加载的模型。下拉列表会自动检测 ComfyUI/models/sana/ 目录下的所有模型文件夹。
  • is_sprint_model: 如果加载的是Sprint模型,请勾选此项。
  • vram_mode:
    • high: 适用于显存充足的设备,含带PAG指令遵循增强,同时性能更强。
    • low: 禁用PAG,同时速度较慢,适用于显存有限的设备。
  • torch_compile: 是否启用torch.compile进行优化,建议只在linux环境中启用。

2. Sana采样器 (SanaSampler)

此节点使用加载的模型生成图像。

  • sana_model: 连接来自SanaModelLoader的模型输出。
  • prompt / negative_prompt: 输入你的正向和负向提示词。
  • width / height: 设置生成图像的尺寸。
  • guidance_scale: 提示词引导强度。
  • num_inference_steps: 推理步数。spring模型通常只需要2步,sana1.5建议20步。
  • seed: 随机种子。

示例工作流

  1. 添加 SanaModelLoader 节点,选择你下载的模型(例如 Sana_Sprint_1.6B_1024px_diff),并根据你的硬件设置vram_mode
  2. 添加 SanaSampler 节点。
  3. SanaModelLoadersana_model 输出连接到 SanaSamplersana_model 输入。
  4. SanaSampler 中填写提示词和其他参数。
  5. 连接一个预览图像节点 (PreviewImage) 到 SanaSamplerimage 输出。
  6. 点击 "Queue Prompt" 开始生成。

Contributors

abelxiaoxing

1 commits

abelxiaoxing/ComfyUI_Sana

Python

4

1 commits

updated Jul 15, 2025

See the code

README

ComfyUI Sana Nodes

Sana文生图模型的ComfyUI自定义节点。

功能

  • Sana模型加载: 支持加载标准的Sana模型和SanaSprint模型。
  • 显存优化: 提供“高”和“低”两种显存模式,以适应不同配置的硬件。
    • 高模式: 优化性能,将模型完整加载到VRAM中。
    • 低模式: 优化显存占用,使用enable_model_cpu_offload()和NF4量化加载文本编码器,显著降低显存需求。
  • PAG支持: 支持Perturbed-Attention-Guidance,可在高显存模式下(非Sprint模型)启用,以提升生成图像的细节和对齐度。
  • Torch Compile: 可选的torch.compile优化,linux下用于加速模型推理(会增加初次加载时间)。

安装

  1. 安装此节点:

    # 导航到你的ComfyUI自定义节点目录
    cd ComfyUI/custom_nodes/
    
    # 克隆本仓库
    git clone https://github.com/abelxiaoxing/ComfyUI_Sana.git
    

    安装所需依赖

    pip install -r requirements.txt
    
  2. 下载Sana模型: 此节点会从 ComfyUI/models/sana/ 目录加载模型。

    模型下载实例 (Sana Sprint 1.6B):

    # 导航到ComfyUI的模型目录
    cd ComfyUI/models/
    
    # 创建sana目录(如果不存在)
    mkdir sana
    cd sana
    
    # 确保已安装 git-lfs (https://git-lfs.com)
    git lfs install
    
    # 克隆模型仓库
    git clone https://hf-mirror.com/Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diff
    

    下载完成后,你的模型文件结构应如下所示:

    ComfyUI/
    └── models/
        └── sana/
            └── Sana_Sprint_1.6B_1024px_diff/
                ├── text_encoder/
                ├── transformer/
                ├── vae/
                └── ...
    
  3. 重启ComfyUI

如何使用

工作流中包含两个主要节点:

1. Sana模型加载器 (SanaModelLoader)

此节点负责加载Sana模型并进行配置。

  • model_name: 选择要加载的模型。下拉列表会自动检测 ComfyUI/models/sana/ 目录下的所有模型文件夹。
  • is_sprint_model: 如果加载的是Sprint模型,请勾选此项。
  • vram_mode:
    • high: 适用于显存充足的设备,含带PAG指令遵循增强,同时性能更强。
    • low: 禁用PAG,同时速度较慢,适用于显存有限的设备。
  • torch_compile: 是否启用torch.compile进行优化,建议只在linux环境中启用。

2. Sana采样器 (SanaSampler)

此节点使用加载的模型生成图像。

  • sana_model: 连接来自SanaModelLoader的模型输出。
  • prompt / negative_prompt: 输入你的正向和负向提示词。
  • width / height: 设置生成图像的尺寸。
  • guidance_scale: 提示词引导强度。
  • num_inference_steps: 推理步数。spring模型通常只需要2步,sana1.5建议20步。
  • seed: 随机种子。

示例工作流

  1. 添加 SanaModelLoader 节点,选择你下载的模型(例如 Sana_Sprint_1.6B_1024px_diff),并根据你的硬件设置vram_mode
  2. 添加 SanaSampler 节点。
  3. SanaModelLoadersana_model 输出连接到 SanaSamplersana_model 输入。
  4. SanaSampler 中填写提示词和其他参数。
  5. 连接一个预览图像节点 (PreviewImage) 到 SanaSamplerimage 输出。
  6. 点击 "Queue Prompt" 开始生成。

Contributors

abelxiaoxing

1 commits

Languages

Python

100.0%