Skip to content

Commit 522dc74

Browse files
[Version] Bump version to v0.6.4 (#44)
* feat: Add support for setting accumulator alpha in custom movie pipeline * fix: flow output `rgb` -> `rgba` - `ba` is forward - `rg` is backward * feat: Enable transparent background rendering in `sequence` * feat: Update HumanLiff teaser image URL * add comment * refactor: Change logging level from debug to trace in rendering job updates; enhance LoggerWrapper to support configurable log path level * refactor: Change logging level from trace to debug in rendering job updates for improved log clarity * feat: Add environment variable support for disabling spinner and logging interval in rendering processes - Introduced `DISABLE_SPINNER` and `LOG_INTERVAL` environment variables to control spinner visibility and logging frequency during rendering. - Updated `receive_stdout` and `render_jobs` methods to utilize these new configurations, enhancing user control over rendering output. - Improved logging behavior to provide more informative output when the spinner is disabled. * refactor: Update warning message related to `sequence_wrapper_blender` - Changed method name from `xf_runner.Sequence.new` to `xf_runner.sequence` for consistency with the updated API. - Introduced a new helper function `_get_caller_frame` in `sequence_wrapper.py` to improve warning messages by providing the actual caller's frame information. - Updated warning handling in `SequenceWrapperBlender` to utilize the new caller frame information, enhancing the clarity of deprecation warnings. * feat: Add PowerShell script to create and run CircleCI Runner Agent as a scheduled task * feat: Update asset URLs and images in documentation and samples * feat: Add SMPLest-X project to the README with corresponding image and link * chore: Update CircleCI configuration to include timeout and error handling for Runner Info job - Added a timeout of 1 minute to the "Check Runner Info" job. - Set `fail_on_error` to false and configured the job to always run, improving the robustness of the CI pipeline. * chore: Update CircleCI configuration to include new parameters and orb version - Upgraded `path-filtering` orb from version 1.0.0 to 1.2.0 for improved functionality. - Added `run-on-windows` parameter to both main and continue configuration files, allowing for conditional job execution based on the pipeline parameter. * chore: Simplify CircleCI Runner Info job configuration - Removed conditional execution for the "Check Runner Info" job, ensuring it always runs. - Maintained the existing timeout and error handling settings for improved CI pipeline reliability. * chore: Remove unused parameters from CircleCI configuration - Deleted the `run-on-windows` parameter from both main and continue configuration files to streamline the setup. - Cleaned up the configuration by removing unnecessary comments and settings, enhancing readability. * chore: Update CircleCI configuration for streamlined testing - Changed the configuration path in the main CircleCI config to use a lighter version for the workflow. - Added a new full configuration file for comprehensive testing on Windows and Linux runners. - Introduced a new lite configuration file focused on Linux testing, optimizing the CI setup. * refactor: Update sequence method calls for consistency across scripts - Changed instances of `xf_runner.Sequence.new` to `xf_runner.sequence` in various Blender and Unreal render scripts, ensuring uniformity with the updated API. - Updated related test and tutorial files to reflect the new method name, enhancing clarity and consistency in documentation. * chore: Bump version to v0.6.4 * [bot] Update plugin info --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent a06a9fa commit 522dc74

38 files changed

+464
-89
lines changed

.circleci/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
version: 2.1
22
setup: true
33
orbs:
4-
path-filtering: circleci/path-filtering@1.0.0
4+
path-filtering: circleci/path-filtering@1.2.0
55

66
workflows:
77
generate-config:
88
jobs:
99
- path-filtering/filter:
1010
base-revision: main
11-
config-path: .circleci/continue_config.yml
11+
config-path: .circleci/continue_config_lite.yml
1212
mapping: |
1313
# -- Unreal Plugin -- #
1414
src/XRFeitoriaUnreal/.* build-unreal-plugin true
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# This config is used for the CircleCI workflow to run the tests on the Windows and Linux runners
2+
# Windows runner needs to be self-hosted
13
version: 2.1
24

35
parameters:

.circleci/continue_config_lite.yml

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
# This config is used for the CircleCI workflow to run the tests on the Linux runner
2+
version: 2.1
3+
4+
parameters:
5+
build-unreal-plugin:
6+
type: boolean
7+
default: false
8+
build-blender-addon:
9+
type: boolean
10+
default: false
11+
run-unreal-test:
12+
type: boolean
13+
default: false
14+
run-blender-test:
15+
type: boolean
16+
default: false
17+
18+
jobs:
19+
unreal-linux:
20+
parameters:
21+
image:
22+
type: string
23+
default: "ghcr.io/epicgames/unreal-engine:dev-5.3"
24+
docker:
25+
- image: << parameters.image >>
26+
auth:
27+
username: $GHCR_USERNAME
28+
password: $GHCR_TOKEN
29+
working_directory: ~/project
30+
steps:
31+
- when:
32+
condition: << pipeline.parameters.build-unreal-plugin >> || << pipeline.parameters.run-unreal-test >>
33+
steps:
34+
- checkout
35+
- run:
36+
name: Install Miniconda, Python 3.10, and XRFeitoria
37+
command: |
38+
curl -sLo Miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
39+
bash Miniconda.sh -b -p $HOME/miniconda
40+
echo "source $HOME/miniconda/bin/activate" >> $BASH_ENV
41+
source $BASH_ENV
42+
conda install -y python=3.10
43+
python -m pip install .
44+
- run:
45+
name: "Build Plugins & Run Tests"
46+
environment:
47+
BUILD_UNREAL_PLUGIN: << pipeline.parameters.build-unreal-plugin >>
48+
RUN_TEST: << pipeline.parameters.run-unreal-test >>
49+
PYTHONIOENCODING: "utf-8"
50+
command: |
51+
mkdir -p /home/ue4/project/src/dist
52+
if [ "$BUILD_UNREAL_PLUGIN" = "1" ]; then
53+
echo "#### Building Unreal Plugin ####"
54+
python -m xrfeitoria.utils.publish_plugins build-unreal -u "/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor-Cmd"
55+
export XRFEITORIA__DIST_ROOT="/home/ue4/project/src"
56+
export XRFEITORIA__VERSION=`python -c "import xrfeitoria; print(xrfeitoria.__version__)"`
57+
rm -rf /home/ue4/project/src/dist/*-Source.zip # remove source zip, cuz it's uploaded in the win build
58+
fi
59+
if [ "$RUN_TEST" = "1" ]; then
60+
echo "#### Running Tests ####"
61+
# Can't run tests on non-gpu machine
62+
echo "Skipping tests on non-gpu machine"
63+
# python -m tests.setup_ci -u "/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor-Cmd"
64+
# python -m tests.unreal.main
65+
fi
66+
- when:
67+
condition: << pipeline.parameters.build-unreal-plugin >>
68+
steps:
69+
- store_artifacts:
70+
when: << pipeline.parameters.build-unreal-plugin >>
71+
path: src/dist/
72+
destination: Plugins
73+
- persist_to_workspace:
74+
when: << pipeline.parameters.build-unreal-plugin >>
75+
root: /home/ue4/project
76+
paths:
77+
- src/dist/
78+
79+
blender:
80+
docker:
81+
- image: linuxserver/blender:3.6.5
82+
steps:
83+
- when:
84+
condition: << pipeline.parameters.build-blender-addon >> || << pipeline.parameters.run-blender-test >>
85+
steps:
86+
- checkout
87+
- run:
88+
name: Install Essential Packages
89+
command: |
90+
apt-get update
91+
apt-get install -y git
92+
- run:
93+
name: Install Miniconda, Python 3.10, and XRFeitoria
94+
command: |
95+
curl -sLo Miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
96+
bash Miniconda.sh -b -p $HOME/miniconda
97+
echo "source $HOME/miniconda/bin/activate" >> $BASH_ENV
98+
source $BASH_ENV
99+
conda install -y python=3.10
100+
python -m pip install .
101+
- run:
102+
name: "Build Blender Addon & Run Tests"
103+
environment:
104+
BUILD_BLENDER_ADDON: << pipeline.parameters.build-blender-addon >>
105+
RUN_TEST: << pipeline.parameters.run-blender-test >>
106+
PYTHONIOENCODING: "utf-8"
107+
command: |
108+
if [ "$BUILD_BLENDER_ADDON" = "1" ]; then
109+
echo "#### Building Blender Addon ####"
110+
python -m xrfeitoria.utils.publish_plugins build-blender
111+
export XRFEITORIA__DIST_ROOT="/config/project/src/dist/"
112+
export XRFEITORIA__VERSION=`python -c "import xrfeitoria; print(xrfeitoria.__version__)"`
113+
fi
114+
if [ "$RUN_TEST" = "1" ]; then
115+
echo "#### Running Tests ####"
116+
python -m tests.setup_ci -b /usr/bin/blender
117+
python -m tests.blender.main -b
118+
fi
119+
- when:
120+
condition: << pipeline.parameters.build-blender-addon >>
121+
steps:
122+
- store_artifacts:
123+
path: /config/project/src/dist/
124+
- persist_to_workspace:
125+
root: /config/project
126+
paths:
127+
- src/dist/
128+
129+
publish-github-release:
130+
docker:
131+
- image: cibuilds/base:latest
132+
steps:
133+
- checkout
134+
- attach_workspace:
135+
at: ./artifacts
136+
- run:
137+
name: "Get GitHub Release CLI"
138+
command: |
139+
# https://github.com/tcnksm/ghr
140+
GHR_VERSION="v0.16.2"
141+
GHR_URL="https://github.com/tcnksm/ghr/releases/download/${GHR_VERSION}/ghr_${GHR_VERSION}_linux_amd64.tar.gz"
142+
wget "$GHR_URL" && \
143+
tar xzf ghr_${GHR_VERSION}_linux_amd64.tar.gz && \
144+
mv ghr_${GHR_VERSION}_linux_amd64/ghr /usr/bin/ghr && \
145+
rm -r ghr_${GHR_VERSION}_linux_amd64.tar.gz ghr_${GHR_VERSION}_linux_amd64/
146+
- run:
147+
name: "Publish Release on GitHub"
148+
command: |
149+
VERSION=$(git describe --tags --abbrev=0)
150+
RELEASE_TITLE="XRFeitoria Release $VERSION"
151+
if [ -d "./artifacts/src/dist" ]; then
152+
DIST_PATH="./artifacts/src/dist/"
153+
else
154+
DIST_PATH=""
155+
fi
156+
ghr \
157+
-t ${GITHUB_TOKEN} \
158+
-u ${CIRCLE_PROJECT_USERNAME} \
159+
-r ${CIRCLE_PROJECT_REPONAME} \
160+
-c ${CIRCLE_SHA1} \
161+
-n "${RELEASE_TITLE}" \
162+
-draft \
163+
-generatenotes \
164+
-delete \
165+
${VERSION} ${DIST_PATH}
166+
167+
workflows:
168+
plugin-workflow:
169+
jobs:
170+
# -- Unreal -- #
171+
- unreal-linux:
172+
matrix:
173+
parameters:
174+
image: ["ghcr.io/epicgames/unreal-engine:dev-5.1", "ghcr.io/epicgames/unreal-engine:dev-5.2", "ghcr.io/epicgames/unreal-engine:dev-5.3"]
175+
filters:
176+
tags:
177+
only: /^v\d+\.\d+\.\d+/
178+
# -- Blender -- #
179+
- blender:
180+
filters:
181+
tags:
182+
only: /^v\d+\.\d+\.\d+/
183+
# -- Publish -- #
184+
- publish-github-release:
185+
requires:
186+
- blender
187+
- unreal-linux
188+
filters:
189+
branches:
190+
ignore: /.*/
191+
tags:
192+
only: /^v\d+\.\d+\.\d+/

.circleci/create_runner_task.ps1

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Define the path to your script
2+
$scriptPath = $PSScriptRoot + "\Start-CircleCIRunner.ps1"
3+
4+
# Task name and description
5+
$taskName = "CircleCI Runner Agent"
6+
$taskDescription = "Automatically runs the CircleCI Runner Agent at startup."
7+
8+
# Get the current user
9+
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
10+
11+
# Check if the task already exists
12+
$existingTask = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
13+
14+
# If the task exists, remove it
15+
if ($existingTask) {
16+
Write-Host "Task '$taskName' already exists. Removing the existing task..."
17+
Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
18+
19+
# Wait a moment to ensure the task is fully removed
20+
Start-Sleep -Seconds 2
21+
}
22+
23+
# Create a new action to run the script with PowerShell
24+
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass -File `"$scriptPath`""
25+
26+
# Create a trigger to start the task at system startup
27+
$trigger = New-ScheduledTaskTrigger -AtStartup
28+
29+
# Create a new principal to run the task under the current user account with the highest privileges
30+
$principal = New-ScheduledTaskPrincipal -UserId $currentUser -LogonType Interactive -RunLevel Highest
31+
32+
# Create the scheduled task settings (run only if idle, allow start on batteries)
33+
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries
34+
35+
# Create the scheduled task
36+
Register-ScheduledTask -Action $action -Trigger $trigger -Principal $principal -Settings $settings -TaskName $taskName -Description $taskDescription
37+
38+
Write-Host "Scheduled task '$taskName' has been created successfully!"
39+
40+
# Run the task immediately
41+
Write-Host "Starting the task immediately..."
42+
Start-ScheduledTask -TaskName $taskName
43+
44+
Write-Host "Task '$taskName' started successfully!"

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,13 @@ Please refer to [FAQ](https://xrfeitoria.readthedocs.io/en/latest/faq.html).
111111
| Project | Teaser | Engine |
112112
| :---: | :---: | :---: |
113113
| [SynBody: Synthetic Dataset with Layered Human Models for 3D Human Perception and Modeling](https://synbody.github.io/) | <a href=https://synbody.github.io/><img src="https://synbody.github.io/static/teaser.png"></a> | Unreal Engine / Blender |
114-
| [Zolly: Zoom Focal Length Correctly for Perspective-Distorted Human Mesh Reconstruction](https://wenjiawang0312.github.io/projects/zolly/) | <a href=https://wenjiawang0312.github.io/projects/zolly/><img src="https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/pics/zolly.jpg"></a> | Blender |
114+
| [Zolly: Zoom Focal Length Correctly for Perspective-Distorted Human Mesh Reconstruction](https://wenjiawang0312.github.io/projects/zolly/) | <a href=https://wenjiawang0312.github.io/projects/zolly/><img src="https://github.com/user-attachments/assets/fff3f441-4b3b-41a1-ab81-e151369f392f"></a> | Blender |
115115
| [SHERF: Generalizable Human NeRF from a Single Image](https://skhu101.github.io/SHERF/) | <a href=https://skhu101.github.io/SHERF/><img src="https://github.com/skhu101/SHERF/raw/main/img/SHERF_teaser.png"></a> | Blender |
116116
| [MatrixCity: A Large-scale City Dataset for City-scale Neural Rendering and Beyond](https://city-super.github.io/matrixcity/) | <a href=https://city-super.github.io/matrixcity/><img src="https://city-super.github.io/matrixcity/img/teaser.jpg"></a> | Unreal Engine |
117-
| [HumanLiff: Layer-wise 3D Human Generation with Diffusion Model](https://skhu101.github.io/HumanLiff/) | <a href=https://skhu101.github.io/HumanLiff/><img src="https://skhu101.github.io/HumanLiff/HumanLiff%20-%20Project%20Page_files/SHERF_teaser.png"/></a> | Blender |
118-
| [PrimDiffusion: Volumetric Primitives Diffusion for 3D Human Generation](https://frozenburning.github.io/projects/primdiffusion/) | <a href=https://frozenburning.github.io/projects/primdiffusion/><img src="https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/pics/PrimDiffusion.png"></a> | Blender |
119-
| [WHAC: World-grounded Humans and Cameras](https://wqyin.github.io/projects/WHAC/) | <a href=https://wqyin.github.io/projects/WHAC/><img src="https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/pics/whac.jpg"></a> | Unreal Engine |
117+
| [HumanLiff: Layer-wise 3D Human Generation with Diffusion Model](https://skhu101.github.io/HumanLiff/) | <a href=https://skhu101.github.io/HumanLiff/><img src="https://github.com/skhu101/HumanLiff/raw/main/img/HumanLiff_teaser_v1.png"/></a> | Blender |
118+
| [PrimDiffusion: Volumetric Primitives Diffusion for 3D Human Generation](https://frozenburning.github.io/projects/primdiffusion/) | <a href=https://frozenburning.github.io/projects/primdiffusion/><img src="https://github.com/user-attachments/assets/9dee5e27-f639-4292-b601-ac206b44690d"></a> | Blender |
119+
| [WHAC: World-grounded Humans and Cameras](https://wqyin.github.io/projects/WHAC/) | <a href=https://wqyin.github.io/projects/WHAC/><img src="https://github.com/user-attachments/assets/19d7d933-5f27-4793-bfbe-6b19b9e13c28"></a> | Unreal Engine |
120+
| [SMPLest-X: Ultimate Scaling for Expressive Human Pose and Shape Estimation](https://caizhongang.com/projects/SMPLer-X/) | <a href=https://caizhongang.com/projects/SMPLer-X/><img src="https://github.com/user-attachments/assets/09cb69db-67d9-46a7-b288-33a0b91191a7"></a> | Blender |
120121

121122
## License
122123

docs/en/src/blender-addon.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ The source code of the addon is in `src/XRFeitoriaBpy`.
55
It enables you to start RPC server and manage your sequences.
66

77
The addon panel is in the top-right corner of the 3D Viewport.
8-
![](https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/pics/blender-addon/1-addon_position.png)
8+
![](https://github.com/user-attachments/assets/6cbf22a4-a26e-47b3-b164-8a3f6cd76fa3)
99

1010
Click the button `Start RPC Server` to start the RPC server. The server will listen on port 9997 to receive commands from XRFeitoria and execute them in Blender.
11-
![](https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/pics/blender-addon/2-start_rpc_server.png)
11+
![](https://github.com/user-attachments/assets/4908eb58-7ca9-40fd-b88c-329e7727e51a)
1212

1313
Click the drop down box `Active` in the `Manage sequences` section to open a sequence belonging to the current level. The objects in the sequence will be loaded to the window, and the properties of the sequence such as `fps`, `frame_start`, `frame_end` and `frame_current` will be set.
14-
![](https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/pics/blender-addon/3-open_sequence.png)
14+
![](https://github.com/user-attachments/assets/0af64a96-af06-404a-9a59-7cf13cd8e800)
1515

1616
Click the 'x' button beside the drop down box to close the sequence.
17-
![](https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/pics/blender-addon/4-close_sequence.png)
17+
![](https://github.com/user-attachments/assets/6a5d9543-2e5a-406b-8f96-8de54a28b725)

samples/blender/03_basic_render.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
44
This is a script to render a preset level in blender.
55
"""
6+
67
from pathlib import Path
78

89
import xrfeitoria as xf
@@ -49,7 +50,7 @@ def main(debug=False, background=False):
4950
)
5051

5152
# by creating a new `sequence`, XRFeitoria links a new collection named `{seq_name}` to the level.
52-
with xf_runner.Sequence.new(seq_name=seq_name, level='Scene') as seq:
53+
with xf_runner.sequence(seq_name=seq_name, level='Scene') as seq:
5354
# The cameras in the level will not be used for rendering by default,
5455
# but you can activate them by calling `seq.use_camera(camera)`.
5556
# There is a camera named `Camera` in the level, and we use it for rendering.

samples/blender/04_staticmesh_render.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
44
This is a script to render static meshes in blender.
55
"""
6+
67
import math
78
from pathlib import Path
89

@@ -64,7 +65,7 @@ def main(debug=False, background=False):
6465
##################################################
6566
#### Create a new sequence with default level ####
6667
##################################################
67-
with xf_runner.Sequence.new(seq_name=seq_1_name) as seq:
68+
with xf_runner.sequence(seq_name=seq_1_name) as seq:
6869
# use the `camera` in level to render
6970
seq.use_camera(camera=camera)
7071

@@ -85,7 +86,7 @@ def main(debug=False, background=False):
8586
########################################################
8687
#### Create another new sequence with default level ####
8788
########################################################
88-
with xf_runner.Sequence.new(seq_name=seq_2_name) as seq:
89+
with xf_runner.sequence(seq_name=seq_2_name) as seq:
8990
# import an actor to the sequence, and add transform keys to make it rotate around the bunny and grow bigger and bigger
9091
actor_kc = seq.import_actor(file_path=assets_path['koupen_chan'], stencil_value=255)
9192
actor_kc.set_origin_to_center()

samples/blender/05_skeletalmesh_render.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
44
This is a script to render skeletal meshes in blender.
55
"""
6+
67
from pathlib import Path
78

89
import xrfeitoria as xf
@@ -38,7 +39,7 @@ def main(debug=False, background=False):
3839
### Create a new sequence with the defined level ###
3940
####################################################
4041
seq_length = 200
41-
with xf_runner.Sequence.new(seq_name=seq_name, level='MyLevel', seq_length=seq_length) as seq:
42+
with xf_runner.sequence(seq_name=seq_name, level='MyLevel', seq_length=seq_length) as seq:
4243
# import an skeletal mesh and set an animation to it
4344
actor = seq.import_actor(file_path=assets_path['SMPL_XL'], stencil_value=128)
4445
actor.setup_animation(animation_path=assets_path['motion_2'])

samples/blender/07_amass.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
# and use `ACCAD/s001/EricCamper04_stageii.npz` from the uncompressed folder
2929
amass_file = asset_root / 'EricCamper04_stageii.npz'
3030

31-
# 2.1 Download SMPL-XL model from https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/assets/SMPL-XL-001.fbx
31+
# 2.1 Download SMPL-XL model from https://github.com/openxrlab/xrfeitoria/releases/download/v0.1.0/assets--SMPL-XL-001.fbx
3232
# or from https://openxlab.org.cn/datasets/OpenXDLab/SynBody/tree/main/Assets
3333
# With downloading this, you are agreeing to CC BY-NC-SA 4.0 License (https://creativecommons.org/licenses/by-nc-sa/4.0/).
3434
smpl_xl_file = asset_root / 'SMPL-XL-001.fbx'
35-
# 2.2 Download the meta information from https://openxrlab-share.oss-cn-hongkong.aliyuncs.com/xrfeitoria/assets/SMPL-XL-001.npz
35+
# 2.2 Download the meta information from https://github.com/openxrlab/xrfeitoria/releases/download/v0.1.0/assets--SMPL-XL-001.npz
3636
smpl_xl_meta_file = asset_root / 'SMPL-XL-001.npz'
3737

3838
# 3. Define the output file path

0 commit comments

Comments
 (0)