RealisHuman:AI 生成的人像不真实?后处理框架帮你修复生成图像中畸形人体部位

214 阅读4分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 功能:RealisHuman 通过两阶段方法修复生成图像中畸形的人体部位,如手和脸。
  2. 技术:结合 3D 姿态估计和图像修复技术,确保生成部位与原始图像的无缝融合。
  3. 应用:适用于游戏开发、影视制作、图像修复和艺术创作等多个领域。

正文(附运行示例)

RealisHuman 是什么

公众号: 蚝油菜花 - RealisHuman

RealisHuman 是一个创新的后处理框架,专注于修复生成图像中畸形的人体部位,如手和脸。该框架通过两阶段的方法来实现这一目标。首先,使用原始的畸形部位作为参考,生成逼真的人体部位,以确保与原图像的一致性。其次,通过重新绘制周围区域,将修正后的人体部位无缝地整合回原始位置,确保平滑和真实的融合。

RealisHuman 不仅提高了生成图像中人体部位的真实性,还具有强大的泛化能力,能够处理不同风格的图像,包括卡通和素描等。

RealisHuman 的主要功能

  • 生成逼真的人体部位:使用原始的畸形部位作为参考,生成逼真的人体部位,如手和脸,确保生成的部位在细节上与原始图像保持一致。
  • 无缝集成修正部位:通过重新绘制周围区域,将修正后的人体部位无缝地集成回原始图像中,确保平滑和真实的融合。
  • 处理多种图像风格:能够有效处理不同风格的图像,包括卡通和素描等。
  • 提高生成图像的真实性:通过两阶段的方法,显著提升生成图像中人体部位的真实性。

RealisHuman 的技术原理

  • 第一阶段:生成逼真的人体部位
    使用原始的畸形部位作为参考,结合 Part Detail Encoder 和 DINOv2 等工具,提取原始畸形部位的详细信息,包括肤色和纹理等。同时,结合 3D 姿态估计结果,指导生成的人体部位图像,确保姿态的准确性和真实性。

  • 第二阶段:无缝集成修正部位
    首先将修正后的人体部位放回其原始位置,并对周围区域进行遮盖。然后,通过训练一个修复模型,将人体部位与周围区域无缝融合,确保平滑过渡和真实的融合。最后,重新绘制背景与修正后的人体部位之间的区域,避免出现拼贴的痕迹。

如何运行 RealisHuman

1. 环境安装

首先,使用 conda 安装所需环境:

conda env create -f environment.yaml
conda activate RealisHuman

或者使用 pip 安装:

pip3 install -r requirements.txt
2. 数据准备

将数据目录结构设置为如下格式:

data
|-- images
|   |-- 3ddfa
|   |-- dwpose
|   |-- hamer
|   |-- image
|   `-- results
3. 手部修复
阶段一预处理
python data/process_hand_stage1.py
阶段一推理
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 torchrun --nnodes=1 --nproc_per_node=8 \
    inference_stage1.py --config configs/stage1-hand.yaml --output data/hand_example/hand_chip/repair \
    --ckpt checkpoint/stage1_hand/checkpoint-stage1-hand.ckpt
阶段二处理与推理
python data/process_hand_stage2.py
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 torchrun --nnodes=1 --nproc_per_node=8 \
    inference_stage2.py --config configs/stage2-hand.yaml --output data/hand_example/hand_chip/inpaint \
    --ckpt checkpoint/stage2_hand/checkpoint-stage2-hand.ckpt
最终图像修复
python data/back_to_image_hand.py
4. 面部修复
阶段一预处理
python data/process_face_stage1.py
阶段一推理
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 torchrun --nnodes=1 --nproc_per_node=8 \
    inference_stage1.py --config configs/stage1-face.yaml --output data/face_example/face_chip/repair \
    --ckpt checkpoint/stage1_face/checkpoint-stage1-face.ckpt
阶段二处理与推理
python data/process_face_stage2.py
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 torchrun --nnodes=1 --nproc_per_node=8 \
    inference_stage2.py --config configs/stage2-face.yaml --output data/face_example/face_chip/inpaint \
    --ckpt checkpoint/stage2_face/checkpoint-stage2-face.ckpt
最终图像修复
python data/back_to_image_face.py

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦