From 80317d47ae86fdde37fdb27b3e3473a8f005b2f6 Mon Sep 17 00:00:00 2001 From: Hawk Lee Date: Thu, 22 Jan 2026 09:57:58 +0800 Subject: [PATCH] chore: Update icon to use assets/logo.png, fix README formatting --- README.md | 78 +++++++++++++++++++++++++++--------------------- assets/logo.png | Bin 0 -> 35294 bytes pyproject.toml | 2 +- 3 files changed, 45 insertions(+), 35 deletions(-) create mode 100755 assets/logo.png diff --git a/README.md b/README.md index b56b619..162f5b5 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![image](https://github.com/user-attachments/assets/7e38d3fd-2084-4d0c-bf86-4b500eba5ced) -# AIIA Nodes for ComfyUI +# ![1769046939096](image/README/1769046939096.png)AIIA Nodes for ComfyUI 欢迎来到 AIIA Nodes for ComfyUI 仓库!这是一个旨在为 ComfyUI 提供一系列强大、直观且高度可定制的节点的集合。这些节点专注于简化复杂的工作流,并为创意工作者提供最大的灵活性。 @@ -195,23 +195,25 @@ git clone https://github.com/havvk/ComfyUI_AIIA.git - **输出**: `STRING` (包含生成帧的目录路径) 和 `INT` (帧数)。 - **最佳实践**: 将此节点的输出目录直接连接到 **AIIA Video Combine** 节点,即可实现从生成到合成的全流程 OOM-Safe。 - #### 2.4 EchoMimic V3 (AIIA Integrated) 这组节点集成了最新的 **EchoMimic V3** (1.3B Parameters) 模型,它是目前开源界效果最惊艳的 Talking Head 解决方案之一。 **特点**: + - **多模态驱动**: 支持 **Audio Only** (仅音频驱动) 和 **Audio + Reference Pose** (音频+参考姿态) 驱动。 - **自然度极高**: 相比 float 等早期模型,V3 在头部运动、表情微表情的自然度上有巨大提升。 - **ComfyUI 原生**: 我们将其封装为标准的 Loader 和 Sampler 节点,支持流式生成和内存优化。 **1. EchoMimic V3 Loader** + - **用途**: 加载模型权重 (Transformer, VAE, Wav2Vec, etc.)。 -- **参数**: +- **参数**: - `model_subfolder`: 模型子目录名 (默认 `Wan2.1-Fun-V1.1-1.3B-InP`)。 - `device`: 指定运行设备 (CUDA)。 **2. EchoMimic V3 Sampler** + - **用途**: 执行推理生成。 - **输入**: - `ref_image`: 参考人物图片 (建议 1:1 比例,如 768x768)。 @@ -224,6 +226,7 @@ git clone https://github.com/havvk/ComfyUI_AIIA.git - `negative_prompt`: 已内置优化过的 **眼部修复 (Eye Correction)** 提示词,有效防止翻白眼和眼神飘忽。 **🚀 性能优化 (Performance)**: + - **Flash Attention 2**: 强烈推荐安装。检测到时会自动启用,大幅提升推理速度。 - **TeaCache**: 默认启用。通过缓存部分 Transformer 层计算,大幅加速生成。 - **Full GPU Mode**: 默认启用。适合显存充足 (24GB+) 用户,享受极致流畅的生成体验。 @@ -235,6 +238,7 @@ git clone https://github.com/havvk/ComfyUI_AIIA.git 目标目录: `ComfyUI/models/EchoMimicV3/` **目录结构**: + ```text ComfyUI/models/EchoMimicV3/ ├── Wan2.1-Fun-V1.1-1.3B-InP/ <-- 主模型目录 @@ -255,23 +259,25 @@ ComfyUI/models/EchoMimicV3/ ``` **下载地址**: + 1. **主模型 (EchoMimicV3)**: + - HuggingFace: [BadToBest/EchoMimicV3](https://huggingface.co/BadToBest/EchoMimicV3) - **下载命令 (推荐)**: ```bash hf download BadToBest/EchoMimicV3 --local-dir models/EchoMimicV3/EchoMimicV3 ``` - *注意:此模型包含 EchoMimic 特有的 Transformer 权重,是生成嘴型的核心。* - 2. **底模 (Wan2.1-Fun-V1.1-1.3B-InP)**: + - HuggingFace: [alibaba-pai/Wan2.1-Fun-V1.1-1.3B-InP](https://huggingface.co/alibaba-pai/Wan2.1-Fun-V1.1-1.3B-InP) - **下载命令**: ```bash hf download alibaba-pai/Wan2.1-Fun-V1.1-1.3B-InP --local-dir models/EchoMimicV3/Wan2.1-Fun-V1.1-1.3B-InP ``` - *注意:作为 fallback 来源,提供 VAE、Text Encoder 和 Image Encoder权重。* - 3. **音频编码器 (wav2vec2-base-960h)**: + - HuggingFace: [facebook/wav2vec2-base-960h](https://huggingface.co/facebook/wav2vec2-base-960h) - **下载命令**: ```bash @@ -279,25 +285,28 @@ ComfyUI/models/EchoMimicV3/ ``` **环境依赖**: -- 请确保安装了 `requirements.txt` 中的依赖,如 `diffusers>=0.30.1`。节点加载时会尝试自动引用,但如果报错缺包,请手动安装。 +- 请确保安装了 `requirements.txt` 中的依赖,如 `diffusers>=0.30.1`。节点加载时会尝试自动引用,但如果报错缺包,请手动安装。 #### 2.5 Ditto Talking Head (AIIA Integrated) 这组节点集成了 [Ditto](https://github.com/antgroup/ditto-talkinghead) 数字人模型。我们采用了 **PyTorch** 原生实现,避免了复杂的 TensorRT 编译过程,让用户能够“开箱即用”地生成高质量的 Talking Head 视频。 **特点**: + - **PyTorch Native**: 无需安装 TensorRT,兼容性更好。 - **In-Memory Pipeline**: 针对 ComfyUI 优化的内存内处理流程,无需生成中间视频文件。 - **自动模型管理**: 支持自动下载模型权重。 **1. AIIA Ditto Loader** + - **用途**: 下载并加载 Ditto 模型 (约 1.2GB)。 - **参数**: - `model_name`: 模型名称 (默认 `ditto-talkinghead`)。 - `device`: 运行设备 (CUDA/CPU)。 **2. AIIA Ditto Sampler** + - **用途**: 执行推理生成。 - **输入**: - `pipe`: 来自 Loader 的模型管道。 @@ -317,7 +326,7 @@ ComfyUI/models/EchoMimicV3/ - **数值越小 (如 2.0)**: **特写视野**。模型聚焦于面部核心区域。 - ✅ 优点:人脸占比大,五官细节极其清晰锐利。 - ❌ 缺点:容易裁掉下巴或额头,头部大幅运动时可能会出现“断头”或伪影。 - - **推荐值**: + - **推荐值**: - 标准场景: **2.3** - 大动态/全身/半身: **2.5** (牺牲细节换稳定性) - 大头照/证件照: **2.0** (追求极致细节) @@ -345,13 +354,13 @@ ComfyUI/models/EchoMimicV3/ - **精密网格对齐 (Exact Onset Alignment)**: 将模型的时间步长精确对齐到语音的开始(Onset),而不是固定的处理块。 - **状态重置 (State & RNG Reset)**: 在长静音后,强制重置模型状态和**随机种子**,确保每一句话的生成质量一致,彻底消除“长语音嘴型漂移”。 - `silence_release`: (v1.9.2 New) **静音闭嘴速度 (Adsr Release Control)**。 - - **Natural (0.8s) [默认]**: + - **Natural (0.8s) [默认]**: - 自然平衡模式。适合大多数常速对话。 - 触发阈值: >0.88s。 - - **Fast (0.5s)**: + - **Fast (0.5s)**: - 快速响应模式。适合语速极快、充满激情的演讲。 - 触发阈值: >0.56s。 - - **Deep (1.3s)**: + - **Deep (1.3s)**: - 深沉模式。适合朗诵、讲故事或情感类内容。超长尾韵,极度平滑。 - 触发阈值: >1.4s。 - `ref_threshold`: (默认 0.005) **静音检测相对阈值 (Relative Silence Threshold)**。 @@ -374,6 +383,7 @@ ComfyUI/models/EchoMimicV3/ 如果自动下载失败,请手动下载模型并放入 `ComfyUI/models/ditto/` 目录。 **目标目录结构**: + ```text ComfyUI/models/ditto/ ├── ditto_pytorch/ @@ -385,9 +395,11 @@ ComfyUI/models/ditto/ ``` **下载地址**: + - HuggingFace: [digital-avatar/ditto-talkinghead](https://huggingface.co/digital-avatar/ditto-talkinghead) **下载命令**: + ```bash # 进入 models 目录 cd ComfyUI/models @@ -396,8 +408,6 @@ cd ComfyUI/models hf download digital-avatar/ditto-talkinghead --local-dir ditto ``` - - ### 3. 音频智能处理 (Intelligent Audio Processing) #### 3.1 说话人日志 (Diarization) @@ -902,13 +912,13 @@ hf download digital-avatar/ditto-talkinghead --local-dir ditto 经过深度测试,我们在三个主流模型中整理了以下对比,助您选择最适合的引擎: -| 维度 | **VoxCPM 1.5** (800M) | **CosyVoice 3.0** (0.5B/1.5B) | **VibeVoice** (1.5B/7B) | -| :--------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- | :------------------------------------------------------------- | -| **音质 (Fidelity)** | **44.1kHz 格式**`
`虽然物理格式为 44.1k,但因采用 **Neural Upsampling** (神经升频) 技术,听感上会有**含混 (Muffled)** 或**金属感**,且伴有底噪。 | **优秀**`
`听感最自然,但采样率稍低 (22/24kHz),有时需 AI 增强。 | **良好**`
`主要强在语气自然度,纯音质略逊。 | -| **推理速度 (Speed)** | **🚀 冠军 (RTF ~0.17)**`
`得益于 Tokenizer-free,极其高效。 | **极快**`
`流式响应仅 150ms,且支持 TensorRT 加速。 | **一般/较慢**`
`7B 版本较重,更适合离线生成。 | -| **克隆能力 (Cloning)** | **SOTA** (Zero-Shot)`
`只需 3-10秒,对**音色质感**还原极高。 | **SOTA** (稳定性)`
`对**说话韵律/口音**的捕捉最准。 | **良好**`
`适合克隆特定语气,而非纯粹音色。 | -| **多语言/方言** | **中/英** (双语优化) | **👑 霸主** (9种语言 + 18种方言) | **中/英** | -| **语音转换 (VC)** (Audio-to-Audio) | ❌**不支持**`
`仅支持 TTS (Text-to-Speech)。无法改变已有音频的音色。 | ✅**支持**`
`可以将任意音频转换为任意音色 (保留语调/停顿)。 | ❌**不支持**`
`纯 TTS 模型。仅支持 Text-to-Speech。 | +| 维度 | **VoxCPM 1.5** (800M) | **CosyVoice 3.0** (0.5B/1.5B) | **VibeVoice** (1.5B/7B) | +| :--------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | :-------------------------------------------------------------- | +| **音质 (Fidelity)** | **44.1kHz 格式** `
`虽然物理格式为 44.1k,但因采用 **Neural Upsampling** (神经升频) 技术,听感上会有**含混 (Muffled)** 或**金属感**,且伴有底噪。 | **优秀** `
`听感最自然,但采样率稍低 (22/24kHz),有时需 AI 增强。 | **良好** `
`主要强在语气自然度,纯音质略逊。 | +| **推理速度 (Speed)** | **🚀 冠军 (RTF ~0.17)**`
`得益于 Tokenizer-free,极其高效。 | **极快** `
`流式响应仅 150ms,且支持 TensorRT 加速。 | **一般/较慢** `
`7B 版本较重,更适合离线生成。 | +| **克隆能力 (Cloning)** | **SOTA** (Zero-Shot)`
`只需 3-10秒,对**音色质感**还原极高。 | **SOTA** (稳定性)`
`对**说话韵律/口音**的捕捉最准。 | **良好** `
`适合克隆特定语气,而非纯粹音色。 | +| **多语言/方言** | **中/英** (双语优化) | **👑 霸主** (9种语言 + 18种方言) | **中/英** | +| **语音转换 (VC)** (Audio-to-Audio) | ❌**不支持** `
`仅支持 TTS (Text-to-Speech)。无法改变已有音频的音色。 | ✅**支持** `
`可以将任意音频转换为任意音色 (保留语调/停顿)。 | ❌**不支持** `
`纯 TTS 模型。仅支持 Text-to-Speech。 | **选型建议**: @@ -980,18 +990,18 @@ https://github.com/user-attachments/assets/9a5502c5-79e3-4fc8-8a2d-2cbdbdbbc860 **[v1.8.1 New]** 将播客升级为视听同步的互动网页。支持“读写分离”的缓存优化,修改 Visual 标签无需重跑 TTS。 - **工作流 (Workflow)**: - 1. `Script Parser` 输出 `tts_data` (连接到 TTS) 和 `full_script` (连接到 Merge)。 - 2. `AIIA Dialogue TTS` 生成音频和 `segments_info`。 - 3. `AIIA Segment Merge` 将 `full_script` 中的 Visual 标签重新贴回到 `segments_info` 时间轴上。 - 4. `AIIA Web Export` 生成最终 HTML。 + 1. `Script Parser` 输出 `tts_data` (连接到 TTS) 和 `full_script` (连接到 Merge)。 + 2. `AIIA Dialogue TTS` 生成音频和 `segments_info`。 + 3. `AIIA Segment Merge` 将 `full_script` 中的 Visual 标签重新贴回到 `segments_info` 时间轴上。 + 4. `AIIA Web Export` 生成最终 HTML。 - **Input**: - - `audio`: 音频信号。 - - `segments_info`: 来自 Merge 节点的包含 Visual 信息的 JSON。 - - `template`: `Split Screen` (适合宽屏) 或 `Presentation` (适合演示)。 + - `audio`: 音频信号。 + - `segments_info`: 来自 Merge 节点的包含 Visual 信息的 JSON。 + - `template`: `Split Screen` (适合宽屏) 或 `Presentation` (适合演示)。 - **Visual Tag 语法**: - - 在剧本中插入 `(Visual: url)`。 - - 支持绝对 URL: `(Visual: https://example.com)` - - 支持相对路径: `(Visual: ./slides/01.jpg)` (相对于导出 HTML 的位置) + - 在剧本中插入 `(Visual: url)`。 + - 支持绝对 URL: `(Visual: https://example.com)` + - 支持相对路径: `(Visual: ./slides/01.jpg)` (相对于导出 HTML 的位置) #### 💡 引擎选型与最佳实践 (Best Practices) @@ -1091,16 +1101,16 @@ B: 太神奇了!那我们快去生成试试吧! ### [1.9.0] - 2026-01-20 - **Ditto Talking Head**: 新增 Ditto 模型支持 (PyTorch 版)。 - - **AIIA Ditto Loader**: 支持自动下载与加载。 - - **AIIA Ditto Sampler**: 支持内存内流式生成。 + - **AIIA Ditto Loader**: 支持自动下载与加载。 + - **AIIA Ditto Sampler**: 支持内存内流式生成。 - **EchoMimic V3**: 优化了音频同步逻辑,修复了唇形漂移问题。 ### [1.8.4] - 2026-01-19 - **VibeVoice Speed Control**: 实现了基于系统 `sox` 命令的**变速不变调**(Time Stretching)。 -- **稳定性修复**: - - 修复了 VibeVoice 在调整速度时由于张量类型不匹配(Half vs Float)导致的崩溃。 - - 强制所有音频输出为 `float32`,解决了在 `speed=1.0` 且有参考音频时,下游节点(如 Resemble Enhance)报错的问题。 +- **稳定性修复**: + - 修复了 VibeVoice 在调整速度时由于张量类型不匹配(Half vs Float)导致的崩溃。 + - 强制所有音频输出为 `float32`,解决了在 `speed=1.0` 且有参考音频时,下游节点(如 Resemble Enhance)报错的问题。 - **依赖更新**: 新增 `sox` 依赖。Linux 服务器用户请确保安装系统库:`sudo apt-get install libsox-dev sox`。 ### [1.8.3] - 2026-01-07 diff --git a/assets/logo.png b/assets/logo.png new file mode 100755 index 0000000000000000000000000000000000000000..6aa81dcd1b261bb387ac96c72028c02b5436ac6b GIT binary patch literal 35294 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�D?PZH%`otci@^{_*D7JY#KKK{S)_>blW{`c|!{>Og>;D7n! rzXI^T{PAA__+S3`uK@fnfBgRd3`#hwXXGKk00000NkvXXu0mjfgi<2J literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index d17e48c..0e9db11 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,5 +23,5 @@ Repository = "https://github.com/havvk/ComfyUI_AIIA" [tool.comfy] PublisherId = "hawk" DisplayName = "ComfyUI_AIIA" -Icon = "https://github.com/user-attachments/assets/358b9ca9-59c8-4433-b84c-c150503af04a" +Icon = "https://raw.githubusercontent.com/havvk/ComfyUI_AIIA/main/assets/logo.png"