ff0bf0840bb50586cff458b01f156c23afd134dc01c8dc1d81255e63135ce6ea
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +1 -0
- sd-webui-3d-open-pose-editor/Pipfile.lock +0 -0
- sd-webui-3d-open-pose-editor/README-ja.md +48 -0
- sd-webui-3d-open-pose-editor/README-zh.md +52 -0
- sd-webui-3d-open-pose-editor/README.md +48 -0
- sd-webui-3d-open-pose-editor/compress.ts +24 -0
- sd-webui-3d-open-pose-editor/docs/intro.png +0 -0
- sd-webui-3d-open-pose-editor/downloads/config.json +1 -0
- sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_landmark_full.tflite +3 -0
- sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_packed_assets.data +3 -0
- sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_packed_assets_loader.js +191 -0
- sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_simd_wasm_bin.js +0 -0
- sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_simd_wasm_bin.wasm +3 -0
- sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_web.binarypb +0 -0
- sd-webui-3d-open-pose-editor/index.html +21 -0
- sd-webui-3d-open-pose-editor/install.py +44 -0
- sd-webui-3d-open-pose-editor/javascript/index.js +1 -0
- sd-webui-3d-open-pose-editor/message.html +38 -0
- sd-webui-3d-open-pose-editor/models/foot.fbx +0 -0
- sd-webui-3d-open-pose-editor/models/hand.fbx +0 -0
- sd-webui-3d-open-pose-editor/package.json +63 -0
- sd-webui-3d-open-pose-editor/pages/android-chrome-192x192.png +0 -0
- sd-webui-3d-open-pose-editor/pages/android-chrome-512x512.png +0 -0
- sd-webui-3d-open-pose-editor/pages/apple-touch-icon.png +0 -0
- sd-webui-3d-open-pose-editor/pages/browserconfig.xml +9 -0
- sd-webui-3d-open-pose-editor/pages/favicon-16x16.png +0 -0
- sd-webui-3d-open-pose-editor/pages/favicon-32x32.png +0 -0
- sd-webui-3d-open-pose-editor/pages/favicon.ico +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-128x128.png +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-144x144.png +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-152x152.png +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-192x192.png +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-384x384.png +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-48x48.png +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-512x512.png +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-72x72.png +0 -0
- sd-webui-3d-open-pose-editor/pages/icons/icon-96x96.png +0 -0
- sd-webui-3d-open-pose-editor/pages/index.css +1 -0
- sd-webui-3d-open-pose-editor/pages/index.html +23 -0
- sd-webui-3d-open-pose-editor/pages/index.js +0 -0
- sd-webui-3d-open-pose-editor/pages/mstile-150x150.png +0 -0
- sd-webui-3d-open-pose-editor/pages/safari-pinned-tab.svg +61 -0
- sd-webui-3d-open-pose-editor/pnpm-lock.yaml +0 -0
- sd-webui-3d-open-pose-editor/public/android-chrome-192x192.png +0 -0
- sd-webui-3d-open-pose-editor/public/android-chrome-512x512.png +0 -0
- sd-webui-3d-open-pose-editor/public/apple-touch-icon.png +0 -0
- sd-webui-3d-open-pose-editor/public/browserconfig.xml +9 -0
- sd-webui-3d-open-pose-editor/public/favicon-16x16.png +0 -0
- sd-webui-3d-open-pose-editor/public/favicon-32x32.png +0 -0
- sd-webui-3d-open-pose-editor/public/favicon.ico +0 -0
.gitattributes
CHANGED
@@ -42,3 +42,4 @@ posex/image/sample-webui2.png filter=lfs diff=lfs merge=lfs -text
|
|
42 |
sd_feed/assets/pinterest.png filter=lfs diff=lfs merge=lfs -text
|
43 |
sd-3dmodel-loader/models/Samba[[:space:]]Dancing.fbx filter=lfs diff=lfs merge=lfs -text
|
44 |
sd-3dmodel-loader/models/pose.vrm filter=lfs diff=lfs merge=lfs -text
|
|
|
|
42 |
sd_feed/assets/pinterest.png filter=lfs diff=lfs merge=lfs -text
|
43 |
sd-3dmodel-loader/models/Samba[[:space:]]Dancing.fbx filter=lfs diff=lfs merge=lfs -text
|
44 |
sd-3dmodel-loader/models/pose.vrm filter=lfs diff=lfs merge=lfs -text
|
45 |
+
sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_packed_assets.data filter=lfs diff=lfs merge=lfs -text
|
sd-webui-3d-open-pose-editor/Pipfile.lock
ADDED
The diff for this file is too large to render.
See raw diff
|
|
sd-webui-3d-open-pose-editor/README-ja.md
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 3D Openpose Editor (sd-webui-3d-open-pose-editor) [[English](README.md)] [[中文版](README-zh.md)]
|
2 |
+
|
3 |
+
[Online 3D Openpose Editor](https://github.com/ZhUyU1997/open-pose-editor)を[stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui)で使うための拡張機能です。
|
4 |
+
|
5 |
+
# プレビュー
|
6 |
+
|
7 |
+

|
8 |
+
|
9 |
+
# インストール
|
10 |
+
|
11 |
+
1. WebUIの「Extension」タブを開きます
|
12 |
+
2. 「Available」タブを開きます
|
13 |
+
3. WebUIが古い場合は「Extension index URL」を `https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json` に変更してください
|
14 |
+
4. 「Load from:」ボタンをクリックします
|
15 |
+
5. 3D Openpose Editorの「Install」ボタンをクリックします
|
16 |
+
6. 「Installed」タブを開き、「Apply and restart UI」ボタンをクリックします
|
17 |
+
|
18 |
+
# 特徴
|
19 |
+
|
20 |
+
- **ポーズの編集**: マウスで関節を選択し、回転させることで、3Dモデルのポーズを編集できます。
|
21 |
+
|
22 |
+
- **手の編集**: 手のボーンを選択し、色付きの円を調整することで、手の位置を微調整できます。
|
23 |
+
|
24 |
+
- **深度/法線/Cannyマップ**: 深度、法線、Cannyマップを生成して可視化することで、AIの描画力を向上させることができます。
|
25 |
+
|
26 |
+
- **シーンの保存/読み込み/復元**: シーンの保存・読み込み機能が備わっているため、作成中のシーンを保存して後で復元できます。
|
27 |
+
|
28 |
+
- **身体パラメータの調整**: 高さ、幅、脚の長さなどの身体パラメータを調整して、カスタム3Dモデルを作成できます。
|
29 |
+
# 使い方
|
30 |
+
### カメラのナビゲーション:
|
31 |
+
- **カメラの回転**: 空いている場所を左クリックしながらマウスを移動します。
|
32 |
+
- **カメラの移動**: 空いている場所を右クリックしながらマウスを移動します。
|
33 |
+
|
34 |
+
### スケルトンの操作:
|
35 |
+
- **関節の回転**: 関節を左クリックで選択してから、色付きの円のうちの1つを押しながらマウスを移動します。
|
36 |
+
- **手の編集**: 赤い点をクリックして手のボーンを選択し、色付きの円のうちの1つを押しながらマウスを移動します。
|
37 |
+
### 身体パラメータの調整:
|
38 |
+
- **スケルトンの選択**: スケルトンをクリックして選択します。
|
39 |
+
- **身体パラメータを開く**: メニューの「身体パラメータ」をクリックして、パラメータを調整します。
|
40 |
+
### 出力解像度の調整:
|
41 |
+
- **メニューで出力解像度を調整**: メニューの「幅」または「高さ」を変更して、出力解像度を調整します。
|
42 |
+
### その他の機能:
|
43 |
+
- **移動モードに切り替え**: Xキーを押すと、移動モードに切り替わり、身体全体を移動できます。
|
44 |
+
- **ボディの削除**: Dキーを押して、身体全体を削除できます。
|
45 |
+
|
46 |
+
# 謝辞
|
47 |
+
|
48 |
+
* [ZhUyU1997 - Online 3D Openpose Editor](https://github.com/ZhUyU1997/open-pose-editor): オリジナル版
|
sd-webui-3d-open-pose-editor/README-zh.md
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 3D Openpose Editor (sd-webui-3d-open-pose-editor) [[English](README.md)] [[日本語版](README-ja.md)]
|
2 |
+
|
3 |
+
这是一个用于在[stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui)中使用[Online 3D Openpose Editor](https://github.com/ZhUyU1997/open-pose-editor)的扩展功能。
|
4 |
+
|
5 |
+
# 预览
|
6 |
+
|
7 |
+

|
8 |
+
|
9 |
+
# 安装
|
10 |
+
|
11 |
+
1. 打开Web UI的 "Extension" 选项卡
|
12 |
+
2. 打开 "Available" 选项卡
|
13 |
+
3. 如果您的Web UI版本过旧,请将 "Extension index URL" 更改为 `https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json`
|
14 |
+
4. 点击 "Load from:" 按钮
|
15 |
+
5. 点击3D Openpose Editor的 "Install" 按钮
|
16 |
+
6. 打开 "Installed" 选项卡,点击 "Apply and restart UI" 按钮
|
17 |
+
|
18 |
+
# 特点
|
19 |
+
|
20 |
+
- **姿势编辑**: 通过选择关节并使用鼠标旋转编辑 3D 模型的姿势。
|
21 |
+
|
22 |
+
- **手部编辑**: 通过选择手部骨骼并使用彩色圆圈微调位置来精调手部位置。
|
23 |
+
|
24 |
+
- **深度 / 法线 / Canny 地图**: 生成和可视化深度、法线和 Canny 地图,以提高 AI 绘图的质量。
|
25 |
+
|
26 |
+
- **保存/加载/还原场景**: 使用内置的保存和加载功能保存进度并在以后恢复。
|
27 |
+
|
28 |
+
- **调整身体参数**: 调整各种身体参数,如身高、体重和肢体长度,创建自定义的 3D 模型。
|
29 |
+
|
30 |
+
# 用法
|
31 |
+
### 场景导航:
|
32 |
+
- **旋转场景**: 单击空白处并按住鼠标左键拖动鼠标。
|
33 |
+
- **移动场景**: 单击空白处并按住鼠标右键拖动鼠标。
|
34 |
+
|
35 |
+
### 身体操纵:
|
36 |
+
- **旋转身体**: 单击任何关节以选择它,然后按住彩色圆圈之一并移动鼠标以旋转所选关节。
|
37 |
+
- **手部编辑**: 单击红点以选择手部骨骼,然后按住红色圆圈之一并移动鼠标以旋转它们。
|
38 |
+
|
39 |
+
### 调整身体参数:
|
40 |
+
- **选择身体**: 单击身体以选择它。
|
41 |
+
- **打开身体参数**: 单击菜单中的“Body Parameters”以调整身体参数。
|
42 |
+
|
43 |
+
### 调整输出分辨率:
|
44 |
+
- **在菜单中调整输出分辨率**:更改菜单中的“宽度”或“高度”以控制输出分辨率。
|
45 |
+
|
46 |
+
### 其他功能:
|
47 |
+
- **切换到移动模式**: 按 X 键切换到移动模式,允许您移动整个身体。
|
48 |
+
- **删除身体**: 按 D 键删除整个身体。
|
49 |
+
|
50 |
+
# 鸣谢
|
51 |
+
|
52 |
+
* [ZhUyU1997 - Online 3D Openpose Editor](https://github.com/ZhUyU1997/open-pose-editor): 原始版本
|
sd-webui-3d-open-pose-editor/README.md
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 3D Openpose Editor (sd-webui-3d-open-pose-editor) [[中文版](README-zh.md)] [[日本語版](README-ja.md)]
|
2 |
+
|
3 |
+
An extension of [stable-diffusion-webui](https://github.com/AUTOMATIC1111/stable-diffusion-webui) to use [Online 3D Openpose Editor](https://github.com/ZhUyU1997/open-pose-editor).
|
4 |
+
|
5 |
+
# Preview
|
6 |
+
|
7 |
+

|
8 |
+
|
9 |
+
# Installation
|
10 |
+
|
11 |
+
1. Open the "Extension" tab of the WebUI
|
12 |
+
2. Open the "Available" tab
|
13 |
+
3. If your WebUI is out of date, change the "Extension index URL" to `https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json`
|
14 |
+
4. Click the "Load from:" button
|
15 |
+
5. Click the "Install" button of 3D Openpose Editor
|
16 |
+
6. Open the "Installed" tab and click the "Apply and restart UI" button
|
17 |
+
|
18 |
+
# Feature
|
19 |
+
|
20 |
+
- **Pose Editing**: Edit the pose of the 3D model by selecting a joint and rotating it with the mouse.
|
21 |
+
|
22 |
+
- **Hand Editing**: Fine-tune the position of the hands by selecting the hand bones and adjusting them with the colored circles.
|
23 |
+
|
24 |
+
- **Depth/Normal/Canny Maps**: Generate and visualize depth, normal, and canny maps to enhance your AI drawing.
|
25 |
+
|
26 |
+
- **Save/Load/Restore Scene**: Save your progress and restore it later by using the built-in save and load functionality.
|
27 |
+
|
28 |
+
- **Adjust Body Parameters**: Adjust various body parameters such as height, weight, and limb lengths to create a custom 3D model.
|
29 |
+
# Usage
|
30 |
+
### Scene Navigation:
|
31 |
+
- **Rotate Scene**: Click and hold the blank space, then move the mouse while holding down the left mouse button.
|
32 |
+
- **Move Scene**: Click and hold the blank space, then move the mouse while holding down the right mouse button.
|
33 |
+
|
34 |
+
### Body Manipulation:
|
35 |
+
- **Rotate Body**: Click on any joint to select it, then hold down one of the colored circles and move the mouse to rotate the selected joint.
|
36 |
+
- **Hand Editing**: Click on the red dot to select the hand bones, then rotate them by holding down one of the red circles and moving the mouse.
|
37 |
+
### Adjust Body Parameters:
|
38 |
+
- **Select Body**: Click on the body to select it.
|
39 |
+
- **Open Body Parameters**: Click on "Body Parameters" in the menu to adjust the body's parameters.
|
40 |
+
### Adjust Output Resolution:
|
41 |
+
- **Adjust Output Resolution in Menu**: Change the "Width" or "Height" in the menu to control the output resolution.
|
42 |
+
### Other Functions:
|
43 |
+
- **Switch to Move Mode**: Press the X key to switch to move mode, allowing you to move the entire body.
|
44 |
+
- **Delete Body**: Press the D key to delete the entire body.
|
45 |
+
|
46 |
+
# Credits
|
47 |
+
|
48 |
+
* [ZhUyU1997 - Online 3D Openpose Editor](https://github.com/ZhUyU1997/open-pose-editor): Original version
|
sd-webui-3d-open-pose-editor/compress.ts
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import avsc from 'avsc'
|
2 |
+
import fs from 'fs-extra'
|
3 |
+
|
4 |
+
const data = fs.readJSONSync('src/poses/data.json')
|
5 |
+
const data0: [number, number, number][][] = data
|
6 |
+
.map((i) =>
|
7 |
+
i.map((value) => {
|
8 |
+
if (value) {
|
9 |
+
return [
|
10 |
+
Math.round(value[0] * 1000),
|
11 |
+
Math.round(value[1] * 1000),
|
12 |
+
Math.round(value[2] * 1000),
|
13 |
+
]
|
14 |
+
} else return [0, 0, 0]
|
15 |
+
})
|
16 |
+
)
|
17 |
+
.filter((i) => {
|
18 |
+
const [a, b, c] = i[1]
|
19 |
+
return b > 30 * 1000
|
20 |
+
})
|
21 |
+
|
22 |
+
const int32Buffer = new Int32Array(data0.flat(2))
|
23 |
+
fs.writeFileSync('src/poses/data.bin', Buffer.from(int32Buffer.buffer))
|
24 |
+
console.log(data0.length, int32Buffer.byteLength)
|
sd-webui-3d-open-pose-editor/docs/intro.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/downloads/config.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"assets": {"models/hand.fbx": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/models/hand.fbx?v=1685857223.112788", "models/foot.fbx": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/models/foot.fbx?v=1685857223.1107879", "src/poses/data.bin": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/src/poses/data.bin?v=1685857223.1317894", "pose_landmark_full.tflite": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_landmark_full.tflite?v=1685857223.7808428", "pose_web.binarypb": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_web.binarypb?v=1685857223.8048449", "pose_solution_packed_assets.data": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_packed_assets.data?v=1685857223.8708503", "pose_solution_simd_wasm_bin.wasm": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_simd_wasm_bin.wasm?v=1685857223.954857", "pose_solution_packed_assets_loader.js": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_packed_assets_loader.js?v=1685857223.977859", "pose_solution_simd_wasm_bin.js": "/file=/content/microsoftexcel/extensions/sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_simd_wasm_bin.js?v=1685857224.012862"}}
|
sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_landmark_full.tflite
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e9a5c5cb17f736fafd4c2ec1da3b3d331d6edbe8a0d32395855aeb2cdfd64b9f
|
3 |
+
size 6440512
|
sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_packed_assets.data
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a63c614bef30d35947f13be361820b1e4e3bec9cfeebf4d11216a18373108e85
|
3 |
+
size 2962288
|
sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_packed_assets_loader.js
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
var Module = typeof createMediapipeSolutionsPackedAssets !== 'undefined' ? createMediapipeSolutionsPackedAssets : {};
|
3 |
+
|
4 |
+
if (!Module.expectedDataFileDownloads) {
|
5 |
+
Module.expectedDataFileDownloads = 0;
|
6 |
+
}
|
7 |
+
|
8 |
+
Module.expectedDataFileDownloads++;
|
9 |
+
(function() {
|
10 |
+
// When running as a pthread, FS operations are proxied to the main thread, so we don't need to
|
11 |
+
// fetch the .data bundle on the worker
|
12 |
+
if (Module['ENVIRONMENT_IS_PTHREAD']) return;
|
13 |
+
var loadPackage = function(metadata) {
|
14 |
+
|
15 |
+
var PACKAGE_PATH = '';
|
16 |
+
if (typeof window === 'object') {
|
17 |
+
PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
|
18 |
+
} else if (typeof process === 'undefined' && typeof location !== 'undefined') {
|
19 |
+
// web worker
|
20 |
+
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
|
21 |
+
}
|
22 |
+
var PACKAGE_NAME = 'blaze-out/k8-opt/genfiles/third_party/mediapipe/web/solutions/pose/pose_solution_packed_assets.data';
|
23 |
+
var REMOTE_PACKAGE_BASE = 'pose_solution_packed_assets.data';
|
24 |
+
if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
|
25 |
+
Module['locateFile'] = Module['locateFilePackage'];
|
26 |
+
err('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
|
27 |
+
}
|
28 |
+
var REMOTE_PACKAGE_NAME = Module['locateFile'] ? Module['locateFile'](REMOTE_PACKAGE_BASE, '') : REMOTE_PACKAGE_BASE;
|
29 |
+
var REMOTE_PACKAGE_SIZE = metadata['remote_package_size'];
|
30 |
+
|
31 |
+
function fetchRemotePackage(packageName, packageSize, callback, errback) {
|
32 |
+
if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
|
33 |
+
require('fs').readFile(packageName, function(err, contents) {
|
34 |
+
if (err) {
|
35 |
+
errback(err);
|
36 |
+
} else {
|
37 |
+
callback(contents.buffer);
|
38 |
+
}
|
39 |
+
});
|
40 |
+
return;
|
41 |
+
}
|
42 |
+
var xhr = new XMLHttpRequest();
|
43 |
+
xhr.open('GET', packageName, true);
|
44 |
+
xhr.responseType = 'arraybuffer';
|
45 |
+
xhr.onprogress = function(event) {
|
46 |
+
var url = packageName;
|
47 |
+
var size = packageSize;
|
48 |
+
if (event.total) size = event.total;
|
49 |
+
if (event.loaded) {
|
50 |
+
if (!xhr.addedTotal) {
|
51 |
+
xhr.addedTotal = true;
|
52 |
+
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
|
53 |
+
Module.dataFileDownloads[url] = {
|
54 |
+
loaded: event.loaded,
|
55 |
+
total: size
|
56 |
+
};
|
57 |
+
} else {
|
58 |
+
Module.dataFileDownloads[url].loaded = event.loaded;
|
59 |
+
}
|
60 |
+
var total = 0;
|
61 |
+
var loaded = 0;
|
62 |
+
var num = 0;
|
63 |
+
for (var download in Module.dataFileDownloads) {
|
64 |
+
var data = Module.dataFileDownloads[download];
|
65 |
+
total += data.total;
|
66 |
+
loaded += data.loaded;
|
67 |
+
num++;
|
68 |
+
}
|
69 |
+
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
|
70 |
+
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
|
71 |
+
} else if (!Module.dataFileDownloads) {
|
72 |
+
if (Module['setStatus']) Module['setStatus']('Downloading data...');
|
73 |
+
}
|
74 |
+
};
|
75 |
+
xhr.onerror = function(event) {
|
76 |
+
throw new Error("NetworkError for: " + packageName);
|
77 |
+
}
|
78 |
+
xhr.onload = function(event) {
|
79 |
+
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
|
80 |
+
var packageData = xhr.response;
|
81 |
+
callback(packageData);
|
82 |
+
} else {
|
83 |
+
throw new Error(xhr.statusText + " : " + xhr.responseURL);
|
84 |
+
}
|
85 |
+
};
|
86 |
+
xhr.send(null);
|
87 |
+
};
|
88 |
+
|
89 |
+
function handleError(error) {
|
90 |
+
console.error('package error:', error);
|
91 |
+
};
|
92 |
+
|
93 |
+
var fetchedCallback = null;
|
94 |
+
var fetched = Module['getPreloadedPackage'] ? Module['getPreloadedPackage'](REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE) : null;
|
95 |
+
|
96 |
+
if (!fetched) fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, function(data) {
|
97 |
+
if (fetchedCallback) {
|
98 |
+
fetchedCallback(data);
|
99 |
+
fetchedCallback = null;
|
100 |
+
} else {
|
101 |
+
fetched = data;
|
102 |
+
}
|
103 |
+
}, handleError);
|
104 |
+
|
105 |
+
function runWithFS() {
|
106 |
+
|
107 |
+
function assert(check, msg) {
|
108 |
+
if (!check) throw msg + new Error().stack;
|
109 |
+
}
|
110 |
+
Module['FS_createPath']("/", "third_party", true, true);
|
111 |
+
Module['FS_createPath']("/third_party", "mediapipe", true, true);
|
112 |
+
Module['FS_createPath']("/third_party/mediapipe", "modules", true, true);
|
113 |
+
Module['FS_createPath']("/third_party/mediapipe/modules", "pose_detection", true, true);
|
114 |
+
|
115 |
+
/** @constructor */
|
116 |
+
function DataRequest(start, end, audio) {
|
117 |
+
this.start = start;
|
118 |
+
this.end = end;
|
119 |
+
this.audio = audio;
|
120 |
+
}
|
121 |
+
DataRequest.prototype = {
|
122 |
+
requests: {},
|
123 |
+
open: function(mode, name) {
|
124 |
+
this.name = name;
|
125 |
+
this.requests[name] = this;
|
126 |
+
Module['addRunDependency']('fp ' + this.name);
|
127 |
+
},
|
128 |
+
send: function() {},
|
129 |
+
onload: function() {
|
130 |
+
var byteArray = this.byteArray.subarray(this.start, this.end);
|
131 |
+
this.finish(byteArray);
|
132 |
+
},
|
133 |
+
finish: function(byteArray) {
|
134 |
+
var that = this;
|
135 |
+
|
136 |
+
Module['FS_createPreloadedFile'](this.name, null, byteArray, true, true, function() {
|
137 |
+
Module['removeRunDependency']('fp ' + that.name);
|
138 |
+
}, function() {
|
139 |
+
if (that.audio) {
|
140 |
+
Module['removeRunDependency']('fp ' + that.name); // workaround for chromium bug 124926 (still no audio with this, but at least we don't hang)
|
141 |
+
} else {
|
142 |
+
err('Preloading file ' + that.name + ' failed');
|
143 |
+
}
|
144 |
+
}, false, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
|
145 |
+
|
146 |
+
this.requests[this.name] = null;
|
147 |
+
}
|
148 |
+
};
|
149 |
+
|
150 |
+
var files = metadata['files'];
|
151 |
+
for (var i = 0; i < files.length; ++i) {
|
152 |
+
new DataRequest(files[i]['start'], files[i]['end'], files[i]['audio'] || 0).open('GET', files[i]['filename']);
|
153 |
+
}
|
154 |
+
|
155 |
+
function processPackageData(arrayBuffer) {
|
156 |
+
assert(arrayBuffer, 'Loading data file failed.');
|
157 |
+
assert(arrayBuffer.constructor.name === ArrayBuffer.name, 'bad input to processPackageData');
|
158 |
+
var byteArray = new Uint8Array(arrayBuffer);
|
159 |
+
var curr;
|
160 |
+
// Reuse the bytearray from the XHR as the source for file reads.
|
161 |
+
DataRequest.prototype.byteArray = byteArray;
|
162 |
+
var files = metadata['files'];
|
163 |
+
for (var i = 0; i < files.length; ++i) {
|
164 |
+
DataRequest.prototype.requests[files[i].filename].onload();
|
165 |
+
} Module['removeRunDependency']('datafile_blaze-out/k8-opt/genfiles/third_party/mediapipe/web/solutions/pose/pose_solution_packed_assets.data');
|
166 |
+
|
167 |
+
};
|
168 |
+
Module['addRunDependency']('datafile_blaze-out/k8-opt/genfiles/third_party/mediapipe/web/solutions/pose/pose_solution_packed_assets.data');
|
169 |
+
|
170 |
+
if (!Module.preloadResults) Module.preloadResults = {};
|
171 |
+
|
172 |
+
Module.preloadResults[PACKAGE_NAME] = {fromCache: false};
|
173 |
+
if (fetched) {
|
174 |
+
processPackageData(fetched);
|
175 |
+
fetched = null;
|
176 |
+
} else {
|
177 |
+
fetchedCallback = processPackageData;
|
178 |
+
}
|
179 |
+
|
180 |
+
}
|
181 |
+
if (Module['calledRun']) {
|
182 |
+
runWithFS();
|
183 |
+
} else {
|
184 |
+
if (!Module['preRun']) Module['preRun'] = [];
|
185 |
+
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
|
186 |
+
}
|
187 |
+
|
188 |
+
}
|
189 |
+
loadPackage({"files": [{"filename": "/third_party/mediapipe/modules/pose_detection/pose_detection.tflite", "start": 0, "end": 2962288}], "remote_package_size": 2962288});
|
190 |
+
|
191 |
+
})();
|
sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_simd_wasm_bin.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_solution_simd_wasm_bin.wasm
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:195a929430e2ce130b3efb82e64ba27c8e68cb0f6bad870b715688060ea6f7e2
|
3 |
+
size 6104372
|
sd-webui-3d-open-pose-editor/downloads/pose/0.5.1675469404/pose_web.binarypb
ADDED
Binary file (1.01 kB). View file
|
|
sd-webui-3d-open-pose-editor/index.html
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<meta charset="UTF-8" />
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7 |
+
<title>3D Openpose Editor</title>
|
8 |
+
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
9 |
+
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
10 |
+
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
11 |
+
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
|
12 |
+
<meta name="msapplication-TileColor" content="#2d89ef">
|
13 |
+
<meta name="theme-color" content="#ffffff">
|
14 |
+
</head>
|
15 |
+
|
16 |
+
<body>
|
17 |
+
<div id="root"></div>
|
18 |
+
<script type="module" src="/src/entry.ts"></script>
|
19 |
+
</body>
|
20 |
+
|
21 |
+
</html>
|
sd-webui-3d-open-pose-editor/install.py
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pathlib
|
2 |
+
|
3 |
+
import requests
|
4 |
+
|
5 |
+
try:
|
6 |
+
root_path = pathlib.Path(__file__).resolve().parents[0]
|
7 |
+
except NameError:
|
8 |
+
import inspect
|
9 |
+
|
10 |
+
root_path = pathlib.Path(inspect.getfile(lambda: None)).resolve().parents[0]
|
11 |
+
|
12 |
+
|
13 |
+
def download(url: str, dest: pathlib.Path):
|
14 |
+
try:
|
15 |
+
with requests.get(url, stream=True) as r:
|
16 |
+
with open(dest, "wb") as f:
|
17 |
+
for chunk in r.iter_content(chunk_size=1024):
|
18 |
+
f.write(chunk)
|
19 |
+
except requests.exceptions.RequestException as e:
|
20 |
+
print(e)
|
21 |
+
|
22 |
+
|
23 |
+
def main():
|
24 |
+
MEDIAPIPE_POSE_VERSION = "0.5.1675469404"
|
25 |
+
mediapipe_dir = root_path / "downloads" / "pose" / MEDIAPIPE_POSE_VERSION
|
26 |
+
mediapipe_dir.mkdir(mode=0o755, parents=True, exist_ok=True)
|
27 |
+
|
28 |
+
for file_name in [
|
29 |
+
"pose_landmark_full.tflite",
|
30 |
+
"pose_web.binarypb",
|
31 |
+
"pose_solution_packed_assets.data",
|
32 |
+
"pose_solution_simd_wasm_bin.wasm",
|
33 |
+
"pose_solution_packed_assets_loader.js",
|
34 |
+
"pose_solution_simd_wasm_bin.js",
|
35 |
+
]:
|
36 |
+
file_path = mediapipe_dir / file_name
|
37 |
+
if file_path.exists():
|
38 |
+
continue
|
39 |
+
url = f"https://cdn.jsdelivr.net/npm/@mediapipe/pose@{MEDIAPIPE_POSE_VERSION}/{file_name}"
|
40 |
+
print(f"Downloading {file_name}...")
|
41 |
+
download(url, file_path)
|
42 |
+
|
43 |
+
|
44 |
+
main()
|
sd-webui-3d-open-pose-editor/javascript/index.js
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
(function(){"use strict";var it=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof{}<"u"?{}:typeof self<"u"?self:{},G={},rt={get exports(){return G},set exports(r){G=r}};(function(r,i){(function(c,f){r.exports=f()})(it,function(){var c=1e3,f=6e4,y=36e5,w="millisecond",$="second",S="minute",_="hour",v="day",O="week",M="month",A="quarter",h="year",Y="date",et="Invalid Date",ht=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,mt=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,pt={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(s){var n=["th","st","nd","rd"],t=s%100;return"["+s+(n[(t-20)%10]||n[t]||n[0])+"]"}},V=function(s,n,t){var o=String(s);return!o||o.length>=n?s:""+Array(n+1-o.length).join(t)+s},$t={s:V,z:function(s){var n=-s.utcOffset(),t=Math.abs(n),o=Math.floor(t/60),e=t%60;return(n<=0?"+":"-")+V(o,2,"0")+":"+V(e,2,"0")},m:function s(n,t){if(n.date()<t.date())return-s(t,n);var o=12*(t.year()-n.year())+(t.month()-n.month()),e=n.clone().add(o,M),u=t-e<0,a=n.clone().add(o+(u?-1:1),M);return+(-(o+(t-e)/(u?e-a:a-e))||0)},a:function(s){return s<0?Math.ceil(s)||0:Math.floor(s)},p:function(s){return{M,y:h,w:O,d:v,D:Y,h:_,m:S,s:$,ms:w,Q:A}[s]||String(s||"").toLowerCase().replace(/s$/,"")},u:function(s){return s===void 0}},I="en",q={};q[I]=pt;var Z=function(s){return s instanceof U},P=function s(n,t,o){var e;if(!n)return I;if(typeof n=="string"){var u=n.toLowerCase();q[u]&&(e=u),t&&(q[u]=t,e=u);var a=n.split("-");if(!e&&a.length>1)return s(a[0])}else{var d=n.name;q[d]=n,e=d}return!o&&e&&(I=e),e||!o&&I},g=function(s,n){if(Z(s))return s.clone();var t=typeof n=="object"?n:{};return t.date=s,t.args=arguments,new U(t)},l=$t;l.l=P,l.i=Z,l.w=function(s,n){return g(s,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})};var U=function(){function s(t){this.$L=P(t.locale,null,!0),this.parse(t)}var n=s.prototype;return n.parse=function(t){this.$d=function(o){var e=o.date,u=o.utc;if(e===null)return new Date(NaN);if(l.u(e))return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){var a=e.match(ht);if(a){var d=a[2]-1||0,p=(a[7]||"0").substring(0,3);return u?new Date(Date.UTC(a[1],d,a[3]||1,a[4]||0,a[5]||0,a[6]||0,p)):new Date(a[1],d,a[3]||1,a[4]||0,a[5]||0,a[6]||0,p)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},n.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},n.$utils=function(){return l},n.isValid=function(){return this.$d.toString()!==et},n.isSame=function(t,o){var e=g(t);return this.startOf(o)<=e&&e<=this.endOf(o)},n.isAfter=function(t,o){return g(t)<this.startOf(o)},n.isBefore=function(t,o){return this.endOf(o)<g(t)},n.$g=function(t,o,e){return l.u(t)?this[o]:this.set(e,t)},n.unix=function(){return Math.floor(this.valueOf()/1e3)},n.valueOf=function(){return this.$d.getTime()},n.startOf=function(t,o){var e=this,u=!!l.u(o)||o,a=l.p(t),d=function(E,D){var C=l.w(e.$u?Date.UTC(e.$y,D,E):new Date(e.$y,D,E),e);return u?C:C.endOf(v)},p=function(E,D){return l.w(e.toDate()[E].apply(e.toDate("s"),(u?[0,0,0,0]:[23,59,59,999]).slice(D)),e)},m=this.$W,b=this.$M,x=this.$D,T="set"+(this.$u?"UTC":"");switch(a){case h:return u?d(1,0):d(31,11);case M:return u?d(1,b):d(0,b+1);case O:var k=this.$locale().weekStart||0,N=(m<k?m+7:m)-k;return d(u?x-N:x+(6-N),b);case v:case Y:return p(T+"Hours",0);case _:return p(T+"Minutes",1);case S:return p(T+"Seconds",2);case $:return p(T+"Milliseconds",3);default:return this.clone()}},n.endOf=function(t){return this.startOf(t,!1)},n.$set=function(t,o){var e,u=l.p(t),a="set"+(this.$u?"UTC":""),d=(e={},e[v]=a+"Date",e[Y]=a+"Date",e[M]=a+"Month",e[h]=a+"FullYear",e[_]=a+"Hours",e[S]=a+"Minutes",e[$]=a+"Seconds",e[w]=a+"Milliseconds",e)[u],p=u===v?this.$D+(o-this.$W):o;if(u===M||u===h){var m=this.clone().set(Y,1);m.$d[d](p),m.init(),this.$d=m.set(Y,Math.min(this.$D,m.daysInMonth())).$d}else d&&this.$d[d](p);return this.init(),this},n.set=function(t,o){return this.clone().$set(t,o)},n.get=function(t){return this[l.p(t)]()},n.add=function(t,o){var e,u=this;t=Number(t);var a=l.p(o),d=function(b){var x=g(u);return l.w(x.date(x.date()+Math.round(b*t)),u)};if(a===M)return this.set(M,this.$M+t);if(a===h)return this.set(h,this.$y+t);if(a===v)return d(1);if(a===O)return d(7);var p=(e={},e[S]=f,e[_]=y,e[$]=c,e)[a]||1,m=this.$d.getTime()+t*p;return l.w(m,this)},n.subtract=function(t,o){return this.add(-1*t,o)},n.format=function(t){var o=this,e=this.$locale();if(!this.isValid())return e.invalidDate||et;var u=t||"YYYY-MM-DDTHH:mm:ssZ",a=l.z(this),d=this.$H,p=this.$m,m=this.$M,b=e.weekdays,x=e.months,T=function(D,C,B,F){return D&&(D[C]||D(o,u))||B[C].slice(0,F)},k=function(D){return l.s(d%12||12,D,"0")},N=e.meridiem||function(D,C,B){var F=D<12?"AM":"PM";return B?F.toLowerCase():F},E={YY:String(this.$y).slice(-2),YYYY:this.$y,M:m+1,MM:l.s(m+1,2,"0"),MMM:T(e.monthsShort,m,x,3),MMMM:T(x,m),D:this.$D,DD:l.s(this.$D,2,"0"),d:String(this.$W),dd:T(e.weekdaysMin,this.$W,b,2),ddd:T(e.weekdaysShort,this.$W,b,3),dddd:b[this.$W],H:String(d),HH:l.s(d,2,"0"),h:k(1),hh:k(2),a:N(d,p,!0),A:N(d,p,!1),m:String(p),mm:l.s(p,2,"0"),s:String(this.$s),ss:l.s(this.$s,2,"0"),SSS:l.s(this.$ms,3,"0"),Z:a};return u.replace(mt,function(D,C){return C||E[D]||a.replace(":","")})},n.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},n.diff=function(t,o,e){var u,a=l.p(o),d=g(t),p=(d.utcOffset()-this.utcOffset())*f,m=this-d,b=l.m(this,d);return b=(u={},u[h]=b/12,u[M]=b,u[A]=b/3,u[O]=(m-p)/6048e5,u[v]=(m-p)/864e5,u[_]=m/y,u[S]=m/f,u[$]=m/c,u)[a]||m,e?b:l.a(b)},n.daysInMonth=function(){return this.endOf(M).$D},n.$locale=function(){return q[this.$L]},n.locale=function(t,o){if(!t)return this.$L;var e=this.clone(),u=P(t,o,!0);return u&&(e.$L=u),e},n.clone=function(){return l.w(this.$d,this)},n.toDate=function(){return new Date(this.valueOf())},n.toJSON=function(){return this.isValid()?this.toISOString():null},n.toISOString=function(){return this.$d.toISOString()},n.toString=function(){return this.$d.toUTCString()},s}(),nt=U.prototype;return g.prototype=nt,[["$ms",w],["$s",$],["$m",S],["$H",_],["$W",v],["$M",M],["$y",h],["$D",Y]].forEach(function(s){nt[s[1]]=function(n){return this.$g(n,s[0],s[1])}}),g.extend=function(s,n){return s.$i||(s(n,U,g),s.$i=!0),g},g.locale=P,g.isDayjs=Z,g.unix=function(s){return g(1e3*s)},g.en=q[I],g.Ls=q,g.p={},g})})(rt);const st=G;function ot(r="YYYY_MM_DD_HH_mm_ss"){return st(new Date).format(r)}function at(r,i){const c=document.createElement("a");c.setAttribute("href",r),c.setAttribute("download",i),c.click()}const Q=async(r,i,c)=>new Promise(f=>{const y=new MutationObserver(()=>{!!r.querySelector(i)==c&&(y.disconnect(),f(void 0))});y.observe(r,{childList:!0,subtree:!0}),!!r.querySelector(i)==c&&f(void 0)}),K=r=>new Promise(function(i,c){setTimeout(()=>c("Timeout"),r)}),X=(r,i)=>Promise.race([Q(r,i,!0),K(1e4)]),ut=(r,i)=>Promise.race([Q(r,i,!1),K(1e4)]),H=async(r,i,c)=>{const f=await(await fetch(i)).blob(),y=new File([f],c),w=new DataTransfer;w.items.add(y),r.querySelector("button[aria-label='Clear']")?.click(),await ut(r,"button[aria-label='Clear']");const $=r.querySelector("input[type='file']");$.value="",$.files=w.files,$.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),await X(r,"button[aria-label='Clear']")},L=(r,i)=>{r.querySelectorAll("button")[i].click()},ct=r=>{const i=r.querySelector(":scope > .label-wrap");i&&(i.classList.contains("open")||i.click())},dt=r=>{gradioApp().querySelector("#openpose3d_iframe").contentWindow.postMessage(r,"*")},z={},J={},lt=()=>{window.addEventListener("message",r=>{const{data:i}=r;if(i&&i.cmd&&i.cmd=="openpose-3d"&&i.method){const c=i.method;console.log("Method",c,r),i.type=="return"?z[c]?.(i.payload):i.type=="event"&&(console.log(J),J[c]?.(i.payload))}})},ft=r=>{Object.assign(J,r)};function W(r,...i){return new Promise((c,f)=>{const y=setTimeout(()=>{delete z[r],f({method:r,status:"Timeout"})},1e3),w=$=>{clearTimeout(y),c($)};z[r]=w,dt({cmd:"openpose-3d",method:r,type:"call",payload:i})})}const tt=()=>{const r=gradioApp().querySelector("#tab_threedopenpose");return r&&r.style.display!="none"};let R=!1,j=!1;onUiLoaded(async()=>{console.log("sd-webui-3d-open-pose-editor: onUiLoaded");const r=async(i,c,f,y,w,$,S,_,v)=>{let O=i.querySelector("#controlnet");if(O)ct(O);else{for(const h of i.querySelectorAll(".cursor-pointer > span"))h.textContent?.includes("ControlNet")&&(h.textContent?.includes("M2M")||(O=h.parentElement?.parentElement));if(!O){console.error("ControlNet element not found");return}}await X(O,'div[data-testid="image"]');const M=O.querySelectorAll('div[data-testid="image"]'),A=O.querySelector(".tab-nav");if(c&&f!=""&&f!="-"){const h=Number(f);A&&L(A,h),await H(M[h],c,"pose.png")}if(y&&w!=""&&w!="-"){const h=Number(w);A&&L(A,h),await H(M[h],y,"depth.png")}if($&&S!=""&&S!="-"){const h=Number(S);A&&L(A,h),await H(M[h],$,"normal.png")}if(_&&v!=""&&v!="-"){const h=Number(v);A&&L(A,h),await H(M[h],_,"canny.png")}};window.openpose3d={sendTxt2img:async(i,c,f,y,w,$,S,_)=>{const v=gradioApp().querySelector("#txt2img_script_container");switch_to_txt2img(),await r(v,i,c,f,y,w,$,S,_)},sendImg2img:async(i,c,f,y,w,$,S,_)=>{const v=gradioApp().querySelector("#img2img_script_container");switch_to_img2img(),await r(v,i,c,f,y,w,$,S,_)},downloadImage:(i,c)=>{if(!i)return;const f=c+"_"+ot()+".png";at(i,f)}},lt(),ft({MakeImages:async i=>{for(const[f,y]of Object.entries(i)){const w=gradioApp().querySelector(`#openpose3d_${f}_image`);await H(w,y,f+".png")}const c=gradioApp().querySelector("#openpose3d_main");L(c,1)}});for(let i=0;i<30;++i)try{await W("GetAppVersion"),R=!0;break}catch(c){if(c.status!="Timeout")throw c}if(!R){console.error("sd-webui-3d-open-pose-editor: Timeout");return}tt()||await W("Pause")}),onUiUpdate(async()=>{R&&(tt()?j&&(j=!1,await W("Resume")):j||(j=!0,await W("Pause")))})})();
|
sd-webui-3d-open-pose-editor/message.html
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8" />
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
6 |
+
<title>open pose editor</title>
|
7 |
+
</head>
|
8 |
+
|
9 |
+
<body>
|
10 |
+
<div id="root"></div>
|
11 |
+
<script type="module" src="/src/message-test.ts"></script>
|
12 |
+
<div>
|
13 |
+
<iframe
|
14 |
+
id="open-pose-editor"
|
15 |
+
src="http://localhost:5173/open-pose-editor/"
|
16 |
+
style="resize: both"
|
17 |
+
width="600px"
|
18 |
+
height="900px"
|
19 |
+
></iframe>
|
20 |
+
</div>
|
21 |
+
<button id="GetAPIs">GetAPIs</button>
|
22 |
+
<button id="GetAppVersion">GetAppVersion</button>
|
23 |
+
<button id="MakeImages">MakeImages</button>
|
24 |
+
<button id="Pause">Pause</button>
|
25 |
+
<button id="Resume">Resume</button>
|
26 |
+
<button id="OutputWidth">OutputWidth</button>
|
27 |
+
<button id="OutputHeight">OutputHeight</button>
|
28 |
+
<button id="OnlyHand">OnlyHand</button>
|
29 |
+
<button id="MoveMode">MoveMode</button>
|
30 |
+
<button id="GetWidth">GetWidth</button>
|
31 |
+
<button id="GetHeight">GetHeight</button>
|
32 |
+
<button id="GetSceneData">GetSceneData</button>
|
33 |
+
<button id="LockView">LockView</button>
|
34 |
+
<button id="UnlockView">UnlockView</button>
|
35 |
+
<button id="RestoreView">RestoreView</button>
|
36 |
+
<div id="output" style="background-color: gray;"></div>
|
37 |
+
</body>
|
38 |
+
</html>
|
sd-webui-3d-open-pose-editor/models/foot.fbx
ADDED
Binary file (435 kB). View file
|
|
sd-webui-3d-open-pose-editor/models/hand.fbx
ADDED
Binary file (376 kB). View file
|
|
sd-webui-3d-open-pose-editor/package.json
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "open-pose-editor",
|
3 |
+
"private": true,
|
4 |
+
"version": "0.0.0",
|
5 |
+
"type": "module",
|
6 |
+
"scripts": {
|
7 |
+
"dev": "vite --mode online",
|
8 |
+
"dev-extension": "$npm_execpath run build-extension && python scripts/openpose_editor.py",
|
9 |
+
"build": "tsc && vite build --mode online",
|
10 |
+
"build-singlefile": "tsx tools/generate_assets.ts && tsc && vite build --mode singlefile && tsx tools/fix-singlefile.ts ",
|
11 |
+
"build-extension": "tsc && vite build --mode extension-editor && vite build --mode extension-entry",
|
12 |
+
"preview": "vite preview",
|
13 |
+
"format": "prettier --write src",
|
14 |
+
"translate": "tsx tools/translate.ts"
|
15 |
+
},
|
16 |
+
"dependencies": {
|
17 |
+
"@ebay/nice-modal-react": "^1.2.9",
|
18 |
+
"@mediapipe/pose": "^0.5.1675469404",
|
19 |
+
"@radix-ui/colors": "^0.1.8",
|
20 |
+
"@radix-ui/react-alert-dialog": "^1.0.3",
|
21 |
+
"@radix-ui/react-dialog": "^1.0.3",
|
22 |
+
"@radix-ui/react-icons": "^1.3.0",
|
23 |
+
"@radix-ui/react-menubar": "^1.0.2",
|
24 |
+
"@radix-ui/react-popover": "^1.0.5",
|
25 |
+
"@radix-ui/react-slider": "^1.1.1",
|
26 |
+
"@radix-ui/react-toast": "^1.1.3",
|
27 |
+
"@react-hookz/web": "^23.0.0",
|
28 |
+
"@typescript-eslint/eslint-plugin": "^5.54.1",
|
29 |
+
"@typescript-eslint/parser": "^5.54.1",
|
30 |
+
"browser-fs-access": "^0.33.0",
|
31 |
+
"classnames": "^2.3.2",
|
32 |
+
"dat.gui": "^0.7.9",
|
33 |
+
"dayjs": "^1.11.7",
|
34 |
+
"eslint": "^8.35.0",
|
35 |
+
"eslint-config-prettier": "^8.7.0",
|
36 |
+
"fs-extra": "^11.1.0",
|
37 |
+
"i18next": "^22.4.11",
|
38 |
+
"i18next-browser-languagedetector": "^7.0.1",
|
39 |
+
"lodash-es": "^4.17.21",
|
40 |
+
"prettier": "^2.8.4",
|
41 |
+
"react": "^18.2.0",
|
42 |
+
"react-dom": "^18.2.0",
|
43 |
+
"rollup-plugin-visualizer": "^5.9.0",
|
44 |
+
"three": "^0.150.1",
|
45 |
+
"tsx": "^3.12.5",
|
46 |
+
"type-fest": "^3.6.1",
|
47 |
+
"vite-plugin-pwa": "^0.14.4",
|
48 |
+
"workbox-window": "^6.5.4"
|
49 |
+
},
|
50 |
+
"devDependencies": {
|
51 |
+
"@types/dat.gui": "^0.7.7",
|
52 |
+
"@types/fs-extra": "^11.0.1",
|
53 |
+
"@types/lodash-es": "^4.17.7",
|
54 |
+
"@types/react": "^18.0.27",
|
55 |
+
"@types/react-dom": "^18.0.10",
|
56 |
+
"@types/three": "^0.149.0",
|
57 |
+
"@vitejs/plugin-react": "^3.1.0",
|
58 |
+
"typescript": "^4.9.3",
|
59 |
+
"vite": "^4.1.0",
|
60 |
+
"vite-plugin-conditional-compiler": "^0.1.1",
|
61 |
+
"zip-a-folder": "^1.1.5"
|
62 |
+
}
|
63 |
+
}
|
sd-webui-3d-open-pose-editor/pages/android-chrome-192x192.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/android-chrome-512x512.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/apple-touch-icon.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/browserconfig.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<browserconfig>
|
3 |
+
<msapplication>
|
4 |
+
<tile>
|
5 |
+
<square150x150logo src="/mstile-150x150.png"/>
|
6 |
+
<TileColor>#2d89ef</TileColor>
|
7 |
+
</tile>
|
8 |
+
</msapplication>
|
9 |
+
</browserconfig>
|
sd-webui-3d-open-pose-editor/pages/favicon-16x16.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/favicon-32x32.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/favicon.ico
ADDED
|
sd-webui-3d-open-pose-editor/pages/icons/icon-128x128.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/icons/icon-144x144.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/icons/icon-152x152.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/icons/icon-192x192.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/icons/icon-384x384.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/icons/icon-48x48.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/icons/icon-512x512.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/icons/icon-72x72.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/icons/icon-96x96.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/index.css
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
._DialogOverlay_1bzhl_6{background-color:var(--blackA9);position:fixed;inset:0;animation:_overlayShow_1bzhl_1 .15s cubic-bezier(.16,1,.3,1);font-family:var(--openpose-editor-font-family)}._DialogContent_1bzhl_14{font-family:var(--openpose-editor-font-family);background-color:#fff;border-radius:6px;box-shadow:#0e121659 0 10px 38px -10px,#0e121633 0 10px 20px -15px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:450px;max-height:85vh;padding:25px;animation:_contentShow_1bzhl_1 .15s cubic-bezier(.16,1,.3,1)}._DialogContent_1bzhl_14:focus{outline:none}._DialogTitle_1bzhl_34{margin:0;font-weight:500;color:var(--mauve12);font-size:32px}._DialogDescription_1bzhl_41{margin:10px 0 20px;color:var(--mauve11);font-size:15px;line-height:1.5;overflow-y:auto;word-break:break-all;max-height:60vh}._Button_1bzhl_51{all:unset;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;padding:0 15px;font-size:15px;line-height:1;font-weight:500;height:35px}._Button_1bzhl_51._violet_1bzhl_63{background-color:#fff;color:var(--violet11);box-shadow:0 2px 10px var(--blackA7)}._Button_1bzhl_51._violet_1bzhl_63:hover{background-color:var(--mauve3)}._Button_1bzhl_51._violet_1bzhl_63:focus{box-shadow:0 0 0 2px #000}._Button_1bzhl_51._green_1bzhl_74{background-color:var(--green4);color:var(--green11)}._Button_1bzhl_51._green_1bzhl_74:hover{background-color:var(--green5)}._Button_1bzhl_51._green_1bzhl_74:focus{box-shadow:0 0 0 2px var(--green7)}._IconButton_1bzhl_85{all:unset;font-family:inherit;border-radius:100%;height:25px;width:25px;display:inline-flex;align-items:center;justify-content:center;color:var(--violet11);position:absolute;top:10px;right:10px}._IconButton_1bzhl_85:hover{background-color:var(--violet4)}._IconButton_1bzhl_85:focus{box-shadow:0 0 0 2px var(--violet7)}@keyframes _overlayShow_1bzhl_1{0%{opacity:0}to{opacity:1}}@keyframes _contentShow_1bzhl_1{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}:root{--openpose-editor-font-family: -apple-system, BlinkMacSystemFont, Tahoma, Arial, "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{margin:0;padding:0;outline:none}body,#root{width:100vw;height:100vh;position:relative}#root *{font-family:var(--openpose-editor-font-family)}._app_1w6pk_1{width:100vw;height:100vh;position:absolute;top:0;left:0}._threejsCanvas_1w6pk_9{display:block;width:100vw;height:100vh}._gallery_1w6pk_15{user-select:none;height:140px;position:fixed;bottom:50px;right:50px;display:flex;justify-content:flex-end}._gallery_1w6pk_15 img{width:100px;height:140px;object-fit:contain;background-color:gray;user-select:none;margin-right:2px;margin-left:2px}._background_1w6pk_35{width:100vw;height:100vh;background-color:#d6d6d6;background-position:center;background-repeat:no-repeat;background-size:contain}._MenubarRoot_1qs9g_5{display:flex;background-color:#fff;padding:3px;border-radius:6px;box-shadow:0 2px 10px var(--blackA7);font-family:var(--openpose-editor-font-family)}._MenubarTrigger_1qs9g_14{all:unset;padding:8px 12px;outline:none;user-select:none;font-weight:500;line-height:1;border-radius:4px;color:var(--violet11);font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:2px}._MenubarTrigger_1qs9g_14[data-highlighted],._MenubarTrigger_1qs9g_14[data-state=open]{background-color:var(--violet4)}._MenubarTrigger_1qs9g_14._Blue_1qs9g_35{background-color:var(--violet9);color:#fff}._MenubarContent_1qs9g_40,._MenubarSubContent_1qs9g_41{min-width:220px;background-color:#fff;border-radius:6px;padding:5px;box-shadow:0 10px 38px -10px #16171859,0 10px 20px -15px #16171833;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity}._MenubarItem_1qs9g_53,._MenubarSubTrigger_1qs9g_54,._MenubarCheckboxItem_1qs9g_55,._MenubarRadioItem_1qs9g_56{all:unset;font-size:13px;line-height:1;color:var(--violet11);border-radius:4px;display:flex;align-items:center;height:25px;padding:0 10px;position:relative;user-select:none;font-family:var(--openpose-editor-font-family)}._MenubarItem_1qs9g_53._inset_1qs9g_71,._MenubarSubTrigger_1qs9g_54._inset_1qs9g_71,._MenubarCheckboxItem_1qs9g_55._inset_1qs9g_71,._MenubarRadioItem_1qs9g_56._inset_1qs9g_71{padding-left:20px}._MenubarItem_1qs9g_53[data-state=open],._MenubarSubTrigger_1qs9g_54[data-state=open]{background-color:var(--violet4);color:var(--violet11)}._MenubarItem_1qs9g_53[data-highlighted],._MenubarSubTrigger_1qs9g_54[data-highlighted],._MenubarCheckboxItem_1qs9g_55[data-highlighted],._MenubarRadioItem_1qs9g_56[data-highlighted]{background-image:linear-gradient(135deg,var(--violet9) 0%,var(--violet10) 100%);color:var(--violet1)}._MenubarItem_1qs9g_53[data-disabled],._MenubarSubTrigger_1qs9g_54[data-disabled],._MenubarCheckboxItem_1qs9g_55[data-disabled],._MenubarRadioItem_1qs9g_56[data-disabled]{color:var(--mauve8);pointer-events:none}._MenubarItemIndicator_1qs9g_104{position:absolute;left:0;width:20px;display:inline-flex;align-items:center;justify-content:center}._MenubarSeparator_1qs9g_113{height:1px;background-color:var(--violet6);margin:5px}._RightSlot_1qs9g_119{margin-left:auto;padding-left:20px;color:var(--mauve9)}[data-highlighted]>._RightSlot_1qs9g_119{color:#fff}[data-disabled]>._RightSlot_1qs9g_119{color:var(--mauve8)}:root{--red1: hsl(359, 100%, 99.4%);--red2: hsl(359, 100%, 98.6%);--red3: hsl(360, 100%, 96.8%);--red4: hsl(360, 97.9%, 94.8%);--red5: hsl(360, 90.2%, 91.9%);--red6: hsl(360, 81.7%, 87.8%);--red7: hsl(359, 74.2%, 81.7%);--red8: hsl(359, 69.5%, 74.3%);--red9: hsl(358, 75%, 59%);--red10: hsl(358, 69.4%, 55.2%);--red11: hsl(358, 65%, 48.7%);--red12: hsl(354, 50%, 14.6%)}._AlertDialogOverlay_4rriq_6{font-family:var(--openpose-editor-font-family);background-color:var(--blackA9);position:fixed;inset:0;animation:_overlayShow_4rriq_1 .15s cubic-bezier(.16,1,.3,1)}._AlertDialogContent_4rriq_14{font-family:var(--openpose-editor-font-family);background-color:#fff;border-radius:6px;box-shadow:#0e121659 0 10px 38px -10px,#0e121633 0 10px 20px -15px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90vw;max-width:500px;max-height:85vh;padding:25px;animation:_contentShow_4rriq_1 .15s cubic-bezier(.16,1,.3,1)}._AlertDialogContent_4rriq_14:focus{outline:none}._AlertDialogTitle_4rriq_34{margin:0;color:var(--mauve12);font-size:27px;font-weight:500;display:flex;justify-content:flex-start;align-items:center}@keyframes _overlayShow_4rriq_1{0%{opacity:0}to{opacity:1}}@keyframes _contentShow_4rriq_1{0%{opacity:0;transform:translate(-50%,-48%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}._lds-roller_4rriq_64{display:inline-block;position:relative;min-width:100px;min-height:80px}._lds-roller_4rriq_64 div{animation:_lds-roller_4rriq_64 1.2s cubic-bezier(.5,0,.5,1) infinite;transform-origin:40px 40px}._lds-roller_4rriq_64 div:after{content:" ";display:block;position:absolute;width:7px;height:7px;border-radius:50%;background:gray;margin:-4px 0 0 -4px}._lds-roller_4rriq_64 div:nth-child(1){animation-delay:-36ms}._lds-roller_4rriq_64 div:nth-child(1):after{top:63px;left:63px}._lds-roller_4rriq_64 div:nth-child(2){animation-delay:-72ms}._lds-roller_4rriq_64 div:nth-child(2):after{top:68px;left:56px}._lds-roller_4rriq_64 div:nth-child(3){animation-delay:-.108s}._lds-roller_4rriq_64 div:nth-child(3):after{top:71px;left:48px}._lds-roller_4rriq_64 div:nth-child(4){animation-delay:-.144s}._lds-roller_4rriq_64 div:nth-child(4):after{top:72px;left:40px}._lds-roller_4rriq_64 div:nth-child(5){animation-delay:-.18s}._lds-roller_4rriq_64 div:nth-child(5):after{top:71px;left:32px}._lds-roller_4rriq_64 div:nth-child(6){animation-delay:-.216s}._lds-roller_4rriq_64 div:nth-child(6):after{top:68px;left:24px}._lds-roller_4rriq_64 div:nth-child(7){animation-delay:-.252s}._lds-roller_4rriq_64 div:nth-child(7):after{top:63px;left:17px}._lds-roller_4rriq_64 div:nth-child(8){animation-delay:-.288s}._lds-roller_4rriq_64 div:nth-child(8):after{top:56px;left:12px}@keyframes _lds-roller_4rriq_64{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--green1: hsl(136, 50%, 98.9%);--green2: hsl(138, 62.5%, 96.9%);--green3: hsl(139, 55.2%, 94.5%);--green4: hsl(140, 48.7%, 91%);--green5: hsl(141, 43.7%, 86%);--green6: hsl(143, 40.3%, 79%);--green7: hsl(146, 38.5%, 69%);--green8: hsl(151, 40.2%, 54.1%);--green9: hsl(151, 55%, 41.5%);--green10: hsl(152, 57.5%, 37.6%);--green11: hsl(153, 67%, 28.5%);--green12: hsl(155, 40%, 14%)}:root{--slate1: hsl(206, 30%, 98.8%);--slate2: hsl(210, 16.7%, 97.6%);--slate3: hsl(209, 13.3%, 95.3%);--slate4: hsl(209, 12.2%, 93.2%);--slate5: hsl(208, 11.7%, 91.1%);--slate6: hsl(208, 11.3%, 88.9%);--slate7: hsl(207, 11.1%, 85.9%);--slate8: hsl(205, 10.7%, 78%);--slate9: hsl(206, 6%, 56.1%);--slate10: hsl(206, 5.8%, 52.3%);--slate11: hsl(206, 6%, 43.5%);--slate12: hsl(206, 24%, 9%)}._ToastViewport_1gbkr_7{font-family:var(--openpose-editor-font-family);--viewport-padding: 25px;position:fixed;bottom:0;right:0;display:flex;flex-direction:column;padding:var(--viewport-padding);gap:10px;width:390px;max-width:100vw;margin:0;list-style:none;z-index:2147483647;outline:none}._ToastRoot_1gbkr_25{background-color:#fff;border-radius:6px;box-shadow:#0e121659 0 10px 38px -10px,#0e121633 0 10px 20px -15px;padding:15px;display:grid;grid-template-areas:"title action" "description action";grid-template-columns:auto max-content;column-gap:15px;align-items:center}._ToastRoot_1gbkr_25[data-state=open]{animation:_slideIn_1gbkr_1 .15s cubic-bezier(.16,1,.3,1)}._ToastRoot_1gbkr_25[data-state=closed]{animation:_hide_1gbkr_1 .1s ease-in}._ToastRoot_1gbkr_25[data-swipe=move]{transform:translate(var(--radix-toast-swipe-move-x))}._ToastRoot_1gbkr_25[data-swipe=cancel]{transform:translate(0);transition:transform .2s ease-out}._ToastRoot_1gbkr_25[data-swipe=end]{animation:_swipeOut_1gbkr_1 .1s ease-out}@keyframes _hide_1gbkr_1{0%{opacity:1}to{opacity:0}}@keyframes _slideIn_1gbkr_1{0%{transform:translate(calc(100% + var(--viewport-padding)))}to{transform:translate(0)}}@keyframes _swipeOut_1gbkr_1{0%{transform:translate(var(--radix-toast-swipe-end-x))}to{transform:translate(calc(100% + var(--viewport-padding)))}}._ToastTitle_1gbkr_81{grid-area:title;margin-bottom:5px;font-weight:500;color:var(--slate12);font-size:15px}._ToastDescription_1gbkr_89{grid-area:description;margin:0;color:var(--slate11);font-size:13px;line-height:1.3}._ToastAction_1gbkr_97{grid-area:action}._Button_1gbkr_101{all:unset;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;font-weight:500}._Button_1gbkr_101._small_1gbkr_109{font-size:12px;padding:0 10px;line-height:25px;height:25px}._Button_1gbkr_101._large_1gbkr_115{font-size:15px;padding:0 15px;line-height:35px;height:35px}._Button_1gbkr_101._violet_1gbkr_121{background-color:#fff;color:var(--violet11);box-shadow:0 2px 10px var(--blackA7)}._Button_1gbkr_101._violet_1gbkr_121:hover{background-color:var(--mauve3)}._Button_1gbkr_101._violet_1gbkr_121:focus{box-shadow:0 0 0 2px #000}._Button_1gbkr_101._green_1gbkr_132{background-color:var(--green2);color:var(--green11);box-shadow:inset 0 0 0 1px var(--green7)}._Button_1gbkr_101._green_1gbkr_132:hover{box-shadow:inset 0 0 0 1px var(--green8)}._Button_1gbkr_101._green_1gbkr_132:focus{box-shadow:0 0 0 2px var(--green8)}._Root_ofrr6_5{position:fixed;top:0;left:0;width:100%;height:100%}._ContextMenuContent_ofrr6_13{animation-name:_slideDownAndFade_ofrr6_1;position:fixed;top:0;left:0}._ContextMenuContent_ofrr6_13{min-width:220px;background-color:#fff;border-radius:6px;padding:5px;box-shadow:0 10px 38px -10px #16171859,0 10px 20px -15px #16171833;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity}._ContextMenuItem_ofrr6_32{font-size:13px;line-height:1;color:var(--violet11);border-radius:3px;display:flex;align-items:center;height:25px;position:relative;padding:0 5px 0 25px;user-select:none;outline:none}._ContextMenuItem_ofrr6_32:hover{background-color:var(--violet9);color:var(--violet1)}._ContextMenuSeparator_ofrr6_52{height:1px;background-color:var(--violet6);margin:5px}._IconButton_ofrr6_58{all:unset;font-family:inherit;border-radius:100%;height:35px;width:35px;display:inline-flex;align-items:center;justify-content:center;color:var(--violet11);background-color:#fff;box-shadow:0 2px 10px var(--blackA7);width:100%;height:100%}._IconButton_ofrr6_58:hover{background-color:var(--violet3)}._IconButton_ofrr6_58:focus{box-shadow:0 0 0 2px #000}._RightSlot_ofrr6_80{margin-left:auto;padding-left:20px;color:var(--mauve11)}._ContextMenuItem_ofrr6_32:hover>._RightSlot_ofrr6_80{color:#fff}@keyframes _slideUpAndFade_ofrr6_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideRightAndFade_ofrr6_1{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes _slideDownAndFade_ofrr6_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideLeftAndFade_ofrr6_1{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}:root{--mauve1: hsl(300, 20%, 99%);--mauve2: hsl(300, 7.7%, 97.5%);--mauve3: hsl(294, 5.5%, 95.3%);--mauve4: hsl(289, 4.7%, 93.3%);--mauve5: hsl(283, 4.4%, 91.3%);--mauve6: hsl(278, 4.1%, 89.1%);--mauve7: hsl(271, 3.9%, 86.3%);--mauve8: hsl(255, 3.7%, 78.8%);--mauve9: hsl(252, 4%, 57.3%);--mauve10: hsl(253, 3.5%, 53.5%);--mauve11: hsl(252, 4%, 44.8%);--mauve12: hsl(260, 25%, 11%)}._PopoverContent_1f240_5{border-radius:4px;padding:20px;background-color:#fff;box-shadow:#0e121659 0 10px 38px -10px,#0e121633 0 10px 20px -15px;animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);will-change:transform,opacity;font-family:var(--openpose-editor-font-family)}._PopoverContent_1f240_5:focus{box-shadow:#0e121659 0 10px 38px -10px,#0e121633 0 10px 20px -15px,0 0 0 2px var(--violet7)}._PopoverContent_1f240_5[data-state=open][data-side=top]{animation-name:_slideDownAndFade_1f240_1}._PopoverContent_1f240_5[data-state=open][data-side=right]{animation-name:_slideLeftAndFade_1f240_1}._PopoverContent_1f240_5[data-state=open][data-side=bottom]{animation-name:_slideUpAndFade_1f240_1}._PopoverContent_1f240_5[data-state=open][data-side=left]{animation-name:_slideRightAndFade_1f240_1}._PopoverArrow_1f240_35{fill:#fff}._IconButton_1f240_39{all:unset;font-family:inherit;border-radius:100%;height:35px;width:35px;display:inline-flex;align-items:center;justify-content:center;color:var(--violet11);background-color:#fff;box-shadow:0 2px 10px var(--blackA7)}._IconButton_1f240_39:hover{background-color:var(--violet3)}._IconButton_1f240_39:focus{box-shadow:0 0 0 2px var(--violet6)}@keyframes _slideUpAndFade_1f240_1{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideRightAndFade_1f240_1{0%{opacity:0;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes _slideDownAndFade_1f240_1{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes _slideLeftAndFade_1f240_1{0%{opacity:0;transform:translate(2px)}to{opacity:1;transform:translate(0)}}Input{background-color:var(--violet5);border:none;box-sizing:border-box;padding-left:5px;padding-right:5px;border-radius:7px}Input:focus{border:2px var(--violet11) solid;border-radius:5}:root{--blackA1: hsla(0, 0%, 0%, .012);--blackA2: hsla(0, 0%, 0%, .027);--blackA3: hsla(0, 0%, 0%, .047);--blackA4: hsla(0, 0%, 0%, .071);--blackA5: hsla(0, 0%, 0%, .09);--blackA6: hsla(0, 0%, 0%, .114);--blackA7: hsla(0, 0%, 0%, .141);--blackA8: hsla(0, 0%, 0%, .22);--blackA9: hsla(0, 0%, 0%, .439);--blackA10: hsla(0, 0%, 0%, .478);--blackA11: hsla(0, 0%, 0%, .565);--blackA12: hsla(0, 0%, 0%, .91)}:root{--violet1: hsl(255, 65%, 99.4%);--violet2: hsl(252, 100%, 99%);--violet3: hsl(252, 96.9%, 97.4%);--violet4: hsl(252, 91.5%, 95.5%);--violet5: hsl(252, 85.1%, 93%);--violet6: hsl(252, 77.8%, 89.4%);--violet7: hsl(252, 71%, 83.7%);--violet8: hsl(252, 68.6%, 76.3%);--violet9: hsl(252, 56%, 57.5%);--violet10: hsl(251, 48.1%, 53.5%);--violet11: hsl(250, 43%, 48%);--violet12: hsl(254, 60%, 18.5%)}._SliderRoot_1ofoi_4{position:relative;display:flex;align-items:center;user-select:none;touch-action:none;height:20px}._SliderTrack_1ofoi_13{background-color:var(--violet5);position:relative;flex-grow:1;border-radius:9999px;height:10px}._SliderRange_1ofoi_21{position:absolute;background-color:var(--violet9);border-radius:9999px;height:100%}
|
sd-webui-3d-open-pose-editor/pages/index.html
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
|
4 |
+
<head>
|
5 |
+
<meta charset="UTF-8" />
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7 |
+
<title>3D Openpose Editor</title>
|
8 |
+
<link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png">
|
9 |
+
<link rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png">
|
10 |
+
<link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
|
11 |
+
<link rel="mask-icon" href="./safari-pinned-tab.svg" color="#5bbad5">
|
12 |
+
<meta name="msapplication-TileColor" content="#2d89ef">
|
13 |
+
<meta name="theme-color" content="#ffffff">
|
14 |
+
<script type="module" crossorigin src="./index.js?a83964bb"></script>
|
15 |
+
<link rel="stylesheet" href="./index.css?20db99c0">
|
16 |
+
</head>
|
17 |
+
|
18 |
+
<body>
|
19 |
+
<div id="root"></div>
|
20 |
+
|
21 |
+
</body>
|
22 |
+
|
23 |
+
</html>
|
sd-webui-3d-open-pose-editor/pages/index.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
sd-webui-3d-open-pose-editor/pages/mstile-150x150.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/pages/safari-pinned-tab.svg
ADDED
|
sd-webui-3d-open-pose-editor/pnpm-lock.yaml
ADDED
The diff for this file is too large to render.
See raw diff
|
|
sd-webui-3d-open-pose-editor/public/android-chrome-192x192.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/public/android-chrome-512x512.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/public/apple-touch-icon.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/public/browserconfig.xml
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<browserconfig>
|
3 |
+
<msapplication>
|
4 |
+
<tile>
|
5 |
+
<square150x150logo src="/mstile-150x150.png"/>
|
6 |
+
<TileColor>#2d89ef</TileColor>
|
7 |
+
</tile>
|
8 |
+
</msapplication>
|
9 |
+
</browserconfig>
|
sd-webui-3d-open-pose-editor/public/favicon-16x16.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/public/favicon-32x32.png
ADDED
![]() |
sd-webui-3d-open-pose-editor/public/favicon.ico
ADDED
|