Failed from Install
What happened?
After install it didn't work
Steps to reproduce
1.Running on Pop!OS
Your system (OS / GPU / RAM / VRAM / etc.)
Intel i7 26gb RAM zotac 16gb 5060ti
Logs / full error output
<>eval "$(conda shell.bash hook)" ; conda deactivate ; conda deactivate ; conda deactivate ; conda activate base ; source /home/campbell/pinokio/api/ai4animationpy.pinokio.git/app/env/bin/activate /home/campbell/pinokio/api/ai4animationpy.pinokio.git/app/env && python webdemo/run.py
http://x86_64-conda-linux-gnu:42003
ERROR: [Errno -3] Temporary failure in name resolution
(env) (base) <>
Paste the full log output here
Digging around and Claude.ai feeding me bash questions yielded this:
**Title: Biped/Quadruped demos crash with `AttributeError: 'MotionModel' object has no attribute 'LatentDim'`**
Both the Biped and Quadruped locomotion demos fail every time a session starts. The server stays up and a character window renders, but the animation never initializes — the same traceback repeats on every WebSocket connection attempt.
**Traceback:**
Traceback (most recent call last):
File ".../webdemo/interactive_server.py", line 327, in interactive_socket
await _run_active_session(websocket, demo_name)
File ".../webdemo/interactive_server.py", line 203, in _run_active_session
program, AI4Animation = await asyncio.to_thread(_create_program, demo_name)
File ".../webdemo/interactive_server.py", line 125, in _create_program
AI4Animation(program, mode=AI4Animation.Mode.MANUAL)
File ".../app/ai4animation/AI4Animation.py", line 69, in init
AI4Animation.Program.Start()
File ".../webdemo/locomotion/Biped/WebProgram.py", line 158, in Start
self._noise_buf = Tensor.ToDevice(torch.empty(1, self.Model.LatentDim))
File ".../app/env/lib/python3.12/site-packages/torch/nn/modules/module.py", line 1967, in getattr
raise AttributeError(
AttributeError: 'MotionModel' object has no attribute 'LatentDim'
Same error at `webdemo/locomotion/Quadruped/WebProgram.py` line 173, and it also references `self.Model.InputDim` at line 240 which will hit the same problem.
**Root cause:**
`WebProgram.py` (both Biped and Quadruped) expects `self.Model` — loaded via `torch.load(local_path, weights_only=False, ...)` from the bundled `Network.pt` checkpoint — to expose flat attributes `.LatentDim` and `.InputDim`.
But looking at the actual `MotionModel` class in `app/ai4animation/AI/Models/CxM.py`:
```python
class MotionModel(Model):
def __init__(
self,
sequence_length,
input_dim,
output_dim,
encoder_dim,
decoder_dim,
estimator_dim,
denoiser_dim,
codebook_channels,
codebook_classes,
dropout,
):
super(MotionModel, self).__init__(
prior=MotionPrior(...),
sampler=MotionSampler(...),
)
None of the constructor args (input_dim, encoder_dim, etc.) are ever stored as self attributes — they're just forwarded into building self.prior and self.sampler, then discarded. I confirmed this by loading the actual checkpoint directly:
model = torch.load("Network.pt", weights_only=False, map_location="cpu")
print(sorted(vars(model).keys()))
# -> only nn.Module internals: _buffers, _modules, _parameters, training, etc.
# no LatentDim, InputDim, or anything dimension-related
So WebProgram.py appears to have been written against an older version of MotionModel that used to expose these as instance attributes, and it wasn't updated when the class was refactored to its current form (dimensions folded into submodule construction instead).
Confirmed not the cause:
- Not a corrupted/partial download —
Network.ptis 60,668,052 bytes and loads fine viatorch.load. - Not a pip package version mismatch —
ai4animationisn't pip-installed at all; it's imported directly fromapp/ai4animation/__init__.py, so there's only one version of the code in play. - Not a missing file — confirmed
Network.pt,PostProcessor.pt, and allGuidances/*.npzare present for both demos.
Suggested fix:
Since input_dim/encoder_dim etc. aren't retrievable from the model instance as currently structured, WebProgram.py needs to either:
- Pull these dimensions from wherever the demo already knows them (e.g. hardcode based on the known checkpoint config, since they're fixed per-demo), or
- Have
MotionModel.__init__store them asselfattributes upstream (e.g.self.LatentDim = encoder_dim,self.InputDim = input_dim) if that's an acceptable change to make inai4animation/AI/Models/CxM.py, or - Infer them from an existing submodule shape at runtime (e.g.
self.Model.sampler's first layer) if that's more robust to future refactors.
Happy to test a patch if you push one. Let me know if you need anything else from my setup (Pop!_OS, RTX 5060 Ti, Python 3.12 venv via uv).
