Blender Studio
  • Films
  • Projects
  • Training
  • Characters
  • Tools
  • Blog
  • Join
  • BLENDER.ORG

    • Download

      Get the latest Blender, older versions, or experimental builds.

    • What's New

      Stay up-to-date with the new features in the latest Blender releases.

    LEARNING & RESOURCES

    • Blender Studio

      Access production assets and knowledge from the open movies.

    • Manual

      Documentation on the usage and features in Blender.

    DEVELOPMENT

    • Developers Blog

      Latest development updates, by Blender developers.

    • Documentation

      Guidelines, release notes and development docs.

    • Benchmark

      A platform to collect and share results of the Blender Benchmark.

    • Blender Conference

      The yearly event that brings the community together.

    DONATE

    • Development Fund

      Support core development with a monthly contribution.

    • One-time Donations

      Perform a single donation with more payment options available.

Training Highlights
Stylized Rendering with Brushstrokes
Geometry Nodes from Scratch
Procedural Shading Fundamentals
Stylized Character Workflow

Training types
Course Documentation Production Lesson Workshop

Training categories
Animation Geometry Nodes Lighting Rendering Rigging Shading
Film Highlights
Wing It!
2023
Charge
2022
Sprite Fright
2021
Spring
2019
Project Highlights
Project DogWalk
Interactive
Gold
Showcase
BCON24 Identity
Showcase
Fighting with Grease Pencil
Article
  • Sprite Fright

Kitsu add-on for Blender Part 2

Sprite Fright's Technical Director shares the second part of an article about integrating Kitsu into the film production pipeline for our latest open movie.
  • Article
  • 30 Aug 2021
  • 3 min read
  • 2 min watch time
Paul Golter
Paul Golter Pipeline TD
Report Problem

This is part two of an article about how Blender Studio integrated Kitsu into Sprite Fright's production pipeline. In this piece you will learn how the animation and lookdev departments interact with Kitsu from within Blender.


Benefits Of Kitsu

It helps when a .blend file is connected to a task on Kitsu. This way, the .blend "knows" what's currently being worked on. Is it a shot or an asset? Which shot is it and what sequence does it belong to? If we know the answers to these questions, we can offer the artists many useful tools.

For this reason the Blender-Kitsu add-on has a context browser that works like this:

The Context Browser in action

The artists can directly browse the data structure that is stored on Kitsu and either manually select what they are working on or automatically detect it via the filepath.

Animation

One very important aspect of animation is the review process. Animators do playblasts of their work and get feedback. Kitsu lets you upload attachments to a specific task and offers paintover and annotation features for videos -- both of which are very useful for the review process.

To upload their work to Kitsu, animators have to go through multiple steps manually, which takes up a considerable amount of time. This is especially true if you have to do multiple playblasts in one day. Luckily, the Blender-Kitsu add-on has a playblast feature built-in, alleviating a lot of this struggle.

Animation Tools

With the add-on you don't have to leave Blender to upload a playblast to Kitsu. The animators can even provide a little information on what they did and set the status of the task. In the add-on preferences there are two options that can be enabled:

  • Open web browser after playblast which opens the default system web browser which in turn points to the active shot after the playblast so the animators can immediately review their work on Kitsu.

  • Open Sequence Editor after playblast which loads the exported playblast in the Sequence Editor in a new scene and plays back instantly.

Maybe you also noticed that the add-on warns you if the frame range of your current scene is out of date (this is after you connected the .blend file to a shot). This gets checked on scene load and makes sure that the frame range of the animation scene always matches the one on Kitsu. It is not unlikely that frame ranges change during the production and they need to be communicated at every production step.

Lookdev

While the lookdev department also has the frame range check on scene load enabled, they have another small tool to quickly apply render settings. These are just python files that get executed when they click the run button.

Lookdev Tools


This was a quick overview of the context features of the Blender-Kitsu add-on. It is now part of the Blender Studio Tools repository, which you can find here.

Subscribe to Blender Studio today

Join Blender Studio and get access to hundreds of hours of training, production assets and files from the Open Movies. All on a platform that lets you learn at your own pace, in your own time.
Subscribe for €11.50/month

Join to leave a comment.

6 comments
Iván Rojo
Iván Rojo
Archived Show comments Jan. 26th, 2023

Hi! I'm wondering if it still working? because I have some errors:

Traceback (most recent call last):   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\auth\ops.py", line 71, in execute     cache.init_startup_variables(context)   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\cache.py", line 456, in init_startup_variables     load_user_all_tasks(context)   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\cache.py", line 363, in load_user_all_tasks     tasks = _user_active.all_tasks_to_do()   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\types.py", line 984, in all_tasks_to_do     task_list = [Task(**task_dict) for task_dict in gazu.user.all_tasks_to_do()]   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\types.py", line 984, in     task_list = [Task(**task_dict) for task_dict in gazu.user.all_tasks_to_do()] TypeError: Task.init() got an unexpected keyword argument 'nb_assets_ready' Error: Python: Traceback (most recent call last):   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\auth\ops.py", line 71, in execute     cache.init_startup_variables(context)   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\cache.py", line 456, in init_startup_variables     load_user_all_tasks(context)   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\cache.py", line 363, in load_user_all_tasks     tasks = _user_active.all_tasks_to_do()   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\types.py", line 984, in all_tasks_to_do     task_list = [Task(**task_dict) for task_dict in gazu.user.all_tasks_to_do()]   File "C:\Program Files\Blender Foundation\Blender 3.3\3.3\scripts\addons\blender_kitsu\types.py", line 984, in     task_list = [Task(**task_dict) for task_dict in gazu.user.all_tasks_to_do()] TypeError: Task.init() got an unexpected keyword argument 'nb_assets_ready'

Luciano A. Muñoz Sessarego
Luciano A. Muñoz Sessarego
Sept. 6th, 2022

i want to use this but for my layout task i dont get the shot publishing tools that i get in anim, but even in anim the blender studio folder structure seems to be hardcoded

sajeel shukla
sajeel shukla
Archived Show comments Aug. 9th, 2022

I am also having problems while trying to upload thumbnail to Kitsu. the log is below... please help using blender version 3.2.0 on windows. the mdeta data version does come in i.e In Out duration shot name etc..

INFO:blender-kitsu:-START- Pushing shot thumbnails INFO:blender-kitsu:Strip: SH001. Is linked to ID: d9f2ae68-aaab-444e-8d6a-63dc9edb2c4c INFO:blender-kitsu:Strip: SH001 Shot SH001 exists on server (ID: d9f2ae68-aaab-444e-8d6a-63dc9edb2c4c) INFO:blender-kitsu:Saved thumbnail of shot SH001 to C:/Users/TitanWs/AppData/Roaming/blender_kitsu/thumbnails/97b301407d81759ae1d1430612ffe172/d9f2ae68-aaab-444e-8d6a-63dc9edb2c4c_34.jpg Traceback (most recent call last):   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\sqe\ops.py", line 1192, in execute     opsdata.upload_preview(   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\sqe\opsdata.py", line 186, in upload_preview     task = Task.new_task(shot, task_type, task_status=task_status)   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\types.py", line 813, in new_task     task_dict = gazu.task.new_task(   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\gazu\task.py", line 552, in new_task     "assignees": normalize_list_of_models_for_links(assignees),   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\gazu\helpers.py", line 59, in normalize_list_of_models_for_links     return [normalize_model_parameter(model)["id"] for model in models]   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\gazu\helpers.py", line 59, in     return [normalize_model_parameter(model)["id"] for model in models] TypeError: 'NoneType' object is not subscriptable Error: Python: Traceback (most recent call last):   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\sqe\ops.py", line 1192, in execute     opsdata.upload_preview(   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\sqe\opsdata.py", line 186, in upload_preview     task = Task.new_task(shot, task_type, task_status=task_status)   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\types.py", line 813, in new_task     task_dict = gazu.task.new_task(   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\gazu\task.py", line 552, in new_task     "assignees": normalize_list_of_models_for_links(assignees),   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\gazu\helpers.py", line 59, in normalize_list_of_models_for_links     return [normalize_model_parameter(model)["id"] for model in models]   File "c:\Program Files\Blender Foundation\Blender 3.2\3.2\scripts\addons\blender_kitsu\gazu\helpers.py", line 59, in     return [normalize_model_parameter(model)["id"] for model in models] TypeError: 'NoneType' object is not subscriptable

Johan Tri Handoyo
Johan Tri Handoyo
Jan. 4th, 2022

Firstable, thank you for your hardwork. I wonder what version of Blender you are using? I use both Blender 2.93 and 3.00 both resulting in error message when i try to log in

Python: Traceback (most recent call last):   File "/home/johantri/.config/blender/2.93/scripts/addons/blender_kitsu/auth/ops.py", line 71, in execute     cache.init_startup_variables(context)   File "/home/johantri/.config/blender/2.93/scripts/addons/blender_kitsu/cache.py", line 456, in init_startup_variables     load_user_all_tasks(context)   File "/home/johantri/.config/blender/2.93/scripts/addons/blender_kitsu/cache.py", line 363, in load_user_all_tasks     tasks = _user_active.all_tasks_to_do()   File "/home/johantri/.config/blender/2.93/scripts/addons/blender_kitsu/types.py", line 984, in all_tasks_to_do     task_list = [Task(**task_dict) for task_dict in gazu.user.all_tasks_to_do()]   File "/home/johantri/.config/blender/2.93/scripts/addons/blender_kitsu/types.py", line 984, in     task_list = [Task(**task_dict) for task_dict in gazu.user.all_tasks_to_do()] TypeError: init() got an unexpected keyword argument 'nb_assets_ready'

location: :-1

Mateusz Mielnicki
Mateusz Mielnicki
April 23rd, 2022

@Johan Tri Handoyo would be nice to implement studio tools- but kitsu-blender compability of new versions seems to be off...

Henri Hebeisen
Henri Hebeisen
Sept. 6th, 2021

This is awesome, great job !

Films Projects Training Blog Blender Studio for Teams
Pipeline and Tools
  • CloudRig
  • Blender Kitsu
  • Brushstroke Tools Add-on
  • Blender Studio Extensions
Characters
  • Mikassa
  • Whale
  • Ballan Wrasse
  • Snow
Studio
  • Terms & Conditions
  • Privacy Policy
  • Contact
  • Remixing Music
Blender Studio

The creators who share.

Artistic freedom starts with Blender The Free and Open Source 3D Creation Suite