美文网首页
新一代 AI 手部畸形修复工具 - HandRefiner

新一代 AI 手部畸形修复工具 - HandRefiner

作者: 原水寒 | 来源:发表于2024-01-19 22:26 被阅读0次

    一 安装 HandRefiner

    按照 官方文档 进行安装。

    # 选择目录,下载 HandRefiner 源码
    cd D:/ai/
    git clone https://github.com/wenquanlu/HandRefiner.git
    cd HandRefiner
    
    # 安装 MeshGraphormer 文档 https://github.com/wenquanlu/HandRefiner/blob/main/docs/meshgraphormer.md
    git clone --recursive https://github.com/microsoft/MeshGraphormer.git
    cd MeshGraphormer
    pip install ./manopth/.
    mkdir -p models
    cp ../scripts/download_models.sh scripts/download_models.sh
    cp ../scripts/_gcnn.py src/modeling/_gcnn.py
    cp ../scripts/_mano.py src/modeling/_mano.py
    cp ../scripts/config.py src/modeling/data/config.py
    
    # windows 下可以使用 gitbash 执行 bash 命令,如果 gitbash 不支持 wget,可以先去 https://eternallybored.org/misc/wget/ 下载对应的 wget.exe,之后移入 git 安装目录,比如 D:\git\Git\mingw64\bin
    bash scripts/download_models.sh
    
    手动去 https://mano.is.tue.mpg.de/download.php,点击页面中的 Models & Code,下载模型和代码,解压后,将模型 MANO_RIGHT.pkl 移入 MeshGraphormer\src\modeling\data 目录下。
    
    # 进入 HandRefiner 根目录,创建 conda 环境,安装依赖
    cd ..
    conda create --name handrefiner python=3.10
    conda activate handrefiner
    pip install -r requirements.txt
    pip install -q mediapipe==0.10.0
    cd preprocessor
    # anaconda 中无法执行 wget,可以在 gitbash 中执行,或者手动下载,放到对应目录
    wget https://storage.googleapis.com/mediapipe-models/hand_landmarker/hand_landmarker/float16/1/hand_landmarker.task
    
    手动下载以下3个模型,放置到文件夹 HandRefiner/models/(目录没有,需要新建)
    sd-v1-5-inpainting.ckpt   https://huggingface.co/runwayml/stable-diffusion-inpainting/blob/main/sd-v1-5-inpainting.ckpt
    control_v11f1p_sd15_depth.pth   https://huggingface.co/lllyasviel/ControlNet-v1-1/blob/main/control_v11f1p_sd15_depth.pth
    inpaint_depth_control.ckpt https://drive.google.com/file/d/1eD2Lnfk0KZols68mVahcVfNx3GnYdHxo/view
    

    问题修复:
    Q1 pytorch-lighting 版本问题
    默认版本是1.4.3,报错 ImportError: cannot import name 'get_num_classes' from 'torchmetrics.utilities.data'
    可升级到 pip install pytorch_lightning==1.6.5,不可升级到2.1.3,否则会报错 No module named ‘pytorch_lightning.utilities.distributed。其他中间版本可自行试一下。

    Q2 numpy 版本问题,报错 cannot import name ‘bool‘ from ‘numpy‘ 1.23.0 版本
    安装 pip install numpy=1.23

    Q3 如果想使用 cuda,去 pytorch官网 组件命令,我这里是 cuda12.1
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

    Q4 代码路径问题,报错 SyntaxError: invalid syntax 或者 No module xxx 这样的,需要将 handRefiner 代码引入 pycharm,进行路径修改。具体改动点如下:
    错误1.

    "D:\ai\HandRefiner\MeshGraphormer\src\modeling\bert\modeling_bert.py", line 1
        ../../../transformers/pytorch_transformers/modeling_bert.py
        ^
    SyntaxError: invalid syntax
    

    将 ../../../transformers/pytorch_transformers/modeling_bert.py 文件内容拷贝到 D:\ai\HandRefiner\MeshGraphormer\src\modeling\bert\modeling_bert.py。

    src/modeling/bert/file_utils.py 和 src/modeling/bert/modeling_utils.py 也是类似处理方式。其他找不到包的方式(比如 mano.webuser 路径找不到的这种),需要自行在 pycharm 中调节包路径。

    二 使用 HandRefiner

    python handrefiner.py --input_img test/1.jpg --out_dir output --strength 0.55 --weights models/inpaint_depth_control.ckpt --prompt "a man facing the camera, making a hand gesture, indoor" --seed 1
    

    命令参数:https://github.com/wenquanlu/HandRefiner/blob/main/docs/manual.md

    三 WebUI 中集成 HandRefiner

    https://github.com/Mikubill/sd-webui-controlnet/discussions/2400
    具体就是升级 controlNet,在 controlNet 深度预处理器中增加了 depth_hand_refiner,配合 depth 深度模型在局部重绘中涂抹手进行使用。

    相关文章

      网友评论

          本文标题:新一代 AI 手部畸形修复工具 - HandRefiner

          本文链接:https://www.haomeiwen.com/subject/ilzdodtx.html