{ "job": "follow", "rank": 1, "short": "its pose", "title": { "zh": "照着姿势画", "en": "Follow a pose" }, "about": { "zh": "你递给 AI 一张图,AMB 读出人物姿势(DWPose),用和你底模对得上的控制网让新图摆出这个姿势。 DWPose 认二次元人物也准,连脸和手指都标;人物挤成一团、画风很浓的图可能认不出,这时用「照着构图画」。 画布上是 Anima 模型时,自动改用 Anima 专用的 LLLite 控制网(需要 ComfyUI-Anima-LLLite)。", "en": "From a picture you hand the AI, Anomalous reads the pose (DWPose) and steers the picture with a ControlNet that fits your model. DWPose reads anime characters too, face and fingers included; a crowded or very stylised picture may come out empty, then use Follow a layout. On an Anima model it uses an Anima ControlNet-LLLite instead (needs ComfyUI-Anima-LLLite)." }, "source": { "zh": "参考工作流的「底图控制网」组", "en": "The reference workflow's ControlNet group" }, "packs": { "DWPreprocessor": "comfyui_controlnet_aux" }, "takes": "reference", "control": "pose", "nodes": { "reference": { "class_type": "LoadImage", "inputs": { "image": "$image" } }, "pose": { "class_type": "DWPreprocessor", "inputs": { "image": [ "reference", 0 ], "detect_hand": "enable", "detect_body": "enable", "detect_face": "enable", "resolution": 1024, "bbox_detector": "yolox_l.torchscript.pt", "pose_estimator": "dw-ll_ucoco_384_bs5.torchscript.pt", "scale_stick_for_xinsr_cn": "disable" } }, "controlnet": { "class_type": "ControlNetLoader", "inputs": { "control_net_name": "$controlnet" } }, "steer": { "class_type": "ControlNetApplyAdvanced", "inputs": { "positive": [ "$sampler.positive", "*" ], "negative": [ "$sampler.negative", "*" ], "control_net": [ "controlnet", 0 ], "image": [ "pose", 0 ], "vae": [ "$decode.vae", "*" ], "strength": 0.8, "start_percent": 0.0, "end_percent": 0.8 }, "wire_to": "$sampler" }, "look": { "class_type": "PreviewImage", "inputs": { "images": [ "pose", 0 ] } } }, "after": "run_workflow: the picture now takes that pose (strength 0.8, for the first 80% of the steps; lower either for a looser pose). The prompt still says who and what: change it if it fights the pose. Its pose skeleton is among the run's previews: if it is empty or wrong (a crowded or very stylised picture), try control_depth.", "variants": { "anima": { "packs": { "DWPreprocessor": "comfyui_controlnet_aux", "AnimaLLLiteApply_sdscripts": "ComfyUI-Anima-LLLite" }, "control": null, "lllite": "pose", "nodes": { "reference": { "class_type": "LoadImage", "inputs": { "image": "$image" } }, "pose": { "class_type": "DWPreprocessor", "inputs": { "image": [ "reference", 0 ], "detect_hand": "enable", "detect_body": "enable", "detect_face": "enable", "resolution": 1024, "bbox_detector": "yolox_l.torchscript.pt", "pose_estimator": "dw-ll_ucoco_384_bs5.torchscript.pt", "scale_stick_for_xinsr_cn": "disable" } }, "steer": { "class_type": "AnimaLLLiteApply_sdscripts", "inputs": { "model": [ "$sampler.model", "*" ], "lllite_name": "$lllite", "image": [ "pose", 0 ], "strength": 1.0, "start_percent": 0.0, "end_percent": 1.0, "preserve_wrapper": true }, "wire_to": "$sampler" }, "look": { "class_type": "PreviewImage", "inputs": { "images": [ "pose", 0 ] } } }, "after": "On this Anima model an Anima ControlNet-LLLite steers it, more gently than an SDXL ControlNet: say in the prompt what the picture shows (how many people, what they do), or the prompt wins. Strength 1.0 for all the steps; up to 1.5 holds it closer. run_workflow. Its pose skeleton is among the run's previews: if it is empty or wrong (a crowded or very stylised picture), try control_depth." } } }