From 8e95b0ad021ac8ddd2721213bc14899dcd02d8e2 Mon Sep 17 00:00:00 2001 From: dblanque Date: Fri, 31 Mar 2023 17:20:33 -0300 Subject: [PATCH 1/3] Added documentation for: - Multi-pass Job and Script. - BAT Pack Error Message solution on Windows. - Clarifies a few things in the multi-platform document. --- web/project-website/content/faq/_index.md | 33 +++++- .../content/usage/compositor-job/_index.md | 100 ++++++++++++++++++ .../content/usage/variables/multi-platform.md | 6 +- 3 files changed, 133 insertions(+), 6 deletions(-) create mode 100644 web/project-website/content/usage/compositor-job/_index.md diff --git a/web/project-website/content/faq/_index.md b/web/project-website/content/faq/_index.md index 7ec732ad..04bc87ae 100644 --- a/web/project-website/content/faq/_index.md +++ b/web/project-website/content/faq/_index.md @@ -45,15 +45,20 @@ even add your own custom job settings like a sequence identifier and use that to determine the location of rendered files. -## Can I use the Compositor to output multiple EXR files? +## Can I use the Compositor to output multiple EXR files or Passes? This is possible with Flamenco, but it takes a bit of work. It's not managed by -Flamenco's default job types. You can create [your own custom job -type][jobtypes] for this, though. With that, you have control over the arguments -that get used before and/or after the filename on the CLI. +Flamenco's default job types. You can use a [custom job type][jobtypes] for this. -If you have this working, please [share your job compiler script with us][getinvolved]! +With that, you have control over the arguments that get used before and/or after the filename on the CLI. +There is a Flamenco [job script][compositorjob] that supports compositor +nodes, multi-platform, and multiple pass outputs, but it can always be improved, +So if wish to contribute, you can head over to our [job compiler script +repository][compositorrepo] or [get involved with Flamenco][getinvolved]! + +[compositorrepo]: https://github.com/dblanque/flamenco-compositor-script.git +[compositorjob]: {{< ref "usage/compositor-job" >}} [jobtypes]: {{< ref "usage/job-types" >}} [getinvolved]: {{< ref "development/get-involved" >}} @@ -98,3 +103,21 @@ complex project, and relies on a lot of components ([source](https://www.opencue.io/docs/getting-started/)), whereas Flamenco is made for simplicity and use in small studios or at home, running on your own hardware. + +## Why do I get an Error Performing BAT Pack Message? + +As of yet, we've only encountered the issue below on Windows installations. + +``` +Error performing BAT pack: [WinError 267] The directory name is invalid: +'C:\\The\\Path\\To\\Your\\Project.blend' +``` + +This is most likely some sort of incompatibility that occurs in some cases where +you might be using linked assets from an asset library in your project. + +*To fix this you may attempt the following fix:* + * Go to **File -> External Data -> Make Paths Relative** + * Submit your job again. + +That should fix the issue. \ No newline at end of file diff --git a/web/project-website/content/usage/compositor-job/_index.md b/web/project-website/content/usage/compositor-job/_index.md new file mode 100644 index 00000000..a503ca56 --- /dev/null +++ b/web/project-website/content/usage/compositor-job/_index.md @@ -0,0 +1,100 @@ +--- +title: Compositor Nodes and Multi-Platform Storage Paths +weight: 11 +--- + +If you need to use Blender's **Compositor** Nodes with *Flamenco*, +a Python Script and a Flamenco Job have been contributed to the community. + +You'll need to do the following changes to support this workflow: + +(It's recommended to use a symbolic link to the git repo files) + +1. Clone the [Flamenco Compositor Script repository][compositorrepo] +(you'll need to install **git**) or download the files manually to a directory +in your Flamenco Manager/Server. +```bash +git clone https://github.com/dblanque/flamenco-compositor-script.git +``` +2. Copy or make a symbolic link of the **startup_script.py** file. +to the configured Blender File Folder in your *Network Attached Storage*. +3. Copy or make a symbolic link of the multipass javascript job to the *scripts* +folder in your Flamenco Manager Installation (Create it if it doesn't exist). +4. Add and configure the required variables from the *example Manager YAML* +*Config* to your Flamenco Manager YAML. + * **storagePath** - Your NAS path, multi-platform variable. + * **jobSubPath** - Where the jobs are stored inside storagePath. + * **renderSubpath** - Where the Render Output is stored inside storagePath. + * **deviceType** - Compute Device Type to force *do not set the variable if* + *you wish to use whatever is available* +5. Submit your job from a Blender Client with the corresponding Multi-Pass Job, +it should whatever compositor nodes you have set and correct the paths where +necessary. + +[compositorrepo]: https://github.com/dblanque/flamenco-compositor-script.git + +**This has only been tested in an environment with Flamenco Manager and** +**Shaman enabled, but it should work without Shaman as well.** + +# Example Configuration Flamenco Manager YAML + +```yaml +# Configuration file for Flamenco. +# +# For an explanation of the fields, +# refer to the original flamenco-manager-example.yaml + +_meta: + version: 3 +manager_name: Flamenco Manager +database: flamenco-manager.sqlite +listen: :8080 +autodiscoverable: true +local_manager_storage_path: ./flamenco-manager-storage +shared_storage_path: /mnt/storage/project_files +shaman: + enabled: true + garbageCollect: + period: 24h0m0s + maxAge: 744h0m0s + extraCheckoutPaths: [] +task_timeout: 10m0s +worker_timeout: 1m0s +blocklist_threshold: 3 +task_fail_after_softfail_count: 3 +variables: + blender: + values: + - platform: all + value: blender + - platform: linux + value: /usr/local/blender/blender + - platform: windows + value: C:/Program Files/Blender Foundation/Blender 3.4/blender.exe + - platform: darwin + value: /usr/bin/blender + blenderArgs: + values: + - platform: all + value: -b -y + storagePath: + values: + - platform: linux + value: /mnt/storage + - platform: windows + value: "Z:\\" + jobSubPath: + values: + - platform: all + value: project_files + renderSubPath: + values: + - platform: all + value: project_render + deviceType: + values: + - platform: all + value: "CUDA" + # Set the device type to FIRST or remove the variable definition + # to use whatever device type is detected first. +``` \ No newline at end of file diff --git a/web/project-website/content/usage/variables/multi-platform.md b/web/project-website/content/usage/variables/multi-platform.md index 64008158..053d87cd 100644 --- a/web/project-website/content/usage/variables/multi-platform.md +++ b/web/project-website/content/usage/variables/multi-platform.md @@ -25,9 +25,13 @@ The difference with regular variables is that regular variables are one-way: Two-way variables go both ways, as follows: -- When submitting a job, values are replaced with variables. +- When submitting a **job**, values **in the jobs' command** are replaced +with the corresponding variables as it's executed on the client. - When sending a task to a worker, variables are replaced with values again. +*(Do keep in mind that if you perform changes to a job, you'll need to re-submit* +*it.)* + This may seem like a lot of unnecessary work. After all, why go through the trouble of replacing in one direction, when later the opposite is done? The power lies in the fact that each replacement step can target a different -- 2.30.2 From aa9e936f3f05a2dfcb3b570cec993db904733af1 Mon Sep 17 00:00:00 2001 From: dblanque Date: Wed, 5 Apr 2023 22:36:49 -0300 Subject: [PATCH 2/3] Add HTML Component for section Children TOC (excludes index markdown file). Adds third-party job section for the documentation. Re-adds compositor third-party job onto the correct section. --- web/project-website/content/faq/_index.md | 24 +++++++++++-------- .../content/third-party-jobs/_index.md | 22 +++++++++++++++++ .../compositor-script.md} | 4 +++- .../content/usage/variables/multi-platform.md | 2 +- .../shortcodes/flamenco/toc-children.html | 15 ++++++++++++ 5 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 web/project-website/content/third-party-jobs/_index.md rename web/project-website/content/{usage/compositor-job/_index.md => third-party-jobs/compositor-script.md} (98%) create mode 100644 web/project-website/layouts/shortcodes/flamenco/toc-children.html diff --git a/web/project-website/content/faq/_index.md b/web/project-website/content/faq/_index.md index 04bc87ae..e73b9702 100644 --- a/web/project-website/content/faq/_index.md +++ b/web/project-website/content/faq/_index.md @@ -40,26 +40,30 @@ file][workercfg]. ## Can I change the paths/names of the rendered files? Where Flamenco places the rendered files is determined by the job type. You can -create [your own custom job type][jobtypes] to change this. With that, you can +create [your own custom job type][jobtypes] or check the existing +[third-party job types][thirdpartyjobs] to change this. With that, you can even add your own custom job settings like a sequence identifier and use that to determine the location of rendered files. ## Can I use the Compositor to output multiple EXR files or Passes? -This is possible with Flamenco, but it takes a bit of work. It's not managed by -Flamenco's default job types. You can use a [custom job type][jobtypes] for this. +This is possible with Flamenco, but it takes a bit of work. Although it's not +managed by Flamenco's default job types, you can use a [custom job type][jobtypes] +for this. -With that, you have control over the arguments that get used before and/or after the filename on the CLI. +With that, you have control over the arguments that get used before and/or after +the filename on the CLI. -There is a Flamenco [job script][compositorjob] that supports compositor -nodes, multi-platform, and multiple pass outputs, but it can always be improved, -So if wish to contribute, you can head over to our [job compiler script -repository][compositorrepo] or [get involved with Flamenco][getinvolved]! +There are Flamenco jobs out there that support compositor nodes, +multi-platform, and multiple pass outputs. You can check our [third-party jobs +section][thirdpartyjobs]. + +If you wish to contribute to the project, you're invited to +[get involved with Flamenco][getinvolved]! -[compositorrepo]: https://github.com/dblanque/flamenco-compositor-script.git -[compositorjob]: {{< ref "usage/compositor-job" >}} [jobtypes]: {{< ref "usage/job-types" >}} +[thirdpartyjobs]: {{< ref "third-party-jobs" >}} [getinvolved]: {{< ref "development/get-involved" >}} diff --git a/web/project-website/content/third-party-jobs/_index.md b/web/project-website/content/third-party-jobs/_index.md new file mode 100644 index 00000000..1a644bb7 --- /dev/null +++ b/web/project-website/content/third-party-jobs/_index.md @@ -0,0 +1,22 @@ +--- +title: Third-Party Jobs +weight: 30 +--- + +This section contains third-party jobs for Flamenco submitted by the community. + +If you wish to contribute you might consider joining our +[Blender Chat channel][flamencochannel] and chime-in there. + +## How can I create my own Job? + +Check how to create a custom job in our [Job Types][jobtypes] section. + +It's recommended to use the [built-in scripts][built-in-scripts] as examples and build from there. + +## Third-Party Job List +{{< flamenco/toc-children >}} + +[jobtypes]: {{< ref "usage/job-types" >}} +[built-in-scripts]: https://projects.blender.org/studio/flamenco/src/branch/main/internal/manager/job_compilers/scripts +[flamencochannel]: https://blender.chat/channel/flamenco diff --git a/web/project-website/content/usage/compositor-job/_index.md b/web/project-website/content/third-party-jobs/compositor-script.md similarity index 98% rename from web/project-website/content/usage/compositor-job/_index.md rename to web/project-website/content/third-party-jobs/compositor-script.md index a503ca56..b7658b9f 100644 --- a/web/project-website/content/usage/compositor-job/_index.md +++ b/web/project-website/content/third-party-jobs/compositor-script.md @@ -1,8 +1,10 @@ --- title: Compositor Nodes and Multi-Platform Storage Paths -weight: 11 +weight: 10 --- +Job maintained by: Dylan Blanqué + If you need to use Blender's **Compositor** Nodes with *Flamenco*, a Python Script and a Flamenco Job have been contributed to the community. diff --git a/web/project-website/content/usage/variables/multi-platform.md b/web/project-website/content/usage/variables/multi-platform.md index 053d87cd..b582eab0 100644 --- a/web/project-website/content/usage/variables/multi-platform.md +++ b/web/project-website/content/usage/variables/multi-platform.md @@ -25,7 +25,7 @@ The difference with regular variables is that regular variables are one-way: Two-way variables go both ways, as follows: -- When submitting a **job**, values **in the jobs' command** are replaced +- When submitting a **job**, values **in the javascript jobs' command** are replaced with the corresponding variables as it's executed on the client. - When sending a task to a worker, variables are replaced with values again. diff --git a/web/project-website/layouts/shortcodes/flamenco/toc-children.html b/web/project-website/layouts/shortcodes/flamenco/toc-children.html new file mode 100644 index 00000000..de59f6ca --- /dev/null +++ b/web/project-website/layouts/shortcodes/flamenco/toc-children.html @@ -0,0 +1,15 @@ + + + + + + +
+
    + {{ range .Page.CurrentSection.Data.Pages.ByWeight }} +
  • + {{ .LinkTitle }} +
  • + {{ end }} +
+
\ No newline at end of file -- 2.30.2 From 385bf010ba088c764baf96731693f582ca8bf0a2 Mon Sep 17 00:00:00 2001 From: dblanque Date: Wed, 5 Apr 2023 22:51:45 -0300 Subject: [PATCH 3/3] Exclude self page from TOC --- .../content/third-party-jobs/_index.md | 18 --------------- .../third-party-jobs/available-jobs.md | 22 +++++++++++++++++++ .../shortcodes/flamenco/toc-children.html | 5 +++++ 3 files changed, 27 insertions(+), 18 deletions(-) create mode 100644 web/project-website/content/third-party-jobs/available-jobs.md diff --git a/web/project-website/content/third-party-jobs/_index.md b/web/project-website/content/third-party-jobs/_index.md index 1a644bb7..d519f4fe 100644 --- a/web/project-website/content/third-party-jobs/_index.md +++ b/web/project-website/content/third-party-jobs/_index.md @@ -2,21 +2,3 @@ title: Third-Party Jobs weight: 30 --- - -This section contains third-party jobs for Flamenco submitted by the community. - -If you wish to contribute you might consider joining our -[Blender Chat channel][flamencochannel] and chime-in there. - -## How can I create my own Job? - -Check how to create a custom job in our [Job Types][jobtypes] section. - -It's recommended to use the [built-in scripts][built-in-scripts] as examples and build from there. - -## Third-Party Job List -{{< flamenco/toc-children >}} - -[jobtypes]: {{< ref "usage/job-types" >}} -[built-in-scripts]: https://projects.blender.org/studio/flamenco/src/branch/main/internal/manager/job_compilers/scripts -[flamencochannel]: https://blender.chat/channel/flamenco diff --git a/web/project-website/content/third-party-jobs/available-jobs.md b/web/project-website/content/third-party-jobs/available-jobs.md new file mode 100644 index 00000000..b312f5c0 --- /dev/null +++ b/web/project-website/content/third-party-jobs/available-jobs.md @@ -0,0 +1,22 @@ +--- +title: Available Third-Party Jobs +weight: 1 +--- + +This section contains third-party jobs for Flamenco submitted by the community. + +If you wish to contribute you might consider joining our +[Blender Chat channel][flamencochannel] and chime-in there. + +## How can I create my own Job? + +Check how to create a custom job in our [Job Types][jobtypes] section. + +It's recommended to use the [built-in scripts][built-in-scripts] as examples and build from there. + +## Third-Party Job List +{{< flamenco/toc-children >}} + +[jobtypes]: {{< ref "usage/job-types" >}} +[built-in-scripts]: https://projects.blender.org/studio/flamenco/src/branch/main/internal/manager/job_compilers/scripts +[flamencochannel]: https://blender.chat/channel/flamenco diff --git a/web/project-website/layouts/shortcodes/flamenco/toc-children.html b/web/project-website/layouts/shortcodes/flamenco/toc-children.html index de59f6ca..8a49f506 100644 --- a/web/project-website/layouts/shortcodes/flamenco/toc-children.html +++ b/web/project-website/layouts/shortcodes/flamenco/toc-children.html @@ -4,12 +4,17 @@ + +
+ {{ $current_page_title := .Page.Title }}
    {{ range .Page.CurrentSection.Data.Pages.ByWeight }} + {{ if ne .Page.Title $current_page_title }}
  • {{ .LinkTitle }}
  • + {{ end }} {{ end }}
\ No newline at end of file -- 2.30.2