Claquasse commited on
Commit
47d20a6
·
verified ·
1 Parent(s): 2be8e1f

Preview-2: multi-resolution pose adapter (512/768/1024) + Anima Pose Control node + workflows

Browse files
README.md CHANGED
@@ -15,50 +15,44 @@ tags:
15
  pipeline_tag: text-to-image
16
  ---
17
 
18
- # Anima Control — Pose (Preview-1)
19
 
20
- > ⚠️ **Preview-1 — experimental.** This is an early, lightly-trained release of pose control for
21
- > Anima v1.0. Because it is a preview, it will often generate bad images: deformed or split bodies,
22
- > wrong or extra limbs, and similar artifacts. It simply has not had enough training and refining
23
- > yet. Treat it as a proof of concept, not a finished tool. It is not production-ready for now.
24
- > **Non-commercial use only** (inherits the Anima base model license). Behavior and weights may change.
25
 
26
  A native **pose control adapter** for the Anima v1.0 image model: condition generation on a
27
- skeleton pose map so the subject follows a target pose.
28
-
29
- ## Abstract
30
-
31
- Anima Control adds spatial conditioning to the frozen Anima v1.0 diffusion transformer without
32
- retraining the base model. Preview-1 ships the first component, pose, as a channel-concat
33
- control-LoRA. A small, zero-initialized embedder injects a VAE-encoded skeleton at the model
34
- input, and a low-rank adapter on the transformer blocks lets the frozen network act on that
35
- signal. Because the embedder starts at zero, an untrained or zero-strength adapter is an exact
36
- no-op: the output is identical to the base model. Control is optional and off by default.
37
-
38
- ## Highlights
39
-
40
- - **Pose conditioning for Anima v1.0:** drive the subject's pose from a skeleton map.
41
- - **Zero-init no-op:** at `strength = 0` the output is exactly the base model.
42
- - **Small trainable footprint:** only the control embedder and a rank-16 adapter train; the base stays frozen.
43
- - **Part of a shared control platform:** the same harness is meant to host other control types (see roadmap below).
44
 
45
  ## Method
46
 
47
- The adapter has one fusion point at the model input and trains two small parts.
48
 
49
- **Conditioning.** The base VAE encodes the skeleton pose map into a control latent, the same
50
- latent space as the noisy image, so the control stays spatially aligned with the generation.
51
 
52
- **Fusion (`ControlEmbedder` + `ControlInitialLayer`).** A zero-initialized `ControlEmbedder`
53
- (a patch projection on the control latent) produces control tokens that are **added to the frozen
54
- base patch-embed output** inside an overridden `ControlInitialLayer`. This is the only place the
55
- forward pass changes. Zero-initialization means training starts as an exact no-op (output == base)
56
- and the control contribution grows only as it earns loss.
57
 
58
  **Trainable parameters.** The `ControlEmbedder` plus a rank-16 low-rank adapter on the transformer
59
- `Block`s. The base transformer, text encoder, and VAE are frozen.
60
-
61
- **Objective.** The base model's native flow-matching objective, unchanged.
62
 
63
  ```
64
  skeleton ─▶ VAE ─▶ control latent ─┐
@@ -68,125 +62,88 @@ noisy latent ─▶ patch-embed ─▶ [ControlInitialLayer] ─▶ Block×N (+
68
 
69
  ## Training
70
 
71
- **Data.** 3,914 (image, skeleton, caption) triples. Images are generated by Anima from a broad
72
- prompt distribution; skeletons are rendered from each image's detected keypoints (DWPose,
73
- COCO-WholeBody, black background); captions are quality-prefixed tag lists.
74
-
75
- **Configuration.**
76
 
77
  | Setting | Value |
78
  |---|---|
79
- | Resolution | 512, aspect-ratio bucketed (AR 0.5–2.0, 7 buckets) |
80
  | Adapter rank | 16 |
81
  | Learning rate | 1e-4 |
82
- | Epochs | 10 |
83
  | Control dropout | 0.1 |
84
  | Precision | bf16 |
85
- | Optimizer | adamw (optimi) |
86
 
87
- > **Final training loss:** ≈ 0.13 (denoising MSE, mean over the final 400 optimizer steps); stable across all 10 epochs.
88
 
89
  ## Results
90
 
91
- > Preliminary — measured on **10 held-out full-body poses** (fresh generations not seen in training).
92
- > Pose agreement is scored by re-detecting keypoints on each generated output and comparing to the
93
- > target skeleton (PCK@0.1 = fraction of keypoints within 10% of the pose bounding-box diagonal).
94
 
95
- ![Base vs pose control on held-out poses](samples/grid.png)
96
 
97
- *Each row: the input reference, the DWPose skeleton extracted from it, base Anima at the same prompt
98
- and seed, then the pose-controlled output. Base ignores the skeleton; control follows it.*
 
99
 
100
- | Metric (PCK@0.1) | Control off (0.0) | Control on (1.0) |
101
  |---|---|---|
102
- | Body pose — 17 COCO joints | 0.20 | **0.59** |
103
- | Whole-body — 133 keypoints | 0.32 | **0.59** |
104
-
105
- - Control **roughly triples** body-pose agreement (0.20 → 0.59); several held-out poses (standing,
106
- waving, hands-on-hips) reach near-perfect adherence.
107
- - With control **off (strength 0.0)** the output matches base Anima whatever the skeleton: the
108
- adapter is a clean no-op when disabled.
109
- - **Strength sweep (0.0 / 0.5 / 1.0):** raising strength moves the subject from the base pose toward
110
- the target skeleton; 0.5 is a partial blend, 1.0 follows the skeleton.
111
- - **Limitations:** adherence is strongest on upright / static poses; highly dynamic poses (running,
112
- jumping) are followed only partially at this preview's scale and resolution.
113
-
114
- ## Usage (ComfyUI)
115
 
116
- Preview-1 runs as a small ComfyUI custom node, **Anima Control Apply** (`AnimaControlApply`,
117
- category `AnimaControl`).
118
 
119
- ### Install
 
 
 
 
 
120
 
121
- 1. Download `adapter_model.safetensors` from this repo into `ComfyUI/models/loras/`.
122
- 2. Copy the `comfyui/anima_control_lora/` folder from this repo into `ComfyUI/custom_nodes/`, then
123
- restart ComfyUI. That folder is the whole node: `__init__.py` and its one helper,
124
- `control_embedder.py`.
125
- 3. Load `pose_control.json` from the ComfyUI workflow menu, or build the graph by hand (below).
126
-
127
- One file does two jobs. `adapter_model.safetensors` holds both a low-rank adapter (`lora.*` keys)
128
- and the control embedder (`control_embedder.*` keys). `LoraLoaderModelOnly` reads the first set,
129
- Anima Control Apply reads the second. A bare filename in `control_embedder_path` is resolved
130
- against `models/loras/`, so both nodes just point at `adapter_model.safetensors`.
131
-
132
- Two workflows are included:
133
-
134
- - `pose_control_demo.json` — the easiest way to test everything. Drop in any reference image; it
135
- runs DWPose to extract the skeleton, then generates the same prompt twice, once on base Anima and
136
- once with pose control, so you can compare side by side. The DWPose step needs the
137
- `comfyui_controlnet_aux` nodes.
138
- - `pose_control.json` — the core control graph, where you supply a skeleton image yourself.
139
-
140
- ### Prepare a skeleton
141
-
142
- The control input is a skeleton pose map: DWPose keypoints (COCO-WholeBody) drawn on a black
143
- background. You can make one two ways:
144
-
145
- - A DWPose preprocessor node (for example, from `comfyui_controlnet_aux`) run on a reference image
146
- inside ComfyUI.
147
- - The bundled `scripts/render_skeletons.py`, which needs `pip install rtmlib opencv-python`:
148
- ```bash
149
- python scripts/render_skeletons.py --imgs <ref_dir> --out <skeleton_dir>
150
- ```
151
 
152
- ### Graph
 
 
153
 
154
- 1. Load base Anima with your usual model loader.
155
- 2. `LoraLoaderModelOnly`: set `lora_name` to `adapter_model.safetensors`.
156
- 3. `VAEEncode`: encode the skeleton image to a `LATENT` (this is the `control_latent`).
157
- 4. Anima Control Apply: inputs are `model`, `control_latent`, `control_embedder_path`
158
- (`adapter_model.safetensors`), and `strength`. It returns a patched `MODEL`.
159
- 5. Sample from the patched model as usual.
160
 
161
- **Strength.** `0.0` is the base model with no control; `1.0` follows the skeleton. The range is 0
162
- to 2. Higher values track the pose more closely but can cost some image quality.
 
 
 
 
 
 
 
163
 
164
- ## Limitations
 
 
165
 
166
- - **Preview quality.** Lightly trained; pose adherence may be inconsistent and is still under evaluation.
167
- - **512×512 only.** The adapter is trained at 512, and the control latent has to line up spatially
168
- with the generation latent, so the skeleton input and the output are both fixed at 512×512. Other
169
- resolutions are not supported yet: off-512 the latents do not match and the pose is not tracked.
170
- Fine detail (hands, faces) is also limited at this resolution.
171
- - **Single input injection.** Control is asserted once, at the input; at low strength the model may
172
- under-follow the pose. Raising strength helps but can reduce image quality.
173
- - **Pose only.** Other control types are roadmap, not in this release.
174
- - **Non-commercial.** Inherits the Anima base model license.
175
 
176
- ## The platform & its v1 components
177
 
178
- Pose is the first component on a shared control harness for Anima. The harness owns the frozen
179
- base, the adapter machinery, and the data/caching path; each control type plugs in by supplying a
180
- conditioning encoder and a fusion point. Planned v1 components:
 
 
 
 
181
 
182
- - **Pose v1:** this preview, hardened for higher fidelity and reliable adherence.
183
- - **IP-Adapter v1:** image-prompt conditioning, to drive style and content from a reference image.
184
- - **Identity v1:** face-identity conditioning, to keep a subject's identity across generations.
185
 
186
- A pose detector trained specifically for Anima is also on the table. The skeletons here come from
187
- DWPose, a general detector built for photographs, so it is noisy on anime art. An Anima-native
188
- detector would give cleaner skeletons for both the training data and inference, which should
189
- directly improve how closely generations follow the target pose.
190
 
191
  ## License
192
 
@@ -196,23 +153,22 @@ the **CircleStone Labs Non-Commercial License**, and — because Anima is itself
196
  Cosmos-Predict2 — the [NVIDIA Open Model License](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-license/).
197
 
198
  The **model weights are for non-commercial use only.** Generated images (outputs) are not restricted
199
- by these terms and may be used commercially. See the base model card and the bundled
200
- [`LICENSE`](./LICENSE) for the full text.
201
 
202
  ## Support
203
 
204
- Building these models means mining and labeling hundreds of thousands of images and renting GPUs to
205
- train on them, which takes real time and money. If they are useful to you and you want to chip in,
206
- it is appreciated and never expected: https://ko-fi.com/claquasse
207
 
208
  ## Citation
209
 
210
  ```bibtex
211
- @misc{anima_control_pose_preview1,
212
- title = {Anima Control --- Pose (Preview-1)},
213
  author = {Claquasse},
214
  year = {2026},
215
- note = {Preview-1 pose control adapter for Anima v1.0},
216
  howpublished = {\url{https://huggingface.co/Claquasse/Anima-Control-Pose}}
217
  }
218
  ```
 
15
  pipeline_tag: text-to-image
16
  ---
17
 
18
+ # Anima Control — Pose (Preview-2)
19
 
20
+ > ⚠️ **Preview-2still experimental.** Better than Preview-1, but not finished. It will still
21
+ > miss poses and produce deformed bodies, fused hands, and similar artifacts. Treat it as a
22
+ > work-in-progress preview, not a production tool. **Non-commercial use only** (inherits the Anima
23
+ > base model license). Behaviour and weights may still change.
 
24
 
25
  A native **pose control adapter** for the Anima v1.0 image model: condition generation on a
26
+ skeleton pose map so the subject follows a target pose. Preview-2 is the same idea as Preview-1,
27
+ trained at higher resolutions on a larger corpus, and shipped with a friendlier ComfyUI node.
28
+
29
+ ## What changed since Preview-1
30
+
31
+ - **Multi-resolution: 512, 768 and 1024.** Preview-1 was 512-only; this runs at all three, and the
32
+ bodies hold together much better at the larger sizes. 1024 looks best.
33
+ - **Larger training corpus** than Preview-1's ~3,900 examples, which shows up as cleaner anatomy and
34
+ steadier poses.
35
+ - **Better pose-following at every resolution**, with the biggest gains at 768 and 1024.
36
+ - **New ComfyUI node, "Anima Pose Control."** Drop in a reference photo; it detects the pose for you
37
+ and renders the skeleton, and you can pick how the skeleton is drawn (thin, thick, puppet, heatmap,
38
+ or with hands/face stripped). The plain thin skeleton is still the best default — it's the only one
39
+ the model trained on but a different render occasionally lands a stubborn pose when the seed
40
+ alone won't.
 
 
41
 
42
  ## Method
43
 
44
+ Unchanged from Preview-1: a channel-concat control-LoRA on the frozen Anima DiT.
45
 
46
+ **Conditioning.** The base VAE encodes the skeleton pose map into a control latent, the same latent
47
+ space as the noisy image, so the control stays spatially aligned with the generation.
48
 
49
+ **Fusion (`ControlEmbedder` + `ControlInitialLayer`).** A zero-initialized `ControlEmbedder` produces
50
+ control tokens that are **added to the frozen base patch-embed output**. Zero-init means training
51
+ starts as an exact no-op (output == base) and the control contribution grows only as it earns loss,
52
+ so at `strength = 0` the adapter is exactly the base model.
 
53
 
54
  **Trainable parameters.** The `ControlEmbedder` plus a rank-16 low-rank adapter on the transformer
55
+ blocks. The base transformer, text encoder, and VAE stay frozen.
 
 
56
 
57
  ```
58
  skeleton ─▶ VAE ─▶ control latent ─┐
 
62
 
63
  ## Training
64
 
65
+ **Data.** (image, skeleton, caption) triples generated by Anima from a broad prompt distribution;
66
+ skeletons rendered from each image's detected keypoints (DWPose, COCO-WholeBody, black background).
67
+ Preview-2 uses a substantially larger corpus than Preview-1.
 
 
68
 
69
  | Setting | Value |
70
  |---|---|
71
+ | Resolution | **512 + 768 + 1024**, aspect-ratio bucketed |
72
  | Adapter rank | 16 |
73
  | Learning rate | 1e-4 |
74
+ | Epochs | 8 |
75
  | Control dropout | 0.1 |
76
  | Precision | bf16 |
 
77
 
78
+ > Final training loss ≈ 0.11 (denoising MSE, mean over the final 400 steps).
79
 
80
  ## Results
81
 
82
+ Measured on held-out full-body poses (fresh generations, not seen in training). Pose agreement is
83
+ body-PCK@0.1: re-detect keypoints on each output, compare to the target skeleton.
 
84
 
85
+ ![Pose control across skeleton styles](samples/grid.png)
86
 
87
+ *Each grid: the BASE column shows the reference and the no-control generation (same prompt, different
88
+ seed it ignores the pose); the remaining columns show the skeleton, drawn in each style, over the
89
+ pose-controlled output. Control follows the pose; no-control doesn't.*
90
 
91
+ | body-PCK@0.1 | control off | control on |
92
  |---|---|---|
93
+ | 512 | ~0.33 | **~0.59** |
94
+ | 768 | ~0.38 | **~0.67** |
95
+ | 1024 | ~0.37 | **~0.83** |
 
 
 
 
 
 
 
 
 
 
96
 
97
+ Preview-1 reached ~0.59 at 512. Preview-2 matches that at 512 and pulls clearly ahead at 768 and
98
+ 1024 — the gains grow with resolution.
99
 
100
+ **What's still off (honest):**
101
+ - It doesn't always follow the skeleton, even a clean, correct one.
102
+ - A thin stick figure on black isn't how anime is drawn, so the model only half-reads it; the worst
103
+ artifacts (fused hands, mush) cluster where the skeleton is busiest.
104
+ - Dynamic poses — running, jumping, sitting — are the least reliable.
105
+ - On short or vague prompts the style flattens toward a samey default; a richer prompt fixes it.
106
 
107
+ ## Usage (ComfyUI)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
 
109
+ Preview-2 uses two small custom nodes: **Anima Control Apply** (`AnimaControlApply`) applies the
110
+ adapter, and **Anima Pose Control** (`AnimaPoseControl`) detects the pose from a photo and renders
111
+ the skeleton for you.
112
 
113
+ ### Install
 
 
 
 
 
114
 
115
+ 1. Download `anima_pose_preview2.safetensors` into `ComfyUI/models/loras/`.
116
+ 2. Copy both folders from `comfyui/` in this repo into `ComfyUI/custom_nodes/`:
117
+ `anima_control_lora/` and `ComfyUI-anima-pose-control/`. Restart ComfyUI. ComfyUI-Manager installs
118
+ the second node's `requirements.txt` automatically; otherwise:
119
+ `pip install -r ComfyUI-anima-pose-control/requirements.txt` (rtmlib, opencv-python, onnxruntime,
120
+ numpy; torch and Pillow come with ComfyUI).
121
+ 3. Load a workflow from the menu. `pose_control_demo.json` is the easiest — control vs no-control side
122
+ by side. Also included: `pose_control.json` (simple), `pose_control_edit.json` (single node, pick
123
+ the skeleton style), `pose_control_compare.json` (one pose across every style at once).
124
 
125
+ `anima_pose_preview2.safetensors` holds both the low-rank adapter (`lora.*` keys) and the control
126
+ embedder (`control_embedder.*` keys); `LoraLoaderModelOnly` reads the first set and Anima Control
127
+ Apply reads the second, both pointing at the same file.
128
 
129
+ **Strength.** `0.0` is the base model with no control; `1.0` follows the skeleton (range 0–2). Higher
130
+ tracks the pose more closely but can cost some image quality.
 
 
 
 
 
 
 
131
 
132
+ ## Roadmap
133
 
134
+ **Preview-3** targets the headline weakness: the model only half-reads the skeleton. The thin
135
+ lines-on-black signal seems foreign to it, so a representation bake-off is testing other renders
136
+ (thicker, puppet/segmentation, depth-mannequin) to find what Anima follows best, plus the smaller
137
+ fixes (default strength, dropping noisy hand points, more varied captions). The other half is the
138
+ detector: the one used here was built for photos, not anime, so on art it produces noisy skeletons.
139
+ Preview-3 will most likely wait on a purpose-built **anime pose detector** ("DWPose for anime"),
140
+ then retrain on the winning representation with a lot more dynamic-pose data.
141
 
142
+ **Version 1.0** comes after Preview-3, if it lands clean the first non-preview release, trained on
143
+ a good deal more data again.
 
144
 
145
+ Pose is the first component on a shared control harness for Anima; planned siblings are image-prompt
146
+ (IP-Adapter) and face-identity conditioning.
 
 
147
 
148
  ## License
149
 
 
153
  Cosmos-Predict2 — the [NVIDIA Open Model License](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-license/).
154
 
155
  The **model weights are for non-commercial use only.** Generated images (outputs) are not restricted
156
+ by these terms and may be used commercially. See the bundled [`LICENSE`](./LICENSE) for the full text.
 
157
 
158
  ## Support
159
 
160
+ Building these models means mining and labeling a lot of images and renting GPUs to train on them. If
161
+ they're useful to you and you want to chip in, it's appreciated and never expected:
162
+ https://ko-fi.com/claquasse
163
 
164
  ## Citation
165
 
166
  ```bibtex
167
+ @misc{anima_control_pose_preview2,
168
+ title = {Anima Control --- Pose (Preview-2)},
169
  author = {Claquasse},
170
  year = {2026},
171
+ note = {Preview-2 multi-resolution pose control adapter for Anima v1.0},
172
  howpublished = {\url{https://huggingface.co/Claquasse/Anima-Control-Pose}}
173
  }
174
  ```
anima_control_tools.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e3794f4bba2119c44d51e43846f6a95e101a99b585dec6c7291a46c4cc7ee9ff
3
+ size 25669
anima_pose_preview2.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c10fa11628e9b1bf16dfe095ac5c6dc4ddd9ae77d7fe023d0a1857f7e29c516f
3
+ size 75051096
comfyui/ComfyUI-anima-pose-control/README.md ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ComfyUI-anima-pose-control
2
+
3
+ A single ComfyUI node — **Anima Pose Control** (`AnimaPoseControl`) — that detects a pose from a photo,
4
+ lets you drag the body joints on a mini-canvas in the node, picks a predefined skeleton style, paints the
5
+ styled skeleton inline, and outputs the control image for a pose-control LoRA.
6
+
7
+ ## Install
8
+ Clone into `ComfyUI/custom_nodes/` and restart ComfyUI (ComfyUI-Manager installs `requirements.txt` for you):
9
+ ```bash
10
+ cd ComfyUI/custom_nodes
11
+ git clone <this repo> ComfyUI-anima-pose-control
12
+ ComfyUI/venv/bin/python -m pip install -r ComfyUI-anima-pose-control/requirements.txt
13
+ ```
14
+ Dependencies: `rtmlib` (DWPose Wholebody-133 detection — same model/convention as the training data),
15
+ `opencv-python`, `onnxruntime`, `numpy`. torch / Pillow are provided by ComfyUI.
16
+
17
+ ## Node: Anima Pose Control
18
+ **Inputs:** `image` (optional) · widgets `style` (R0_thin / R1_thick / R2_puppet / heatmap),
19
+ `hands` / `face` / `feet` toggles, `redetect`, `resolution`, hidden `pose_json`.
20
+ **Outputs:** `skeleton` (IMAGE) · `keypoints` (POSE_KEYPOINT).
21
+
22
+ ### Use
23
+ 1. Connect a reference photo to `image`, **Queue** once (`redetect` on) — detects the pose, fills the canvas,
24
+ paints the styled skeleton on the node.
25
+ 2. **Mute** the node's re-detect (toggle `redetect` off — auto-set when you drag) and drag body joints in the
26
+ mini-canvas.
27
+ 3. **Queue** — only this node + downstream re-run (detection is skipped). Output feeds `ImageScale → VAEEncode`.
28
+
29
+ ### Styles & toggles
30
+ `R0_thin` = DWPose-style thin skeleton (matches typical pose-LoRA training); `R1_thick` / `R2_puppet` =
31
+ thicker limbs; `heatmap` = gaussian joint blobs. `hands`/`face`/`feet` add/remove those parts (R1/R2/heatmap
32
+ are body-only; `feet` adds foot joints). No color picker — the palette is the fixed DWPose palette.
33
+
34
+ Pure-Python renderer (`pose_render.py`) is the single source of truth and is unit-tested headless.
comfyui/ComfyUI-anima-pose-control/__init__.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ from .node import AnimaPoseControl
2
+
3
+ NODE_CLASS_MAPPINGS = {"AnimaPoseControl": AnimaPoseControl}
4
+ NODE_DISPLAY_NAME_MAPPINGS = {"AnimaPoseControl": "Anima Pose Control (detect+edit+style)"}
5
+ WEB_DIRECTORY = "./js"
6
+ __all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS", "WEB_DIRECTORY"]
comfyui/ComfyUI-anima-pose-control/detect.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """DWPose detection wrapper. Uses rtmlib Wholebody — the same model + 133-keypoint convention
2
+ v2 trained on (render_skeletons.py / eval used the identical call). Injectable for tests.
3
+
4
+ Wholebody-133: body 0-16, feet 17-22, face 23-90, L-hand 91-111, R-hand 112-132."""
5
+ import numpy as np
6
+
7
+
8
+ class NoPersonError(RuntimeError):
9
+ pass
10
+
11
+
12
+ _POSE = None
13
+
14
+
15
+ def _default_estimator(resolution):
16
+ """Lazily build the rtmlib Wholebody estimator (ComfyUI venv). Returns a callable
17
+ img_rgb -> (kp[N,133,2], sc[N,133]) in pixel coords on a `resolution`-square canvas."""
18
+ global _POSE
19
+ if _POSE is None:
20
+ from rtmlib import Wholebody
21
+ _POSE = Wholebody(to_openpose=False, mode="balanced", backend="onnxruntime", device="cpu")
22
+ pose = _POSE
23
+ res = int(resolution)
24
+
25
+ def run(img):
26
+ import cv2
27
+ bgr = cv2.cvtColor(cv2.resize(img, (res, res)), cv2.COLOR_RGB2BGR)
28
+ return pose(bgr) # (N,133,2), (N,133)
29
+ return run
30
+
31
+
32
+ def detect(image_rgb, resolution, estimator=None):
33
+ est = _default_estimator(resolution) if estimator is None else estimator
34
+ kp_all, sc_all = est(image_rgb)
35
+ if kp_all is None or len(kp_all) == 0:
36
+ raise NoPersonError("no person detected")
37
+ return np.asarray(kp_all[0], float), np.asarray(sc_all[0], float)
comfyui/ComfyUI-anima-pose-control/js/anima_pose_control.js ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // js/anima_pose_control.js — Anima Pose Control: hide the machine-managed pose_json text box.
2
+ // (Joint-drag editing removed for now; the node shows the styled skeleton via ComfyUI's image preview.)
3
+ import { app } from "../../scripts/app.js";
4
+
5
+ app.registerExtension({
6
+ name: "anima.pose.control",
7
+ async beforeRegisterNodeDef(nodeType, nodeData) {
8
+ if (nodeData.name !== "AnimaPoseControl") return;
9
+ const onNodeCreated = nodeType.prototype.onNodeCreated;
10
+ nodeType.prototype.onNodeCreated = function () {
11
+ onNodeCreated?.apply(this, arguments);
12
+ const pj = this.widgets?.find((w) => w.name === "pose_json");
13
+ if (pj) { pj.hidden = true; pj.computeSize = () => [0, -4]; pj.type = "hidden_pose_json"; }
14
+ };
15
+ },
16
+ });
comfyui/ComfyUI-anima-pose-control/keypoints.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Codec between the JS canvas pose JSON and numpy keypoint arrays, plus body-17 edit merge."""
2
+ import json
3
+ import numpy as np
4
+
5
+
6
+ def to_json(kp, sc, canvas):
7
+ kp = np.asarray(kp, float); sc = np.asarray(sc, float)
8
+ pts = [[float(kp[i][0]), float(kp[i][1]), float(sc[i])] for i in range(133)]
9
+ return json.dumps({"canvas": int(canvas), "points": pts})
10
+
11
+
12
+ def from_json(s):
13
+ d = json.loads(s)
14
+ pts = np.asarray(d["points"], float) # (133,3)
15
+ return pts[:, :2].copy(), pts[:, 2].copy(), int(d["canvas"])
16
+
17
+
18
+ def merge_body(full_kp, full_sc, body_kp):
19
+ out = np.asarray(full_kp, float).copy()
20
+ out[:17] = np.asarray(body_kp, float)
21
+ return out
comfyui/ComfyUI-anima-pose-control/node.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """AnimaPoseControl ComfyUI node: detect -> edit (JS) -> styled skeleton -> control IMAGE."""
2
+ import numpy as np
3
+
4
+ try: # keep the helper importable without the package context (tests)
5
+ from .pose_render import render, STYLES
6
+ from .keypoints import from_json, to_json
7
+ from .detect import detect
8
+ except ImportError: # flat import when running tests inside the package dir
9
+ from pose_render import render, STYLES
10
+ from keypoints import from_json, to_json
11
+ from detect import detect
12
+
13
+
14
+ def compose(image, pose_json, style, hands, face, feet, redetect, resolution, estimator=None):
15
+ """Pure branch logic. Returns (skeleton uint8 [H,W,3] RGB, pose_json_out str)."""
16
+ if redetect and image is not None:
17
+ kp, sc = detect(image, int(resolution), estimator=estimator)
18
+ elif pose_json and pose_json.strip():
19
+ kp, sc, _ = from_json(pose_json)
20
+ elif image is not None:
21
+ kp, sc = detect(image, int(resolution), estimator=estimator) # no pose yet -> detect
22
+ else:
23
+ raise ValueError("AnimaPoseControl: no pose to render — connect an image, or Queue once with redetect on first")
24
+ img = render(kp, sc, style, int(resolution), hands=hands, face=face, feet=feet)
25
+ return img, to_json(kp, sc, int(resolution))
26
+
27
+
28
+ class AnimaPoseControl:
29
+ @classmethod
30
+ def INPUT_TYPES(cls):
31
+ return {
32
+ "required": {
33
+ "style": (list(STYLES),),
34
+ "hands": ("BOOLEAN", {"default": True}),
35
+ "face": ("BOOLEAN", {"default": True}),
36
+ "feet": ("BOOLEAN", {"default": True}),
37
+ "redetect": ("BOOLEAN", {"default": True}),
38
+ "resolution": ("INT", {"default": 768, "min": 256, "max": 2048, "step": 64}),
39
+ "pose_json": ("STRING", {"multiline": True, "default": ""}),
40
+ },
41
+ "optional": {"image": ("IMAGE",)},
42
+ }
43
+
44
+ RETURN_TYPES = ("IMAGE", "POSE_KEYPOINT")
45
+ RETURN_NAMES = ("skeleton", "keypoints")
46
+ FUNCTION = "run"
47
+ OUTPUT_NODE = True
48
+ CATEGORY = "Anima/pose"
49
+
50
+ def run(self, style, hands, face, feet, redetect, resolution, pose_json, image=None):
51
+ import torch
52
+ img_in = None
53
+ if image is not None:
54
+ img_in = (image[0].cpu().numpy() * 255).astype(np.uint8) # ComfyUI IMAGE -> HWC uint8
55
+ skel, pj = compose(img_in, pose_json, style, hands, face, feet, redetect, resolution)
56
+ t = torch.from_numpy(skel.astype(np.float32) / 255.0)[None, ...]
57
+ import json
58
+ kpts = json.loads(pj)
59
+ # Show the styled render inline via ComfyUI's standard image preview.
60
+ return {"ui": {"images": _save_preview(skel), "pose_json": [pj]}, "result": (t, kpts)}
61
+
62
+
63
+ def _save_preview(skel_uint8):
64
+ """Write the styled skeleton to ComfyUI's temp dir; return a /view descriptor for the JS to load."""
65
+ import folder_paths, os, uuid
66
+ from PIL import Image
67
+ d = folder_paths.get_temp_directory(); os.makedirs(d, exist_ok=True)
68
+ fn = "anima_pose_%s.png" % uuid.uuid4().hex[:8]
69
+ Image.fromarray(skel_uint8).save(os.path.join(d, fn))
70
+ return [{"filename": fn, "subfolder": "", "type": "temp"}]
comfyui/ComfyUI-anima-pose-control/pose_render.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Styled pose-skeleton renderer for AnimaPoseControl. Pure numpy + cv2 (no torch).
2
+ Single source of truth for the predefined skeleton looks.
3
+ Wholebody-133: body 0-16, feet 17-22, face 23-90, L-hand 91-111, R-hand 112-132."""
4
+ import numpy as np
5
+ import cv2
6
+
7
+ BODY = list(range(17)); FEET = list(range(17, 23)); FACE = list(range(23, 91)); HAND = list(range(91, 133))
8
+ COCO_LIMBS = [(5, 7), (7, 9), (6, 8), (8, 10), (11, 13), (13, 15), (12, 14), (14, 16),
9
+ (5, 6), (11, 12), (5, 11), (6, 12), (0, 5), (0, 6)]
10
+ _PAL = [(255, 0, 0), (255, 128, 0), (255, 255, 0), (128, 255, 0), (0, 255, 0), (0, 255, 128), (0, 255, 255),
11
+ (0, 128, 255), (0, 0, 255), (128, 0, 255), (255, 0, 255), (255, 0, 128), (180, 180, 180), (220, 220, 220)]
12
+ LIMB_COLOR = {l: _PAL[i % len(_PAL)] for i, l in enumerate(COCO_LIMBS)}
13
+ JOINT_COLOR = [_PAL[i % len(_PAL)] for i in range(17)]
14
+ STYLES = ("R0_thin", "R1_thick", "R2_puppet", "heatmap")
15
+ _W = {"R0_thin": {"stick": 2, "joint": 3}, "R1_thick": {"stick": 8, "joint": 6}, "R2_puppet": {"stick": 22, "joint": 11}, "heatmap": {"stick": 2, "joint": 3}}
16
+
17
+
18
+ def _toggle(sc, hands, face, feet):
19
+ sc = np.asarray(sc, float).copy()
20
+ if not hands: sc[HAND] = 0.0
21
+ if not face: sc[FACE] = 0.0
22
+ if not feet: sc[FEET] = 0.0
23
+ return sc
24
+
25
+
26
+ def render(kp, sc, style, resolution, hands=True, face=True, feet=True, kpt_thr=0.3):
27
+ if style not in STYLES:
28
+ raise ValueError(f"unknown style {style!r}")
29
+ H = W = int(resolution)
30
+ kp = np.asarray(kp, float); sc = _toggle(sc, hands, face, feet)
31
+ if style == "heatmap":
32
+ return _heatmap(kp, sc, H, W, feet, kpt_thr)
33
+ cfg = _W[style]; cv = np.zeros((H, W, 3), np.uint8)
34
+ for a, b in COCO_LIMBS:
35
+ if sc[a] >= kpt_thr and sc[b] >= kpt_thr:
36
+ cv2.line(cv, (int(kp[a][0]), int(kp[a][1])), (int(kp[b][0]), int(kp[b][1])), LIMB_COLOR[(a, b)], cfg["stick"])
37
+ for i in BODY:
38
+ if sc[i] >= kpt_thr:
39
+ cv2.circle(cv, (int(kp[i][0]), int(kp[i][1])), cfg["joint"], (255, 255, 255), -1)
40
+ for i in FEET:
41
+ if sc[i] >= kpt_thr:
42
+ cv2.circle(cv, (int(kp[i][0]), int(kp[i][1])), max(1, cfg["joint"] // 2), (255, 255, 255), -1)
43
+ if style == "R0_thin": # only R0 draws hands + face (DWPose-style small visible dots)
44
+ for i in HAND:
45
+ if sc[i] >= kpt_thr:
46
+ cv2.circle(cv, (int(kp[i][0]), int(kp[i][1])), 2, (0, 255, 255), -1)
47
+ for i in FACE:
48
+ if sc[i] >= kpt_thr:
49
+ cv2.circle(cv, (int(kp[i][0]), int(kp[i][1])), 2, (255, 255, 255), -1)
50
+ return cv
51
+
52
+
53
+ def _heatmap(kp, sc, H, W, feet, thr, sig=11):
54
+ acc = np.zeros((H, W, 3), np.float32)
55
+ for i in BODY + (FEET if feet else []):
56
+ if sc[i] >= thr:
57
+ x, y = int(round(kp[i][0])), int(round(kp[i][1]))
58
+ if 0 <= x < W and 0 <= y < H:
59
+ b = np.zeros((H, W), np.float32); b[y, x] = 1.0
60
+ b = cv2.GaussianBlur(b, (0, 0), sig); b /= (b.max() + 1e-9)
61
+ acc += b[..., None] * np.array(JOINT_COLOR[i % 17], np.float32)
62
+ return np.clip(acc, 0, 255).astype(np.uint8)
comfyui/ComfyUI-anima-pose-control/requirements.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # ComfyUI-anima-pose-control runtime dependencies.
2
+ # ComfyUI already provides torch, Pillow and numpy; these are the extras the node needs.
3
+ # ComfyUI-Manager installs this automatically on first load.
4
+ rtmlib
5
+ opencv-python
6
+ onnxruntime
7
+ numpy
pose_control.json CHANGED
@@ -1,6 +1,8 @@
1
  {
2
- "last_node_id": 15,
3
- "last_link_id": 16,
 
 
4
  "nodes": [
5
  {
6
  "id": 1,
@@ -10,21 +12,41 @@
10
  40
11
  ],
12
  "size": [
13
- 315,
14
- 130
15
  ],
16
  "flags": {},
17
- "order": 0,
18
  "mode": 0,
19
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  "outputs": [
21
  {
 
22
  "name": "MODEL",
23
  "type": "MODEL",
 
24
  "links": [
25
  1
26
- ],
27
- "slot_index": 0
28
  }
29
  ],
30
  "properties": {
@@ -37,178 +59,262 @@
37
  },
38
  {
39
  "id": 2,
40
- "type": "CLIPLoader",
41
  "pos": [
42
  40,
43
- 200
44
  ],
45
  "size": [
46
- 315,
47
- 130
48
  ],
49
  "flags": {},
50
- "order": 1,
51
  "mode": 0,
52
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  "outputs": [
54
  {
55
- "name": "CLIP",
56
- "type": "CLIP",
 
 
57
  "links": [
58
- 2,
59
- 3
60
- ],
61
- "slot_index": 0
62
  }
63
  ],
64
  "properties": {
65
- "Node name for S&R": "CLIPLoader"
66
  },
67
  "widgets_values": [
68
- "qwen_3_06b_base.safetensors",
69
- "stable_diffusion",
70
- "default"
71
  ]
72
  },
73
  {
74
  "id": 3,
75
- "type": "VAELoader",
76
  "pos": [
77
  40,
78
- 360
79
  ],
80
  "size": [
81
- 315,
82
- 130
83
  ],
84
  "flags": {},
85
- "order": 2,
86
  "mode": 0,
87
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  "outputs": [
89
  {
90
- "name": "VAE",
91
- "type": "VAE",
 
 
92
  "links": [
93
- 4,
94
- 5
95
- ],
96
- "slot_index": 0
97
  }
98
  ],
99
  "properties": {
100
- "Node name for S&R": "VAELoader"
101
  },
102
  "widgets_values": [
103
- "qwen_image_vae.safetensors"
 
 
104
  ]
105
  },
106
  {
107
  "id": 4,
108
- "type": "LoadImage",
109
  "pos": [
110
  40,
111
- 520
112
  ],
113
  "size": [
114
- 315,
115
- 130
116
  ],
117
  "flags": {},
118
- "order": 3,
119
  "mode": 0,
120
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
121
  "outputs": [
122
  {
123
- "name": "IMAGE",
124
- "type": "IMAGE",
 
 
125
  "links": [
126
- 6
127
- ],
128
- "slot_index": 0
129
- },
130
- {
131
- "name": "MASK",
132
- "type": "MASK",
133
- "links": null,
134
- "slot_index": 1
135
  }
136
  ],
137
  "properties": {
138
- "Node name for S&R": "LoadImage"
139
  },
140
  "widgets_values": [
141
- "skeleton.png",
142
- "image"
143
  ]
144
  },
145
  {
146
  "id": 5,
147
  "type": "CLIPTextEncode",
148
  "pos": [
149
- 400,
150
- 40
151
  ],
152
  "size": [
153
- 315,
154
- 130
155
  ],
156
  "flags": {},
157
- "order": 4,
158
  "mode": 0,
159
  "inputs": [
160
  {
 
161
  "name": "clip",
162
  "type": "CLIP",
163
  "link": 2
 
 
 
 
 
 
 
 
 
164
  }
165
  ],
166
  "outputs": [
167
  {
 
168
  "name": "CONDITIONING",
169
  "type": "CONDITIONING",
 
170
  "links": [
171
  12
172
- ],
173
- "slot_index": 0
174
  }
175
  ],
176
  "properties": {
177
  "Node name for S&R": "CLIPTextEncode"
178
  },
179
  "widgets_values": [
180
- "newest, masterpiece, best quality, score_9\n\n1girl, solo, standing, simple background"
181
- ]
 
182
  },
183
  {
184
  "id": 6,
185
  "type": "CLIPTextEncode",
186
  "pos": [
187
- 400,
188
- 200
189
  ],
190
  "size": [
191
- 315,
192
- 130
193
  ],
194
  "flags": {},
195
- "order": 5,
196
  "mode": 0,
197
  "inputs": [
198
  {
 
199
  "name": "clip",
200
  "type": "CLIP",
201
  "link": 3
 
 
 
 
 
 
 
 
 
202
  }
203
  ],
204
  "outputs": [
205
  {
 
206
  "name": "CONDITIONING",
207
  "type": "CONDITIONING",
 
208
  "links": [
209
  13
210
- ],
211
- "slot_index": 0
212
  }
213
  ],
214
  "properties": {
@@ -216,76 +322,253 @@
216
  },
217
  "widgets_values": [
218
  "worst quality, low quality, score_1, score_2, blurry, jpeg artifacts"
219
- ]
 
220
  },
221
  {
222
  "id": 7,
223
- "type": "LoraLoaderModelOnly",
224
  "pos": [
225
- 400,
226
- 360
227
  ],
228
  "size": [
229
- 315,
230
- 130
231
  ],
232
  "flags": {},
233
- "order": 6,
234
  "mode": 0,
235
  "inputs": [
236
  {
237
- "name": "model",
238
- "type": "MODEL",
239
- "link": 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  }
241
  ],
242
  "outputs": [
243
  {
244
- "name": "MODEL",
245
- "type": "MODEL",
 
 
246
  "links": [
247
- 9
248
- ],
249
- "slot_index": 0
250
  }
251
  ],
252
  "properties": {
253
- "Node name for S&R": "LoraLoaderModelOnly"
254
  },
255
  "widgets_values": [
256
- "adapter_model.safetensors",
257
- 1.0
 
258
  ]
259
  },
260
  {
261
  "id": 8,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
262
  "type": "ImageScale",
263
  "pos": [
264
- 400,
265
- 520
266
  ],
267
  "size": [
268
- 315,
269
  130
270
  ],
271
  "flags": {},
272
- "order": 7,
273
  "mode": 0,
274
  "inputs": [
275
  {
 
276
  "name": "image",
277
  "type": "IMAGE",
278
- "link": 6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
279
  }
280
  ],
281
  "outputs": [
282
  {
 
283
  "name": "IMAGE",
284
  "type": "IMAGE",
 
285
  "links": [
286
- 7
287
- ],
288
- "slot_index": 0
289
  }
290
  ],
291
  "properties": {
@@ -293,45 +576,48 @@
293
  },
294
  "widgets_values": [
295
  "nearest-exact",
296
- 512,
297
- 512,
298
  "disabled"
299
  ]
300
  },
301
  {
302
- "id": 9,
303
  "type": "VAEEncode",
304
  "pos": [
305
- 760,
306
- 520
307
  ],
308
  "size": [
309
- 315,
310
- 130
311
  ],
312
  "flags": {},
313
- "order": 8,
314
  "mode": 0,
315
  "inputs": [
316
  {
 
317
  "name": "pixels",
318
  "type": "IMAGE",
319
- "link": 7
320
  },
321
  {
 
322
  "name": "vae",
323
  "type": "VAE",
324
- "link": 4
325
  }
326
  ],
327
  "outputs": [
328
  {
 
329
  "name": "LATENT",
330
  "type": "LATENT",
 
331
  "links": [
332
- 8
333
- ],
334
- "slot_index": 0
335
  }
336
  ],
337
  "properties": {
@@ -340,65 +626,87 @@
340
  "widgets_values": []
341
  },
342
  {
343
- "id": 10,
344
  "type": "AnimaControlApply",
345
  "pos": [
346
- 760,
347
- 360
348
  ],
349
  "size": [
350
- 315,
351
- 130
352
  ],
353
  "flags": {},
354
- "order": 9,
355
  "mode": 0,
356
  "inputs": [
357
  {
 
358
  "name": "model",
359
  "type": "MODEL",
360
- "link": 9
361
  },
362
  {
 
363
  "name": "control_latent",
364
  "type": "LATENT",
365
- "link": 8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
  }
367
  ],
368
  "outputs": [
369
  {
 
370
  "name": "MODEL",
371
  "type": "MODEL",
 
372
  "links": [
373
  10
374
- ],
375
- "slot_index": 0
376
  }
377
  ],
378
  "properties": {
379
  "Node name for S&R": "AnimaControlApply"
380
  },
381
  "widgets_values": [
382
- "adapter_model.safetensors",
383
- 1.0
384
  ]
385
  },
386
  {
387
- "id": 11,
388
  "type": "CFGZeroStar",
389
  "pos": [
390
- 1120,
391
- 360
392
  ],
393
  "size": [
394
- 315,
395
- 130
396
  ],
397
  "flags": {},
398
- "order": 10,
399
  "mode": 0,
400
  "inputs": [
401
  {
 
402
  "name": "model",
403
  "type": "MODEL",
404
  "link": 10
@@ -406,12 +714,13 @@
406
  ],
407
  "outputs": [
408
  {
409
- "name": "MODEL",
 
410
  "type": "MODEL",
 
411
  "links": [
412
  11
413
- ],
414
- "slot_index": 0
415
  }
416
  ],
417
  "properties": {
@@ -420,132 +729,160 @@
420
  "widgets_values": []
421
  },
422
  {
423
- "id": 12,
424
- "type": "EmptyLatentImage",
425
- "pos": [
426
- 760,
427
- 40
428
- ],
429
- "size": [
430
- 315,
431
- 130
432
- ],
433
- "flags": {},
434
- "order": 11,
435
- "mode": 0,
436
- "inputs": [],
437
- "outputs": [
438
- {
439
- "name": "LATENT",
440
- "type": "LATENT",
441
- "links": [
442
- 14
443
- ],
444
- "slot_index": 0
445
- }
446
- ],
447
- "properties": {
448
- "Node name for S&R": "EmptyLatentImage"
449
- },
450
- "widgets_values": [
451
- 512,
452
- 512,
453
- 1
454
- ]
455
- },
456
- {
457
- "id": 13,
458
  "type": "KSampler",
459
  "pos": [
460
- 1120,
461
- 40
462
  ],
463
  "size": [
464
- 315,
465
- 130
466
  ],
467
  "flags": {},
468
- "order": 12,
469
  "mode": 0,
470
  "inputs": [
471
  {
 
472
  "name": "model",
473
  "type": "MODEL",
474
  "link": 11
475
  },
476
  {
 
477
  "name": "positive",
478
  "type": "CONDITIONING",
479
  "link": 12
480
  },
481
  {
 
482
  "name": "negative",
483
  "type": "CONDITIONING",
484
  "link": 13
485
  },
486
  {
 
487
  "name": "latent_image",
488
  "type": "LATENT",
489
  "link": 14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
490
  }
491
  ],
492
  "outputs": [
493
  {
 
494
  "name": "LATENT",
495
  "type": "LATENT",
 
496
  "links": [
497
  15
498
- ],
499
- "slot_index": 0
500
  }
501
  ],
502
  "properties": {
503
  "Node name for S&R": "KSampler"
504
  },
505
  "widgets_values": [
506
- 42,
507
  "fixed",
508
  30,
509
- 4.0,
510
  "er_sde",
511
  "simple",
512
- 1.0
513
  ]
514
  },
515
  {
516
- "id": 14,
517
  "type": "VAEDecode",
518
  "pos": [
519
- 1480,
520
- 40
521
  ],
522
  "size": [
523
- 315,
524
- 130
525
  ],
526
  "flags": {},
527
- "order": 13,
528
  "mode": 0,
529
  "inputs": [
530
  {
 
531
  "name": "samples",
532
  "type": "LATENT",
533
  "link": 15
534
  },
535
  {
 
536
  "name": "vae",
537
  "type": "VAE",
538
- "link": 5
539
  }
540
  ],
541
  "outputs": [
542
  {
 
543
  "name": "IMAGE",
544
  "type": "IMAGE",
 
545
  "links": [
546
- 16
547
- ],
548
- "slot_index": 0
549
  }
550
  ],
551
  "properties": {
@@ -554,24 +891,34 @@
554
  "widgets_values": []
555
  },
556
  {
557
- "id": 15,
558
  "type": "SaveImage",
559
  "pos": [
560
- 1480,
561
- 200
562
  ],
563
  "size": [
564
- 315,
565
- 130
566
  ],
567
  "flags": {},
568
- "order": 14,
569
  "mode": 0,
570
  "inputs": [
571
  {
 
572
  "name": "images",
573
  "type": "IMAGE",
574
- "link": 16
 
 
 
 
 
 
 
 
 
575
  }
576
  ],
577
  "outputs": [],
@@ -579,8 +926,9 @@
579
  "Node name for S&R": "SaveImage"
580
  },
581
  "widgets_values": [
582
- "pose_control"
583
- ]
 
584
  }
585
  ],
586
  "links": [
@@ -588,13 +936,13 @@
588
  1,
589
  1,
590
  0,
591
- 7,
592
  0,
593
  "MODEL"
594
  ],
595
  [
596
  2,
597
- 2,
598
  0,
599
  5,
600
  0,
@@ -602,7 +950,7 @@
602
  ],
603
  [
604
  3,
605
- 2,
606
  0,
607
  6,
608
  0,
@@ -610,73 +958,73 @@
610
  ],
611
  [
612
  4,
613
- 3,
614
  0,
615
  9,
616
- 1,
617
- "VAE"
618
  ],
619
  [
620
  5,
621
- 3,
622
  0,
623
- 14,
624
- 1,
625
- "VAE"
626
  ],
627
  [
628
  6,
629
- 4,
630
  0,
631
- 8,
632
  0,
633
  "IMAGE"
634
  ],
635
  [
636
  7,
637
- 8,
638
- 0,
639
- 9,
640
  0,
641
- "IMAGE"
 
 
642
  ],
643
  [
644
  8,
645
- 9,
646
  0,
647
- 10,
648
- 1,
649
- "LATENT"
650
  ],
651
  [
652
  9,
653
- 7,
654
- 0,
655
- 10,
656
  0,
657
- "MODEL"
 
 
658
  ],
659
  [
660
  10,
661
- 10,
662
  0,
663
- 11,
664
  0,
665
  "MODEL"
666
  ],
667
  [
668
  11,
669
- 11,
670
- 0,
671
  13,
672
  0,
 
 
673
  "MODEL"
674
  ],
675
  [
676
  12,
677
  5,
678
  0,
679
- 13,
680
  1,
681
  "CONDITIONING"
682
  ],
@@ -684,37 +1032,53 @@
684
  13,
685
  6,
686
  0,
687
- 13,
688
  2,
689
  "CONDITIONING"
690
  ],
691
  [
692
  14,
693
- 12,
694
  0,
695
- 13,
696
  3,
697
  "LATENT"
698
  ],
699
  [
700
  15,
701
- 13,
702
- 0,
703
  14,
704
  0,
 
 
705
  "LATENT"
706
  ],
707
  [
708
  16,
709
- 14,
710
  0,
711
  15,
 
 
 
 
 
 
 
 
712
  0,
713
  "IMAGE"
714
  ]
715
  ],
716
  "groups": [],
717
  "config": {},
718
- "extra": {},
 
 
 
 
 
 
 
 
719
  "version": 0.4
720
  }
 
1
  {
2
+ "id": "release",
3
+ "revision": 0,
4
+ "last_node_id": 16,
5
+ "last_link_id": 17,
6
  "nodes": [
7
  {
8
  "id": 1,
 
12
  40
13
  ],
14
  "size": [
15
+ 300,
16
+ 120
17
  ],
18
  "flags": {},
19
+ "order": 1,
20
  "mode": 0,
21
+ "inputs": [
22
+ {
23
+ "localized_name": "unet_name",
24
+ "name": "unet_name",
25
+ "type": "COMBO",
26
+ "widget": {
27
+ "name": "unet_name"
28
+ },
29
+ "link": null
30
+ },
31
+ {
32
+ "localized_name": "weight_dtype",
33
+ "name": "weight_dtype",
34
+ "type": "COMBO",
35
+ "widget": {
36
+ "name": "weight_dtype"
37
+ },
38
+ "link": null
39
+ }
40
+ ],
41
  "outputs": [
42
  {
43
+ "localized_name": "MODEL",
44
  "name": "MODEL",
45
  "type": "MODEL",
46
+ "slot_index": 0,
47
  "links": [
48
  1
49
+ ]
 
50
  }
51
  ],
52
  "properties": {
 
59
  },
60
  {
61
  "id": 2,
62
+ "type": "LoraLoaderModelOnly",
63
  "pos": [
64
  40,
65
+ 180
66
  ],
67
  "size": [
68
+ 300,
69
+ 120
70
  ],
71
  "flags": {},
72
+ "order": 2,
73
  "mode": 0,
74
+ "inputs": [
75
+ {
76
+ "localized_name": "model",
77
+ "name": "model",
78
+ "type": "MODEL",
79
+ "link": 1
80
+ },
81
+ {
82
+ "localized_name": "lora_name",
83
+ "name": "lora_name",
84
+ "type": "COMBO",
85
+ "widget": {
86
+ "name": "lora_name"
87
+ },
88
+ "link": null
89
+ },
90
+ {
91
+ "localized_name": "strength_model",
92
+ "name": "strength_model",
93
+ "type": "FLOAT",
94
+ "widget": {
95
+ "name": "strength_model"
96
+ },
97
+ "link": null
98
+ }
99
+ ],
100
  "outputs": [
101
  {
102
+ "localized_name": "MODEL",
103
+ "name": "MODEL",
104
+ "type": "MODEL",
105
+ "slot_index": 0,
106
  "links": [
107
+ 8
108
+ ]
 
 
109
  }
110
  ],
111
  "properties": {
112
+ "Node name for S&R": "LoraLoaderModelOnly"
113
  },
114
  "widgets_values": [
115
+ "anima_pose_preview2.safetensors",
116
+ 1
 
117
  ]
118
  },
119
  {
120
  "id": 3,
121
+ "type": "CLIPLoader",
122
  "pos": [
123
  40,
124
+ 320
125
  ],
126
  "size": [
127
+ 300,
128
+ 120
129
  ],
130
  "flags": {},
131
+ "order": 3,
132
  "mode": 0,
133
+ "inputs": [
134
+ {
135
+ "localized_name": "clip_name",
136
+ "name": "clip_name",
137
+ "type": "COMBO",
138
+ "widget": {
139
+ "name": "clip_name"
140
+ },
141
+ "link": null
142
+ },
143
+ {
144
+ "localized_name": "type",
145
+ "name": "type",
146
+ "type": "COMBO",
147
+ "widget": {
148
+ "name": "type"
149
+ },
150
+ "link": null
151
+ },
152
+ {
153
+ "localized_name": "device",
154
+ "name": "device",
155
+ "shape": 7,
156
+ "type": "COMBO",
157
+ "widget": {
158
+ "name": "device"
159
+ },
160
+ "link": null
161
+ }
162
+ ],
163
  "outputs": [
164
  {
165
+ "localized_name": "CLIP",
166
+ "name": "CLIP",
167
+ "type": "CLIP",
168
+ "slot_index": 0,
169
  "links": [
170
+ 2,
171
+ 3
172
+ ]
 
173
  }
174
  ],
175
  "properties": {
176
+ "Node name for S&R": "CLIPLoader"
177
  },
178
  "widgets_values": [
179
+ "qwen_3_06b_base.safetensors",
180
+ "stable_diffusion",
181
+ "default"
182
  ]
183
  },
184
  {
185
  "id": 4,
186
+ "type": "VAELoader",
187
  "pos": [
188
  40,
189
+ 450
190
  ],
191
  "size": [
192
+ 300,
193
+ 120
194
  ],
195
  "flags": {},
196
+ "order": 4,
197
  "mode": 0,
198
+ "inputs": [
199
+ {
200
+ "localized_name": "vae_name",
201
+ "name": "vae_name",
202
+ "type": "COMBO",
203
+ "widget": {
204
+ "name": "vae_name"
205
+ },
206
+ "link": null
207
+ }
208
+ ],
209
  "outputs": [
210
  {
211
+ "localized_name": "VAE",
212
+ "name": "VAE",
213
+ "type": "VAE",
214
+ "slot_index": 0,
215
  "links": [
216
+ 7,
217
+ 16
218
+ ]
 
 
 
 
 
 
219
  }
220
  ],
221
  "properties": {
222
+ "Node name for S&R": "VAELoader"
223
  },
224
  "widgets_values": [
225
+ "qwen_image_vae.safetensors"
 
226
  ]
227
  },
228
  {
229
  "id": 5,
230
  "type": "CLIPTextEncode",
231
  "pos": [
232
+ 40,
233
+ 560
234
  ],
235
  "size": [
236
+ 300,
237
+ 120
238
  ],
239
  "flags": {},
240
+ "order": 5,
241
  "mode": 0,
242
  "inputs": [
243
  {
244
+ "localized_name": "clip",
245
  "name": "clip",
246
  "type": "CLIP",
247
  "link": 2
248
+ },
249
+ {
250
+ "localized_name": "text",
251
+ "name": "text",
252
+ "type": "STRING",
253
+ "widget": {
254
+ "name": "text"
255
+ },
256
+ "link": null
257
  }
258
  ],
259
  "outputs": [
260
  {
261
+ "localized_name": "CONDITIONING",
262
  "name": "CONDITIONING",
263
  "type": "CONDITIONING",
264
+ "slot_index": 0,
265
  "links": [
266
  12
267
+ ]
 
268
  }
269
  ],
270
  "properties": {
271
  "Node name for S&R": "CLIPTextEncode"
272
  },
273
  "widgets_values": [
274
+ "newest, masterpiece, best quality, score_9, safe\n\n1girl, solo, simple background"
275
+ ],
276
+ "title": "prompt"
277
  },
278
  {
279
  "id": 6,
280
  "type": "CLIPTextEncode",
281
  "pos": [
282
+ 40,
283
+ 760
284
  ],
285
  "size": [
286
+ 300,
287
+ 120
288
  ],
289
  "flags": {},
290
+ "order": 6,
291
  "mode": 0,
292
  "inputs": [
293
  {
294
+ "localized_name": "clip",
295
  "name": "clip",
296
  "type": "CLIP",
297
  "link": 3
298
+ },
299
+ {
300
+ "localized_name": "text",
301
+ "name": "text",
302
+ "type": "STRING",
303
+ "widget": {
304
+ "name": "text"
305
+ },
306
+ "link": null
307
  }
308
  ],
309
  "outputs": [
310
  {
311
+ "localized_name": "CONDITIONING",
312
  "name": "CONDITIONING",
313
  "type": "CONDITIONING",
314
+ "slot_index": 0,
315
  "links": [
316
  13
317
+ ]
 
318
  }
319
  ],
320
  "properties": {
 
322
  },
323
  "widgets_values": [
324
  "worst quality, low quality, score_1, score_2, blurry, jpeg artifacts"
325
+ ],
326
+ "title": "negative"
327
  },
328
  {
329
  "id": 7,
330
+ "type": "EmptyLatentImage",
331
  "pos": [
332
+ 40,
333
+ 960
334
  ],
335
  "size": [
336
+ 300,
337
+ 120
338
  ],
339
  "flags": {},
340
+ "order": 7,
341
  "mode": 0,
342
  "inputs": [
343
  {
344
+ "localized_name": "width",
345
+ "name": "width",
346
+ "type": "INT",
347
+ "widget": {
348
+ "name": "width"
349
+ },
350
+ "link": null
351
+ },
352
+ {
353
+ "localized_name": "height",
354
+ "name": "height",
355
+ "type": "INT",
356
+ "widget": {
357
+ "name": "height"
358
+ },
359
+ "link": null
360
+ },
361
+ {
362
+ "localized_name": "batch_size",
363
+ "name": "batch_size",
364
+ "type": "INT",
365
+ "widget": {
366
+ "name": "batch_size"
367
+ },
368
+ "link": null
369
  }
370
  ],
371
  "outputs": [
372
  {
373
+ "localized_name": "LATENT",
374
+ "name": "LATENT",
375
+ "type": "LATENT",
376
+ "slot_index": 0,
377
  "links": [
378
+ 14
379
+ ]
 
380
  }
381
  ],
382
  "properties": {
383
+ "Node name for S&R": "EmptyLatentImage"
384
  },
385
  "widgets_values": [
386
+ 768,
387
+ 768,
388
+ 1
389
  ]
390
  },
391
  {
392
  "id": 8,
393
+ "type": "LoadImage",
394
+ "pos": [
395
+ 380,
396
+ 120
397
+ ],
398
+ "size": [
399
+ 300,
400
+ 314
401
+ ],
402
+ "flags": {},
403
+ "order": 8,
404
+ "mode": 0,
405
+ "inputs": [
406
+ {
407
+ "localized_name": "image",
408
+ "name": "image",
409
+ "type": "COMBO",
410
+ "widget": {
411
+ "name": "image"
412
+ },
413
+ "link": null
414
+ },
415
+ {
416
+ "localized_name": "choose file to upload",
417
+ "name": "upload",
418
+ "type": "IMAGEUPLOAD",
419
+ "widget": {
420
+ "name": "upload"
421
+ },
422
+ "link": null
423
+ }
424
+ ],
425
+ "outputs": [
426
+ {
427
+ "localized_name": "IMAGE",
428
+ "name": "IMAGE",
429
+ "type": "IMAGE",
430
+ "slot_index": 0,
431
+ "links": [
432
+ 4
433
+ ]
434
+ },
435
+ {
436
+ "localized_name": "MASK",
437
+ "name": "MASK",
438
+ "type": "MASK",
439
+ "slot_index": 1,
440
+ "links": []
441
+ }
442
+ ],
443
+ "properties": {
444
+ "Node name for S&R": "LoadImage"
445
+ },
446
+ "widgets_values": [
447
+ "cmp_source.png",
448
+ "image"
449
+ ],
450
+ "title": "reference PHOTO"
451
+ },
452
+ {
453
+ "id": 9,
454
+ "type": "AnimaPoseControl",
455
+ "pos": [
456
+ 680,
457
+ 120
458
+ ],
459
+ "size": [
460
+ 260,
461
+ 200
462
+ ],
463
+ "flags": {},
464
+ "order": 9,
465
+ "mode": 0,
466
+ "properties": {
467
+ "Node name for S&R": "AnimaPoseControl"
468
+ },
469
+ "widgets_values": [
470
+ "R0_thin",
471
+ true,
472
+ true,
473
+ true,
474
+ true,
475
+ 768,
476
+ ""
477
+ ],
478
+ "inputs": [
479
+ {
480
+ "name": "image",
481
+ "type": "IMAGE",
482
+ "link": 4
483
+ }
484
+ ],
485
+ "outputs": [
486
+ {
487
+ "name": "skeleton",
488
+ "type": "IMAGE",
489
+ "links": [
490
+ 5
491
+ ],
492
+ "slot_index": 0
493
+ },
494
+ {
495
+ "name": "keypoints",
496
+ "type": "POSE_KEYPOINT",
497
+ "links": [],
498
+ "slot_index": 1
499
+ }
500
+ ],
501
+ "title": "POSE: detect + style",
502
+ "color": "#533",
503
+ "bgcolor": "#223"
504
+ },
505
+ {
506
+ "id": 10,
507
  "type": "ImageScale",
508
  "pos": [
509
+ 980,
510
+ 120
511
  ],
512
  "size": [
513
+ 300,
514
  130
515
  ],
516
  "flags": {},
517
+ "order": 10,
518
  "mode": 0,
519
  "inputs": [
520
  {
521
+ "localized_name": "image",
522
  "name": "image",
523
  "type": "IMAGE",
524
+ "link": 5
525
+ },
526
+ {
527
+ "localized_name": "upscale_method",
528
+ "name": "upscale_method",
529
+ "type": "COMBO",
530
+ "widget": {
531
+ "name": "upscale_method"
532
+ },
533
+ "link": null
534
+ },
535
+ {
536
+ "localized_name": "width",
537
+ "name": "width",
538
+ "type": "INT",
539
+ "widget": {
540
+ "name": "width"
541
+ },
542
+ "link": null
543
+ },
544
+ {
545
+ "localized_name": "height",
546
+ "name": "height",
547
+ "type": "INT",
548
+ "widget": {
549
+ "name": "height"
550
+ },
551
+ "link": null
552
+ },
553
+ {
554
+ "localized_name": "crop",
555
+ "name": "crop",
556
+ "type": "COMBO",
557
+ "widget": {
558
+ "name": "crop"
559
+ },
560
+ "link": null
561
  }
562
  ],
563
  "outputs": [
564
  {
565
+ "localized_name": "IMAGE",
566
  "name": "IMAGE",
567
  "type": "IMAGE",
568
+ "slot_index": 0,
569
  "links": [
570
+ 6
571
+ ]
 
572
  }
573
  ],
574
  "properties": {
 
576
  },
577
  "widgets_values": [
578
  "nearest-exact",
579
+ 768,
580
+ 768,
581
  "disabled"
582
  ]
583
  },
584
  {
585
+ "id": 11,
586
  "type": "VAEEncode",
587
  "pos": [
588
+ 1280,
589
+ 120
590
  ],
591
  "size": [
592
+ 300,
593
+ 120
594
  ],
595
  "flags": {},
596
+ "order": 11,
597
  "mode": 0,
598
  "inputs": [
599
  {
600
+ "localized_name": "pixels",
601
  "name": "pixels",
602
  "type": "IMAGE",
603
+ "link": 6
604
  },
605
  {
606
+ "localized_name": "vae",
607
  "name": "vae",
608
  "type": "VAE",
609
+ "link": 7
610
  }
611
  ],
612
  "outputs": [
613
  {
614
+ "localized_name": "LATENT",
615
  "name": "LATENT",
616
  "type": "LATENT",
617
+ "slot_index": 0,
618
  "links": [
619
+ 9
620
+ ]
 
621
  }
622
  ],
623
  "properties": {
 
626
  "widgets_values": []
627
  },
628
  {
629
+ "id": 12,
630
  "type": "AnimaControlApply",
631
  "pos": [
632
+ 1580,
633
+ 120
634
  ],
635
  "size": [
636
+ 300,
637
+ 120
638
  ],
639
  "flags": {},
640
+ "order": 12,
641
  "mode": 0,
642
  "inputs": [
643
  {
644
+ "localized_name": "model",
645
  "name": "model",
646
  "type": "MODEL",
647
+ "link": 8
648
  },
649
  {
650
+ "localized_name": "control_latent",
651
  "name": "control_latent",
652
  "type": "LATENT",
653
+ "link": 9
654
+ },
655
+ {
656
+ "localized_name": "control_embedder_path",
657
+ "name": "control_embedder_path",
658
+ "type": "STRING",
659
+ "widget": {
660
+ "name": "control_embedder_path"
661
+ },
662
+ "link": null
663
+ },
664
+ {
665
+ "localized_name": "strength",
666
+ "name": "strength",
667
+ "type": "FLOAT",
668
+ "widget": {
669
+ "name": "strength"
670
+ },
671
+ "link": null
672
  }
673
  ],
674
  "outputs": [
675
  {
676
+ "localized_name": "MODEL",
677
  "name": "MODEL",
678
  "type": "MODEL",
679
+ "slot_index": 0,
680
  "links": [
681
  10
682
+ ]
 
683
  }
684
  ],
685
  "properties": {
686
  "Node name for S&R": "AnimaControlApply"
687
  },
688
  "widgets_values": [
689
+ "anima_pose_preview2.safetensors",
690
+ 1
691
  ]
692
  },
693
  {
694
+ "id": 13,
695
  "type": "CFGZeroStar",
696
  "pos": [
697
+ 1880,
698
+ 120
699
  ],
700
  "size": [
701
+ 300,
702
+ 120
703
  ],
704
  "flags": {},
705
+ "order": 13,
706
  "mode": 0,
707
  "inputs": [
708
  {
709
+ "localized_name": "model",
710
  "name": "model",
711
  "type": "MODEL",
712
  "link": 10
 
714
  ],
715
  "outputs": [
716
  {
717
+ "localized_name": "patched_model",
718
+ "name": "patched_model",
719
  "type": "MODEL",
720
+ "slot_index": 0,
721
  "links": [
722
  11
723
+ ]
 
724
  }
725
  ],
726
  "properties": {
 
729
  "widgets_values": []
730
  },
731
  {
732
+ "id": 14,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
733
  "type": "KSampler",
734
  "pos": [
735
+ 2180,
736
+ 120
737
  ],
738
  "size": [
739
+ 300,
740
+ 262
741
  ],
742
  "flags": {},
743
+ "order": 14,
744
  "mode": 0,
745
  "inputs": [
746
  {
747
+ "localized_name": "model",
748
  "name": "model",
749
  "type": "MODEL",
750
  "link": 11
751
  },
752
  {
753
+ "localized_name": "positive",
754
  "name": "positive",
755
  "type": "CONDITIONING",
756
  "link": 12
757
  },
758
  {
759
+ "localized_name": "negative",
760
  "name": "negative",
761
  "type": "CONDITIONING",
762
  "link": 13
763
  },
764
  {
765
+ "localized_name": "latent_image",
766
  "name": "latent_image",
767
  "type": "LATENT",
768
  "link": 14
769
+ },
770
+ {
771
+ "localized_name": "seed",
772
+ "name": "seed",
773
+ "type": "INT",
774
+ "widget": {
775
+ "name": "seed"
776
+ },
777
+ "link": null
778
+ },
779
+ {
780
+ "localized_name": "steps",
781
+ "name": "steps",
782
+ "type": "INT",
783
+ "widget": {
784
+ "name": "steps"
785
+ },
786
+ "link": null
787
+ },
788
+ {
789
+ "localized_name": "cfg",
790
+ "name": "cfg",
791
+ "type": "FLOAT",
792
+ "widget": {
793
+ "name": "cfg"
794
+ },
795
+ "link": null
796
+ },
797
+ {
798
+ "localized_name": "sampler_name",
799
+ "name": "sampler_name",
800
+ "type": "COMBO",
801
+ "widget": {
802
+ "name": "sampler_name"
803
+ },
804
+ "link": null
805
+ },
806
+ {
807
+ "localized_name": "scheduler",
808
+ "name": "scheduler",
809
+ "type": "COMBO",
810
+ "widget": {
811
+ "name": "scheduler"
812
+ },
813
+ "link": null
814
+ },
815
+ {
816
+ "localized_name": "denoise",
817
+ "name": "denoise",
818
+ "type": "FLOAT",
819
+ "widget": {
820
+ "name": "denoise"
821
+ },
822
+ "link": null
823
  }
824
  ],
825
  "outputs": [
826
  {
827
+ "localized_name": "LATENT",
828
  "name": "LATENT",
829
  "type": "LATENT",
830
+ "slot_index": 0,
831
  "links": [
832
  15
833
+ ]
 
834
  }
835
  ],
836
  "properties": {
837
  "Node name for S&R": "KSampler"
838
  },
839
  "widgets_values": [
840
+ 2024,
841
  "fixed",
842
  30,
843
+ 4,
844
  "er_sde",
845
  "simple",
846
+ 1
847
  ]
848
  },
849
  {
850
+ "id": 15,
851
  "type": "VAEDecode",
852
  "pos": [
853
+ 2480,
854
+ 120
855
  ],
856
  "size": [
857
+ 300,
858
+ 120
859
  ],
860
  "flags": {},
861
+ "order": 15,
862
  "mode": 0,
863
  "inputs": [
864
  {
865
+ "localized_name": "samples",
866
  "name": "samples",
867
  "type": "LATENT",
868
  "link": 15
869
  },
870
  {
871
+ "localized_name": "vae",
872
  "name": "vae",
873
  "type": "VAE",
874
+ "link": 16
875
  }
876
  ],
877
  "outputs": [
878
  {
879
+ "localized_name": "IMAGE",
880
  "name": "IMAGE",
881
  "type": "IMAGE",
882
+ "slot_index": 0,
883
  "links": [
884
+ 17
885
+ ]
 
886
  }
887
  ],
888
  "properties": {
 
891
  "widgets_values": []
892
  },
893
  {
894
+ "id": 16,
895
  "type": "SaveImage",
896
  "pos": [
897
+ 2780,
898
+ 120
899
  ],
900
  "size": [
901
+ 300,
902
+ 270
903
  ],
904
  "flags": {},
905
+ "order": 16,
906
  "mode": 0,
907
  "inputs": [
908
  {
909
+ "localized_name": "images",
910
  "name": "images",
911
  "type": "IMAGE",
912
+ "link": 17
913
+ },
914
+ {
915
+ "localized_name": "filename_prefix",
916
+ "name": "filename_prefix",
917
+ "type": "STRING",
918
+ "widget": {
919
+ "name": "filename_prefix"
920
+ },
921
+ "link": null
922
  }
923
  ],
924
  "outputs": [],
 
926
  "Node name for S&R": "SaveImage"
927
  },
928
  "widgets_values": [
929
+ "anima_pose_control"
930
+ ],
931
+ "title": "GENERATION"
932
  }
933
  ],
934
  "links": [
 
936
  1,
937
  1,
938
  0,
939
+ 2,
940
  0,
941
  "MODEL"
942
  ],
943
  [
944
  2,
945
+ 3,
946
  0,
947
  5,
948
  0,
 
950
  ],
951
  [
952
  3,
953
+ 3,
954
  0,
955
  6,
956
  0,
 
958
  ],
959
  [
960
  4,
961
+ 8,
962
  0,
963
  9,
964
+ 0,
965
+ "IMAGE"
966
  ],
967
  [
968
  5,
969
+ 9,
970
  0,
971
+ 10,
972
+ 0,
973
+ "IMAGE"
974
  ],
975
  [
976
  6,
977
+ 10,
978
  0,
979
+ 11,
980
  0,
981
  "IMAGE"
982
  ],
983
  [
984
  7,
985
+ 4,
 
 
986
  0,
987
+ 11,
988
+ 1,
989
+ "VAE"
990
  ],
991
  [
992
  8,
993
+ 2,
994
  0,
995
+ 12,
996
+ 0,
997
+ "MODEL"
998
  ],
999
  [
1000
  9,
1001
+ 11,
 
 
1002
  0,
1003
+ 12,
1004
+ 1,
1005
+ "LATENT"
1006
  ],
1007
  [
1008
  10,
1009
+ 12,
1010
  0,
1011
+ 13,
1012
  0,
1013
  "MODEL"
1014
  ],
1015
  [
1016
  11,
 
 
1017
  13,
1018
  0,
1019
+ 14,
1020
+ 0,
1021
  "MODEL"
1022
  ],
1023
  [
1024
  12,
1025
  5,
1026
  0,
1027
+ 14,
1028
  1,
1029
  "CONDITIONING"
1030
  ],
 
1032
  13,
1033
  6,
1034
  0,
1035
+ 14,
1036
  2,
1037
  "CONDITIONING"
1038
  ],
1039
  [
1040
  14,
1041
+ 7,
1042
  0,
1043
+ 14,
1044
  3,
1045
  "LATENT"
1046
  ],
1047
  [
1048
  15,
 
 
1049
  14,
1050
  0,
1051
+ 15,
1052
+ 0,
1053
  "LATENT"
1054
  ],
1055
  [
1056
  16,
1057
+ 4,
1058
  0,
1059
  15,
1060
+ 1,
1061
+ "VAE"
1062
+ ],
1063
+ [
1064
+ 17,
1065
+ 15,
1066
+ 0,
1067
+ 16,
1068
  0,
1069
  "IMAGE"
1070
  ]
1071
  ],
1072
  "groups": [],
1073
  "config": {},
1074
+ "extra": {
1075
+ "ds": {
1076
+ "scale": 1.2284597357367357,
1077
+ "offset": [
1078
+ -896.6673282988922,
1079
+ -2098.6519356376084
1080
+ ]
1081
+ }
1082
+ },
1083
  "version": 0.4
1084
  }
pose_control_compare.json ADDED
The diff for this file is too large to render. See raw diff
 
pose_control_demo.json CHANGED
@@ -1,4 +1,6 @@
1
  {
 
 
2
  "last_node_id": 21,
3
  "last_link_id": 26,
4
  "nodes": [
@@ -6,26 +8,46 @@
6
  "id": 1,
7
  "type": "UNETLoader",
8
  "pos": [
9
- 0,
10
- 0
11
  ],
12
  "size": [
13
  300,
14
  120
15
  ],
16
  "flags": {},
17
- "order": 0,
18
  "mode": 0,
19
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  "outputs": [
21
  {
 
22
  "name": "MODEL",
23
  "type": "MODEL",
 
24
  "links": [
25
  1,
26
- 2
27
- ],
28
- "slot_index": 0
29
  }
30
  ],
31
  "properties": {
@@ -38,28 +60,117 @@
38
  },
39
  {
40
  "id": 2,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  "type": "CLIPLoader",
42
  "pos": [
43
- 0,
44
- 280
45
  ],
46
  "size": [
47
  300,
48
  120
49
  ],
50
  "flags": {},
51
- "order": 1,
52
  "mode": 0,
53
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  "outputs": [
55
  {
 
56
  "name": "CLIP",
57
  "type": "CLIP",
 
58
  "links": [
59
- 3,
60
- 4
61
- ],
62
- "slot_index": 0
63
  }
64
  ],
65
  "properties": {
@@ -72,30 +183,41 @@
72
  ]
73
  },
74
  {
75
- "id": 3,
76
  "type": "VAELoader",
77
  "pos": [
78
- 0,
79
- 560
80
  ],
81
  "size": [
82
  300,
83
  120
84
  ],
85
  "flags": {},
86
- "order": 2,
87
  "mode": 0,
88
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
89
  "outputs": [
90
  {
 
91
  "name": "VAE",
92
  "type": "VAE",
 
93
  "links": [
94
- 5,
95
- 6,
96
- 7
97
- ],
98
- "slot_index": 0
99
  }
100
  ],
101
  "properties": {
@@ -106,273 +228,388 @@
106
  ]
107
  },
108
  {
109
- "id": 16,
110
- "type": "EmptyLatentImage",
111
  "pos": [
112
- 0,
113
- 840
114
  ],
115
  "size": [
116
  300,
117
  120
118
  ],
119
  "flags": {},
120
- "order": 3,
121
  "mode": 0,
122
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  "outputs": [
124
  {
125
- "name": "LATENT",
126
- "type": "LATENT",
 
 
127
  "links": [
128
- 18,
129
- 22
130
- ],
131
- "slot_index": 0
132
  }
133
  ],
134
  "properties": {
135
- "Node name for S&R": "EmptyLatentImage"
136
  },
137
  "widgets_values": [
138
- 512,
139
- 512,
140
- 1
141
- ]
142
  },
143
  {
144
- "id": 8,
145
  "type": "CLIPTextEncode",
146
  "pos": [
147
- 0,
148
- 1120
149
  ],
150
  "size": [
151
  300,
152
  120
153
  ],
154
  "flags": {},
155
- "order": 4,
156
  "mode": 0,
157
  "inputs": [
158
  {
 
159
  "name": "clip",
160
  "type": "CLIP",
161
  "link": 3
 
 
 
 
 
 
 
 
 
162
  }
163
  ],
164
  "outputs": [
165
  {
 
166
  "name": "CONDITIONING",
167
  "type": "CONDITIONING",
 
168
  "links": [
169
- 16,
170
- 20
171
- ],
172
- "slot_index": 0
173
  }
174
  ],
175
  "properties": {
176
  "Node name for S&R": "CLIPTextEncode"
177
  },
178
  "widgets_values": [
179
- "newest, masterpiece, best quality, score_9\n\n1girl, solo, simple background"
180
- ]
 
181
  },
182
  {
183
- "id": 9,
184
- "type": "CLIPTextEncode",
185
  "pos": [
186
- 0,
187
- 1480
188
  ],
189
  "size": [
190
  300,
191
  120
192
  ],
193
  "flags": {},
194
- "order": 5,
195
  "mode": 0,
196
  "inputs": [
197
  {
198
- "name": "clip",
199
- "type": "CLIP",
200
- "link": 4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  }
202
  ],
203
  "outputs": [
204
  {
205
- "name": "CONDITIONING",
206
- "type": "CONDITIONING",
 
 
207
  "links": [
208
- 17,
209
- 21
210
- ],
211
- "slot_index": 0
212
  }
213
  ],
214
  "properties": {
215
- "Node name for S&R": "CLIPTextEncode"
216
  },
217
  "widgets_values": [
218
- "worst quality, low quality, score_1, score_2, blurry, jpeg artifacts"
 
 
219
  ]
220
  },
221
  {
222
- "id": 4,
223
  "type": "LoadImage",
224
  "pos": [
225
- 0,
226
- 1840
227
  ],
228
  "size": [
229
  300,
230
- 120
231
  ],
232
  "flags": {},
233
- "order": 6,
234
  "mode": 0,
235
- "inputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  "outputs": [
237
  {
 
238
  "name": "IMAGE",
239
  "type": "IMAGE",
 
240
  "links": [
241
- 8
242
- ],
243
- "slot_index": 0
244
  },
245
  {
 
246
  "name": "MASK",
247
  "type": "MASK",
248
- "links": null,
249
- "slot_index": 1
250
  }
251
  ],
252
  "properties": {
253
  "Node name for S&R": "LoadImage"
254
  },
255
  "widgets_values": [
256
- "example.png",
257
  "image"
258
- ]
 
259
  },
260
  {
261
- "id": 14,
262
- "type": "CFGZeroStar",
263
  "pos": [
264
- 520,
265
- 0
266
  ],
267
  "size": [
268
- 300,
269
- 120
270
  ],
271
  "flags": {},
272
- "order": 7,
273
  "mode": 0,
 
 
 
 
 
 
 
 
 
 
 
 
274
  "inputs": [
275
  {
276
- "name": "model",
277
- "type": "MODEL",
278
- "link": 2
279
  }
280
  ],
281
  "outputs": [
282
  {
283
- "name": "MODEL",
284
- "type": "MODEL",
285
  "links": [
286
- 19
 
287
  ],
288
  "slot_index": 0
 
 
 
 
 
 
289
  }
290
  ],
291
- "properties": {
292
- "Node name for S&R": "CFGZeroStar"
293
- },
294
- "widgets_values": []
295
  },
296
  {
297
- "id": 15,
298
- "type": "KSampler",
299
  "pos": [
300
- 1040,
301
- 0
302
  ],
303
  "size": [
304
  300,
305
- 120
306
  ],
307
  "flags": {},
308
- "order": 8,
309
  "mode": 0,
310
  "inputs": [
311
  {
312
- "name": "model",
313
- "type": "MODEL",
314
- "link": 19
 
315
  },
316
  {
317
- "name": "positive",
318
- "type": "CONDITIONING",
319
- "link": 20
 
 
 
 
320
  },
321
  {
322
- "name": "negative",
323
- "type": "CONDITIONING",
324
- "link": 21
 
 
 
 
325
  },
326
  {
327
- "name": "latent_image",
328
- "type": "LATENT",
329
- "link": 22
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  }
331
  ],
332
  "outputs": [
333
  {
334
- "name": "LATENT",
335
- "type": "LATENT",
 
 
336
  "links": [
337
- 24
338
- ],
339
- "slot_index": 0
340
  }
341
  ],
342
  "properties": {
343
- "Node name for S&R": "KSampler"
344
  },
345
  "widgets_values": [
346
- 42,
347
- "fixed",
348
- 30,
349
- 4.0,
350
- "er_sde",
351
- "simple",
352
- 1.0
353
  ]
354
  },
355
  {
356
- "id": 19,
357
- "type": "VAEDecode",
358
  "pos": [
359
- 1560,
360
- 0
361
  ],
362
  "size": [
363
  300,
364
  120
365
  ],
366
  "flags": {},
367
- "order": 9,
368
  "mode": 0,
369
  "inputs": [
370
  {
371
- "name": "samples",
372
- "type": "LATENT",
373
- "link": 24
 
374
  },
375
  {
 
376
  "name": "vae",
377
  "type": "VAE",
378
  "link": 7
@@ -380,93 +617,26 @@
380
  ],
381
  "outputs": [
382
  {
383
- "name": "IMAGE",
384
- "type": "IMAGE",
 
 
385
  "links": [
386
- 26
387
- ],
388
- "slot_index": 0
389
  }
390
  ],
391
  "properties": {
392
- "Node name for S&R": "VAEDecode"
393
  },
394
  "widgets_values": []
395
  },
396
  {
397
- "id": 20,
398
- "type": "SaveImage",
399
- "pos": [
400
- 2080,
401
- 0
402
- ],
403
- "size": [
404
- 300,
405
- 120
406
- ],
407
- "flags": {},
408
- "order": 10,
409
- "mode": 0,
410
- "inputs": [
411
- {
412
- "name": "images",
413
- "type": "IMAGE",
414
- "link": 26
415
- }
416
- ],
417
- "outputs": [],
418
- "properties": {
419
- "Node name for S&R": "SaveImage"
420
- },
421
- "widgets_values": [
422
- "anima_control_BASE"
423
- ]
424
- },
425
- {
426
- "id": 10,
427
- "type": "LoraLoaderModelOnly",
428
- "pos": [
429
- 520,
430
- 560
431
- ],
432
- "size": [
433
- 300,
434
- 120
435
- ],
436
- "flags": {},
437
- "order": 11,
438
- "mode": 0,
439
- "inputs": [
440
- {
441
- "name": "model",
442
- "type": "MODEL",
443
- "link": 1
444
- }
445
- ],
446
- "outputs": [
447
- {
448
- "name": "MODEL",
449
- "type": "MODEL",
450
- "links": [
451
- 13
452
- ],
453
- "slot_index": 0
454
- }
455
- ],
456
- "properties": {
457
- "Node name for S&R": "LoraLoaderModelOnly"
458
- },
459
- "widgets_values": [
460
- "adapter_model.safetensors",
461
- 1.0
462
- ]
463
- },
464
- {
465
- "id": 11,
466
  "type": "AnimaControlApply",
467
  "pos": [
468
- 1040,
469
- 560
470
  ],
471
  "size": [
472
  300,
@@ -477,40 +647,61 @@
477
  "mode": 0,
478
  "inputs": [
479
  {
 
480
  "name": "model",
481
  "type": "MODEL",
482
- "link": 13
483
  },
484
  {
 
485
  "name": "control_latent",
486
  "type": "LATENT",
487
- "link": 12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488
  }
489
  ],
490
  "outputs": [
491
  {
 
492
  "name": "MODEL",
493
  "type": "MODEL",
 
494
  "links": [
495
- 14
496
- ],
497
- "slot_index": 0
498
  }
499
  ],
500
  "properties": {
501
  "Node name for S&R": "AnimaControlApply"
502
  },
503
  "widgets_values": [
504
- "adapter_model.safetensors",
505
- 1.0
506
  ]
507
  },
508
  {
509
- "id": 12,
510
  "type": "CFGZeroStar",
511
  "pos": [
512
- 1560,
513
- 560
514
  ],
515
  "size": [
516
  300,
@@ -521,19 +712,21 @@
521
  "mode": 0,
522
  "inputs": [
523
  {
 
524
  "name": "model",
525
  "type": "MODEL",
526
- "link": 14
527
  }
528
  ],
529
  "outputs": [
530
  {
531
- "name": "MODEL",
 
532
  "type": "MODEL",
 
533
  "links": [
534
- 15
535
- ],
536
- "slot_index": 0
537
  }
538
  ],
539
  "properties": {
@@ -542,70 +735,129 @@
542
  "widgets_values": []
543
  },
544
  {
545
- "id": 13,
546
  "type": "KSampler",
547
  "pos": [
548
- 2080,
549
- 560
550
  ],
551
  "size": [
552
  300,
553
- 120
554
  ],
555
  "flags": {},
556
  "order": 14,
557
  "mode": 0,
558
  "inputs": [
559
  {
 
560
  "name": "model",
561
  "type": "MODEL",
562
- "link": 15
563
  },
564
  {
 
565
  "name": "positive",
566
  "type": "CONDITIONING",
567
- "link": 16
568
  },
569
  {
 
570
  "name": "negative",
571
  "type": "CONDITIONING",
572
- "link": 17
573
  },
574
  {
 
575
  "name": "latent_image",
576
  "type": "LATENT",
577
- "link": 18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578
  }
579
  ],
580
  "outputs": [
581
  {
 
582
  "name": "LATENT",
583
  "type": "LATENT",
 
584
  "links": [
585
- 23
586
- ],
587
- "slot_index": 0
588
  }
589
  ],
590
  "properties": {
591
  "Node name for S&R": "KSampler"
592
  },
593
  "widgets_values": [
594
- 42,
595
  "fixed",
596
  30,
597
- 4.0,
598
  "er_sde",
599
  "simple",
600
- 1.0
601
  ]
602
  },
603
  {
604
- "id": 17,
605
  "type": "VAEDecode",
606
  "pos": [
607
- 2600,
608
- 560
609
  ],
610
  "size": [
611
  300,
@@ -616,24 +868,27 @@
616
  "mode": 0,
617
  "inputs": [
618
  {
 
619
  "name": "samples",
620
  "type": "LATENT",
621
- "link": 23
622
  },
623
  {
 
624
  "name": "vae",
625
  "type": "VAE",
626
- "link": 6
627
  }
628
  ],
629
  "outputs": [
630
  {
 
631
  "name": "IMAGE",
632
  "type": "IMAGE",
 
633
  "links": [
634
- 25
635
- ],
636
- "slot_index": 0
637
  }
638
  ],
639
  "properties": {
@@ -642,24 +897,34 @@
642
  "widgets_values": []
643
  },
644
  {
645
- "id": 18,
646
  "type": "SaveImage",
647
  "pos": [
648
- 3120,
649
- 560
650
  ],
651
  "size": [
652
  300,
653
- 120
654
  ],
655
  "flags": {},
656
  "order": 16,
657
  "mode": 0,
658
  "inputs": [
659
  {
 
660
  "name": "images",
661
  "type": "IMAGE",
662
- "link": 25
 
 
 
 
 
 
 
 
 
663
  }
664
  ],
665
  "outputs": [],
@@ -667,15 +932,16 @@
667
  "Node name for S&R": "SaveImage"
668
  },
669
  "widgets_values": [
670
- "anima_control_CONTROL"
671
- ]
 
672
  },
673
  {
674
- "id": 5,
675
- "type": "DWPreprocessor",
676
  "pos": [
677
- 520,
678
- 1120
679
  ],
680
  "size": [
681
  300,
@@ -686,88 +952,152 @@
686
  "mode": 0,
687
  "inputs": [
688
  {
689
- "name": "image",
690
- "type": "IMAGE",
691
- "link": 8
 
692
  }
693
  ],
694
  "outputs": [
695
  {
696
- "name": "IMAGE",
697
- "type": "IMAGE",
 
 
698
  "links": [
699
- 9,
700
- 10
701
- ],
702
- "slot_index": 0
703
- },
704
- {
705
- "name": "POSE_KEYPOINT",
706
- "type": "POSE_KEYPOINT",
707
- "links": null,
708
- "slot_index": 1
709
  }
710
  ],
711
  "properties": {
712
- "Node name for S&R": "DWPreprocessor"
713
  },
714
- "widgets_values": [
715
- "enable",
716
- "enable",
717
- "enable",
718
- 512,
719
- "yolox_l.onnx",
720
- "dw-ll_ucoco_384_bs5.torchscript.pt",
721
- "disable"
722
- ]
723
  },
724
  {
725
- "id": 6,
726
- "type": "ImageScale",
727
  "pos": [
728
- 1040,
729
- 1120
730
  ],
731
  "size": [
732
  300,
733
- 120
734
  ],
735
  "flags": {},
736
  "order": 18,
737
  "mode": 0,
738
  "inputs": [
739
  {
740
- "name": "image",
741
- "type": "IMAGE",
742
- "link": 9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
743
  }
744
  ],
745
  "outputs": [
746
  {
747
- "name": "IMAGE",
748
- "type": "IMAGE",
 
 
749
  "links": [
750
- 11
751
- ],
752
- "slot_index": 0
753
  }
754
  ],
755
  "properties": {
756
- "Node name for S&R": "ImageScale"
757
  },
758
  "widgets_values": [
759
- "nearest-exact",
760
- 512,
761
- 512,
762
- "disabled"
 
 
 
763
  ]
764
  },
765
  {
766
- "id": 7,
767
- "type": "VAEEncode",
768
  "pos": [
769
- 1560,
770
- 1120
771
  ],
772
  "size": [
773
  300,
@@ -778,50 +1108,63 @@
778
  "mode": 0,
779
  "inputs": [
780
  {
781
- "name": "pixels",
782
- "type": "IMAGE",
783
- "link": 11
 
784
  },
785
  {
 
786
  "name": "vae",
787
  "type": "VAE",
788
- "link": 5
789
  }
790
  ],
791
  "outputs": [
792
  {
793
- "name": "LATENT",
794
- "type": "LATENT",
 
 
795
  "links": [
796
- 12
797
- ],
798
- "slot_index": 0
799
  }
800
  ],
801
  "properties": {
802
- "Node name for S&R": "VAEEncode"
803
  },
804
  "widgets_values": []
805
  },
806
  {
807
- "id": 21,
808
  "type": "SaveImage",
809
  "pos": [
810
- 1040,
811
- 1480
812
  ],
813
  "size": [
814
  300,
815
- 120
816
  ],
817
  "flags": {},
818
  "order": 20,
819
  "mode": 0,
820
  "inputs": [
821
  {
 
822
  "name": "images",
823
  "type": "IMAGE",
824
- "link": 10
 
 
 
 
 
 
 
 
 
825
  }
826
  ],
827
  "outputs": [],
@@ -829,8 +1172,49 @@
829
  "Node name for S&R": "SaveImage"
830
  },
831
  "widgets_values": [
832
- "anima_control_SKELETON"
833
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
834
  }
835
  ],
836
  "links": [
@@ -838,247 +1222,248 @@
838
  1,
839
  1,
840
  0,
841
- 10,
842
  0,
843
  "MODEL"
844
  ],
845
  [
846
  2,
847
- 1,
848
  0,
849
- 14,
850
  0,
851
- "MODEL"
852
  ],
853
  [
854
  3,
855
- 2,
856
  0,
857
- 8,
858
  0,
859
  "CLIP"
860
  ],
861
  [
862
  4,
863
- 2,
864
  0,
865
  9,
866
  0,
867
- "CLIP"
868
  ],
869
  [
870
  5,
871
- 3,
872
  0,
873
- 7,
874
- 1,
875
- "VAE"
876
  ],
877
  [
878
  6,
879
- 3,
880
  0,
881
- 17,
882
- 1,
883
- "VAE"
884
  ],
885
  [
886
  7,
887
- 3,
888
  0,
889
- 19,
890
  1,
891
  "VAE"
892
  ],
893
  [
894
  8,
895
- 4,
896
  0,
897
- 5,
898
  0,
899
- "IMAGE"
900
  ],
901
  [
902
  9,
903
- 5,
904
- 0,
905
- 6,
906
  0,
907
- "IMAGE"
 
 
908
  ],
909
  [
910
  10,
911
- 5,
912
  0,
913
- 21,
914
  0,
915
- "IMAGE"
916
  ],
917
  [
918
  11,
919
- 6,
920
  0,
921
- 7,
922
  0,
923
- "IMAGE"
924
  ],
925
  [
926
  12,
927
- 7,
928
  0,
929
- 11,
930
  1,
931
- "LATENT"
932
  ],
933
  [
934
  13,
935
- 10,
936
- 0,
937
- 11,
938
  0,
939
- "MODEL"
 
 
940
  ],
941
  [
942
  14,
943
- 11,
944
- 0,
945
- 12,
946
  0,
947
- "MODEL"
 
 
948
  ],
949
  [
950
  15,
951
- 12,
952
  0,
953
- 13,
954
  0,
955
- "MODEL"
956
  ],
957
  [
958
  16,
959
- 8,
960
  0,
961
- 13,
962
  1,
963
- "CONDITIONING"
964
  ],
965
  [
966
  17,
967
- 9,
968
  0,
969
- 13,
970
- 2,
971
- "CONDITIONING"
972
  ],
973
  [
974
  18,
975
- 16,
976
  0,
977
- 13,
978
- 3,
979
- "LATENT"
980
  ],
981
  [
982
  19,
983
- 14,
984
  0,
985
- 15,
986
  0,
987
  "MODEL"
988
  ],
989
  [
990
  20,
991
- 8,
992
  0,
993
- 15,
994
  1,
995
  "CONDITIONING"
996
  ],
997
  [
998
  21,
999
- 9,
1000
  0,
1001
- 15,
1002
  2,
1003
  "CONDITIONING"
1004
  ],
1005
  [
1006
  22,
1007
- 16,
1008
  0,
1009
- 15,
1010
  3,
1011
  "LATENT"
1012
  ],
1013
  [
1014
  23,
1015
- 13,
1016
  0,
1017
- 17,
1018
  0,
1019
  "LATENT"
1020
  ],
1021
  [
1022
  24,
1023
- 15,
1024
  0,
1025
  19,
1026
- 0,
1027
- "LATENT"
1028
  ],
1029
  [
1030
  25,
1031
- 17,
1032
  0,
1033
- 18,
1034
  0,
1035
  "IMAGE"
1036
  ],
1037
  [
1038
  26,
1039
- 19,
1040
  0,
1041
- 20,
1042
  0,
1043
  "IMAGE"
1044
  ]
1045
  ],
1046
  "groups": [
1047
  {
1048
- "title": "BASE (no control)",
 
1049
  "bounding": [
1050
- 480,
1051
- -90,
1052
- 2020,
1053
  300
1054
  ],
1055
- "color": "#595924",
1056
- "font_size": 28
 
1057
  },
1058
  {
1059
- "title": "CONTROL (pose adapter on)",
 
1060
  "bounding": [
1061
- 480,
1062
- 470,
1063
- 3060,
1064
  300
1065
  ],
1066
- "color": "#2d5a2d",
1067
- "font_size": 28
1068
- },
1069
- {
1070
- "title": "1. INPUT + DWPOSE (drop your image in LoadImage)",
1071
- "bounding": [
1072
- 480,
1073
- 1030,
1074
- 1500,
1075
- 720
1076
- ],
1077
- "color": "#1f4a6b",
1078
- "font_size": 28
1079
  }
1080
  ],
1081
  "config": {},
1082
- "extra": {},
 
 
 
 
 
 
 
 
1083
  "version": 0.4
1084
  }
 
1
  {
2
+ "id": "release",
3
+ "revision": 0,
4
  "last_node_id": 21,
5
  "last_link_id": 26,
6
  "nodes": [
 
8
  "id": 1,
9
  "type": "UNETLoader",
10
  "pos": [
11
+ 40,
12
+ 40
13
  ],
14
  "size": [
15
  300,
16
  120
17
  ],
18
  "flags": {},
19
+ "order": 1,
20
  "mode": 0,
21
+ "inputs": [
22
+ {
23
+ "localized_name": "unet_name",
24
+ "name": "unet_name",
25
+ "type": "COMBO",
26
+ "widget": {
27
+ "name": "unet_name"
28
+ },
29
+ "link": null
30
+ },
31
+ {
32
+ "localized_name": "weight_dtype",
33
+ "name": "weight_dtype",
34
+ "type": "COMBO",
35
+ "widget": {
36
+ "name": "weight_dtype"
37
+ },
38
+ "link": null
39
+ }
40
+ ],
41
  "outputs": [
42
  {
43
+ "localized_name": "MODEL",
44
  "name": "MODEL",
45
  "type": "MODEL",
46
+ "slot_index": 0,
47
  "links": [
48
  1,
49
+ 18
50
+ ]
 
51
  }
52
  ],
53
  "properties": {
 
60
  },
61
  {
62
  "id": 2,
63
+ "type": "LoraLoaderModelOnly",
64
+ "pos": [
65
+ 40,
66
+ 180
67
+ ],
68
+ "size": [
69
+ 300,
70
+ 120
71
+ ],
72
+ "flags": {},
73
+ "order": 2,
74
+ "mode": 0,
75
+ "inputs": [
76
+ {
77
+ "localized_name": "model",
78
+ "name": "model",
79
+ "type": "MODEL",
80
+ "link": 1
81
+ },
82
+ {
83
+ "localized_name": "lora_name",
84
+ "name": "lora_name",
85
+ "type": "COMBO",
86
+ "widget": {
87
+ "name": "lora_name"
88
+ },
89
+ "link": null
90
+ },
91
+ {
92
+ "localized_name": "strength_model",
93
+ "name": "strength_model",
94
+ "type": "FLOAT",
95
+ "widget": {
96
+ "name": "strength_model"
97
+ },
98
+ "link": null
99
+ }
100
+ ],
101
+ "outputs": [
102
+ {
103
+ "localized_name": "MODEL",
104
+ "name": "MODEL",
105
+ "type": "MODEL",
106
+ "slot_index": 0,
107
+ "links": [
108
+ 8
109
+ ]
110
+ }
111
+ ],
112
+ "properties": {
113
+ "Node name for S&R": "LoraLoaderModelOnly"
114
+ },
115
+ "widgets_values": [
116
+ "anima_pose_preview2.safetensors",
117
+ 1
118
+ ]
119
+ },
120
+ {
121
+ "id": 3,
122
  "type": "CLIPLoader",
123
  "pos": [
124
+ 40,
125
+ 320
126
  ],
127
  "size": [
128
  300,
129
  120
130
  ],
131
  "flags": {},
132
+ "order": 3,
133
  "mode": 0,
134
+ "inputs": [
135
+ {
136
+ "localized_name": "clip_name",
137
+ "name": "clip_name",
138
+ "type": "COMBO",
139
+ "widget": {
140
+ "name": "clip_name"
141
+ },
142
+ "link": null
143
+ },
144
+ {
145
+ "localized_name": "type",
146
+ "name": "type",
147
+ "type": "COMBO",
148
+ "widget": {
149
+ "name": "type"
150
+ },
151
+ "link": null
152
+ },
153
+ {
154
+ "localized_name": "device",
155
+ "name": "device",
156
+ "shape": 7,
157
+ "type": "COMBO",
158
+ "widget": {
159
+ "name": "device"
160
+ },
161
+ "link": null
162
+ }
163
+ ],
164
  "outputs": [
165
  {
166
+ "localized_name": "CLIP",
167
  "name": "CLIP",
168
  "type": "CLIP",
169
+ "slot_index": 0,
170
  "links": [
171
+ 2,
172
+ 3
173
+ ]
 
174
  }
175
  ],
176
  "properties": {
 
183
  ]
184
  },
185
  {
186
+ "id": 4,
187
  "type": "VAELoader",
188
  "pos": [
189
+ 40,
190
+ 450
191
  ],
192
  "size": [
193
  300,
194
  120
195
  ],
196
  "flags": {},
197
+ "order": 4,
198
  "mode": 0,
199
+ "inputs": [
200
+ {
201
+ "localized_name": "vae_name",
202
+ "name": "vae_name",
203
+ "type": "COMBO",
204
+ "widget": {
205
+ "name": "vae_name"
206
+ },
207
+ "link": null
208
+ }
209
+ ],
210
  "outputs": [
211
  {
212
+ "localized_name": "VAE",
213
  "name": "VAE",
214
  "type": "VAE",
215
+ "slot_index": 0,
216
  "links": [
217
+ 7,
218
+ 16,
219
+ 24
220
+ ]
 
221
  }
222
  ],
223
  "properties": {
 
228
  ]
229
  },
230
  {
231
+ "id": 5,
232
+ "type": "CLIPTextEncode",
233
  "pos": [
234
+ 40,
235
+ 560
236
  ],
237
  "size": [
238
  300,
239
  120
240
  ],
241
  "flags": {},
242
+ "order": 5,
243
  "mode": 0,
244
+ "inputs": [
245
+ {
246
+ "localized_name": "clip",
247
+ "name": "clip",
248
+ "type": "CLIP",
249
+ "link": 2
250
+ },
251
+ {
252
+ "localized_name": "text",
253
+ "name": "text",
254
+ "type": "STRING",
255
+ "widget": {
256
+ "name": "text"
257
+ },
258
+ "link": null
259
+ }
260
+ ],
261
  "outputs": [
262
  {
263
+ "localized_name": "CONDITIONING",
264
+ "name": "CONDITIONING",
265
+ "type": "CONDITIONING",
266
+ "slot_index": 0,
267
  "links": [
268
+ 12,
269
+ 20
270
+ ]
 
271
  }
272
  ],
273
  "properties": {
274
+ "Node name for S&R": "CLIPTextEncode"
275
  },
276
  "widgets_values": [
277
+ "newest, masterpiece, best quality, score_9, safe\n\n1girl, solo, simple background"
278
+ ],
279
+ "title": "prompt"
 
280
  },
281
  {
282
+ "id": 6,
283
  "type": "CLIPTextEncode",
284
  "pos": [
285
+ 40,
286
+ 760
287
  ],
288
  "size": [
289
  300,
290
  120
291
  ],
292
  "flags": {},
293
+ "order": 6,
294
  "mode": 0,
295
  "inputs": [
296
  {
297
+ "localized_name": "clip",
298
  "name": "clip",
299
  "type": "CLIP",
300
  "link": 3
301
+ },
302
+ {
303
+ "localized_name": "text",
304
+ "name": "text",
305
+ "type": "STRING",
306
+ "widget": {
307
+ "name": "text"
308
+ },
309
+ "link": null
310
  }
311
  ],
312
  "outputs": [
313
  {
314
+ "localized_name": "CONDITIONING",
315
  "name": "CONDITIONING",
316
  "type": "CONDITIONING",
317
+ "slot_index": 0,
318
  "links": [
319
+ 13,
320
+ 21
321
+ ]
 
322
  }
323
  ],
324
  "properties": {
325
  "Node name for S&R": "CLIPTextEncode"
326
  },
327
  "widgets_values": [
328
+ "worst quality, low quality, score_1, score_2, blurry, jpeg artifacts"
329
+ ],
330
+ "title": "negative"
331
  },
332
  {
333
+ "id": 7,
334
+ "type": "EmptyLatentImage",
335
  "pos": [
336
+ 40,
337
+ 960
338
  ],
339
  "size": [
340
  300,
341
  120
342
  ],
343
  "flags": {},
344
+ "order": 7,
345
  "mode": 0,
346
  "inputs": [
347
  {
348
+ "localized_name": "width",
349
+ "name": "width",
350
+ "type": "INT",
351
+ "widget": {
352
+ "name": "width"
353
+ },
354
+ "link": null
355
+ },
356
+ {
357
+ "localized_name": "height",
358
+ "name": "height",
359
+ "type": "INT",
360
+ "widget": {
361
+ "name": "height"
362
+ },
363
+ "link": null
364
+ },
365
+ {
366
+ "localized_name": "batch_size",
367
+ "name": "batch_size",
368
+ "type": "INT",
369
+ "widget": {
370
+ "name": "batch_size"
371
+ },
372
+ "link": null
373
  }
374
  ],
375
  "outputs": [
376
  {
377
+ "localized_name": "LATENT",
378
+ "name": "LATENT",
379
+ "type": "LATENT",
380
+ "slot_index": 0,
381
  "links": [
382
+ 14,
383
+ 22
384
+ ]
 
385
  }
386
  ],
387
  "properties": {
388
+ "Node name for S&R": "EmptyLatentImage"
389
  },
390
  "widgets_values": [
391
+ 768,
392
+ 768,
393
+ 1
394
  ]
395
  },
396
  {
397
+ "id": 8,
398
  "type": "LoadImage",
399
  "pos": [
400
+ 380,
401
+ 120
402
  ],
403
  "size": [
404
  300,
405
+ 314
406
  ],
407
  "flags": {},
408
+ "order": 8,
409
  "mode": 0,
410
+ "inputs": [
411
+ {
412
+ "localized_name": "image",
413
+ "name": "image",
414
+ "type": "COMBO",
415
+ "widget": {
416
+ "name": "image"
417
+ },
418
+ "link": null
419
+ },
420
+ {
421
+ "localized_name": "choose file to upload",
422
+ "name": "upload",
423
+ "type": "IMAGEUPLOAD",
424
+ "widget": {
425
+ "name": "upload"
426
+ },
427
+ "link": null
428
+ }
429
+ ],
430
  "outputs": [
431
  {
432
+ "localized_name": "IMAGE",
433
  "name": "IMAGE",
434
  "type": "IMAGE",
435
+ "slot_index": 0,
436
  "links": [
437
+ 4
438
+ ]
 
439
  },
440
  {
441
+ "localized_name": "MASK",
442
  "name": "MASK",
443
  "type": "MASK",
444
+ "slot_index": 1,
445
+ "links": []
446
  }
447
  ],
448
  "properties": {
449
  "Node name for S&R": "LoadImage"
450
  },
451
  "widgets_values": [
452
+ "cmp_source.png",
453
  "image"
454
+ ],
455
+ "title": "reference PHOTO"
456
  },
457
  {
458
+ "id": 9,
459
+ "type": "AnimaPoseControl",
460
  "pos": [
461
+ 680,
462
+ 120
463
  ],
464
  "size": [
465
+ 260,
466
+ 200
467
  ],
468
  "flags": {},
469
+ "order": 9,
470
  "mode": 0,
471
+ "properties": {
472
+ "Node name for S&R": "AnimaPoseControl"
473
+ },
474
+ "widgets_values": [
475
+ "R0_thin",
476
+ true,
477
+ true,
478
+ true,
479
+ true,
480
+ 768,
481
+ ""
482
+ ],
483
  "inputs": [
484
  {
485
+ "name": "image",
486
+ "type": "IMAGE",
487
+ "link": 4
488
  }
489
  ],
490
  "outputs": [
491
  {
492
+ "name": "skeleton",
493
+ "type": "IMAGE",
494
  "links": [
495
+ 5,
496
+ 26
497
  ],
498
  "slot_index": 0
499
+ },
500
+ {
501
+ "name": "keypoints",
502
+ "type": "POSE_KEYPOINT",
503
+ "links": [],
504
+ "slot_index": 1
505
  }
506
  ],
507
+ "title": "POSE: detect + style",
508
+ "color": "#533",
509
+ "bgcolor": "#223"
 
510
  },
511
  {
512
+ "id": 10,
513
+ "type": "ImageScale",
514
  "pos": [
515
+ 980,
516
+ 120
517
  ],
518
  "size": [
519
  300,
520
+ 130
521
  ],
522
  "flags": {},
523
+ "order": 10,
524
  "mode": 0,
525
  "inputs": [
526
  {
527
+ "localized_name": "image",
528
+ "name": "image",
529
+ "type": "IMAGE",
530
+ "link": 5
531
  },
532
  {
533
+ "localized_name": "upscale_method",
534
+ "name": "upscale_method",
535
+ "type": "COMBO",
536
+ "widget": {
537
+ "name": "upscale_method"
538
+ },
539
+ "link": null
540
  },
541
  {
542
+ "localized_name": "width",
543
+ "name": "width",
544
+ "type": "INT",
545
+ "widget": {
546
+ "name": "width"
547
+ },
548
+ "link": null
549
  },
550
  {
551
+ "localized_name": "height",
552
+ "name": "height",
553
+ "type": "INT",
554
+ "widget": {
555
+ "name": "height"
556
+ },
557
+ "link": null
558
+ },
559
+ {
560
+ "localized_name": "crop",
561
+ "name": "crop",
562
+ "type": "COMBO",
563
+ "widget": {
564
+ "name": "crop"
565
+ },
566
+ "link": null
567
  }
568
  ],
569
  "outputs": [
570
  {
571
+ "localized_name": "IMAGE",
572
+ "name": "IMAGE",
573
+ "type": "IMAGE",
574
+ "slot_index": 0,
575
  "links": [
576
+ 6
577
+ ]
 
578
  }
579
  ],
580
  "properties": {
581
+ "Node name for S&R": "ImageScale"
582
  },
583
  "widgets_values": [
584
+ "nearest-exact",
585
+ 768,
586
+ 768,
587
+ "disabled"
 
 
 
588
  ]
589
  },
590
  {
591
+ "id": 11,
592
+ "type": "VAEEncode",
593
  "pos": [
594
+ 1280,
595
+ 120
596
  ],
597
  "size": [
598
  300,
599
  120
600
  ],
601
  "flags": {},
602
+ "order": 11,
603
  "mode": 0,
604
  "inputs": [
605
  {
606
+ "localized_name": "pixels",
607
+ "name": "pixels",
608
+ "type": "IMAGE",
609
+ "link": 6
610
  },
611
  {
612
+ "localized_name": "vae",
613
  "name": "vae",
614
  "type": "VAE",
615
  "link": 7
 
617
  ],
618
  "outputs": [
619
  {
620
+ "localized_name": "LATENT",
621
+ "name": "LATENT",
622
+ "type": "LATENT",
623
+ "slot_index": 0,
624
  "links": [
625
+ 9
626
+ ]
 
627
  }
628
  ],
629
  "properties": {
630
+ "Node name for S&R": "VAEEncode"
631
  },
632
  "widgets_values": []
633
  },
634
  {
635
+ "id": 12,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
636
  "type": "AnimaControlApply",
637
  "pos": [
638
+ 1580,
639
+ 120
640
  ],
641
  "size": [
642
  300,
 
647
  "mode": 0,
648
  "inputs": [
649
  {
650
+ "localized_name": "model",
651
  "name": "model",
652
  "type": "MODEL",
653
+ "link": 8
654
  },
655
  {
656
+ "localized_name": "control_latent",
657
  "name": "control_latent",
658
  "type": "LATENT",
659
+ "link": 9
660
+ },
661
+ {
662
+ "localized_name": "control_embedder_path",
663
+ "name": "control_embedder_path",
664
+ "type": "STRING",
665
+ "widget": {
666
+ "name": "control_embedder_path"
667
+ },
668
+ "link": null
669
+ },
670
+ {
671
+ "localized_name": "strength",
672
+ "name": "strength",
673
+ "type": "FLOAT",
674
+ "widget": {
675
+ "name": "strength"
676
+ },
677
+ "link": null
678
  }
679
  ],
680
  "outputs": [
681
  {
682
+ "localized_name": "MODEL",
683
  "name": "MODEL",
684
  "type": "MODEL",
685
+ "slot_index": 0,
686
  "links": [
687
+ 10
688
+ ]
 
689
  }
690
  ],
691
  "properties": {
692
  "Node name for S&R": "AnimaControlApply"
693
  },
694
  "widgets_values": [
695
+ "anima_pose_preview2.safetensors",
696
+ 1
697
  ]
698
  },
699
  {
700
+ "id": 13,
701
  "type": "CFGZeroStar",
702
  "pos": [
703
+ 1880,
704
+ 120
705
  ],
706
  "size": [
707
  300,
 
712
  "mode": 0,
713
  "inputs": [
714
  {
715
+ "localized_name": "model",
716
  "name": "model",
717
  "type": "MODEL",
718
+ "link": 10
719
  }
720
  ],
721
  "outputs": [
722
  {
723
+ "localized_name": "patched_model",
724
+ "name": "patched_model",
725
  "type": "MODEL",
726
+ "slot_index": 0,
727
  "links": [
728
+ 11
729
+ ]
 
730
  }
731
  ],
732
  "properties": {
 
735
  "widgets_values": []
736
  },
737
  {
738
+ "id": 14,
739
  "type": "KSampler",
740
  "pos": [
741
+ 2180,
742
+ 120
743
  ],
744
  "size": [
745
  300,
746
+ 262
747
  ],
748
  "flags": {},
749
  "order": 14,
750
  "mode": 0,
751
  "inputs": [
752
  {
753
+ "localized_name": "model",
754
  "name": "model",
755
  "type": "MODEL",
756
+ "link": 11
757
  },
758
  {
759
+ "localized_name": "positive",
760
  "name": "positive",
761
  "type": "CONDITIONING",
762
+ "link": 12
763
  },
764
  {
765
+ "localized_name": "negative",
766
  "name": "negative",
767
  "type": "CONDITIONING",
768
+ "link": 13
769
  },
770
  {
771
+ "localized_name": "latent_image",
772
  "name": "latent_image",
773
  "type": "LATENT",
774
+ "link": 14
775
+ },
776
+ {
777
+ "localized_name": "seed",
778
+ "name": "seed",
779
+ "type": "INT",
780
+ "widget": {
781
+ "name": "seed"
782
+ },
783
+ "link": null
784
+ },
785
+ {
786
+ "localized_name": "steps",
787
+ "name": "steps",
788
+ "type": "INT",
789
+ "widget": {
790
+ "name": "steps"
791
+ },
792
+ "link": null
793
+ },
794
+ {
795
+ "localized_name": "cfg",
796
+ "name": "cfg",
797
+ "type": "FLOAT",
798
+ "widget": {
799
+ "name": "cfg"
800
+ },
801
+ "link": null
802
+ },
803
+ {
804
+ "localized_name": "sampler_name",
805
+ "name": "sampler_name",
806
+ "type": "COMBO",
807
+ "widget": {
808
+ "name": "sampler_name"
809
+ },
810
+ "link": null
811
+ },
812
+ {
813
+ "localized_name": "scheduler",
814
+ "name": "scheduler",
815
+ "type": "COMBO",
816
+ "widget": {
817
+ "name": "scheduler"
818
+ },
819
+ "link": null
820
+ },
821
+ {
822
+ "localized_name": "denoise",
823
+ "name": "denoise",
824
+ "type": "FLOAT",
825
+ "widget": {
826
+ "name": "denoise"
827
+ },
828
+ "link": null
829
  }
830
  ],
831
  "outputs": [
832
  {
833
+ "localized_name": "LATENT",
834
  "name": "LATENT",
835
  "type": "LATENT",
836
+ "slot_index": 0,
837
  "links": [
838
+ 15
839
+ ]
 
840
  }
841
  ],
842
  "properties": {
843
  "Node name for S&R": "KSampler"
844
  },
845
  "widgets_values": [
846
+ 2024,
847
  "fixed",
848
  30,
849
+ 4,
850
  "er_sde",
851
  "simple",
852
+ 1
853
  ]
854
  },
855
  {
856
+ "id": 15,
857
  "type": "VAEDecode",
858
  "pos": [
859
+ 2480,
860
+ 120
861
  ],
862
  "size": [
863
  300,
 
868
  "mode": 0,
869
  "inputs": [
870
  {
871
+ "localized_name": "samples",
872
  "name": "samples",
873
  "type": "LATENT",
874
+ "link": 15
875
  },
876
  {
877
+ "localized_name": "vae",
878
  "name": "vae",
879
  "type": "VAE",
880
+ "link": 16
881
  }
882
  ],
883
  "outputs": [
884
  {
885
+ "localized_name": "IMAGE",
886
  "name": "IMAGE",
887
  "type": "IMAGE",
888
+ "slot_index": 0,
889
  "links": [
890
+ 17
891
+ ]
 
892
  }
893
  ],
894
  "properties": {
 
897
  "widgets_values": []
898
  },
899
  {
900
+ "id": 16,
901
  "type": "SaveImage",
902
  "pos": [
903
+ 2780,
904
+ 120
905
  ],
906
  "size": [
907
  300,
908
+ 270
909
  ],
910
  "flags": {},
911
  "order": 16,
912
  "mode": 0,
913
  "inputs": [
914
  {
915
+ "localized_name": "images",
916
  "name": "images",
917
  "type": "IMAGE",
918
+ "link": 17
919
+ },
920
+ {
921
+ "localized_name": "filename_prefix",
922
+ "name": "filename_prefix",
923
+ "type": "STRING",
924
+ "widget": {
925
+ "name": "filename_prefix"
926
+ },
927
+ "link": null
928
  }
929
  ],
930
  "outputs": [],
 
932
  "Node name for S&R": "SaveImage"
933
  },
934
  "widgets_values": [
935
+ "anima_pose_control"
936
+ ],
937
+ "title": "GENERATION"
938
  },
939
  {
940
+ "id": 17,
941
+ "type": "CFGZeroStar",
942
  "pos": [
943
+ 1880,
944
+ 580
945
  ],
946
  "size": [
947
  300,
 
952
  "mode": 0,
953
  "inputs": [
954
  {
955
+ "localized_name": "model",
956
+ "name": "model",
957
+ "type": "MODEL",
958
+ "link": 18
959
  }
960
  ],
961
  "outputs": [
962
  {
963
+ "localized_name": "patched_model",
964
+ "name": "patched_model",
965
+ "type": "MODEL",
966
+ "slot_index": 0,
967
  "links": [
968
+ 19
969
+ ]
 
 
 
 
 
 
 
 
970
  }
971
  ],
972
  "properties": {
973
+ "Node name for S&R": "CFGZeroStar"
974
  },
975
+ "widgets_values": []
 
 
 
 
 
 
 
 
976
  },
977
  {
978
+ "id": 18,
979
+ "type": "KSampler",
980
  "pos": [
981
+ 2180,
982
+ 580
983
  ],
984
  "size": [
985
  300,
986
+ 262
987
  ],
988
  "flags": {},
989
  "order": 18,
990
  "mode": 0,
991
  "inputs": [
992
  {
993
+ "localized_name": "model",
994
+ "name": "model",
995
+ "type": "MODEL",
996
+ "link": 19
997
+ },
998
+ {
999
+ "localized_name": "positive",
1000
+ "name": "positive",
1001
+ "type": "CONDITIONING",
1002
+ "link": 20
1003
+ },
1004
+ {
1005
+ "localized_name": "negative",
1006
+ "name": "negative",
1007
+ "type": "CONDITIONING",
1008
+ "link": 21
1009
+ },
1010
+ {
1011
+ "localized_name": "latent_image",
1012
+ "name": "latent_image",
1013
+ "type": "LATENT",
1014
+ "link": 22
1015
+ },
1016
+ {
1017
+ "localized_name": "seed",
1018
+ "name": "seed",
1019
+ "type": "INT",
1020
+ "widget": {
1021
+ "name": "seed"
1022
+ },
1023
+ "link": null
1024
+ },
1025
+ {
1026
+ "localized_name": "steps",
1027
+ "name": "steps",
1028
+ "type": "INT",
1029
+ "widget": {
1030
+ "name": "steps"
1031
+ },
1032
+ "link": null
1033
+ },
1034
+ {
1035
+ "localized_name": "cfg",
1036
+ "name": "cfg",
1037
+ "type": "FLOAT",
1038
+ "widget": {
1039
+ "name": "cfg"
1040
+ },
1041
+ "link": null
1042
+ },
1043
+ {
1044
+ "localized_name": "sampler_name",
1045
+ "name": "sampler_name",
1046
+ "type": "COMBO",
1047
+ "widget": {
1048
+ "name": "sampler_name"
1049
+ },
1050
+ "link": null
1051
+ },
1052
+ {
1053
+ "localized_name": "scheduler",
1054
+ "name": "scheduler",
1055
+ "type": "COMBO",
1056
+ "widget": {
1057
+ "name": "scheduler"
1058
+ },
1059
+ "link": null
1060
+ },
1061
+ {
1062
+ "localized_name": "denoise",
1063
+ "name": "denoise",
1064
+ "type": "FLOAT",
1065
+ "widget": {
1066
+ "name": "denoise"
1067
+ },
1068
+ "link": null
1069
  }
1070
  ],
1071
  "outputs": [
1072
  {
1073
+ "localized_name": "LATENT",
1074
+ "name": "LATENT",
1075
+ "type": "LATENT",
1076
+ "slot_index": 0,
1077
  "links": [
1078
+ 23
1079
+ ]
 
1080
  }
1081
  ],
1082
  "properties": {
1083
+ "Node name for S&R": "KSampler"
1084
  },
1085
  "widgets_values": [
1086
+ 2024,
1087
+ "fixed",
1088
+ 30,
1089
+ 4,
1090
+ "er_sde",
1091
+ "simple",
1092
+ 1
1093
  ]
1094
  },
1095
  {
1096
+ "id": 19,
1097
+ "type": "VAEDecode",
1098
  "pos": [
1099
+ 2480,
1100
+ 580
1101
  ],
1102
  "size": [
1103
  300,
 
1108
  "mode": 0,
1109
  "inputs": [
1110
  {
1111
+ "localized_name": "samples",
1112
+ "name": "samples",
1113
+ "type": "LATENT",
1114
+ "link": 23
1115
  },
1116
  {
1117
+ "localized_name": "vae",
1118
  "name": "vae",
1119
  "type": "VAE",
1120
+ "link": 24
1121
  }
1122
  ],
1123
  "outputs": [
1124
  {
1125
+ "localized_name": "IMAGE",
1126
+ "name": "IMAGE",
1127
+ "type": "IMAGE",
1128
+ "slot_index": 0,
1129
  "links": [
1130
+ 25
1131
+ ]
 
1132
  }
1133
  ],
1134
  "properties": {
1135
+ "Node name for S&R": "VAEDecode"
1136
  },
1137
  "widgets_values": []
1138
  },
1139
  {
1140
+ "id": 20,
1141
  "type": "SaveImage",
1142
  "pos": [
1143
+ 2780,
1144
+ 580
1145
  ],
1146
  "size": [
1147
  300,
1148
+ 270
1149
  ],
1150
  "flags": {},
1151
  "order": 20,
1152
  "mode": 0,
1153
  "inputs": [
1154
  {
1155
+ "localized_name": "images",
1156
  "name": "images",
1157
  "type": "IMAGE",
1158
+ "link": 25
1159
+ },
1160
+ {
1161
+ "localized_name": "filename_prefix",
1162
+ "name": "filename_prefix",
1163
+ "type": "STRING",
1164
+ "widget": {
1165
+ "name": "filename_prefix"
1166
+ },
1167
+ "link": null
1168
  }
1169
  ],
1170
  "outputs": [],
 
1172
  "Node name for S&R": "SaveImage"
1173
  },
1174
  "widgets_values": [
1175
+ "anima_pose_BASE"
1176
+ ],
1177
+ "title": "BASE (no control)"
1178
+ },
1179
+ {
1180
+ "id": 21,
1181
+ "type": "SaveImage",
1182
+ "pos": [
1183
+ 980,
1184
+ 580
1185
+ ],
1186
+ "size": [
1187
+ 300,
1188
+ 270
1189
+ ],
1190
+ "flags": {},
1191
+ "order": 21,
1192
+ "mode": 0,
1193
+ "inputs": [
1194
+ {
1195
+ "localized_name": "images",
1196
+ "name": "images",
1197
+ "type": "IMAGE",
1198
+ "link": 26
1199
+ },
1200
+ {
1201
+ "localized_name": "filename_prefix",
1202
+ "name": "filename_prefix",
1203
+ "type": "STRING",
1204
+ "widget": {
1205
+ "name": "filename_prefix"
1206
+ },
1207
+ "link": null
1208
+ }
1209
+ ],
1210
+ "outputs": [],
1211
+ "properties": {
1212
+ "Node name for S&R": "SaveImage"
1213
+ },
1214
+ "widgets_values": [
1215
+ "anima_pose_SKELETON"
1216
+ ],
1217
+ "title": "SKELETON (control image)"
1218
  }
1219
  ],
1220
  "links": [
 
1222
  1,
1223
  1,
1224
  0,
1225
+ 2,
1226
  0,
1227
  "MODEL"
1228
  ],
1229
  [
1230
  2,
1231
+ 3,
1232
  0,
1233
+ 5,
1234
  0,
1235
+ "CLIP"
1236
  ],
1237
  [
1238
  3,
1239
+ 3,
1240
  0,
1241
+ 6,
1242
  0,
1243
  "CLIP"
1244
  ],
1245
  [
1246
  4,
1247
+ 8,
1248
  0,
1249
  9,
1250
  0,
1251
+ "IMAGE"
1252
  ],
1253
  [
1254
  5,
1255
+ 9,
1256
  0,
1257
+ 10,
1258
+ 0,
1259
+ "IMAGE"
1260
  ],
1261
  [
1262
  6,
1263
+ 10,
1264
  0,
1265
+ 11,
1266
+ 0,
1267
+ "IMAGE"
1268
  ],
1269
  [
1270
  7,
1271
+ 4,
1272
  0,
1273
+ 11,
1274
  1,
1275
  "VAE"
1276
  ],
1277
  [
1278
  8,
1279
+ 2,
1280
  0,
1281
+ 12,
1282
  0,
1283
+ "MODEL"
1284
  ],
1285
  [
1286
  9,
1287
+ 11,
 
 
1288
  0,
1289
+ 12,
1290
+ 1,
1291
+ "LATENT"
1292
  ],
1293
  [
1294
  10,
1295
+ 12,
1296
  0,
1297
+ 13,
1298
  0,
1299
+ "MODEL"
1300
  ],
1301
  [
1302
  11,
1303
+ 13,
1304
  0,
1305
+ 14,
1306
  0,
1307
+ "MODEL"
1308
  ],
1309
  [
1310
  12,
1311
+ 5,
1312
  0,
1313
+ 14,
1314
  1,
1315
+ "CONDITIONING"
1316
  ],
1317
  [
1318
  13,
1319
+ 6,
 
 
1320
  0,
1321
+ 14,
1322
+ 2,
1323
+ "CONDITIONING"
1324
  ],
1325
  [
1326
  14,
1327
+ 7,
 
 
1328
  0,
1329
+ 14,
1330
+ 3,
1331
+ "LATENT"
1332
  ],
1333
  [
1334
  15,
1335
+ 14,
1336
  0,
1337
+ 15,
1338
  0,
1339
+ "LATENT"
1340
  ],
1341
  [
1342
  16,
1343
+ 4,
1344
  0,
1345
+ 15,
1346
  1,
1347
+ "VAE"
1348
  ],
1349
  [
1350
  17,
1351
+ 15,
1352
  0,
1353
+ 16,
1354
+ 0,
1355
+ "IMAGE"
1356
  ],
1357
  [
1358
  18,
1359
+ 1,
1360
  0,
1361
+ 17,
1362
+ 0,
1363
+ "MODEL"
1364
  ],
1365
  [
1366
  19,
1367
+ 17,
1368
  0,
1369
+ 18,
1370
  0,
1371
  "MODEL"
1372
  ],
1373
  [
1374
  20,
1375
+ 5,
1376
  0,
1377
+ 18,
1378
  1,
1379
  "CONDITIONING"
1380
  ],
1381
  [
1382
  21,
1383
+ 6,
1384
  0,
1385
+ 18,
1386
  2,
1387
  "CONDITIONING"
1388
  ],
1389
  [
1390
  22,
1391
+ 7,
1392
  0,
1393
+ 18,
1394
  3,
1395
  "LATENT"
1396
  ],
1397
  [
1398
  23,
1399
+ 18,
1400
  0,
1401
+ 19,
1402
  0,
1403
  "LATENT"
1404
  ],
1405
  [
1406
  24,
1407
+ 4,
1408
  0,
1409
  19,
1410
+ 1,
1411
+ "VAE"
1412
  ],
1413
  [
1414
  25,
1415
+ 19,
1416
  0,
1417
+ 20,
1418
  0,
1419
  "IMAGE"
1420
  ],
1421
  [
1422
  26,
1423
+ 9,
1424
  0,
1425
+ 21,
1426
  0,
1427
  "IMAGE"
1428
  ]
1429
  ],
1430
  "groups": [
1431
  {
1432
+ "id": 1,
1433
+ "title": "CONTROL (pose LoRA)",
1434
  "bounding": [
1435
+ 1560,
1436
+ 60,
1437
+ 1260,
1438
  300
1439
  ],
1440
+ "color": "#2a3f2a",
1441
+ "font_size": 22,
1442
+ "flags": {}
1443
  },
1444
  {
1445
+ "id": 2,
1446
+ "title": "BASE (no control) \u2014 same seed/prompt",
1447
  "bounding": [
1448
+ 1560,
1449
+ 520,
1450
+ 1260,
1451
  300
1452
  ],
1453
+ "color": "#3f2a2a",
1454
+ "font_size": 22,
1455
+ "flags": {}
 
 
 
 
 
 
 
 
 
 
1456
  }
1457
  ],
1458
  "config": {},
1459
+ "extra": {
1460
+ "ds": {
1461
+ "scale": 1.2284597357367357,
1462
+ "offset": [
1463
+ -896.6673282988922,
1464
+ -2098.6519356376084
1465
+ ]
1466
+ }
1467
+ },
1468
  "version": 0.4
1469
  }
pose_control_edit.json ADDED
@@ -0,0 +1,1082 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "pose_control_edit",
3
+ "revision": 0,
4
+ "last_node_id": 16,
5
+ "last_link_id": 17,
6
+ "nodes": [
7
+ {
8
+ "id": 1,
9
+ "type": "UNETLoader",
10
+ "pos": [
11
+ 20,
12
+ 20
13
+ ],
14
+ "size": [
15
+ 300,
16
+ 120
17
+ ],
18
+ "flags": {},
19
+ "order": 1,
20
+ "mode": 0,
21
+ "inputs": [
22
+ {
23
+ "localized_name": "unet_name",
24
+ "name": "unet_name",
25
+ "type": "COMBO",
26
+ "widget": {
27
+ "name": "unet_name"
28
+ },
29
+ "link": null
30
+ },
31
+ {
32
+ "localized_name": "weight_dtype",
33
+ "name": "weight_dtype",
34
+ "type": "COMBO",
35
+ "widget": {
36
+ "name": "weight_dtype"
37
+ },
38
+ "link": null
39
+ }
40
+ ],
41
+ "outputs": [
42
+ {
43
+ "localized_name": "MODEL",
44
+ "name": "MODEL",
45
+ "type": "MODEL",
46
+ "slot_index": 0,
47
+ "links": [
48
+ 1
49
+ ]
50
+ }
51
+ ],
52
+ "properties": {
53
+ "Node name for S&R": "UNETLoader"
54
+ },
55
+ "widgets_values": [
56
+ "anima-base-v1.0.safetensors",
57
+ "default"
58
+ ]
59
+ },
60
+ {
61
+ "id": 2,
62
+ "type": "CLIPLoader",
63
+ "pos": [
64
+ 20,
65
+ 160
66
+ ],
67
+ "size": [
68
+ 300,
69
+ 120
70
+ ],
71
+ "flags": {},
72
+ "order": 2,
73
+ "mode": 0,
74
+ "inputs": [
75
+ {
76
+ "localized_name": "clip_name",
77
+ "name": "clip_name",
78
+ "type": "COMBO",
79
+ "widget": {
80
+ "name": "clip_name"
81
+ },
82
+ "link": null
83
+ },
84
+ {
85
+ "localized_name": "type",
86
+ "name": "type",
87
+ "type": "COMBO",
88
+ "widget": {
89
+ "name": "type"
90
+ },
91
+ "link": null
92
+ },
93
+ {
94
+ "localized_name": "device",
95
+ "name": "device",
96
+ "shape": 7,
97
+ "type": "COMBO",
98
+ "widget": {
99
+ "name": "device"
100
+ },
101
+ "link": null
102
+ }
103
+ ],
104
+ "outputs": [
105
+ {
106
+ "localized_name": "CLIP",
107
+ "name": "CLIP",
108
+ "type": "CLIP",
109
+ "slot_index": 0,
110
+ "links": [
111
+ 2,
112
+ 3
113
+ ]
114
+ }
115
+ ],
116
+ "properties": {
117
+ "Node name for S&R": "CLIPLoader"
118
+ },
119
+ "widgets_values": [
120
+ "qwen_3_06b_base.safetensors",
121
+ "stable_diffusion",
122
+ "default"
123
+ ]
124
+ },
125
+ {
126
+ "id": 3,
127
+ "type": "VAELoader",
128
+ "pos": [
129
+ 20,
130
+ 300
131
+ ],
132
+ "size": [
133
+ 300,
134
+ 120
135
+ ],
136
+ "flags": {},
137
+ "order": 3,
138
+ "mode": 0,
139
+ "inputs": [
140
+ {
141
+ "localized_name": "vae_name",
142
+ "name": "vae_name",
143
+ "type": "COMBO",
144
+ "widget": {
145
+ "name": "vae_name"
146
+ },
147
+ "link": null
148
+ }
149
+ ],
150
+ "outputs": [
151
+ {
152
+ "localized_name": "VAE",
153
+ "name": "VAE",
154
+ "type": "VAE",
155
+ "slot_index": 0,
156
+ "links": [
157
+ 7,
158
+ 16
159
+ ]
160
+ }
161
+ ],
162
+ "properties": {
163
+ "Node name for S&R": "VAELoader"
164
+ },
165
+ "widgets_values": [
166
+ "qwen_image_vae.safetensors"
167
+ ]
168
+ },
169
+ {
170
+ "id": 4,
171
+ "type": "LoraLoaderModelOnly",
172
+ "pos": [
173
+ 20,
174
+ 410
175
+ ],
176
+ "size": [
177
+ 300,
178
+ 120
179
+ ],
180
+ "flags": {},
181
+ "order": 4,
182
+ "mode": 0,
183
+ "inputs": [
184
+ {
185
+ "localized_name": "model",
186
+ "name": "model",
187
+ "type": "MODEL",
188
+ "link": 1
189
+ },
190
+ {
191
+ "localized_name": "lora_name",
192
+ "name": "lora_name",
193
+ "type": "COMBO",
194
+ "widget": {
195
+ "name": "lora_name"
196
+ },
197
+ "link": null
198
+ },
199
+ {
200
+ "localized_name": "strength_model",
201
+ "name": "strength_model",
202
+ "type": "FLOAT",
203
+ "widget": {
204
+ "name": "strength_model"
205
+ },
206
+ "link": null
207
+ }
208
+ ],
209
+ "outputs": [
210
+ {
211
+ "localized_name": "MODEL",
212
+ "name": "MODEL",
213
+ "type": "MODEL",
214
+ "slot_index": 0,
215
+ "links": [
216
+ 8
217
+ ]
218
+ }
219
+ ],
220
+ "properties": {
221
+ "Node name for S&R": "LoraLoaderModelOnly"
222
+ },
223
+ "widgets_values": [
224
+ "anima_pose_preview2.safetensors",
225
+ 1
226
+ ]
227
+ },
228
+ {
229
+ "id": 5,
230
+ "type": "CLIPTextEncode",
231
+ "pos": [
232
+ 20,
233
+ 540
234
+ ],
235
+ "size": [
236
+ 300,
237
+ 120
238
+ ],
239
+ "flags": {},
240
+ "order": 5,
241
+ "mode": 0,
242
+ "inputs": [
243
+ {
244
+ "localized_name": "clip",
245
+ "name": "clip",
246
+ "type": "CLIP",
247
+ "link": 2
248
+ },
249
+ {
250
+ "localized_name": "text",
251
+ "name": "text",
252
+ "type": "STRING",
253
+ "widget": {
254
+ "name": "text"
255
+ },
256
+ "link": null
257
+ }
258
+ ],
259
+ "outputs": [
260
+ {
261
+ "localized_name": "CONDITIONING",
262
+ "name": "CONDITIONING",
263
+ "type": "CONDITIONING",
264
+ "slot_index": 0,
265
+ "links": [
266
+ 12
267
+ ]
268
+ }
269
+ ],
270
+ "properties": {
271
+ "Node name for S&R": "CLIPTextEncode"
272
+ },
273
+ "widgets_values": [
274
+ "newest, masterpiece, best quality, score_9, safe\n\n1girl, solo, simple background"
275
+ ]
276
+ },
277
+ {
278
+ "id": 6,
279
+ "type": "CLIPTextEncode",
280
+ "pos": [
281
+ 20,
282
+ 740
283
+ ],
284
+ "size": [
285
+ 300,
286
+ 120
287
+ ],
288
+ "flags": {},
289
+ "order": 6,
290
+ "mode": 0,
291
+ "inputs": [
292
+ {
293
+ "localized_name": "clip",
294
+ "name": "clip",
295
+ "type": "CLIP",
296
+ "link": 3
297
+ },
298
+ {
299
+ "localized_name": "text",
300
+ "name": "text",
301
+ "type": "STRING",
302
+ "widget": {
303
+ "name": "text"
304
+ },
305
+ "link": null
306
+ }
307
+ ],
308
+ "outputs": [
309
+ {
310
+ "localized_name": "CONDITIONING",
311
+ "name": "CONDITIONING",
312
+ "type": "CONDITIONING",
313
+ "slot_index": 0,
314
+ "links": [
315
+ 13
316
+ ]
317
+ }
318
+ ],
319
+ "properties": {
320
+ "Node name for S&R": "CLIPTextEncode"
321
+ },
322
+ "widgets_values": [
323
+ "worst quality, low quality, score_1, score_2, blurry, jpeg artifacts"
324
+ ]
325
+ },
326
+ {
327
+ "id": 7,
328
+ "type": "EmptyLatentImage",
329
+ "pos": [
330
+ 20,
331
+ 940
332
+ ],
333
+ "size": [
334
+ 300,
335
+ 120
336
+ ],
337
+ "flags": {},
338
+ "order": 7,
339
+ "mode": 0,
340
+ "inputs": [
341
+ {
342
+ "localized_name": "width",
343
+ "name": "width",
344
+ "type": "INT",
345
+ "widget": {
346
+ "name": "width"
347
+ },
348
+ "link": null
349
+ },
350
+ {
351
+ "localized_name": "height",
352
+ "name": "height",
353
+ "type": "INT",
354
+ "widget": {
355
+ "name": "height"
356
+ },
357
+ "link": null
358
+ },
359
+ {
360
+ "localized_name": "batch_size",
361
+ "name": "batch_size",
362
+ "type": "INT",
363
+ "widget": {
364
+ "name": "batch_size"
365
+ },
366
+ "link": null
367
+ }
368
+ ],
369
+ "outputs": [
370
+ {
371
+ "localized_name": "LATENT",
372
+ "name": "LATENT",
373
+ "type": "LATENT",
374
+ "slot_index": 0,
375
+ "links": [
376
+ 14
377
+ ]
378
+ }
379
+ ],
380
+ "properties": {
381
+ "Node name for S&R": "EmptyLatentImage"
382
+ },
383
+ "widgets_values": [
384
+ 768,
385
+ 768,
386
+ 1
387
+ ]
388
+ },
389
+ {
390
+ "id": 8,
391
+ "type": "LoadImage",
392
+ "pos": [
393
+ 360,
394
+ 160
395
+ ],
396
+ "size": [
397
+ 300,
398
+ 314
399
+ ],
400
+ "flags": {},
401
+ "order": 8,
402
+ "mode": 0,
403
+ "inputs": [
404
+ {
405
+ "localized_name": "image",
406
+ "name": "image",
407
+ "type": "COMBO",
408
+ "widget": {
409
+ "name": "image"
410
+ },
411
+ "link": null
412
+ },
413
+ {
414
+ "localized_name": "choose file to upload",
415
+ "name": "upload",
416
+ "type": "IMAGEUPLOAD",
417
+ "widget": {
418
+ "name": "upload"
419
+ },
420
+ "link": null
421
+ }
422
+ ],
423
+ "outputs": [
424
+ {
425
+ "localized_name": "IMAGE",
426
+ "name": "IMAGE",
427
+ "type": "IMAGE",
428
+ "slot_index": 0,
429
+ "links": [
430
+ 4
431
+ ]
432
+ },
433
+ {
434
+ "localized_name": "MASK",
435
+ "name": "MASK",
436
+ "type": "MASK",
437
+ "slot_index": 1,
438
+ "links": []
439
+ }
440
+ ],
441
+ "properties": {
442
+ "Node name for S&R": "LoadImage"
443
+ },
444
+ "widgets_values": [
445
+ "cmp_source.png",
446
+ "image"
447
+ ],
448
+ "title": "reference PHOTO"
449
+ },
450
+ {
451
+ "id": 9,
452
+ "type": "AnimaPoseControl",
453
+ "pos": [
454
+ 680,
455
+ 160
456
+ ],
457
+ "size": [
458
+ 250,
459
+ 180
460
+ ],
461
+ "flags": {},
462
+ "order": 9,
463
+ "mode": 0,
464
+ "properties": {
465
+ "Node name for S&R": "AnimaPoseControl"
466
+ },
467
+ "widgets_values": [
468
+ "R0_thin",
469
+ true,
470
+ true,
471
+ true,
472
+ true,
473
+ 768,
474
+ ""
475
+ ],
476
+ "inputs": [
477
+ {
478
+ "name": "image",
479
+ "type": "IMAGE",
480
+ "link": 4
481
+ }
482
+ ],
483
+ "outputs": [
484
+ {
485
+ "name": "skeleton",
486
+ "type": "IMAGE",
487
+ "links": [
488
+ 5
489
+ ],
490
+ "slot_index": 0
491
+ },
492
+ {
493
+ "name": "keypoints",
494
+ "type": "POSE_KEYPOINT",
495
+ "links": [],
496
+ "slot_index": 1
497
+ }
498
+ ],
499
+ "title": "POSE: detect + style",
500
+ "color": "#533",
501
+ "bgcolor": "#223"
502
+ },
503
+ {
504
+ "id": 10,
505
+ "type": "ImageScale",
506
+ "pos": [
507
+ 1010,
508
+ 160
509
+ ],
510
+ "size": [
511
+ 300,
512
+ 130
513
+ ],
514
+ "flags": {},
515
+ "order": 10,
516
+ "mode": 0,
517
+ "inputs": [
518
+ {
519
+ "localized_name": "image",
520
+ "name": "image",
521
+ "type": "IMAGE",
522
+ "link": 5
523
+ },
524
+ {
525
+ "localized_name": "upscale_method",
526
+ "name": "upscale_method",
527
+ "type": "COMBO",
528
+ "widget": {
529
+ "name": "upscale_method"
530
+ },
531
+ "link": null
532
+ },
533
+ {
534
+ "localized_name": "width",
535
+ "name": "width",
536
+ "type": "INT",
537
+ "widget": {
538
+ "name": "width"
539
+ },
540
+ "link": null
541
+ },
542
+ {
543
+ "localized_name": "height",
544
+ "name": "height",
545
+ "type": "INT",
546
+ "widget": {
547
+ "name": "height"
548
+ },
549
+ "link": null
550
+ },
551
+ {
552
+ "localized_name": "crop",
553
+ "name": "crop",
554
+ "type": "COMBO",
555
+ "widget": {
556
+ "name": "crop"
557
+ },
558
+ "link": null
559
+ }
560
+ ],
561
+ "outputs": [
562
+ {
563
+ "localized_name": "IMAGE",
564
+ "name": "IMAGE",
565
+ "type": "IMAGE",
566
+ "slot_index": 0,
567
+ "links": [
568
+ 6
569
+ ]
570
+ }
571
+ ],
572
+ "properties": {
573
+ "Node name for S&R": "ImageScale"
574
+ },
575
+ "widgets_values": [
576
+ "nearest-exact",
577
+ 768,
578
+ 768,
579
+ "disabled"
580
+ ]
581
+ },
582
+ {
583
+ "id": 11,
584
+ "type": "VAEEncode",
585
+ "pos": [
586
+ 1210,
587
+ 160
588
+ ],
589
+ "size": [
590
+ 300,
591
+ 120
592
+ ],
593
+ "flags": {},
594
+ "order": 11,
595
+ "mode": 0,
596
+ "inputs": [
597
+ {
598
+ "localized_name": "pixels",
599
+ "name": "pixels",
600
+ "type": "IMAGE",
601
+ "link": 6
602
+ },
603
+ {
604
+ "localized_name": "vae",
605
+ "name": "vae",
606
+ "type": "VAE",
607
+ "link": 7
608
+ }
609
+ ],
610
+ "outputs": [
611
+ {
612
+ "localized_name": "LATENT",
613
+ "name": "LATENT",
614
+ "type": "LATENT",
615
+ "slot_index": 0,
616
+ "links": [
617
+ 9
618
+ ]
619
+ }
620
+ ],
621
+ "properties": {
622
+ "Node name for S&R": "VAEEncode"
623
+ },
624
+ "widgets_values": []
625
+ },
626
+ {
627
+ "id": 12,
628
+ "type": "AnimaControlApply",
629
+ "pos": [
630
+ 1390,
631
+ 160
632
+ ],
633
+ "size": [
634
+ 300,
635
+ 120
636
+ ],
637
+ "flags": {},
638
+ "order": 12,
639
+ "mode": 0,
640
+ "inputs": [
641
+ {
642
+ "localized_name": "model",
643
+ "name": "model",
644
+ "type": "MODEL",
645
+ "link": 8
646
+ },
647
+ {
648
+ "localized_name": "control_latent",
649
+ "name": "control_latent",
650
+ "type": "LATENT",
651
+ "link": 9
652
+ },
653
+ {
654
+ "localized_name": "control_embedder_path",
655
+ "name": "control_embedder_path",
656
+ "type": "STRING",
657
+ "widget": {
658
+ "name": "control_embedder_path"
659
+ },
660
+ "link": null
661
+ },
662
+ {
663
+ "localized_name": "strength",
664
+ "name": "strength",
665
+ "type": "FLOAT",
666
+ "widget": {
667
+ "name": "strength"
668
+ },
669
+ "link": null
670
+ }
671
+ ],
672
+ "outputs": [
673
+ {
674
+ "localized_name": "MODEL",
675
+ "name": "MODEL",
676
+ "type": "MODEL",
677
+ "slot_index": 0,
678
+ "links": [
679
+ 10
680
+ ]
681
+ }
682
+ ],
683
+ "properties": {
684
+ "Node name for S&R": "AnimaControlApply"
685
+ },
686
+ "widgets_values": [
687
+ "anima_pose_preview2.safetensors",
688
+ 1
689
+ ]
690
+ },
691
+ {
692
+ "id": 13,
693
+ "type": "CFGZeroStar",
694
+ "pos": [
695
+ 1630,
696
+ 160
697
+ ],
698
+ "size": [
699
+ 300,
700
+ 120
701
+ ],
702
+ "flags": {},
703
+ "order": 13,
704
+ "mode": 0,
705
+ "inputs": [
706
+ {
707
+ "localized_name": "model",
708
+ "name": "model",
709
+ "type": "MODEL",
710
+ "link": 10
711
+ }
712
+ ],
713
+ "outputs": [
714
+ {
715
+ "localized_name": "patched_model",
716
+ "name": "patched_model",
717
+ "type": "MODEL",
718
+ "slot_index": 0,
719
+ "links": [
720
+ 11
721
+ ]
722
+ }
723
+ ],
724
+ "properties": {
725
+ "Node name for S&R": "CFGZeroStar"
726
+ },
727
+ "widgets_values": []
728
+ },
729
+ {
730
+ "id": 14,
731
+ "type": "KSampler",
732
+ "pos": [
733
+ 1790,
734
+ 160
735
+ ],
736
+ "size": [
737
+ 300,
738
+ 262
739
+ ],
740
+ "flags": {},
741
+ "order": 14,
742
+ "mode": 0,
743
+ "inputs": [
744
+ {
745
+ "localized_name": "model",
746
+ "name": "model",
747
+ "type": "MODEL",
748
+ "link": 11
749
+ },
750
+ {
751
+ "localized_name": "positive",
752
+ "name": "positive",
753
+ "type": "CONDITIONING",
754
+ "link": 12
755
+ },
756
+ {
757
+ "localized_name": "negative",
758
+ "name": "negative",
759
+ "type": "CONDITIONING",
760
+ "link": 13
761
+ },
762
+ {
763
+ "localized_name": "latent_image",
764
+ "name": "latent_image",
765
+ "type": "LATENT",
766
+ "link": 14
767
+ },
768
+ {
769
+ "localized_name": "seed",
770
+ "name": "seed",
771
+ "type": "INT",
772
+ "widget": {
773
+ "name": "seed"
774
+ },
775
+ "link": null
776
+ },
777
+ {
778
+ "localized_name": "steps",
779
+ "name": "steps",
780
+ "type": "INT",
781
+ "widget": {
782
+ "name": "steps"
783
+ },
784
+ "link": null
785
+ },
786
+ {
787
+ "localized_name": "cfg",
788
+ "name": "cfg",
789
+ "type": "FLOAT",
790
+ "widget": {
791
+ "name": "cfg"
792
+ },
793
+ "link": null
794
+ },
795
+ {
796
+ "localized_name": "sampler_name",
797
+ "name": "sampler_name",
798
+ "type": "COMBO",
799
+ "widget": {
800
+ "name": "sampler_name"
801
+ },
802
+ "link": null
803
+ },
804
+ {
805
+ "localized_name": "scheduler",
806
+ "name": "scheduler",
807
+ "type": "COMBO",
808
+ "widget": {
809
+ "name": "scheduler"
810
+ },
811
+ "link": null
812
+ },
813
+ {
814
+ "localized_name": "denoise",
815
+ "name": "denoise",
816
+ "type": "FLOAT",
817
+ "widget": {
818
+ "name": "denoise"
819
+ },
820
+ "link": null
821
+ }
822
+ ],
823
+ "outputs": [
824
+ {
825
+ "localized_name": "LATENT",
826
+ "name": "LATENT",
827
+ "type": "LATENT",
828
+ "slot_index": 0,
829
+ "links": [
830
+ 15
831
+ ]
832
+ }
833
+ ],
834
+ "properties": {
835
+ "Node name for S&R": "KSampler"
836
+ },
837
+ "widgets_values": [
838
+ 2024,
839
+ "fixed",
840
+ 30,
841
+ 4,
842
+ "er_sde",
843
+ "simple",
844
+ 1
845
+ ]
846
+ },
847
+ {
848
+ "id": 15,
849
+ "type": "VAEDecode",
850
+ "pos": [
851
+ 2050,
852
+ 160
853
+ ],
854
+ "size": [
855
+ 300,
856
+ 120
857
+ ],
858
+ "flags": {},
859
+ "order": 15,
860
+ "mode": 0,
861
+ "inputs": [
862
+ {
863
+ "localized_name": "samples",
864
+ "name": "samples",
865
+ "type": "LATENT",
866
+ "link": 15
867
+ },
868
+ {
869
+ "localized_name": "vae",
870
+ "name": "vae",
871
+ "type": "VAE",
872
+ "link": 16
873
+ }
874
+ ],
875
+ "outputs": [
876
+ {
877
+ "localized_name": "IMAGE",
878
+ "name": "IMAGE",
879
+ "type": "IMAGE",
880
+ "slot_index": 0,
881
+ "links": [
882
+ 17
883
+ ]
884
+ }
885
+ ],
886
+ "properties": {
887
+ "Node name for S&R": "VAEDecode"
888
+ },
889
+ "widgets_values": []
890
+ },
891
+ {
892
+ "id": 16,
893
+ "type": "SaveImage",
894
+ "pos": [
895
+ 2230,
896
+ 160
897
+ ],
898
+ "size": [
899
+ 300,
900
+ 270
901
+ ],
902
+ "flags": {},
903
+ "order": 16,
904
+ "mode": 0,
905
+ "inputs": [
906
+ {
907
+ "localized_name": "images",
908
+ "name": "images",
909
+ "type": "IMAGE",
910
+ "link": 17
911
+ },
912
+ {
913
+ "localized_name": "filename_prefix",
914
+ "name": "filename_prefix",
915
+ "type": "STRING",
916
+ "widget": {
917
+ "name": "filename_prefix"
918
+ },
919
+ "link": null
920
+ }
921
+ ],
922
+ "outputs": [],
923
+ "properties": {
924
+ "Node name for S&R": "SaveImage"
925
+ },
926
+ "widgets_values": [
927
+ "pose_edit_out"
928
+ ],
929
+ "title": "GENERATION (v2)"
930
+ }
931
+ ],
932
+ "links": [
933
+ [
934
+ 1,
935
+ 1,
936
+ 0,
937
+ 4,
938
+ 0,
939
+ "MODEL"
940
+ ],
941
+ [
942
+ 2,
943
+ 2,
944
+ 0,
945
+ 5,
946
+ 0,
947
+ "CLIP"
948
+ ],
949
+ [
950
+ 3,
951
+ 2,
952
+ 0,
953
+ 6,
954
+ 0,
955
+ "CLIP"
956
+ ],
957
+ [
958
+ 4,
959
+ 8,
960
+ 0,
961
+ 9,
962
+ 0,
963
+ "IMAGE"
964
+ ],
965
+ [
966
+ 5,
967
+ 9,
968
+ 0,
969
+ 10,
970
+ 0,
971
+ "IMAGE"
972
+ ],
973
+ [
974
+ 6,
975
+ 10,
976
+ 0,
977
+ 11,
978
+ 0,
979
+ "IMAGE"
980
+ ],
981
+ [
982
+ 7,
983
+ 3,
984
+ 0,
985
+ 11,
986
+ 1,
987
+ "VAE"
988
+ ],
989
+ [
990
+ 8,
991
+ 4,
992
+ 0,
993
+ 12,
994
+ 0,
995
+ "MODEL"
996
+ ],
997
+ [
998
+ 9,
999
+ 11,
1000
+ 0,
1001
+ 12,
1002
+ 1,
1003
+ "LATENT"
1004
+ ],
1005
+ [
1006
+ 10,
1007
+ 12,
1008
+ 0,
1009
+ 13,
1010
+ 0,
1011
+ "MODEL"
1012
+ ],
1013
+ [
1014
+ 11,
1015
+ 13,
1016
+ 0,
1017
+ 14,
1018
+ 0,
1019
+ "MODEL"
1020
+ ],
1021
+ [
1022
+ 12,
1023
+ 5,
1024
+ 0,
1025
+ 14,
1026
+ 1,
1027
+ "CONDITIONING"
1028
+ ],
1029
+ [
1030
+ 13,
1031
+ 6,
1032
+ 0,
1033
+ 14,
1034
+ 2,
1035
+ "CONDITIONING"
1036
+ ],
1037
+ [
1038
+ 14,
1039
+ 7,
1040
+ 0,
1041
+ 14,
1042
+ 3,
1043
+ "LATENT"
1044
+ ],
1045
+ [
1046
+ 15,
1047
+ 14,
1048
+ 0,
1049
+ 15,
1050
+ 0,
1051
+ "LATENT"
1052
+ ],
1053
+ [
1054
+ 16,
1055
+ 3,
1056
+ 0,
1057
+ 15,
1058
+ 1,
1059
+ "VAE"
1060
+ ],
1061
+ [
1062
+ 17,
1063
+ 15,
1064
+ 0,
1065
+ 16,
1066
+ 0,
1067
+ "IMAGE"
1068
+ ]
1069
+ ],
1070
+ "groups": [],
1071
+ "config": {},
1072
+ "extra": {
1073
+ "ds": {
1074
+ "scale": 1.2284597357367357,
1075
+ "offset": [
1076
+ -896.6673282988922,
1077
+ -2098.6519356376084
1078
+ ]
1079
+ }
1080
+ },
1081
+ "version": 0.4
1082
+ }
samples/grid.png CHANGED

Git LFS Details

  • SHA256: 6207fe5f357142659a16c75fd5c70bc15c59a6b19805fc2f0be99d03e5bc04ff
  • Pointer size: 132 Bytes
  • Size of remote file: 3.87 MB

Git LFS Details

  • SHA256: fb79ff8d1578e0e3e47efb3918831dbdb94602e01322aa7c06afed3b30a89395
  • Pointer size: 132 Bytes
  • Size of remote file: 5.89 MB