Skip to content

Latest commit

 

History

History
131 lines (112 loc) · 8.82 KB

README.md

File metadata and controls

131 lines (112 loc) · 8.82 KB

ComfyChat

Rough LLM Interpreter of ComfyUI

简介

  本项目依托书生·浦语大模型实战营活动,以期基于LLMs能力,针对ComfyUI构建一个粗糙但相对完善的解释器;帮助对ComfyUI、Stable Diffusion感兴趣的朋友快速上手是本项目的宗旨。非常感谢上海人工智能实验室提供此次机会,同时也非常感谢本项目涉及到的开源项目和个人!!!

  因兴趣原因,使用过各类Stable Diffusion模型的GUI项目,如stable diffusion webuiFooocusComfyUI等,ComfyUI节点式的工作方式、活跃的开源社区为其开发的各类功能强大的自定义节点和工作流,均赋予了ComfyUI强大能力,但同时也使其学习成本较高,本项目通过收集社区各中数据构建数据集,使用LLM技术,构建一个降低ComfyUI学习成本的工具。

架构图

enter image description here

部署

  本项目服务主体代码在server路径下,demo.py是服务入口,运行起来不太复杂,可按以下步骤操作:

  1. 推荐使用conda或miniconda新建一个python310的虚拟环境并激活,即'conda create -n ComfyChat python=3.10'、'conda activate ComfyChat'
  2. requirements.txt中已指定主要依赖库和版本,在ComfyChat中安装即可。不推荐直接使用'pip install -r requirements.txt'安装,因为依赖库较多,一个库安装失败会导致所有库安装失败。requirements.txt中各库版本是项目开发环境中使用版本,应该不会出现版本冲突,但不保证。
  3. 拉取本项目代码:git clone --recurse-submodules https://github.com/ZZfive/ComfyChat.git
  4. 为方便模型管理,服务依赖模型可统一存放在weights路径下,其中主要存放Whisperx和GPT-SoVITS依赖模型,LLM和Embedding的模型也能存放在此路径下,只需在config.ini正确配置即可。Whisperx依赖模型在demo.py运行时会自动下载至weights中,GPT-SoVITS依赖模型则需手动下载。先在weights路径下创建GPT-SoVITS,将相关模型存放在weights/GPT-SoVITS中;此路径结构图如下所示,其中weights/GPT_SoVITS/pretrained_models路径下存放的是GPT-SoVITS项目提供的预训练模型,可在该项目中找到下载地址;而剩下的人物角色模型是开源社区贡献,可在此处下载 enter image description here
  5. 若想开启comfyui,需要先准备一些必要模型,如Stable-diffusion、Lora、VAE、embeddings和controlnet等,可以将此类模型都存放在weights路径下,然后修改visual_genrations/comfyui/extra_model_paths.yaml.example文件。先将文件名中的.example删掉,改为extra_model_paths.yaml,然后再按以下截图中设置模型路径。模型准备好后,将config.ini中comfyui配置中的enable设置为1 enter image description here
  6. 执行完上述操作后,正确设置config.ini,'python demo.py'就能成功运行服务

模型地址

项目发展方向

  • 已进行
    • 微调:对InternLM2、LLaMA3等LLMs模型微调
    • RAG:构建ComfyUI知识库,基于RAG开源框架,改善LLMs回答准确性
    • 多模态接入:将ASR、TTS、生图等功能集成
  • 待开展
    • 工作流训练:ComfyUI工作流本质是表征各个节点相连接的json文档,可能类似于code,尝试通过训练测试LLMs能否理解、构建工作流

数据

数据源

工作内容

数据构建

  • 数据收集

    • comfyui说明数据爬取
      • 社区说明文档信息收集
      • comfyui manager中的节点列表信息收集
      • 网络上关于comfyui的信息收集--ing
      • 部署一个视频、音频转文本模型,收集相关文本--whisperx
    • comfyui工作流及对应文本说明数据爬取
      • 待开展
    • 去重?
    • 安全过滤?
  • 数据集构建

    • 指令微调所需的对话数据构建:已构建v1、v2数据,详细数据跳转至此处

训练

  • LLaMA3微调
  • InternLM2.5-7b微调
  • InternLM2-7b微调
  • InternLM2-1.8b微调

服务部署

  • 基于微调后LLMs的对话服务部署
  • RAG服务搭建
  • 服务接入TTS
  • 服务接入生图

工作进度

  • 优化数据集
    • 搜集一些文档或从视频从提取数据进行构建
    • 基于comfyui-manager更新自定义节点类数据,与社区数据数据混合构建v2_2数据集
  • 对外界面构建
  • 搭建RAG系统--基于茴香豆
    • 系统搭建
    • 构建的数据转为向量存储
  • 基于v2数据集训练模型
    • 已对四个社区集中提供节点文本的项目进行数据构建
  • 基于数据集v1,微调InternLM2-chat-1.8b和InternLM2-chat-7b,模型分别为zzfive/ComfyChat-InternLM2-1-8b-v1zzfive/ComfyChat-InternLM2-7b-v1
  • 基于收集的自定义节点项目中的文档,使用deepseek、kimi等LLMs构建了中英文微调数据集,和Aplaca-GPT4数据集混合构建了数据集v1
  • 已收集一批ComfyUI及自定义节点项目文档readme和说明文本

致谢

特别感谢以下团队、项目或人员