Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Taming Diffusion Probabilistic Models for Character Control

SIGGRAPH 2024

*equal contribution


Paper PDFProject PageUnityyoutube views

News

  • 📢 2024.04.24 Release the Windows Unity demo (GPU) trained in 100STYLE dataset.
  • 📢 2024.06.23 Release the training code in PyTorch.
  • 📢 2024.07.05 Release the inference code in Unity.
  • 📢 2024.07.05 Release the evaluation code with datas.

Getting Started

Our project is developed with Unity, and features a real-time character control demo that generates high-quality and diverse character animations, responding in real-time to user-supplied control signals. With our character controller, you can control your character to move with any arbitrary style you want, all achieved through a single unified model.

A well-designed diffusion model is powering behind the demo, and it can be run efficiently on consumer-level GPUs or Apple Silicon MacBooks. For more information, please visit our project's homepage or the releases page to download the runnable program.

Usage

WASD: Move the character and control the character.
F: Switch between forward mode and orientation-fixed mode. QE: Adjust the orientation in orientation-fixed mode.
J: Next style
L: Previous style
Left Shift: Run

Train from Scratch

Our project contains two main modules: Network training part with PyTorch, and demo with Unity. Both modules are open-sourced and can be accessed in this repository.

Character and Motion Preparation

To train a character animation system, you first need a rigged character and its corresponding motion data. In our project, we provide an example with Y-Bot from Mixamo, which uses the standard Mixamo skeleton configuration. We also retargeted the 100STYLE dataset with the Mixamo skeleton by using ARP-Batch-Retargeting. Therefore, you can download any other character from Mixamo and drive it with our trained model.

For customized character and motion data, please wait for our further documentation to explain the retargeting and rigging process.

Diffusion Network Training [PyTorch]

All the training codes and documents can be found in the subfolder of our repository.

A practical training session using the entire 100STYLE dataset will take approximately one day, although acceptable checkpoints can usually be obtained after just a few hours (more than 4 hours). Following the completion of the network training, it's necessary to convert the saved checkpoints into the ONNX format. This allows them to be imported into Unity for use as a learning module. For more details, please check the subfolder.

Unity Inference [Unity]

Once you have obtained the ONNX file and its corresponding model configuration JSON files, you can import them into our Unity project and run your own demo. For a step-by-step tutorial, please visit our YouTube channel: tutorial.

In original paper, we used a 3060 GPU for inference, achieving performance of over 60 frames per second with the default settings. For more detailed information about the parameters, please refer to the paper.

Evaluation

We record all the motion results for different methods with a same control presets. You can access the data and metrics in the evaluation folder.

ToDo-List

  • Release Unity .exe demo. (2024.04.24)
  • Release the training code in PyTorch. (2024.06.23)
  • Release the inference code in Unity. (2024.07.05)
  • Release the evaluation code. (TBA)
  • Release the inference code to support any character control. (TBA)

Acknowledgement

This project is inspired by the following works. We appreciate their contributions, and please consider citing them if you find our project helpful.

BibTex

@inproceedings{camdm,
title={Taming Diffusion Probabilistic Models for Character Control},
author={Rui Chen and Mingyi Shi and Shaoli Huang and Ping Tan and Taku Komura and Xuelin Chen},
booktitle={SIGGRAPH},
year={2024}
}

Copyright Information

The unity code is released under the GPL-3 license, the rest of the source code is released under the Apache License Version 2.0

About

(SIGGRAPH 2024) Official repository for "Taming Diffusion Probabilistic Models for Character Control"

Resources

Stars

309 stars

Watchers

19 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Taming Diffusion Probabilistic Models for Character Control

SIGGRAPH 2024

*equal contribution


Paper PDFProject PageUnityyoutube views

News

  • 📢 2024.04.24 Release the Windows Unity demo (GPU) trained in 100STYLE dataset.
  • 📢 2024.06.23 Release the training code in PyTorch.
  • 📢 2024.07.05 Release the inference code in Unity.
  • 📢 2024.07.05 Release the evaluation code with datas.

Getting Started

Our project is developed with Unity, and features a real-time character control demo that generates high-quality and diverse character animations, responding in real-time to user-supplied control signals. With our character controller, you can control your character to move with any arbitrary style you want, all achieved through a single unified model.

A well-designed diffusion model is powering behind the demo, and it can be run efficiently on consumer-level GPUs or Apple Silicon MacBooks. For more information, please visit our project's homepage or the releases page to download the runnable program.

Usage

WASD: Move the character and control the character.
F: Switch between forward mode and orientation-fixed mode. QE: Adjust the orientation in orientation-fixed mode.
J: Next style
L: Previous style
Left Shift: Run

Train from Scratch

Our project contains two main modules: Network training part with PyTorch, and demo with Unity. Both modules are open-sourced and can be accessed in this repository.

Character and Motion Preparation

To train a character animation system, you first need a rigged character and its corresponding motion data. In our project, we provide an example with Y-Bot from Mixamo, which uses the standard Mixamo skeleton configuration. We also retargeted the 100STYLE dataset with the Mixamo skeleton by using ARP-Batch-Retargeting. Therefore, you can download any other character from Mixamo and drive it with our trained model.

For customized character and motion data, please wait for our further documentation to explain the retargeting and rigging process.

Diffusion Network Training [PyTorch]

All the training codes and documents can be found in the subfolder of our repository.

A practical training session using the entire 100STYLE dataset will take approximately one day, although acceptable checkpoints can usually be obtained after just a few hours (more than 4 hours). Following the completion of the network training, it's necessary to convert the saved checkpoints into the ONNX format. This allows them to be imported into Unity for use as a learning module. For more details, please check the subfolder.

Unity Inference [Unity]

Once you have obtained the ONNX file and its corresponding model configuration JSON files, you can import them into our Unity project and run your own demo. For a step-by-step tutorial, please visit our YouTube channel: tutorial.

In original paper, we used a 3060 GPU for inference, achieving performance of over 60 frames per second with the default settings. For more detailed information about the parameters, please refer to the paper.

Evaluation

We record all the motion results for different methods with a same control presets. You can access the data and metrics in the evaluation folder.

ToDo-List

  • Release Unity .exe demo. (2024.04.24)
  • Release the training code in PyTorch. (2024.06.23)
  • Release the inference code in Unity. (2024.07.05)
  • Release the evaluation code. (TBA)
  • Release the inference code to support any character control. (TBA)

Acknowledgement

This project is inspired by the following works. We appreciate their contributions, and please consider citing them if you find our project helpful.

BibTex

@inproceedings{camdm,
title={Taming Diffusion Probabilistic Models for Character Control},
author={Rui Chen and Mingyi Shi and Shaoli Huang and Ping Tan and Taku Komura and Xuelin Chen},
booktitle={SIGGRAPH},
year={2024}
}

Copyright Information

The unity code is released under the GPL-3 license, the rest of the source code is released under the Apache License Version 2.0

About

(SIGGRAPH 2024) Official repository for "Taming Diffusion Probabilistic Models for Character Control"

Resources

Stars

309 stars

Watchers

19 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Taming Diffusion Probabilistic Models for Character Control

SIGGRAPH 2024

*equal contribution


Paper PDFProject PageUnityyoutube views

News

  • 📢 2024.04.24 Release the Windows Unity demo (GPU) trained in 100STYLE dataset.
  • 📢 2024.06.23 Release the training code in PyTorch.
  • 📢 2024.07.05 Release the inference code in Unity.
  • 📢 2024.07.05 Release the evaluation code with datas.

Getting Started

Our project is developed with Unity, and features a real-time character control demo that generates high-quality and diverse character animations, responding in real-time to user-supplied control signals. With our character controller, you can control your character to move with any arbitrary style you want, all achieved through a single unified model.

A well-designed diffusion model is powering behind the demo, and it can be run efficiently on consumer-level GPUs or Apple Silicon MacBooks. For more information, please visit our project's homepage or the releases page to download the runnable program.

Usage

WASD: Move the character and control the character.
F: Switch between forward mode and orientation-fixed mode. QE: Adjust the orientation in orientation-fixed mode.
J: Next style
L: Previous style
Left Shift: Run

Train from Scratch

Our project contains two main modules: Network training part with PyTorch, and demo with Unity. Both modules are open-sourced and can be accessed in this repository.

Character and Motion Preparation

To train a character animation system, you first need a rigged character and its corresponding motion data. In our project, we provide an example with Y-Bot from Mixamo, which uses the standard Mixamo skeleton configuration. We also retargeted the 100STYLE dataset with the Mixamo skeleton by using ARP-Batch-Retargeting. Therefore, you can download any other character from Mixamo and drive it with our trained model.

For customized character and motion data, please wait for our further documentation to explain the retargeting and rigging process.

Diffusion Network Training [PyTorch]

All the training codes and documents can be found in the subfolder of our repository.

A practical training session using the entire 100STYLE dataset will take approximately one day, although acceptable checkpoints can usually be obtained after just a few hours (more than 4 hours). Following the completion of the network training, it's necessary to convert the saved checkpoints into the ONNX format. This allows them to be imported into Unity for use as a learning module. For more details, please check the subfolder.

Unity Inference [Unity]

Once you have obtained the ONNX file and its corresponding model configuration JSON files, you can import them into our Unity project and run your own demo. For a step-by-step tutorial, please visit our YouTube channel: tutorial.

In original paper, we used a 3060 GPU for inference, achieving performance of over 60 frames per second with the default settings. For more detailed information about the parameters, please refer to the paper.

Evaluation

We record all the motion results for different methods with a same control presets. You can access the data and metrics in the evaluation folder.

ToDo-List

  • Release Unity .exe demo. (2024.04.24)
  • Release the training code in PyTorch. (2024.06.23)
  • Release the inference code in Unity. (2024.07.05)
  • Release the evaluation code. (TBA)
  • Release the inference code to support any character control. (TBA)

Acknowledgement

This project is inspired by the following works. We appreciate their contributions, and please consider citing them if you find our project helpful.

BibTex

@inproceedings{camdm,
title={Taming Diffusion Probabilistic Models for Character Control},
author={Rui Chen and Mingyi Shi and Shaoli Huang and Ping Tan and Taku Komura and Xuelin Chen},
booktitle={SIGGRAPH},
year={2024}
}

Copyright Information

The unity code is released under the GPL-3 license, the rest of the source code is released under the Apache License Version 2.0

About

(SIGGRAPH 2024) Official repository for "Taming Diffusion Probabilistic Models for Character Control"

Resources

Stars

309 stars

Watchers

19 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Taming Diffusion Probabilistic Models for Character Control

SIGGRAPH 2024

*equal contribution


Paper PDFProject PageUnityyoutube views

News

  • 📢 2024.04.24 Release the Windows Unity demo (GPU) trained in 100STYLE dataset.
  • 📢 2024.06.23 Release the training code in PyTorch.
  • 📢 2024.07.05 Release the inference code in Unity.
  • 📢 2024.07.05 Release the evaluation code with datas.

Getting Started

Our project is developed with Unity, and features a real-time character control demo that generates high-quality and diverse character animations, responding in real-time to user-supplied control signals. With our character controller, you can control your character to move with any arbitrary style you want, all achieved through a single unified model.

A well-designed diffusion model is powering behind the demo, and it can be run efficiently on consumer-level GPUs or Apple Silicon MacBooks. For more information, please visit our project's homepage or the releases page to download the runnable program.

Usage

WASD: Move the character and control the character.
F: Switch between forward mode and orientation-fixed mode. QE: Adjust the orientation in orientation-fixed mode.
J: Next style
L: Previous style
Left Shift: Run

Train from Scratch

Our project contains two main modules: Network training part with PyTorch, and demo with Unity. Both modules are open-sourced and can be accessed in this repository.

Character and Motion Preparation

To train a character animation system, you first need a rigged character and its corresponding motion data. In our project, we provide an example with Y-Bot from Mixamo, which uses the standard Mixamo skeleton configuration. We also retargeted the 100STYLE dataset with the Mixamo skeleton by using ARP-Batch-Retargeting. Therefore, you can download any other character from Mixamo and drive it with our trained model.

For customized character and motion data, please wait for our further documentation to explain the retargeting and rigging process.

Diffusion Network Training [PyTorch]

All the training codes and documents can be found in the subfolder of our repository.

A practical training session using the entire 100STYLE dataset will take approximately one day, although acceptable checkpoints can usually be obtained after just a few hours (more than 4 hours). Following the completion of the network training, it's necessary to convert the saved checkpoints into the ONNX format. This allows them to be imported into Unity for use as a learning module. For more details, please check the subfolder.

Unity Inference [Unity]

Once you have obtained the ONNX file and its corresponding model configuration JSON files, you can import them into our Unity project and run your own demo. For a step-by-step tutorial, please visit our YouTube channel: tutorial.

In original paper, we used a 3060 GPU for inference, achieving performance of over 60 frames per second with the default settings. For more detailed information about the parameters, please refer to the paper.

Evaluation

We record all the motion results for different methods with a same control presets. You can access the data and metrics in the evaluation folder.

ToDo-List

  • Release Unity .exe demo. (2024.04.24)
  • Release the training code in PyTorch. (2024.06.23)
  • Release the inference code in Unity. (2024.07.05)
  • Release the evaluation code. (TBA)
  • Release the inference code to support any character control. (TBA)

Acknowledgement

This project is inspired by the following works. We appreciate their contributions, and please consider citing them if you find our project helpful.

BibTex

@inproceedings{camdm,
title={Taming Diffusion Probabilistic Models for Character Control},
author={Rui Chen and Mingyi Shi and Shaoli Huang and Ping Tan and Taku Komura and Xuelin Chen},
booktitle={SIGGRAPH},
year={2024}
}

Copyright Information

The unity code is released under the GPL-3 license, the rest of the source code is released under the Apache License Version 2.0

About

(SIGGRAPH 2024) Official repository for "Taming Diffusion Probabilistic Models for Character Control"

Resources

Stars

309 stars

Watchers

19 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Taming Diffusion Probabilistic Models for Character Control

SIGGRAPH 2024

*equal contribution


Paper PDFProject PageUnityyoutube views

News

  • 📢 2024.04.24 Release the Windows Unity demo (GPU) trained in 100STYLE dataset.
  • 📢 2024.06.23 Release the training code in PyTorch.
  • 📢 2024.07.05 Release the inference code in Unity.
  • 📢 2024.07.05 Release the evaluation code with datas.

Getting Started

Our project is developed with Unity, and features a real-time character control demo that generates high-quality and diverse character animations, responding in real-time to user-supplied control signals. With our character controller, you can control your character to move with any arbitrary style you want, all achieved through a single unified model.

A well-designed diffusion model is powering behind the demo, and it can be run efficiently on consumer-level GPUs or Apple Silicon MacBooks. For more information, please visit our project's homepage or the releases page to download the runnable program.

Usage

WASD: Move the character and control the character.
F: Switch between forward mode and orientation-fixed mode. QE: Adjust the orientation in orientation-fixed mode.
J: Next style
L: Previous style
Left Shift: Run

Train from Scratch

Our project contains two main modules: Network training part with PyTorch, and demo with Unity. Both modules are open-sourced and can be accessed in this repository.

Character and Motion Preparation

To train a character animation system, you first need a rigged character and its corresponding motion data. In our project, we provide an example with Y-Bot from Mixamo, which uses the standard Mixamo skeleton configuration. We also retargeted the 100STYLE dataset with the Mixamo skeleton by using ARP-Batch-Retargeting. Therefore, you can download any other character from Mixamo and drive it with our trained model.

For customized character and motion data, please wait for our further documentation to explain the retargeting and rigging process.

Diffusion Network Training [PyTorch]

All the training codes and documents can be found in the subfolder of our repository.

A practical training session using the entire 100STYLE dataset will take approximately one day, although acceptable checkpoints can usually be obtained after just a few hours (more than 4 hours). Following the completion of the network training, it's necessary to convert the saved checkpoints into the ONNX format. This allows them to be imported into Unity for use as a learning module. For more details, please check the subfolder.

Unity Inference [Unity]

Once you have obtained the ONNX file and its corresponding model configuration JSON files, you can import them into our Unity project and run your own demo. For a step-by-step tutorial, please visit our YouTube channel: tutorial.

In original paper, we used a 3060 GPU for inference, achieving performance of over 60 frames per second with the default settings. For more detailed information about the parameters, please refer to the paper.

Evaluation

We record all the motion results for different methods with a same control presets. You can access the data and metrics in the evaluation folder.

ToDo-List

  • Release Unity .exe demo. (2024.04.24)
  • Release the training code in PyTorch. (2024.06.23)
  • Release the inference code in Unity. (2024.07.05)
  • Release the evaluation code. (TBA)
  • Release the inference code to support any character control. (TBA)

Acknowledgement

This project is inspired by the following works. We appreciate their contributions, and please consider citing them if you find our project helpful.

BibTex

@inproceedings{camdm,
title={Taming Diffusion Probabilistic Models for Character Control},
author={Rui Chen and Mingyi Shi and Shaoli Huang and Ping Tan and Taku Komura and Xuelin Chen},
booktitle={SIGGRAPH},
year={2024}
}

Copyright Information

The unity code is released under the GPL-3 license, the rest of the source code is released under the Apache License Version 2.0

About

(SIGGRAPH 2024) Official repository for "Taming Diffusion Probabilistic Models for Character Control"

Resources

Stars

309 stars

Watchers

19 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Taming Diffusion Probabilistic Models for Character Control

SIGGRAPH 2024

*equal contribution


Paper PDFProject PageUnityyoutube views

News

  • 📢 2024.04.24 Release the Windows Unity demo (GPU) trained in 100STYLE dataset.
  • 📢 2024.06.23 Release the training code in PyTorch.
  • 📢 2024.07.05 Release the inference code in Unity.
  • 📢 2024.07.05 Release the evaluation code with datas.

Getting Started

Our project is developed with Unity, and features a real-time character control demo that generates high-quality and diverse character animations, responding in real-time to user-supplied control signals. With our character controller, you can control your character to move with any arbitrary style you want, all achieved through a single unified model.

A well-designed diffusion model is powering behind the demo, and it can be run efficiently on consumer-level GPUs or Apple Silicon MacBooks. For more information, please visit our project's homepage or the releases page to download the runnable program.

Usage

WASD: Move the character and control the character.
F: Switch between forward mode and orientation-fixed mode. QE: Adjust the orientation in orientation-fixed mode.
J: Next style
L: Previous style
Left Shift: Run

Train from Scratch

Our project contains two main modules: Network training part with PyTorch, and demo with Unity. Both modules are open-sourced and can be accessed in this repository.

Character and Motion Preparation

To train a character animation system, you first need a rigged character and its corresponding motion data. In our project, we provide an example with Y-Bot from Mixamo, which uses the standard Mixamo skeleton configuration. We also retargeted the 100STYLE dataset with the Mixamo skeleton by using ARP-Batch-Retargeting. Therefore, you can download any other character from Mixamo and drive it with our trained model.

For customized character and motion data, please wait for our further documentation to explain the retargeting and rigging process.

Diffusion Network Training [PyTorch]

All the training codes and documents can be found in the subfolder of our repository.

A practical training session using the entire 100STYLE dataset will take approximately one day, although acceptable checkpoints can usually be obtained after just a few hours (more than 4 hours). Following the completion of the network training, it's necessary to convert the saved checkpoints into the ONNX format. This allows them to be imported into Unity for use as a learning module. For more details, please check the subfolder.

Unity Inference [Unity]

Once you have obtained the ONNX file and its corresponding model configuration JSON files, you can import them into our Unity project and run your own demo. For a step-by-step tutorial, please visit our YouTube channel: tutorial.

In original paper, we used a 3060 GPU for inference, achieving performance of over 60 frames per second with the default settings. For more detailed information about the parameters, please refer to the paper.

Evaluation

We record all the motion results for different methods with a same control presets. You can access the data and metrics in the evaluation folder.

ToDo-List

  • Release Unity .exe demo. (2024.04.24)
  • Release the training code in PyTorch. (2024.06.23)
  • Release the inference code in Unity. (2024.07.05)
  • Release the evaluation code. (TBA)
  • Release the inference code to support any character control. (TBA)

Acknowledgement

This project is inspired by the following works. We appreciate their contributions, and please consider citing them if you find our project helpful.

BibTex

@inproceedings{camdm,
title={Taming Diffusion Probabilistic Models for Character Control},
author={Rui Chen and Mingyi Shi and Shaoli Huang and Ping Tan and Taku Komura and Xuelin Chen},
booktitle={SIGGRAPH},
year={2024}
}

Copyright Information

The unity code is released under the GPL-3 license, the rest of the source code is released under the Apache License Version 2.0

About

(SIGGRAPH 2024) Official repository for "Taming Diffusion Probabilistic Models for Character Control"

Resources

Stars

309 stars

Watchers

19 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Taming Diffusion Probabilistic Models for Character Control

SIGGRAPH 2024

*equal contribution


Paper PDFProject PageUnityyoutube views

News

  • 📢 2024.04.24 Release the Windows Unity demo (GPU) trained in 100STYLE dataset.
  • 📢 2024.06.23 Release the training code in PyTorch.
  • 📢 2024.07.05 Release the inference code in Unity.
  • 📢 2024.07.05 Release the evaluation code with datas.

Getting Started

Our project is developed with Unity, and features a real-time character control demo that generates high-quality and diverse character animations, responding in real-time to user-supplied control signals. With our character controller, you can control your character to move with any arbitrary style you want, all achieved through a single unified model.

A well-designed diffusion model is powering behind the demo, and it can be run efficiently on consumer-level GPUs or Apple Silicon MacBooks. For more information, please visit our project's homepage or the releases page to download the runnable program.

Usage

WASD: Move the character and control the character.
F: Switch between forward mode and orientation-fixed mode. QE: Adjust the orientation in orientation-fixed mode.
J: Next style
L: Previous style
Left Shift: Run

Train from Scratch

Our project contains two main modules: Network training part with PyTorch, and demo with Unity. Both modules are open-sourced and can be accessed in this repository.

Character and Motion Preparation

To train a character animation system, you first need a rigged character and its corresponding motion data. In our project, we provide an example with Y-Bot from Mixamo, which uses the standard Mixamo skeleton configuration. We also retargeted the 100STYLE dataset with the Mixamo skeleton by using ARP-Batch-Retargeting. Therefore, you can download any other character from Mixamo and drive it with our trained model.

For customized character and motion data, please wait for our further documentation to explain the retargeting and rigging process.

Diffusion Network Training [PyTorch]

All the training codes and documents can be found in the subfolder of our repository.

A practical training session using the entire 100STYLE dataset will take approximately one day, although acceptable checkpoints can usually be obtained after just a few hours (more than 4 hours). Following the completion of the network training, it's necessary to convert the saved checkpoints into the ONNX format. This allows them to be imported into Unity for use as a learning module. For more details, please check the subfolder.

Unity Inference [Unity]

Once you have obtained the ONNX file and its corresponding model configuration JSON files, you can import them into our Unity project and run your own demo. For a step-by-step tutorial, please visit our YouTube channel: tutorial.

In original paper, we used a 3060 GPU for inference, achieving performance of over 60 frames per second with the default settings. For more detailed information about the parameters, please refer to the paper.

Evaluation

We record all the motion results for different methods with a same control presets. You can access the data and metrics in the evaluation folder.

ToDo-List

  • Release Unity .exe demo. (2024.04.24)
  • Release the training code in PyTorch. (2024.06.23)
  • Release the inference code in Unity. (2024.07.05)
  • Release the evaluation code. (TBA)
  • Release the inference code to support any character control. (TBA)

Acknowledgement

This project is inspired by the following works. We appreciate their contributions, and please consider citing them if you find our project helpful.

BibTex

@inproceedings{camdm,
title={Taming Diffusion Probabilistic Models for Character Control},
author={Rui Chen and Mingyi Shi and Shaoli Huang and Ping Tan and Taku Komura and Xuelin Chen},
booktitle={SIGGRAPH},
year={2024}
}

Copyright Information

The unity code is released under the GPL-3 license, the rest of the source code is released under the Apache License Version 2.0

About

(SIGGRAPH 2024) Official repository for "Taming Diffusion Probabilistic Models for Character Control"

Resources

Stars

309 stars

Watchers

19 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Taming Diffusion Probabilistic Models for Character Control

SIGGRAPH 2024

*equal contribution


Paper PDFProject PageUnityyoutube views

News

  • 📢 2024.04.24 Release the Windows Unity demo (GPU) trained in 100STYLE dataset.
  • 📢 2024.06.23 Release the training code in PyTorch.
  • 📢 2024.07.05 Release the inference code in Unity.
  • 📢 2024.07.05 Release the evaluation code with datas.

Getting Started

Our project is developed with Unity, and features a real-time character control demo that generates high-quality and diverse character animations, responding in real-time to user-supplied control signals. With our character controller, you can control your character to move with any arbitrary style you want, all achieved through a single unified model.

A well-designed diffusion model is powering behind the demo, and it can be run efficiently on consumer-level GPUs or Apple Silicon MacBooks. For more information, please visit our project's homepage or the releases page to download the runnable program.

Usage

WASD: Move the character and control the character.
F: Switch between forward mode and orientation-fixed mode. QE: Adjust the orientation in orientation-fixed mode.
J: Next style
L: Previous style
Left Shift: Run

Train from Scratch

Our project contains two main modules: Network training part with PyTorch, and demo with Unity. Both modules are open-sourced and can be accessed in this repository.

Character and Motion Preparation

To train a character animation system, you first need a rigged character and its corresponding motion data. In our project, we provide an example with Y-Bot from Mixamo, which uses the standard Mixamo skeleton configuration. We also retargeted the 100STYLE dataset with the Mixamo skeleton by using ARP-Batch-Retargeting. Therefore, you can download any other character from Mixamo and drive it with our trained model.

For customized character and motion data, please wait for our further documentation to explain the retargeting and rigging process.

Diffusion Network Training [PyTorch]

All the training codes and documents can be found in the subfolder of our repository.

A practical training session using the entire 100STYLE dataset will take approximately one day, although acceptable checkpoints can usually be obtained after just a few hours (more than 4 hours). Following the completion of the network training, it's necessary to convert the saved checkpoints into the ONNX format. This allows them to be imported into Unity for use as a learning module. For more details, please check the subfolder.

Unity Inference [Unity]

Once you have obtained the ONNX file and its corresponding model configuration JSON files, you can import them into our Unity project and run your own demo. For a step-by-step tutorial, please visit our YouTube channel: tutorial.

In original paper, we used a 3060 GPU for inference, achieving performance of over 60 frames per second with the default settings. For more detailed information about the parameters, please refer to the paper.

Evaluation

We record all the motion results for different methods with a same control presets. You can access the data and metrics in the evaluation folder.

ToDo-List

  • Release Unity .exe demo. (2024.04.24)
  • Release the training code in PyTorch. (2024.06.23)
  • Release the inference code in Unity. (2024.07.05)
  • Release the evaluation code. (TBA)
  • Release the inference code to support any character control. (TBA)

Acknowledgement

This project is inspired by the following works. We appreciate their contributions, and please consider citing them if you find our project helpful.

BibTex

@inproceedings{camdm,
title={Taming Diffusion Probabilistic Models for Character Control},
author={Rui Chen and Mingyi Shi and Shaoli Huang and Ping Tan and Taku Komura and Xuelin Chen},
booktitle={SIGGRAPH},
year={2024}
}

Copyright Information

The unity code is released under the GPL-3 license, the rest of the source code is released under the Apache License Version 2.0

About

(SIGGRAPH 2024) Official repository for "Taming Diffusion Probabilistic Models for Character Control"

Resources

Stars

309 stars

Watchers

19 watching

Forks

Releases

Contributors

Languages