Character Transfer error


I wonder if anyone could help me.
I’ve exported the FaceMesh of Metahuman_004 as USD, got rid of the skeleton, and oriented the mesh so Y-axis is up (in Maya) and exported as another USD and dragged into Audio2Face.
But when I do the MeshFitting, it never worked, always stuck on 37.5%. Here’re the last few lines of the log:

2021-04-29 05:45:48 [615,233ms] [Info] [carb.python] [PointPicker] Begin stroke
2021-04-29 05:45:48 [615,307ms] [Info] [carb.python] [PointPicker] End stroke
2021-04-29 05:45:53 [620,709ms] [Info] [carb.python] [PointPicker] Stop picking
2021-04-29 05:46:01 [629,194ms] [Info] [omni.hydra] Destroy mesh instance for /World/metahuman_004_head/group1/Section0
2021-04-29 05:46:01 [629,198ms] [Info] [omni.usd] ResyncedPaths: /World/metahuman_004_head/group1/Section0_fitted
2021-04-29 05:46:02 [629,205ms] [Info] [carb.python] Handle changed 1 prims for layer anon:000001E827DFA670:World1.usd.
2021-04-29 05:46:02 [629,205ms] [Info] [carb.python] Load prim spec tree rooted from /World/metahuman_004_head/group1/Section0_fitted
2021-04-29 05:46:02 [629,205ms] [Info] [carb.python] Handle changed prims for layer anon:000001E827DFA670:World1.usd done.
2021-04-29 05:46:04 [631,351ms] [Error] [carb.python] [c:\users\jqshe\appdata\local\ov\pkg\audio2face-2021.2.4\kit\python\lib\asyncio\] Task exception was never retrieved
future: <Task finished coro=<_do_fitting() done, defined at c:\users\jqshe\appdata\local\ov\pkg\audio2face-2021.2.4\exts\omni.kit.charTransfer\omni\kit\charTransfer\> exception=RuntimeError(‘Factor is exactly singular’)>
Traceback (most recent call last):
File “c:\users\jqshe\appdata\local\ov\pkg\audio2face-2021.2.4\exts\omni.kit.charTransfer\omni\kit\charTransfer\”, line 84, in _do_fitting
register_laplacian_func = register_laplacian_factor(L, landmarks)
File “c:\users\jqshe\appdata\local\ov\pkg\audio2face-2021.2.4\exts\omni.kit.charTransfer\omni\kit\charTransfer\fitting\”, line 66, in register_laplacian_factor
return partial(_register_laplacian_solve, L, landmarks, landmark0_mask, spla.splu(lhs))
File “c:\users\jqshe\appdata\local\ov\pkg\audio2face-2021.2.4\exts\omni.audio2face.player_deps\deps\py\scipy\sparse\linalg\dsolve\”, line 339, in splu
ilu=False, options=_options)
RuntimeError: Factor is exactly singular

Any ideas?


Hi @james.shen ! Thank you for your interest in Audio2Face. To investigate your issue we need to reproduce it. Could you please save your stage (via Audio2Face File->Save As) as a USD file (after you’ve added all the corresponding points before hitting “Begin Mesh Fitting”) and share with us.

Hi @james.shen, thanks for trying Audio2Face. Can you please check if your face mesh prim consists of more than 2 separable meshes (that do not share any edge or face)? With a high chance, the error is related to the input face mesh that you use. It will be easier to see what went wrong, if you provide the .usd file.

Hello, I imported my model, and can link meshes, but i cannot click-open the mesh fitting Tab image

Hi @alexandre.messier ,
If you set all the meshes combobox back to “Select Mesh”, and reselect them, does that fix the problem?
Maybe there’s certain combination of mesh selection on the mesh that produce stale info for the UI. I’ll try see if I can repro it here, but meanwhile, if you can provide your repro steps, it’ll be much appreciated.


Thanks! That’s exactly where the problem was. My head mesh looks like a single mesh, but it contains pieces. Once I merged the vertices, it worked.

1 Like

I am encoutering the same error. Has there been a solution yet? I’ve tried deselecting the Driver and Target options and reselected everything, but unfortunately that didn’t do the trick…

if you can show screenshot or video of your workflow, it might help us debug what you are seeing

Attached you find my exact workflow which produces the error, i hope this helps. =)


I uploaded a video of the workflow, please see the latest post in this thread.

@hinsemartin That is very odd. We have not seen this. Do you mind uploading or message send us your USD file so we can test on our end?

@alexandre.messier , would you mind doing the same thing and upload your USD mesh so we can try on our end? If you still have the issue.

@esusantolim for vis

I have the same behaviour demostrated by @hinsemartin . Yes, I’ll share my USD with you via email.

Sure thing, here you go. Please let me know, when you achieve something.
Aristopepps_Head_CharTransfer.usda (18.9 MB) Aristopepps_Head_CharTransfer.usda (18.9 MB)

Hi @hinsemartin ,
Thank you for the file. I’m taking a look at it now and will get back to you soon.

@hinsemartin & @alexandre.messier
the Mesh Fitting panel is not expanding because it silently failed to find the Default Prim in your Usd Stage.
I’ll see how we can avoid this error in the future release, but meanwhile, you can set the default prim on the top node of your mesh by Right clicking on it on the Stage view and choose Set as Default Prim.
Once you set this, try reselect the mesh again in the Meshes panel.
Let me know if this works for you :)

1 Like

@siyuen @esusantolim @hinsemartin hello all, tested, and now working on my side! thanks

Thank you so much, I also got it to work correctly.

Great to hear is working now. Will add this to the FAQ