IMS-Toucan

GitHub
2.2k 319 中等 1 次阅读 昨天Apache-2.0音频开发框架
AI 解读 由 AI 自动生成,仅供参考

IMS-Toucan 是一款由德国斯图加特大学自然语言处理研究所开发的开源文本转语音(TTS)工具包,旨在让高质量语音合成变得快速、可控且易于获取。它最引人注目的能力是支持全球超过 7000 种语言的语音生成,极大地降低了多语言语音合成的门槛,解决了传统模型往往只聚焦于少数主流语言、训练成本高昂且难以定制的问题。

无论是希望研究前沿语音技术的学者、需要为应用集成多语言配音功能的开发者,还是对小众语言数字化感兴趣的语言保护工作者,IMS-Toucan 都能提供强大的支持。其技术亮点在于采用了高效的架构设计,无需庞大的计算资源即可进行模型训练与推理,同时具备高度的可控性,允许用户精细调整语音特征。此外,项目不仅提供了完整的训练和使用流程,还开源了大规模多语言数据集和预训练模型,并托管了免费的在线演示实例,让用户无需本地配置即可立即体验。凭借友好的安装指引和活跃的社区支持,IMS-Toucan 正成为推动全球语音技术普惠化的重要力量。

使用场景

一家专注于非洲本土文化保护的公益组织,正紧急需要将数千页濒危语言的口述历史文本转化为有声档案,以便在缺乏识字率的社区中通过广播播放。

没有 IMS-Toucan 时

  • 语言覆盖严重不足:主流 TTS 工具仅支持几十种通用语,面对项目所需的数百种非洲方言(如班图语系分支),完全无法找到预训练模型,导致大量珍贵文本无法发声。
  • 定制成本高昂:若为每种小众语言单独采集数据并训练模型,需要昂贵的 GPU 集群和数月的时间,远超公益组织的预算和人力极限。
  • 语音表现僵硬:传统拼接式合成或低质量模型生成的语音机械感强,缺乏情感起伏,难以让当地听众产生共鸣,甚至影响信息传达的准确性。
  • 部署门槛高:现有方案往往依赖复杂的云端 API 或庞大的本地环境配置,在无稳定网络的偏远地区工作站上难以运行。

使用 IMS-Toucan 后

  • 万语即刻可用:利用 IMS-Toucan 支持的 7000 多种语言能力,团队直接调用预训练模型,瞬间覆盖了所有目标方言,无需从零开始收集数据。
  • 轻量高效训练:借助其高效的架构,即便只有少量参考音频,也能在单张消费级显卡上快速微调出高质量语音,将原本数月的周期缩短至几天。
  • 可控自然合成:通过调整韵律和情感参数,生成的语音语调自然、富有感染力,完美还原了讲述者的语气,极大提升了广播内容的可听性。
  • 离线灵活部署:IMS-Toucan 支持本地离线推理,团队轻松将其部署在配置普通的笔记本电脑上,在无网环境下也能持续批量生成音频文件。

IMS-Toucan 以极低的算力成本打破了语言壁垒,让技术真正服务于文化多样性的保护与传承。

运行环境要求

操作系统
  • Linux
  • Windows
  • macOS
GPU
  • 训练需要至少一块支持 CUDA 的 NVIDIA GPU(具体型号和显存未说明,需根据 batchsize 调整以避免 OOM)
  • 推理不需要 GPU
  • 多卡训练需使用 torchrun
内存

未说明

依赖
notes1. Linux 下需预装 libsndfile1, espeak-ng, ffmpeg 等系统库。2. Windows 和 macOS 使用 espeak-ng 时需手动安装并设置 PHONEMIZER_ESPEAK_LIBRARY 环境变量指向对应的 .dll 或 .dylib 文件。3. macOS (M1) 建议通过 MacPorts 安装 espeak-ng。4. 预训练模型会自动下载,也可自定义存储路径。5. 多 GPU 训练时不支持 nohup,建议使用 tmux。
python3.10
torch
phonemizer
espeak-ng (系统级依赖)
libsndfile1
ffmpeg
libasound-dev
libportaudio2
libsqlite3-dev
IMS-Toucan hero image

快速开始

GitHub 仓库星标数 GitHub 仓库下载量 GitHub 发布版本 演示链接


面向7000多种语言的文本转语音

IMS Toucan 是一套用于训练、使用和教学最先进文本转语音合成技术的工具包,由德国斯图加特大学自然语言处理研究所(IMS)开发,也是大规模多语言 ToucanTTS 系统的官方项目所在地。我们的系统速度快、可控性强,且无需大量计算资源。


image


如果您觉得这个仓库很有用,请考虑给它点个赞。⭐ 大数字让我很开心,也能给我很大的动力。如果您想进一步支持我,还可以考虑赞助这个工具包。我们只通过 GitHub Sponsors 接受赞助,其他平台上有很多冒充开发者的人在行骗,请不要上当。代码和模型都是完全免费的,并且得益于 Hugging Face🤗 的慷慨支持,我们甚至提供了一个基于 GPU 运行的模型实例,任何人都可以免费使用。



链接 🦚

交互式演示

请查看我们在 Hugging Face🤗 上提供的大规模多语言交互式演示

数据集

我们还在 Hugging Face🤗 上发布了一个大规模多语言 TTS 数据集

支持的语言

支持的语言列表请见这里



安装 🦉

基本要求

推荐使用 Python 3.10 版本。

要安装此工具包,请将其克隆到您打算使用的机器上(如果计划在该机器上训练模型,至少需要一块支持 CUDA 的 GPU;如果是进行推理,则不需要 GPU)。

如果您使用的是 Linux 系统,应确保已安装以下软件包,或者通过 apt-get 进行安装(大多数发行版默认已预装):

libsndfile1
espeak-ng
ffmpeg
libasound-dev
libportaudio2
libsqlite3-dev

进入您克隆的目录。建议创建并激活一个虚拟环境,以便将基本依赖项安装到其中。以下命令总结了在 Linux 系统下需要执行的所有步骤。如果您使用的是 Windows 系统,则第二行需要修改,请参阅venv 文档

python -m venv <虚拟环境路径>

source <虚拟环境路径>/bin/activate

pip install --no-cache-dir -r requirements.txt

每次重新使用该工具时,都需要运行第二条命令以再次激活虚拟环境,例如在您退出后重新登录时。要在 Linux 机器上利用 GPU,无需额外操作。而在 Windows 机器上,请参考PyTorch 官方网站获取启用 GPU 支持的安装命令。

存储配置

如果您不希望预训练模型、已训练模型以及数据预处理过程中生成的缓存文件存储在默认子文件夹中,可以通过编辑 Utility/storage_config.py 文件来全局设置相应的目录,以满足您的需求(路径可以是相对于仓库根目录的相对路径,也可以是绝对路径)。

预训练模型

您可以不使用预训练模型,但它们能极大地加快流程。借助 Hugging Face🤗 和尤其是 VB,这些模型会在需要时自动在线下载。

[可选] eSpeak-NG

eSpeak-NG 是一项可选依赖项,能够处理许多语言中的特殊情况,因此最好安装它。

在大多数 Linux 环境中,它通常已经预装;如果没有,且您拥有足够的权限,只需运行以下命令即可安装:

apt-get install espeak-ng

对于 Windows,他们在其 GitHub 发布页面上提供了便捷的 .msi 安装程序。在非 Linux 系统上安装完成后,还需要通过设置 PHONEMIZER_ESPEAK_LIBRARY 环境变量来告知 phonemizer 库 espeak 的安装位置,相关内容可在此问题讨论中找到。

对于 Mac 系统,情况则复杂得多。感谢 Sang Hyun Park 提供的 Mac 安装指南:对于 M1 Mac,最方便的安装方法是通过 MacPorts 中的 espeak-ng 软件包。MacPorts 可以从 MacPorts 官网安装,而安装 MacPorts 本身又需要 Apple 的 XCode。在 XCode 和 MacPorts 安装完成后,您可以通过以下命令安装 espeak-ng 软件包:

sudo port install espeak-ng

正如 Windows 安装说明中所述,espeak-ng 的安装路径需要作为变量设置到 phonemizer 库中。该环境变量为 PHONEMIZER_ESPEAK_LIBRARY,具体信息可在上述GitHub 讨论帖中找到。不过,在 Mac 系统上,您需要设置的 espeak-ng 库文件是一个 .dylib 文件,而不是 .dll 文件。要找到 espeak-ng 库文件,可以运行 port contents espeak-ng 命令,您需要查找的特定文件名为 libespeak-ng.dylib



推理 🦢

你可以使用 InferenceInterfaces/ToucanTTSInterface.py 加载你训练好的模型,或者我们提供的预训练模型。只需通过正确的模型目录句柄创建一个对象,即可指定你要使用的模型。其余部分会在后台自动完成。你可能需要使用 set_languageset_speaker_embedding 函数来设置语言嵌入或说话人嵌入。大多数功能都相当直观易懂。

InferenceInterface 包含两个从文本生成音频的方法:read_to_fileread_aloud

  • read_to_file 接受一个字符串列表和一个文件名作为输入。它会将列表中的句子合成语音,在每句之间插入短暂的停顿,然后将结果写入你提供的文件路径。

  • read_aloud 只接受一个字符串,将其转换为语音并立即通过系统的扬声器播放。如果你将可选参数 view 设置为 True, 会弹出一个可视化窗口,你需要关闭该窗口程序才会继续运行。

这两个方法的用法在 run_interactive_demo.pyrun_text_to_file_reader.py 中有演示。

我们提供了一些简单的缩放参数,用于控制持续时间、音高曲线的方差以及能量曲线的方差。你可以在使用交互式演示或阅读器时直接修改代码中的这些参数,也可以在自己的代码中调用接口时直接传递这些参数。

要更改模型的语言并查看我们预训练模型支持的语言,请参阅此处链接的语言列表


创建新的配方(训练流程)🐣

在名为 Utility 的目录中,有一个文件叫做 path_to_transcript_dicts.py。在这个文件中,你需要编写一个函数,返回一个字典,其中键是数据集中每个音频文件的绝对路径(以字符串形式表示),值则是对应音频的文本转录。

接下来,进入 TrainingInterfaces/Recipes 目录。如果你只想在一个数据集上进行微调,可以复制 finetuning_example_simple.py 文件;如果你想在多个数据集上进行微调,甚至可能是多语言的数据集,则复制 finetuning_example_multilingual.py。我们将以此副本作为参考,只做必要的修改以适应新的数据集。找到对 prepare_tts_corpus 函数的调用,将其中使用的 path_to_transcript_dict 替换为你刚刚创建的那个(或那些)。然后将对应的缓存目录名称改为更符合该数据集的名字。

此外,注意变量 save_dir,这是保存检查点的目录。这是一个默认值,你可以在稍后通过命令行参数覆盖它,以便从某个检查点继续微调,并将结果保存到不同的目录中。最后,将数据集创建和训练循环函数调用中的 lang 参数改为与你的数据相匹配的 ISO 639-3 语言代码。

微调示例中传给训练循环的参数适用于从预训练模型开始微调的情况。如果你想从头开始训练,可以查看其他包含 ToucanTTS 名称的流程,并参考其中使用的参数。

完成这些步骤后,我们就差不多准备好了。现在只需要让顶层的 run_training_pipeline.py 文件能够访问这个新配方。在该文件中,从你刚刚创建的流程中导入 run 函数,并为其取一个有意义的名字。然后在 pipeline_dict 中,将你导入的函数作为值添加进去,键则使用一个简明易懂的缩写。


训练模型 🦜

一旦你构建好了一个配方,训练就非常简单了:

python run_training_pipeline.py <流水线的缩写>

你可以提供以下任意参数,但并非必须(不过对于训练来说,至少应该指定一个 GPU ID)。

--gpu_id <你希望使用的 GPU 编号,可通过 nvidia-smi 查看,默认为 CPU。如果提供了多个 GPU 编号(用逗号分隔),则会启用分布式训练,但必须使用 torchrun 启动脚本。>

--resume_checkpoint <要加载的检查点路径>

--resume (如果存在此选项,将自动加载最新的可用检查点)

--finetune (如果存在此选项,将基于该流水线的数据对提供的检查点进行微调)

--model_save_dir <保存检查点的目录路径>

--wandb (如果存在此选项,日志将同步到你的 Weights & Biases 账户,前提是已在命令行登录)

--wandb_resume_id <要恢复的运行的 ID,如果你正在使用 Weights & Biases(可在运行的 URL 中找到该 ID)>

对于多 GPU 训练,你需要提供多个 GPU 编号(用逗号分隔),并使用 torchrun 启动脚本。同时还需要指定 GPU 的数量,这必须与你提供的 GPU 编号数量一致。请注意:torchrun 与 nohup 不兼容!请改用 tmux,以确保你在退出终端后脚本仍能继续运行。

torchrun --standalone --nproc_per_node=4 --nnodes=1 run_training_pipeline.py <流水线的缩写> --gpu_id "0,1,2,3"

每完成一个 epoch(或按照特定的步数),一些日志会被写入控制台和 Weights & Biases 网站(如果你已登录并设置了相应标志)。如果出现 CUDA 内存不足的错误,你需要在当前流水线的 training_loop 调用参数中降低批次大小。尝试逐步减小批次大小,直到不再出现 CUDA 内存不足的错误为止。

在你指定的保存目录中,将会出现检查点文件和频谱图可视化数据。由于检查点文件较大,系统只会保留最近的五个。训练步数高度依赖于你所使用的数据,以及你是从预训练检查点开始微调还是从零开始训练。数据越少,你应该采取的步数就越少,以避免模型过拟合或崩溃。如果你想提前停止训练,可以直接终止进程,因为所有子进程都是守护进程,主进程结束时它们也会自动退出。如果仍有残留的僵尸进程,可以使用以下命令查找并手动杀死它们:

fuser -v /dev/nvidia*

每当保存一个检查点时,还会生成一个可用于推理的压缩版本,文件名为 _best.py


常见问题解答 🐓

以下是用户提出的一些问题:

  • 我如何判断自己的数据是否存在异常值或其他类似问题?——有一个评分器可以检测并移除数据集中损失值异常高的样本,可以查看 run_scorer.py
  • 我的错误信息显示 GPU0,尽管我指定了不同的 GPU —— GPU 选择的工作方式是将指定的 GPU 设置为唯一可见的设备,以避免后端程序意外地在不同 GPU 上运行。因此,在程序内部,该设备会被命名为 GPU0,因为它就是程序唯一能看到的 GPU。实际上,程序是在你指定的 GPU 上运行的。
  • read_to_file 会产生奇怪的输出 —— 请检查你是否向该方法传递的是列表还是字符串。由于字符串是可以被迭代的,可能不会抛出错误,但该方法期望的是字符串列表。
  • UserWarning: 在 optimizer.step() 之前检测到 lr_scheduler.step() 的调用。 —— 我们使用了一个自定义的学习率调度器,而 PyTorch 错误地认为我们调用了调度器和优化器的顺序不对。请忽略这个警告,它完全没有意义。
  • WARNING[XFORMERS]: xFormers 无法加载 C++/CUDA 扩展。[...] —— 这又是一个无意义的警告。我们实际上并没有使用 xFormers,它只是我们某个依赖项的依赖之一,但在任何地方都没有被使用。
  • torchaudio 后端已切换到 'soundfile'。请注意,'sox_io' 在 Windows 上不受支持。[...] —— 这只会在 Windows 系统下出现,并不会对系统产生任何影响。
  • WARNING:phonemizer:200.0% 的行存在词数不匹配(2/1)[...] —— 我们不清楚 espeak 为何会发出这个警告,不过它似乎并不会影响任何功能,因此可以安全地忽略。
  • 损失变为 NaN —— 默认的学习率适用于干净的数据。如果你的数据不够干净,可以尝试使用评分器来查找有问题的样本,或者降低学习率。最常见的问题是语音中存在停顿,但文本中却没有相应的提示。这就是为什么通常会省略标点符号的 ASR 语料库很难用于 TTS 的原因。


致谢 🦆

FastSpeech 2 和 GST 的基础 PyTorch 模块来自 ESPnet,HiFi-GAN 的 PyTorch 模块则来自 ParallelWaveGAN 仓库。与 MatchaTTS 中描述的基于 Conditional Flow Matching 的 PostNet 相关的一些模块取自 MatchaTTS 官方代码库,另一些则来自 StableTTS 代码库。对于字素到音素的转换,我们依赖于前面提到的 eSpeak-NG 以及 transphone。我们使用 encodec,一种神经音频编解码器,作为训练数据缓存的中间表示形式,以节省存储空间。

引用 🐧

Star History Chart

工具包介绍 [相关代码和模型]

@inproceedings{lux2021toucan,
  year         = 2021,
  title        = {{The IMS Toucan system for the Blizzard Challenge 2021}},
  author       = {Florian Lux and Julia Koch and Antje Schweitzer and Ngoc Thang Vu},
  booktitle    = {Blizzard Challenge Workshop},
  publisher    = {ISCA Speech Synthesis SIG}
}

添加发音特征和元学习预训练 [相关代码和模型]

@inproceedings{lux2022laml,
  year         = 2022,
  title        = {{Language-Agnostic Meta-Learning for Low-Resource Text-to-Speech with Articulatory Features}},
  author       = {Florian Lux and Ngoc Thang Vu},
  booktitle    = {ACL}
}

添加精确的韵律克隆能力 [相关代码和模型]

@inproceedings{lux2022cloning,
  year         = 2022,
  title        = {{Exact Prosody Cloning in Zero-Shot Multispeaker Text-to-Speech}},
  author       = {Lux, Florian and Koch, Julia and Vu, Ngoc Thang},
  booktitle    = {SLT},
  publisher    = {IEEE}
}

添加语言嵌入和词边界 [相关代码和模型]

@inproceedings{lux2022lrms,
  year         = 2022,
  title        = {{Low-Resource Multilingual and Zero-Shot Multispeaker TTS}},
  author       = {Florian Lux and Julia Koch and Ngoc Thang Vu},
  booktitle    = {AACL}
}

添加可控制的说话人嵌入生成 [相关代码和模型]

@inproceedings{lux2023controllable,
  year         = 2023,
  title        = {{Low-Resource Multilingual and Zero-Shot Multispeaker TTS}},
  author       = {Florian Lux and Pascal Tilli and Sarina Meyer and Ngoc Thang Vu},
  booktitle    = {Interspeech},
  publisher    = {ISCA}
}

我们对 2023 年 Blizzard Challenge 的贡献 [相关代码和模型]

@inproceedings{lux2023blizzard,
  year         = 2023,
  title        = {{The IMS Toucan System for the Blizzard Challenge 2023}},
  author       = {Florian Lux and Julia Koch and Sarina Meyer and Thomas Bott and Nadja Schauffler and Pavel Denisov and Antje Schweitzer and Ngoc Thang Vu},
  booktitle    = {Blizzard Challenge Workshop},
  publisher    = {ISCA Speech Synthesis SIG}
}

推出首个支持 7000 多种语言的 TTS 系统 [相关代码和模型]

@inproceedings{lux2024massive,
  year         = 2024,
  title        = {{Meta Learning Text-to-Speech Synthesis in over 7000 Languages}},
  author       = {Florian Lux and Sarina Meyer and Lyonel Behringer and Frank Zalkow and Phat Do and Matt Coler and Emanuël A. P. Habets and Ngoc Thang Vu},
  booktitle    = {Interspeech},
  publisher    = {ISCA}
}

将基于文本的上下文提示引入 NAR TTS [相关代码和模型]

@inproceedings{bott2024prompting,
  year         = 2024,
  title        = {{利用自然语言提示控制文本到语音中的情感}},
  author       = {托马斯·博特、弗洛里安·卢克斯、武玉堂},
  booktitle    = {Interspeech},
  publisher    = {ISCA}
}

探究随机韵律建模 [相关代码和模型]

@inproceedings{mayer2025stochastic,
  year         = 2025,
  title        = {{探究语音合成中用于韵律建模的随机方法}},
  author       = {保罗·迈耶、弗洛里安·卢克斯、亚历杭德罗·佩雷斯-冈萨雷斯-德-马尔托斯、安吉丽娜·埃利扎罗娃、林赛·范德林、迪尔克·瓦特、武玉堂},
  booktitle    = {Interspeech},
  publisher    = {ISCA}
}

版本历史

v3.1.22024/10/07
v3.1.12024/09/22
v3.12024/07/25
v3.02024/06/10
2.p2024/06/10
v2.asvspoof2023/12/01
v2.52023/04/10
v2.b2023/04/04
v2.42023/02/22
v2.32022/10/25
v2.22022/05/20
v2.12022/03/01
v1.12022/02/28
v1.02022/01/14

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|昨天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

142.7k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|昨天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|今天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|昨天
语言模型图像Agent