ComfyUI预处理器ControlNet简单介绍与使用(附件工作流)

简介

ControlNet 是一个很强的插件,提供了很多种图片的控制方式,有的可以控制画面的结构,有的可以控制人物的姿势,还有的可以控制图片的画风,这对于提高AI绘画的质量特别有用。接下来就演示几种热门常用的控制方式

1.OpenPose(姿态控制预处理器)

姿态控制预处理器可以根据提供的图像将人物的骨骼脸部手部的姿态展示处理,通过这个预处理器可以很好的控制出图人物的姿态

2.Depth(深度预处理器)

深度预处理器可以将图片的空间的远近以黑白的形式展示出来,白近黑远,当我们上传一张图片通过OpenPose识别到手的位置,但骨骼图并不能描述手在身前还是身后的时候,那个深度预处理器就可以提现出作用了,当然还可以运用在一些建筑、室内等情况

3.LineArt(线条预处理器)

线条预处理器可以将图片用线条的形式描绘出来,可以很好的控制图片的细节

4.HED Soft-Edge(模糊线条预处理器)

模糊线条预处理器与线条预处理器类型也是用线条描绘图片,但仅大概描绘轮廓,更利于出图的随机性

接下来演示一下这四个预处理器效果,不同的预处理器之间是可以搭配使用的,根据不同的需求选择不用的预处理器来解决问题

请添加图片描述

附件工作流

复制Json内容到ComfyUI中即可

{
  "last_node_id": 46,
  "last_link_id": 65,
  "nodes": [
    {
      "id": 31,
      "type": "PreviewImage",
      "pos": [
        1110,
        -1000
      ],
      "size": {
        "0": 210,
        "1": 310
      },
      "flags": {},
      "order": 15,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 31,
          "label": "图像"
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewImage"
      }
    },
    {
      "id": 29,
      "type": "PreviewImage",
      "pos": [
        760,
        -1000
      ],
      "size": {
        "0": 210,
        "1": 310
      },
      "flags": {},
      "order": 14,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 30,
          "label": "图像",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewImage"
      }
    },
    {
      "id": 34,
      "type": "HEDPreprocessor",
      "pos": [
        1050,
        -500
      ],
      "size": {
        "0": 315,
        "1": 82
      },
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 34,
          "label": "图像"
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            31,
            54
          ],
          "shape": 3,
          "label": "图像",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "HEDPreprocessor"
      },
      "widgets_values": [
        "enable",
        512
      ]
    },
    {
      "id": 32,
      "type": "ControlNetLoader",
      "pos": [
        1060,
        -640
      ],
      "size": {
        "0": 315,
        "1": 58
      },
      "flags": {},
      "order": 0,
      "mode": 0,
      "outputs": [
        {
          "name": "CONTROL_NET",
          "type": "CONTROL_NET",
          "links": [
            53
          ],
          "shape": 3,
          "label": "ControlNet",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "ControlNetLoader"
      },
      "widgets_values": [
        "control_v11p_sd15_softedge.pth"
      ]
    },
    {
      "id": 25,
      "type": "PreviewImage",
      "pos": [
        420,
        -1000
      ],
      "size": {
        "0": 210,
        "1": 310
      },
      "flags": {},
      "order": 13,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 29,
          "label": "图像"
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewImage"
      }
    },
    {
      "id": 12,
      "type": "ControlNetLoader",
      "pos": [
        30,
        -640
      ],
      "size": {
        "0": 320,
        "1": 60
      },
      "flags": {},
      "order": 1,
      "mode": 0,
      "outputs": [
        {
          "name": "CONTROL_NET",
          "type": "CONTROL_NET",
          "links": [
            47
          ],
          "slot_index": 0,
          "label": "ControlNet"
        }
      ],
      "properties": {
        "Node name for S&R": "ControlNetLoader"
      },
      "widgets_values": [
        "control_v11p_sd15_openpose.pth"
      ]
    },
    {
      "id": 16,
      "type": "OpenposePreprocessor",
      "pos": [
        30,
        -540
      ],
      "size": {
        "0": 315,
        "1": 150
      },
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 22,
          "label": "图像"
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            24,
            48
          ],
          "shape": 3,
          "label": "图像",
          "slot_index": 0
        },
        {
          "name": "POSE_KEYPOINT",
          "type": "POSE_KEYPOINT",
          "links": null,
          "shape": 3,
          "label": "姿态关键点"
        }
      ],
      "properties": {
        "Node name for S&R": "OpenposePreprocessor"
      },
      "widgets_values": [
        "enable",
        "enable",
        "enable",
        512
      ]
    },
    {
      "id": 23,
      "type": "ControlNetLoader",
      "pos": [
        380,
        -640
      ],
      "size": {
        "0": 315,
        "1": 58
      },
      "flags": {},
      "order": 2,
      "mode": 0,
      "outputs": [
        {
          "name": "CONTROL_NET",
          "type": "CONTROL_NET",
          "links": [
            49
          ],
          "shape": 3,
          "label": "ControlNet",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "ControlNetLoader"
      },
      "widgets_values": [
        "control_v11f1p_sd15_depth.pth"
      ]
    },
    {
      "id": 21,
      "type": "Zoe_DepthAnythingPreprocessor",
      "pos": [
        370,
        -500
      ],
      "size": {
        "0": 315,
        "1": 82
      },
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 32,
          "label": "图像",
          "slot_index": 0
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            29,
            50
          ],
          "shape": 3,
          "label": "图像",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "Zoe_DepthAnythingPreprocessor"
      },
      "widgets_values": [
        "indoor",
        512
      ]
    },
    {
      "id": 30,
      "type": "ControlNetLoader",
      "pos": [
        710,
        -640
      ],
      "size": {
        "0": 315,
        "1": 58
      },
      "flags": {},
      "order": 3,
      "mode": 0,
      "outputs": [
        {
          "name": "CONTROL_NET",
          "type": "CONTROL_NET",
          "links": [
            51
          ],
          "shape": 3,
          "label": "ControlNet",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "ControlNetLoader"
      },
      "widgets_values": [
        "control_v11p_sd15_lineart.pth"
      ]
    },
    {
      "id": 33,
      "type": "LineArtPreprocessor",
      "pos": [
        710,
        -500
      ],
      "size": {
        "0": 315,
        "1": 82
      },
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 33,
          "label": "图像"
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            30,
            52
          ],
          "shape": 3,
          "label": "图像",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "LineArtPreprocessor"
      },
      "widgets_values": [
        "disable",
        512
      ]
    },
    {
      "id": 35,
      "type": "Efficient Loader",
      "pos": [
        2130,
        690
      ],
      "size": {
        "0": 400,
        "1": 462
      },
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "label": "LoRA堆"
        },
        {
          "name": "cnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": 55,
          "label": "ControlNet堆",
          "slot_index": 1
        }
      ],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": null,
          "shape": 3,
          "label": "模型"
        },
        {
          "name": "CONDITIONING+",
          "type": "CONDITIONING",
          "links": null,
          "shape": 3,
          "label": "正面条件"
        },
        {
          "name": "CONDITIONING-",
          "type": "CONDITIONING",
          "links": null,
          "shape": 3,
          "label": "负面条件"
        },
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": null,
          "shape": 3,
          "label": "Latent"
        },
        {
          "name": "VAE",
          "type": "VAE",
          "links": null,
          "shape": 3,
          "label": "VAE"
        },
        {
          "name": "CLIP",
          "type": "CLIP",
          "links": null,
          "shape": 3,
          "label": "CLIP"
        },
        {
          "name": "DEPENDENCIES",
          "type": "DEPENDENCIES",
          "links": null,
          "shape": 3,
          "label": "依赖"
        }
      ],
      "properties": {
        "Node name for S&R": "Efficient Loader"
      },
      "widgets_values": [
        "AWPainting_v1.3.safetensors",
        "Baked VAE",
        -1,
        "None",
        1,
        1,
        "CLIP_POSITIVE",
        "CLIP_NEGATIVE",
        "none",
        "comfy",
        512,
        512,
        1
      ],
      "color": "#2a363b",
      "bgcolor": "#3f5159",
      "shape": 1
    },
    {
      "id": 41,
      "type": "Control Net Stacker",
      "pos": [
        1720,
        650
      ],
      "size": {
        "0": 315,
        "1": 146
      },
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "control_net",
          "type": "CONTROL_NET",
          "link": null,
          "label": "ControlNet"
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": null,
          "label": "图像"
        },
        {
          "name": "cnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "label": "ControlNet堆"
        }
      ],
      "outputs": [
        {
          "name": "CNET_STACK",
          "type": "CONTROL_NET_STACK",
          "links": [
            55
          ],
          "shape": 3,
          "label": "ControlNet堆"
        }
      ],
      "properties": {
        "Node name for S&R": "Control Net Stacker"
      },
      "widgets_values": [
        1,
        0,
        1
      ],
      "color": "#223322",
      "bgcolor": "#335533",
      "shape": 1
    },
    {
      "id": 17,
      "type": "PreviewImage",
      "pos": [
        70,
        -1000
      ],
      "size": {
        "0": 210,
        "1": 310
      },
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 24,
          "label": "图像"
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewImage"
      }
    },
    {
      "id": 37,
      "type": "Control Net Stacker",
      "pos": [
        30,
        -340
      ],
      "size": {
        "0": 315,
        "1": 146
      },
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "control_net",
          "type": "CONTROL_NET",
          "link": 47,
          "label": "ControlNet"
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 48,
          "label": "图像"
        },
        {
          "name": "cnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "label": "ControlNet堆"
        }
      ],
      "outputs": [
        {
          "name": "CNET_STACK",
          "type": "CONTROL_NET_STACK",
          "links": [
            62
          ],
          "shape": 3,
          "label": "ControlNet堆",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "Control Net Stacker"
      },
      "widgets_values": [
        1,
        0,
        1
      ],
      "color": "#223322",
      "bgcolor": "#335533",
      "shape": 1
    },
    {
      "id": 38,
      "type": "Control Net Stacker",
      "pos": [
        370,
        -340
      ],
      "size": {
        "0": 315,
        "1": 146
      },
      "flags": {},
      "order": 16,
      "mode": 0,
      "inputs": [
        {
          "name": "control_net",
          "type": "CONTROL_NET",
          "link": 49,
          "label": "ControlNet"
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 50,
          "label": "图像"
        },
        {
          "name": "cnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": 62,
          "label": "ControlNet堆"
        }
      ],
      "outputs": [
        {
          "name": "CNET_STACK",
          "type": "CONTROL_NET_STACK",
          "links": [
            63
          ],
          "shape": 3,
          "label": "ControlNet堆",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "Control Net Stacker"
      },
      "widgets_values": [
        0.2,
        0,
        1
      ],
      "color": "#223322",
      "bgcolor": "#335533",
      "shape": 1
    },
    {
      "id": 39,
      "type": "Control Net Stacker",
      "pos": [
        710,
        -340
      ],
      "size": {
        "0": 315,
        "1": 146
      },
      "flags": {},
      "order": 17,
      "mode": 0,
      "inputs": [
        {
          "name": "control_net",
          "type": "CONTROL_NET",
          "link": 51,
          "label": "ControlNet"
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 52,
          "label": "图像"
        },
        {
          "name": "cnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": 63,
          "label": "ControlNet堆"
        }
      ],
      "outputs": [
        {
          "name": "CNET_STACK",
          "type": "CONTROL_NET_STACK",
          "links": [
            64
          ],
          "shape": 3,
          "label": "ControlNet堆",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "Control Net Stacker"
      },
      "widgets_values": [
        0.5,
        0,
        1
      ],
      "color": "#223322",
      "bgcolor": "#335533",
      "shape": 1
    },
    {
      "id": 40,
      "type": "Control Net Stacker",
      "pos": [
        1050,
        -340
      ],
      "size": {
        "0": 315,
        "1": 146
      },
      "flags": {},
      "order": 18,
      "mode": 0,
      "inputs": [
        {
          "name": "control_net",
          "type": "CONTROL_NET",
          "link": 53,
          "label": "ControlNet",
          "slot_index": 0
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 54,
          "label": "图像",
          "slot_index": 1
        },
        {
          "name": "cnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": 64,
          "label": "ControlNet堆"
        }
      ],
      "outputs": [
        {
          "name": "CNET_STACK",
          "type": "CONTROL_NET_STACK",
          "links": [
            65
          ],
          "shape": 3,
          "label": "ControlNet堆",
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "Control Net Stacker"
      },
      "widgets_values": [
        0.5,
        0,
        1
      ],
      "color": "#223322",
      "bgcolor": "#335533",
      "shape": 1
    },
    {
      "id": 44,
      "type": "SaveImage",
      "pos": [
        2220,
        -630
      ],
      "size": {
        "0": 320,
        "1": 270
      },
      "flags": {},
      "order": 21,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 61,
          "label": "图像"
        }
      ],
      "properties": {},
      "widgets_values": [
        "ComfyUI"
      ]
    },
    {
      "id": 43,
      "type": "KSampler (Efficient)",
      "pos": [
        1860,
        -750
      ],
      "size": {
        "0": 330,
        "1": 560
      },
      "flags": {},
      "order": 20,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 56,
          "label": "模型"
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 57,
          "label": "正面条件"
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 58,
          "label": "负面条件"
        },
        {
          "name": "latent_image",
          "type": "LATENT",
          "link": 59,
          "label": "Latent"
        },
        {
          "name": "optional_vae",
          "type": "VAE",
          "link": 60,
          "label": "VAE(可选)"
        },
        {
          "name": "script",
          "type": "SCRIPT",
          "link": null,
          "label": "脚本"
        }
      ],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": null,
          "shape": 3,
          "label": "模型"
        },
        {
          "name": "CONDITIONING+",
          "type": "CONDITIONING",
          "links": null,
          "shape": 3,
          "label": "正面条件"
        },
        {
          "name": "CONDITIONING-",
          "type": "CONDITIONING",
          "links": null,
          "shape": 3,
          "label": "负面条件"
        },
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": null,
          "shape": 3,
          "label": "Latent"
        },
        {
          "name": "VAE",
          "type": "VAE",
          "links": null,
          "shape": 3,
          "label": "VAE"
        },
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            61
          ],
          "shape": 3,
          "label": "图像",
          "slot_index": 5
        }
      ],
      "properties": {
        "Node name for S&R": "KSampler (Efficient)"
      },
      "widgets_values": [
        248390093388796,
        null,
        20,
        10,
        "dpmpp_2m",
        "karras",
        1,
        "auto",
        "true"
      ],
      "color": "#222233",
      "bgcolor": "#333355",
      "shape": 1
    },
    {
      "id": 42,
      "type": "Efficient Loader",
      "pos": [
        1420,
        -650
      ],
      "size": {
        "0": 400,
        "1": 462.0000305175781
      },
      "flags": {},
      "order": 19,
      "mode": 0,
      "inputs": [
        {
          "name": "lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "label": "LoRA堆"
        },
        {
          "name": "cnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": 65,
          "label": "ControlNet堆"
        }
      ],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": [
            56
          ],
          "shape": 3,
          "label": "模型",
          "slot_index": 0
        },
        {
          "name": "CONDITIONING+",
          "type": "CONDITIONING",
          "links": [
            57
          ],
          "shape": 3,
          "label": "正面条件",
          "slot_index": 1
        },
        {
          "name": "CONDITIONING-",
          "type": "CONDITIONING",
          "links": [
            58
          ],
          "shape": 3,
          "label": "负面条件",
          "slot_index": 2
        },
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": [
            59
          ],
          "shape": 3,
          "label": "Latent",
          "slot_index": 3
        },
        {
          "name": "VAE",
          "type": "VAE",
          "links": [
            60
          ],
          "shape": 3,
          "label": "VAE",
          "slot_index": 4
        },
        {
          "name": "CLIP",
          "type": "CLIP",
          "links": null,
          "shape": 3,
          "label": "CLIP"
        },
        {
          "name": "DEPENDENCIES",
          "type": "DEPENDENCIES",
          "links": null,
          "shape": 3,
          "label": "依赖"
        }
      ],
      "properties": {
        "Node name for S&R": "Efficient Loader"
      },
      "widgets_values": [
        "AWPainting_v1.3.safetensors",
        "Baked VAE",
        -2,
        "None",
        1,
        1,
        "masterpiece, best quality, highres, 1girl, bare shoulders, brown hair, long hair, (orange dress:1.2), looking at viewer, forest, maple leaves,outdoors, wild, plants, cinematic lights, lightrays,depth of field, blurry_background, blurry_foreground, shiny luminious,",
        "(hands), text, error, cropped, (worst quality:1.2), (low quality:1.2), normal quality, (jpeg artifacts:1.3), signature, watermark, username, blurry, artist name, monochrome, sketch, censorship, censor, (copyright:1.2), extra legs, (forehead mark) (depth of field) (emotionless) (penis), embedding:EasyNegative, embedding:badhandv4, ",
        "none",
        "comfy++",
        768,
        1152,
        1
      ],
      "color": "#443322",
      "bgcolor": "#665533",
      "shape": 1
    },
    {
      "id": 11,
      "type": "LoadImage",
      "pos": [
        -250,
        -800
      ],
      "size": [
        220,
        314
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            22,
            32,
            33,
            34
          ],
          "slot_index": 0,
          "label": "图像"
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null,
          "label": "遮罩"
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "aimake_Example_1713001562048_49 (1) (3).jpg",
        "image"
      ]
    }
  ],
  "links": [
    [
      22,
      11,
      0,
      16,
      0,
      "IMAGE"
    ],
    [
      24,
      16,
      0,
      17,
      0,
      "IMAGE"
    ],
    [
      29,
      21,
      0,
      25,
      0,
      "IMAGE"
    ],
    [
      30,
      33,
      0,
      29,
      0,
      "IMAGE"
    ],
    [
      31,
      34,
      0,
      31,
      0,
      "IMAGE"
    ],
    [
      32,
      11,
      0,
      21,
      0,
      "IMAGE"
    ],
    [
      33,
      11,
      0,
      33,
      0,
      "IMAGE"
    ],
    [
      34,
      11,
      0,
      34,
      0,
      "IMAGE"
    ],
    [
      47,
      12,
      0,
      37,
      0,
      "CONTROL_NET"
    ],
    [
      48,
      16,
      0,
      37,
      1,
      "IMAGE"
    ],
    [
      49,
      23,
      0,
      38,
      0,
      "CONTROL_NET"
    ],
    [
      50,
      21,
      0,
      38,
      1,
      "IMAGE"
    ],
    [
      51,
      30,
      0,
      39,
      0,
      "CONTROL_NET"
    ],
    [
      52,
      33,
      0,
      39,
      1,
      "IMAGE"
    ],
    [
      53,
      32,
      0,
      40,
      0,
      "CONTROL_NET"
    ],
    [
      54,
      34,
      0,
      40,
      1,
      "IMAGE"
    ],
    [
      55,
      41,
      0,
      35,
      1,
      "CONTROL_NET_STACK"
    ],
    [
      56,
      42,
      0,
      43,
      0,
      "MODEL"
    ],
    [
      57,
      42,
      1,
      43,
      1,
      "CONDITIONING"
    ],
    [
      58,
      42,
      2,
      43,
      2,
      "CONDITIONING"
    ],
    [
      59,
      42,
      3,
      43,
      3,
      "LATENT"
    ],
    [
      60,
      42,
      4,
      43,
      4,
      "VAE"
    ],
    [
      61,
      43,
      5,
      44,
      0,
      "IMAGE"
    ],
    [
      62,
      37,
      0,
      38,
      2,
      "CONTROL_NET_STACK"
    ],
    [
      63,
      38,
      0,
      39,
      2,
      "CONTROL_NET_STACK"
    ],
    [
      64,
      39,
      0,
      40,
      2,
      "CONTROL_NET_STACK"
    ],
    [
      65,
      40,
      0,
      42,
      1,
      "CONTROL_NET_STACK"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "0246.VERSION": [
      0,
      0,
      4
    ]
  },
  "version": 0.4
}

测试图片
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RAG理论:ES混合搜索BM25+kNN(cosine)以及归一化

接前一篇:RAG实践:ES混合搜索BM25+kNN(cosine) https://blog.csdn.net/Xin_101/article/details/140230948 本文主要讲解混合搜索相关理论以及计算推导过程, 包括BM25、kNN以及ES中使用混合搜索分数计算过程。 详细讲解: (1)ES中如何通过BM25计算关键词搜索分数; (2)…

【手写数据库内核组件】0201 哈希表hashtable的实战演练,多种非加密算法,hash桶的冲突处理,查找插入删除操作的代码实现

hash表原理与实战 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 hash表…

下载linux的吐槽

本来这几天放假了,想下一个linux玩一玩 教程(我就是根据这个教程进行下载的,但是呢在进行修改BIOS 模式的 地方遇见了困难,也许是电脑修过的原因,我狂按F12 以及 FnF12都没有BIOS设置,只有一个让我选择用w…

第二次练习

目录 一、student表的增删改查 1.向student表中添加一条新记录 2. 向student表中添加多条新记录 3.向student表中添加一条新记录 4.更新表,grade 大于90的加0.5 5.删除成绩为空的记录 二、用户权限部分 1、创建一个用户test1使他只能本地登录拥有查询student表的权…

6、Redis系统-数据结构-05-整数

五、整数集合(Intset) 整数集合是 Redis 中 Set 对象的底层实现之一。当一个 Set 对象只包含整数值元素,并且元素数量不大时,就会使用整数集合这个数据结构作为底层实现。整数集合通过紧凑的内存布局和升级机制,实现了…

NSSCTF-Web题目24(RCE-空格绕过、过滤绕过)

目录 [MoeCTF 2021]babyRCE 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]funny_web 4、题目 5、知识点 6、思路 [MoeCTF 2021]babyRCE 1、题目 2、知识点 空格绕过、过滤绕过 3、思路 出现源码,进行代码审计 需要我们GET方式上传一个rce变量&#x…

针对tcp不出网打——HTTP隧道代理(以CFS演示)

目录 上传工具到攻击机 使用说明 生成后门文件 由于电脑短路无法拖动文件,我就wget发送到目标主机tunnel.php文件​ 成功上传​ 可以访问上传的文件 启动代理监听 成功带出 后台私信获取弹药库工具reGeorg 上传工具到攻击机 使用说明 生成后门文件 pyt…

分班结果老师怎么发给家长?

分班结果老师怎么发给家长? 随着新学期的脚步渐近,老师们的工作也变得愈发繁忙。从准备教学计划到整理课程材料,每一项任务都不容小觑。而其中,分班结果的告知工作,更是让不少老师头疼不已。传统的分班通知方式&#…

fork创建子进程详解

一.前言 在上一篇文章-进程的概念,最后我们提到了创建进程的方式有两种方式,一种是手动的创建出进程,还有一种就是我们今天要学习的使用代码的方式创建出子进程-fork。 而学习fork创建出进程的过程中,我们会遇到以下问题&#x…

STL——map和set

目录 一、set 二、map 1.插入 2.隆重介绍 [] A使用场景 B原理 一、set set即STL库中提供的K模型的二叉搜索树&#xff0c;他的函数使用和其他容器很相似&#xff0c;可以自行阅读文档#include <set> 本文旨对库中难以理解的函数作说明 二、map map即KV模型的二…

触底加载的两种思路(以vue3前端和nodejs后端为例)

一:首先,nodejs后端的代码都是一样的. 需要前端返回page参数,然后nodejs逻辑进行处理,截取页数和每页条数和总条数, 总条数用来作为判断是否有数据的条件,也可以不用,注意看下文 一:不用获取容器高度的. pinia中进行的axios请求处理 在vue文件中进行pinia中数据的导入,继续进…

全面解析 TypeScript 泛型的二三事

2024年了相信大家都已经在日常开发的过程中使用上了 TypeScript 了。TypeScript 增强了代码可靠性和可维护性&#xff0c;确保减少运行时错误并提高开发人员的工作效率。 TypeScript 通过类型声明 使得 javascript 拥有了强类型校验。而泛型的是类型声明中最重要的一环&#x…

Nettyの源码分析

本篇为Netty系列的最后一篇&#xff0c;按照惯例会简单介绍一些Netty相关核心源码。 1、Netty启动源码分析 代码就使用最初的Netty服务器案例&#xff0c;在bind这一行打上断点&#xff0c;观察启动的全过程&#xff1a; 由于某些方法的调用链过深&#xff0c;节约篇幅&#xf…

Linux内核链表使用方法

简介&#xff1a; 链表是linux内核中最简单&#xff0c;同时也是应用最广泛的数据结构。内核中定义的是双向链表。 linux的链表不是将用户数据保存在链表节点中&#xff0c;而是将链表节点保存在用户数据中。linux的链表节点只有2个指针(pre和next)&#xff0c;这样的话&#x…

在Linux操作系统使用逻辑卷的快照(snapshot),进行对逻辑卷的数据备份。

作用&#xff1a;结合特定应用程序&#xff0c;方便备份数据。 基于cow&#xff08;copy on write 写时复制&#xff09;机制 在创建逻辑卷快照的时候&#xff0c;如果不去设置逻辑卷快照的权限的话&#xff0c;那么这个逻辑卷的权限就是可读可写&#xff0c; 创建逻辑卷快照…

coco数据集格式计算mAP的python脚本

目录 背景说明COCOeval 计算mAPtxt文件转换为coco json 格式自定义数据集标注 背景说明 在完成YOLOv5模型移植&#xff0c;运行在板端后&#xff0c;通常需要衡量板端运行的mAP。 一般需要两个步骤 步骤一&#xff1a;在板端批量运行得到目标检测结果&#xff0c;可保存为yol…

AI教你如何系统的学习Python

Python学习计划 第一阶段&#xff1a;Python基础&#xff08;1-2个月&#xff09; 目标&#xff1a;掌握Python的基本语法、数据类型、控制结构、函数、模块和包等。 学习Python基本语法&#xff1a;包括变量、数据类型&#xff08;整数、浮点数、字符串、列表、元组、字典、…

STM32基础篇:GPIO

GPIO简介 GPIO&#xff1a;即General Purpose Input/Output&#xff0c;通用目的输入/输出。就是一种片上外设&#xff08;内部模块&#xff09;。 对于STM32的芯片来说&#xff0c;周围有一圈引脚&#xff0c;有时需要对引脚进行读写&#xff08;读&#xff1a;从外部输入一…

【xinference】(15):在compshare上,使用docker-compose运行xinference和chatgpt-web项目,配置成功!!!

视频演示 【xinference】&#xff08;15&#xff09;&#xff1a;在compshare上&#xff0c;使用docker-compose运行xinference和chatgpt-web项目&#xff0c;配置成功&#xff01;&#xff01;&#xff01; 1&#xff0c;安装docker方法&#xff1a; #!/bin/shdistribution$(…

【嵌入式DIY实例-ESP8266篇】-LCD ST7735显示BMP280传感器数据

LCD ST7735显示BMP280传感器数据 文章目录 LCD ST7735显示BMP280传感器数据1、硬件准备与接线2、代码实现本文介绍如何将 ESP8266 NodeMCU 板 (ESP-12E) 与 Bosch Sensortec 的 BMP280 气压和温度传感器连接。 NodeMCU 微控制器 (ESP8266EX) 从 BMP280 传感器读取温度和压力值,…