图片转姿势,不用再描线
从照片里抄姿势,通常就是照着描,而描出来的线稿只能停在摄影师选的那个角度。照片转姿势的做法相反:它读取头、肩、肘、腕、髋、膝、踝的位置,估计每条肢体在纵深方向上的朝向,再把同样的角度设置到 3D 木人上。得到的是一个可以绕着看的真实姿势,而不是一张平面轮廓。
所以导入之后它依然有用。你可以从上方看透视缩短是否正确,把姿势镜像给对面的角色,换一个更广的镜头让画面更有张力,或者调整被身体挡住的那只手。画师用它从新角度重建喜欢的参考,动画师用它从视频帧里摆出关键姿势。
可用于 ControlNet 的 OpenPose 骨架
如果你用 Stable Diffusion 生成图片,OpenPose 输出可以直接使用。PNG 采用 ControlNet OpenPose 模型训练时使用的标准 COCO-18 关键点布局和配色,画在黑色背景上,尺寸与原照片一致。在 ControlNet 中载入它并把预处理器设为 none,生成的人物就会摆出照片里的姿势。
OpenPose JSON 使用常见的 pose_keypoints_2d 格式,可以在 OpenPose 编辑器和接受关键点的 ComfyUI 节点中打开。因为骨架来自 3D 木人,你还可以在编辑器里转动镜头,为同一个姿势从任意角度导出新的 OpenPose 图,这是单纯的 2D 姿势估计做不到的。
让识别更准确的小技巧
- 让整个身体从头到脚都在画面里,四周留一点空间。
- 画面里只有一个清楚的主体效果最好。有多人时,工具会使用最清晰的那位并告诉你检测到几个人;想换人就把照片裁剪一下。
- 光线均匀、衣服贴身会更好。宽大的外套、浓重的阴影和挡在身前的道具都会遮住关节。
- 侧面照里,远侧的手臂和腿会被部分遮挡。这些部位会被标出来提醒你检查,在编辑器里稍作调整即可。
- 如果某条肢体看起来前后反了,点它的翻转按钮。单张照片在纵深上本来就存在歧义。
能做什么,不能做什么
照片转姿势每张照片识别一个人,包括身体和大致的手型(张开、放松、握拳、指向等)。它不会复制面部、表情或每个手指关节,也不会保留人物的任何外貌信息:传给木人的只有关节角度。照片和写实绘画效果很好;比例夸张的风格化作品效果不稳定。