ComfyUI 集成混元DIT(comfyui-hydit)

news2024/11/24 20:42:29

最近腾讯官方推出了ComfyUI插件comfyui-hydit 。是一个专门为腾讯的 Hunyuan-DiT 模型设计的自定义节点和工作流。本文主要介绍如何通过ComfyUI来运行腾讯新出的支持中文提示词的混元文生图大模型Hunyuan-DiT

环境准备

插件

从腾讯混元DIT 源码库获取插件源码:
https://github.com/Tencent/HunyuanDiT.git
从该仓库中获取 :comfyui-hydit

模型

所有模型下载后保存在需要挂载的路径下。

所有模型下载后保存在需要挂载的路径下:/u01/workspace/models/hunyuan

克隆HunyuanDiT模型

有多个模型可选择,我们这里采用了第三个模型:
Tencent-Hunyuan/HunyuanDiT 基础模型
Tencent-Hunyuan/HunyuanDiT-Diffusers 加入Diffusers格式
Tencent-Hunyuan/Distillation 加速版

git clone https://huggingface.co/Tencent-Hunyuan/HunyuanDiT
git clone https://huggingface.co/Tencent-Hunyuan/Distillation

如果想要加速版,以上两个地址的文件都要下载
注意下载完Distillation 模型后,需要拷贝模型pytorch_model_distill.pt到: HunyuanDiT/t2i/model/目录下

下载OpenAI视觉模型

git clone https://hf-mirror.com/openai/clip-vit-large-patch14-336
:::danger
保存位置:/u01/workspace/models/clip-vit-large-patch14-336
源码修改方式请参照混元模型的部署过程。
:::

容器化部署ComfyUI

复制comfyui-hydit插件目录到ComfyUI custom_nodes目录:

├── AIGODLIKE-ComfyUI-Translation
├── comfyui_controlnet_aux
├── ComfyUI_Custom_Nodes_AlekPet
├── ComfyUI-Custom-Scripts
├── comfyui-hydit
├── ComfyUI-Manager
├── ComfyUI_TiledKSampler
├── ComfyUI_UltimateSDUpscale
├── Derfuu_ComfyUI_ModdedNodes
├── efficiency-nodes-comfyui
├── example_node.py.example
├── __pycache__
├── sdxl_prompt_styler
└── websocket_image_save.py

准备Dockerfile文件

准备Dockerfile可以安装预装插件和不预装两种不同的方式,如果不预装插件,可以把插件挂载到宿主机上等启动之在安装插件,本文采用的是预装的方式准备的Dockerfile

FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
ENV LANG=zh_CN.UTF-8
WORKDIR /app

RUN apt-get update 
RUN apt-get install -y libgl1-mesa-glx libglib2.0-0 libsm6 libxrender1 libxext6 git
RUN rm -rf /var/lib/apt/lists/*
ENV GIT_PYTHON_REFRESH=quiet 

RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com

COPY ComfyUI/ /app/ComfyUI/
WORKDIR /app/ComfyUI

RUN pip install --use-pep517 -r requirements.txt
RUN pip install -r  custom_nodes/comfyui_controlnet_aux/requirements.txt
RUN pip install -r  custom_nodes/ComfyUI-Manager/requirements.txt
RUN pip install -r  custom_nodes/ComfyUI_Custom_Nodes_AlekPet/ArgosTranslateNode/requirements.txt
RUN pip install -r  custom_nodes/ComfyUI_Custom_Nodes_AlekPet/DeepTranslatorNode/requirements.txt
RUN pip install -r  custom_nodes/ComfyUI_Custom_Nodes_AlekPet/GoogleTranslateNode/requirements.txt
RUN pip install -r  custom_nodes/efficiency-nodes-comfyui/requirements.txt
RUN pip install -r  custom_nodes/comfyui-hydit/requirements.txt

EXPOSE 8188
CMD [ "python","main.py ","--port 8188"]

custom_nodes/comfyui-hydit/requirements.txt 修改:

#--extra-index-url https://pypi.ngc.nvidia.com
#--extra-index-url https://download.pytorch.org/whl/cu117
timm
diffusers
peft
protobuf
accelerate
loguru
sentencepiece
cuda-python
polygraphy
pandas
omegaconf
# torch>=2.3.0
# torchvision>=0.18.0
# torchaudio>=2.3.0
xformers>=0.0.26.post1
pytorch_lightning

执行构建

docker buile -t qingcloudtech/comfyui:v1.1 .

启动容器

docker run -it --gpus all \
-p 8188:8188 \
-v /u01/workspace/models/stablediffusion:/app/ComfyUI/models \
-v /u01/workspace/comfyui/output/:/app/ComfyUI/output \
- /u01/workspace/ComfyUI/extra_model_paths.yaml:/app/ComfyUI/extra_model_paths.yaml
qingcloudtech/comfyui:v1.5 python main.py

启动容器(docker-compose方式)

准备配置文件
version: '3.8'
services:
  comfyui:
    image: qingcloudtech/comfyui:v1.1
    container_name: comfyui
    command: python /app/ComfyUI/main.py
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    volumes:
      - /u01/workspace/models/stablediffusion/:/app/ComfyUI/models/
      - /u01/workspace/comfyui/output/:/app/ComfyUI/output
      - /u01/workspace/ComfyUI/extra_model_paths.yaml:/app/ComfyUI/extra_model_paths.yaml
    network_mode: host
执行启动命令:
docker-compose up -d

浏览器访问:

演示访问:

1、浏览器访问:127.0.0.1:8188
2、从web界面中加载如下测试json:

{
  "last_node_id": 21,
  "last_link_id": 6,
  "nodes": [
    {
      "id": 19,
      "type": "DiffusersClipTextEncode",
      "pos": [
        74,
        277
      ],
      "size": {
        "0": 400,
        "1": 200
      },
      "flags": {},
      "order": 0,
      "mode": 0,
      "outputs": [
        {
          "name": "positive",
          "type": "STRINGC",
          "links": [
            5
          ],
          "shape": 3,
          "label": "positive"
        },
        {
          "name": "negative",
          "type": "STRINGC",
          "links": [
            6
          ],
          "shape": 3,
          "label": "negative"
        }
      ],
      "properties": {
        "Node name for S&R": "DiffusersClipTextEncode"
      },
      "widgets_values": [
        "castle,landscape,1girl,loli,silver hair,school_uniform,crystal_earrings,kind_smile,arm_support,in summer,mini_witch_hat,frilled,strappy_heels,book,\n",
        "错误的眼睛,糟糕的人脸,毁容,糟糕的艺术,变形,多余的肢体,模糊的颜色,模糊,重复,病态,残缺,"
      ]
    },
    {
      "id": 16,
      "type": "DiffusersModelMakeup",
      "pos": [
        526,
        393
      ],
      "size": {
        "0": 304.79998779296875,
        "1": 46
      },
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "pipeline",
          "type": "PIPELINE",
          "link": 2,
          "label": "pipeline"
        },
        {
          "name": "scheduler",
          "type": "SCHEDULER",
          "link": 3,
          "label": "scheduler"
        }
      ],
      "outputs": [
        {
          "name": "MAKED_PIPELINE",
          "type": "MAKED_PIPELINE",
          "links": [
            4
          ],
          "shape": 3,
          "label": "MAKED_PIPELINE"
        }
      ],
      "properties": {
        "Node name for S&R": "DiffusersModelMakeup"
      }
    },
    {
      "id": 18,
      "type": "DiffusersSampler",
      "pos": [
        842,
        132
      ],
      "size": [
        315,
        454
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "maked_pipeline",
          "type": "MAKED_PIPELINE",
          "link": 4,
          "label": "maked_pipeline"
        },
        {
          "name": "positive",
          "type": "STRINGC",
          "link": 5,
          "label": "positive"
        },
        {
          "name": "negative",
          "type": "STRINGC",
          "link": 6,
          "label": "negative"
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            1
          ],
          "shape": 3,
          "label": "IMAGE"
        }
      ],
      "properties": {
        "Node name for S&R": "DiffusersSampler"
      },
      "widgets_values": [
        1,
        1024,
        1024,
        30,
        6,
        2705109163,
        "randomize"
      ]
    },
    {
      "id": 6,
      "type": "PreviewImage",
      "pos": [
        1186,
        181
      ],
      "size": [
        210,
        246
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 1,
          "label": "图像"
        }
      ],
      "title": "Preview Image",
      "properties": {
        "Node name for S&R": "PreviewImage"
      }
    },
    {
      "id": 21,
      "type": "DiffusersPipelineLoader",
      "pos": [
        81,
        544
      ],
      "size": {
        "0": 315,
        "1": 190
      },
      "flags": {},
      "order": 1,
      "mode": 0,
      "outputs": [
        {
          "name": "PIPELINE",
          "type": "PIPELINE",
          "links": [
            2
          ],
          "shape": 3,
          "label": "PIPELINE"
        },
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": null,
          "shape": 3,
          "label": "MODEL"
        },
        {
          "name": "CLIP",
          "type": "CLIP",
          "links": null,
          "shape": 3,
          "label": "CLIP"
        },
        {
          "name": "VAE",
          "type": "VAE",
          "links": null,
          "shape": 3,
          "label": "VAE"
        }
      ],
      "properties": {
        "Node name for S&R": "DiffusersPipelineLoader"
      },
      "widgets_values": [
        "ckpts",
        "pytorch_model_distill.pt",
        "disable",
        "diffusers"
      ]
    },
    {
      "id": 15,
      "type": "DiffusersSchedulerLoader",
      "pos": [
        73,
        129
      ],
      "size": {
        "0": 315,
        "1": 58
      },
      "flags": {},
      "order": 2,
      "mode": 0,
      "outputs": [
        {
          "name": "SCHEDULER",
          "type": "SCHEDULER",
          "links": [
            3
          ],
          "shape": 3,
          "label": "SCHEDULER"
        }
      ],
      "properties": {
        "Node name for S&R": "DiffusersSchedulerLoader"
      },
      "widgets_values": [
        "ddim"
      ]
    }
  ],
  "links": [
    [
      1,
      18,
      0,
      6,
      0,
      "IMAGE"
    ],
    [
      2,
      21,
      0,
      16,
      0,
      "PIPELINE"
    ],
    [
      3,
      15,
      0,
      16,
      1,
      "SCHEDULER"
    ],
    [
      4,
      16,
      0,
      18,
      0,
      "MAKED_PIPELINE"
    ],
    [
      5,
      19,
      0,
      18,
      1,
      "STRINGC"
    ],
    [
      6,
      19,
      1,
      18,
      2,
      "STRINGC"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "ds": {
      "scale": 0.9090909090909098,
      "offset": {
        "0": 163.4918776991919,
        "1": 16.755363890844446
      }
    }
  },
  "version": 0.4
}

3、查看结果:
image.png


【Qinghub Studio 】更适合开发人员的低代码开源开发平台
QingHub企业级应用统一部署
QingHub企业级应用开发管理
QingHub演示
https://qingplus.cn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1821343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深圳某老牌地产公司曝3小时裁所有员工

大家好! 我是老洪,今日,我偶然间瞥见一则新闻,心头一震,惊讶之情难以言表。 据多家权威媒体纷纷报道,近日,深圳一家历史悠久的地产巨头,竟然在短短三小时内,果断地挥别了…

算法课程笔记——线段树维护哈希

算法课程笔记——线段树维护哈希 提前空出来

苹果AI时代:Apple Intelligence能否守护隐私与未来?

最近,苹果展示了其人工智能底牌,推出了Apple Intelligence(重新定义AI),这是一套基础模型,将极大地改变苹果消费者使用其产品的方式。 虽然仍需在实际中证明自己,但它是一个强有力的演示,至少从普通用户的…

防火墙对于企业究竟起到哪些作用?

在当今数字化时代,企业网络安全已成为关乎企业生存与发展的战略要务。防火墙作为网络安全的基石,对于构建企业网络的安全防护体系至关重要。本文将深入剖析防火墙在企业网络安全中的多重价值,并结合具体案例,探讨如何科学运用防火…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第40课-实时订阅后端数据

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第40课-实时订阅后端数据 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引…

pdf格式转成jpg图片,pdf格式如何转jpg

pdf转图片的方法,对于许多人来说可能是一个稍显陌生的操作。然而,在日常生活和工作中,我们有时确实需要将pdf文件转换为图片格式,以便于在特定的场合或平台上进行分享、展示或编辑。以下,我们将详细介绍一个pdf转成图片…

从零开始手把手Vue3+TypeScript+ElementPlus管理后台项目实战系列教程前言总结

本系列教程的初衷 目前Github和技术社区中有不少功能强大,界面美观的Vue3ElementPlus通用后台管理系统,但这些系统对初学者都不太友好,导致大家学习路径比较陡峭。于是自己写了这个系列,手把手从头开发一个通用后台管理系统的雏形…

Unity 踩坑记录 用自定义类 创建的List不显示在 inspector面板

在 自定义类上面添加 【Serializable 】 扩展: 1:Serializable 序列化的是可序列化的类或结构。并且只能序列化非抽象非泛型的自定义的类 2:SerializeField是强制对私有字段序列化

内网穿透方法有哪些?路由器端口映射外网和软件方案步骤

公网IP和私有IP不能互相通讯。我们通常在局域网内部署服务器和应用,当需要将本地服务提供到互联网外网连接访问时,由于本地服务器本身并无公网IP,就无法实现。这时候就需要内网穿透技术,即内网映射,内网IP端口映射到外…

【StableDiffusion】Prompts 提示词语法;高阶用法;写作顺序是什么,先写什么后写什么

Prompt 写作顺序 第一步:画质词画风词 第一步先写“画质词”和“画风词” 画质词如下: 画风词如下: 第二步:画面主体描述 人物性别、年龄、发型、发色、情绪表情、衣服款式、衣服颜色、动作、饰品、身材、五官微调 第三步&…

探索Gitcode上的热门开源项目:ChatTTS

随着开源程序的发展,越来越多的程序员开始关注并加入开源大模型的行列。开源行业和开源项目对于每个人来说都有不同的关注点,今天,我将向大家推荐一个热门的开源项目——ChatTTS。 ChatTTS是一个基于深度学习技术的开源语音合成项目。它可以将…

你是否还为不理解nextLine()、next()的程序逻辑而苦恼?

如果你在使用nextLine()或者next()无法正确输入字符串, 或者输入了,但是没有显示字符串,那么很好你找对文章了! 看了这篇文章你讲直到这两个方法的运行逻辑,并知道自己的问题出在了哪里。 目…

【Python机器学习系列】建立KMeans模型实现航空客户聚类分群(案例+源码)

这是我的第301篇原创文章。 一、引言 在企业的客户关系管理中,对客户分类,区分不同价值的客户。针对不同价值的客户提供个性化服务方案,采取不同营销策略,将有限营销资源集中于高价值客户,实现企业利润最大化目标。广泛…

Covalent 承诺向 Consensys Builders Scale 提供 250 万美元资助

作为 Web3.0 领域主要的模块化数据基础设施层 Covalent Network(CQT)承诺向「Consensys Builders Scale 计划」提供 250 万美元的资助, 用于助力 Consensys 生态的发展。这一重大举措体现了 Covalent Network(CQT)的使…

ETL可视化工具 DataX -- 简介( 一)

引言 DataX 系列文章: ETL可视化工具 DataX – 安装部署 ( 二) 1.1 DataX 1.1.1 Data X概览 DataX 是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServ…

基于深度学习视觉算法的多模型文件融合检测系统设计与实现及优化(工人姿态检测+安全帽佩戴检测系统)

1,融合pose.pt(姿态检测)(安全帽佩戴检测)效果图 实时检测优化后FPS可达20 2,原理介绍 YOLOv5是目前应用广泛的目标检测算法之一,其主要结构分为两个部分:骨干网络和检测头。 输入(Input): YOLOv5的输入是一张RGB图像…

2024全站焕新,重塑3D轻量体验!

3D模型当前应用广泛,正以惊人的速度实现数据增长,轻量化需求随之增多。老子云团队一直在探索如何借助自研轻量化技术的能力,打破用户模型处理思维惯性,构建更高效、实用、简单的体验范式,来帮助用户解决3D素材数据处理…

12月5-7日西安氢能源及燃料电池产业博览会

展会概况: 作为战略性新兴产业,发展氢能已经成为全国各地布局未来产业的重要方向。2023年以来,在政策与市场的双重驱动下,氢能的应用领域正在不断拓展和创新,当前我国氢能源迎来发展热潮,预计到 2025 年国…

如何提高pcdn的效率?

要提高PCDN的效率,可以考虑以下几个方面的操作: 1、优化网络类型:确保使用的是全锥型或公网型网络,避免使用受限的网络类型。如果网络类型受限,可以尝试调整路由器设置或联系网络提供商进行升级。 2、合理配置设备硬…

机器学习python实践——关于ward聚类分层算法的一些个人心得

最近在利用python跟着参考书进行机器学习相关实践,相关案例用到了ward算法,但是我理论部分用的是周志华老师的《西瓜书》,书上没有写关于ward的相关介绍,所以自己网上查了一堆资料,都很难说清楚ward算法,幸…