Skip to content

Instantly share code, notes, and snippets.

@AndrewHazelden
Created April 27, 2026 09:38
Show Gist options
  • Select an option

  • Save AndrewHazelden/755eb71b7f94b728349a930e024e869a to your computer and use it in GitHub Desktop.

Select an option

Save AndrewHazelden/755eb71b7f94b728349a930e024e869a to your computer and use it in GitHub Desktop.
This script copies the currently selected nodes in a Fusion composite to the copy/paste clipboard buffer as a Mermaid flowchart. Mermaid is an open-source graphing format that allows you to create vector charts that can be saved to a markdown format and rendered inline in a webpage.
--[[
Copy As Mermaid - 2026-04-12 04.53 AM (UTC -4)
By Andrew Hazelden
This script copies the currently selected nodes in a Fusion composite to the copy/paste clipboard buffer as a Mermaid flowchart.
Mermaid is an open-source graphing format that allows you to create vector charts that can be saved to a markdown format and rendered inline in a webpage.
https://mermaid.ai/open-source/syntax/flowchart.html
The WSL forum supports Mermaid graphs embedded in a pair of BBCode tags:
[mermaid][/mermaid]
GitHub Flavoured Markdown supports Mermaid graphs embedded in a pair of code tags:
```mermaid
```
Known Issues:
- GroupOperator and MacroOperator items are not handled correctly. Tip: The internal nodes are used to generate the flowchart if you run this script with nothing selected in the node graph. If the Group node is selected the input and output connections are not added to the Mermaid graph.
--]]
-- ----------------------
-- Customization Options
-- -----------------------
-- Mermaid Output Wrapper - Should BBCode tags or Markdown tags be used?
local outputWrapper = "BBCode"
-- local outputWrapper = "Markdown"
-- Should the graph be rendered using a left/right or top/bottom orientation?
-- local flowShape = "LR"
local flowShape = "TB"
-- ----------------------
-- ----------------------
-- ------------------
-- Mermaid elements
-- ------------------
local mermaidContent = ""
-- Colors
local classDef = ""
-- Node Connections
local connections = ""
-- Node Names
local class = ""
-- Check if nodes are selected
local tools = comp:GetToolList(true)
-- Fusion Registry Listing
reg_map = fusion:GetRegList()
-- ------------------
function Color(tbl)
-- RGB to HEX Color Conversions
local hexString = "B9B097"
if tbl and tbl.TileColor then
local r, g, b = tbl.TileColor.R, tbl.TileColor.G, tbl.TileColor.B
hexString = string.format("%02X%02X%02X",
math.floor(r * 255),
math.floor(g * 255),
math.floor(b * 255)
)
end
return hexString
end
-- Fallback to use all nodes since nothing was selected
if #tools > 0 then
print("[Copy As Mermaid] Selected Nodes")
-- dump(tools)
else
print("[Copy As Mermaid] Nothing Selected - Using all nodes in comp")
tools = comp:GetToolList(false)
-- dump(tools)
end
print("[Node List]")
if comp and comp.CurrentFrame and comp.CurrentFrame.FlowView then
local flow = comp.CurrentFrame.FlowView
for i, tool in ipairs(tools) do
-- Get the node location in the flow
local x, y = flow:GetPos(tool)
if x == nil then
x = 0
end
if y == nil then
y = 0
end
-- Translate to Mermaid
print(string.format("\t[#] %3d [Node Name] %20s [Reg ID] %20s [Pos XY] %f, %f", tonumber(i), tostring(tool:GetAttrs().TOOLS_Name), tostring(tool.ID), x, y))
end
end
print("\n[Copy As Mermaid][Graph Output]")
if comp and comp.CurrentFrame and comp.CurrentFrame.FlowView then
print("[Status] Generating output... This might take a few moments.\n\n")
local flow = comp.CurrentFrame.FlowView
-- Traverse the nodes
for i, tool in ipairs(tools) do
local toolAttrs = tool:GetAttrs()
-- Scan the input connections
inpNum = 1
while true do
-- local inConnect = tool:FindMainInput(1)
local inConnect = tool:FindMainInput(inpNum)
inpNum = inpNum + 1
if inConnect then
outConnect = inConnect:GetConnectedOutput()
if outConnect then
local prevTool = tool
local t = outConnect:GetTool()
if t then
local inputName = tostring(t:GetAttrs().TOOLS_Name) .. '.' .. tostring(outConnect.Name)
local outputName = tostring(prevTool:GetAttrs().TOOLS_Name) .. '.' .. tostring(inConnect.Name)
-- Node Colors
-- RGB to HEX Color Conversions
local hexTileString = Color(tool)
local classDefItem = string.format("\tclassDef %s fill:#%s,stroke:#333,color:#fff\n", tostring(tool:GetAttrs().TOOLS_Name), hexTileString)
classDef = classDef .. tostring(classDefItem)
-- Node Connections
local inputNum = i
local outputNum = nil
-- Look up the output connection node number in the tools table
for iT, outputT in ipairs(tools) do
if tostring(t:GetAttrs().TOOLS_Name) == tostring(outputT.Name) then
outputNum = iT
break
end
end
local inputOp = ""
local outputOp = ""
for _iR, reg in ipairs(reg_map) do
if reg.ID:match(tool:GetAttrs().TOOLS_RegID) then
inputOp = " (" .. tostring(reg:GetAttrs().REGS_OpIconString) .. ")"
-- dump(reg)
break
end
end
-- inputOp = " (" .. tostring(prevTool:GetAttrs().TOOLS_RegID) .. ")"
local inputLabel = tostring(prevTool:GetAttrs().TOOLS_Name) .. tostring(inputOp)
if outputNum ~= nil then
for _iR, reg in ipairs(reg_map) do
if reg.ID:match(t:GetAttrs().TOOLS_RegID) then
outputOp = " (" .. tostring(reg:GetAttrs().REGS_OpIconString) .. ")"
-- dump(reg)
break
end
end
end
-- outputOp = " (" .. tostring(t:GetAttrs().TOOLS_RegID) .. ")"
local outputLabel = tostring(t:GetAttrs().TOOLS_Name) .. tostring(outputOp)
if outputNum ~= nil and outputLabel ~= nil and inputNum ~= nil and inputLabel ~= nil then
local connectionsItem = string.format('\tN%d(["%s"]) --> N%d(["%s"])\n', tonumber(outputNum), tostring(outputLabel), tonumber(inputNum), tostring(inputLabel))
connections = tostring(connections) .. tostring(connectionsItem)
end
-- Node Names
local classItem = string.format("\tclass N%d %s\n", tonumber(i), tostring(tool:GetAttrs().TOOLS_Name))
class = class .. tostring(classItem)
end
else
-- print('[Branch Completed] ' .. toolAttrs.TOOLS_Name .. ' primary input not connected to another node')
-- Node Colors
-- RGB to HEX Color Conversions
local hexTileString = Color(tool)
local classDefItem = string.format("\tclassDef %s fill:#%s,stroke:#333,color:#fff\n", tostring(tool:GetAttrs().TOOLS_Name), hexTileString)
classDef = classDef .. tostring(classDefItem)
-- Node Names
local classItem = string.format("\tclass N%d %s\n", tonumber(i), tostring(tool:GetAttrs().TOOLS_Name))
class = class .. tostring(classItem)
break
end
else
-- print('[Flow Completed] ' .. toolAttrs.TOOLS_Name .. ' must be a creator tool')
finalTool = tool
-- Node Colors
-- RGB to HEX Color Conversions
local hexTileString = Color(tool)
local classDefItem = string.format("\tclassDef %s fill:#%s,stroke:#333,color:#fff\n", tostring(tool:GetAttrs().TOOLS_Name), hexTileString)
classDef = classDef .. tostring(classDefItem)
-- Node Names
local classItem = string.format("\tclass N%d %s\n", tonumber(i), tostring(tool:GetAttrs().TOOLS_Name))
class = class .. tostring(classItem)
break
end
end
end
-- Append all the Mermaid elements into a single output:
local mermaidOpen = ""
local mermaidClose = ""
-- Header and Footer tags
if outputWrapper == "BBCode" then
-- WSL PHP BBCode format
mermaidOpen = "[mermaid]"
mermaidClose = "[/mermaid]"
else
-- GitHub Flavoured Markdown format
mermaidOpen = "```mermaid"
mermaidClose = "```"
end
-- Mermaid graph LR/TB
local mermaidHeader = "graph "
mermaidHeader = mermaidHeader .. tostring(flowShape)
-- Link wireline color
local mermaidLinkStyle = "\tlinkStyle default stroke:#ffffff,stroke-width:2px;"
-- Combined Document
mermaidContent = tostring(mermaidOpen) .. "\n" .. tostring(mermaidHeader) .. "\n" .. tostring(classDef) .. "\n" .. tostring(connections) .. "\n" .. tostring(class) .. "\n" .. tostring(mermaidLinkStyle) .. "\n" .. tostring(mermaidClose)
print(mermaidContent)
-- Copy the Mermaid document into the copy/paste clipboard buffer
bmd.setclipboard(mermaidContent)
else
print("[Copy As Mermaid][Error] Cannot Find FlowView window. The node graph might be detached on a 2nd monitor.")
end
@AndrewHazelden

Copy link
Copy Markdown
Author

After running the script in the Fusion page or Fusion Studio you get the comp converted into a vendor neutral flowchart representation.

The console shows a short summary:
Mermaid Console Output

And the markdown encoded mermaid output lands in your copy/paste clipboard buffer:

    graph TB
            classDef GlowIt fill:#8C5A3F,stroke:#333,color:#fff
            classDef GIt_PreKey fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_PreKey fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Booster fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_Booster fill:#E98CB5,stroke:#333,color:#fff
            classDef G_GamReverse fill:#79A8D0,stroke:#333,color:#fff
            classDef G_GamReverse fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_ColOperation fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColOperation fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColOperation fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_PostBlur fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_PostBlur fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorMeSurprised fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorMeSurprised fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Dilate fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_Dilate fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_Pass2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_GlowOnly fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_GlowOnly fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_GlowOnly fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherA fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherA fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Settings fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Settings fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Settings fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_SetDomain fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_SetDomain fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_DepecheModesApplied fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_DepecheModesApplied fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_DepecheModesApplied fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorizeStrength fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorizeStrength fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorizeStrength fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Grain fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Grain fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Source fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_Source fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_Source fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_4xSatBoost fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_4xSatBoost fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Grad fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_HuntingHighAndGlow fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_GainGamSat fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_GainGamSat fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Angle fill:#996600,stroke:#333,color:#fff
            classDef GIt_Angle fill:#996600,stroke:#333,color:#fff
            classDef GIt_AngleReverse fill:#996600,stroke:#333,color:#fff
            classDef GIt_AngleReverse fill:#996600,stroke:#333,color:#fff
            classDef GIt_ctrl fill:#954BCD,stroke:#333,color:#fff
            classDef GIt_ctrl fill:#954BCD,stroke:#333,color:#fff
            classDef GIt_RenderCache fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_RenderCache fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaC fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaC fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaA fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaA fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaB fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaB fill:#B9B097,stroke:#333,color:#fff
            classDef SetDomain1 fill:#B9B097,stroke:#333,color:#fff
            classDef SetDomain1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherC fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherC fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherB fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherB fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ApplyModeFix fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ApplyModeFix fill:#B9B097,stroke:#333,color:#fff
     
    N35(["GIt_KeepAlphaB (Mat)"]) --> N2(["GIt_PreKey (LKy)"])
    N13(["GIt_Dilate (ErDl)"]) --> N3(["GIt_Pass4 (Blur)"])
    N27(["GIt_CB1 (Bol)"]) --> N4(["GIt_CB2 (Bol)"])
    N14(["GIt_Pass2 (Blur)"]) --> N4(["GIt_CB2 (Bol)"])
    N10(["GIt_CB3 (Bol)"]) --> N5(["GIt_CB4 (Bol)"])
    N3(["GIt_Pass4 (Blur)"]) --> N5(["GIt_CB4 (Bol)"])
    N28(["GIt_Pass1 (Blur)"]) --> N6(["GIt_Booster (BC)"])
    N5(["GIt_CB4 (Bol)"]) --> N7(["G_GamReverse (BC)"])
    N20(["GIt_ColorizeStrength (Bol)"]) --> N8(["GIt_ColOperation (Bol)"])
    N12(["GIt_ColorMeSurprised (Clr)"]) --> N8(["GIt_ColOperation (Bol)"])
    N37(["GIt_AlphaCrusherC (AMl)"]) --> N9(["GIt_PostBlur (Blur)"])
    N4(["GIt_CB2 (Bol)"]) --> N10(["GIt_CB3 (Bol)"])
    N11(["GIt_Pass3 (Blur)"]) --> N10(["GIt_CB3 (Bol)"])
    N13(["GIt_Dilate (ErDl)"]) --> N11(["GIt_Pass3 (Blur)"])
    N20(["GIt_ColorizeStrength (Bol)"]) --> N12(["GIt_ColorMeSurprised (Clr)"])
    N18(["GIt_SetDomain (DoD)"]) --> N13(["GIt_Dilate (ErDl)"])
    N13(["GIt_Dilate (ErDl)"]) --> N14(["GIt_Pass2 (Blur)"])
    N39(["GIt_ApplyModeFix (Mat)"]) --> N15(["GIt_GlowOnly (Bol)"])
    N9(["GIt_PostBlur (Blur)"]) --> N15(["GIt_GlowOnly (Bol)"])
    N30(["GIt_AngleReverse (nil)"]) --> N16(["GIt_AlphaCrusherA (ADv)"])
    N25(["GIt_HuntingHighAndGlow (CD)"]) --> N17(["GIt_Settings (Bol)"])
    N22(["GIt_Source (Bol)"]) --> N17(["GIt_Settings (Bol)"])
    N29(["GIt_Angle (nil)"]) --> N18(["GIt_SetDomain (DoD)"])
    N31(["GIt_ctrl (CD)"]) --> N19(["GIt_DepecheModesApplied (Mrg)"])
    N9(["GIt_PostBlur (Blur)"]) --> N19(["GIt_DepecheModesApplied (Mrg)"])
    N36(["SetDomain1 (DoD)"]) --> N20(["GIt_ColorizeStrength (Bol)"])
    N24(["GIt_Grad (3FN)"]) --> N20(["GIt_ColorizeStrength (Bol)"])
    N15(["GIt_GlowOnly (Bol)"]) --> N21(["GIt_Grain (FGr)"])
    N21(["GIt_Grain (FGr)"]) --> N22(["GIt_Source (Bol)"])
    N23(["GIt_4xSatBoost (BC)"]) --> N22(["GIt_Source (Bol)"])
    N33(["GIt_KeepAlphaC (Mat)"]) --> N23(["GIt_4xSatBoost (BC)"])
    N33(["GIt_KeepAlphaC (Mat)"]) --> N26(["GIt_GainGamSat (BC)"])
    N13(["GIt_Dilate (ErDl)"]) --> N27(["GIt_CB1 (Bol)"])
    N6(["GIt_Booster (BC)"]) --> N27(["GIt_CB1 (Bol)"])
    N13(["GIt_Dilate (ErDl)"]) --> N28(["GIt_Pass1 (Blur)"])
    N26(["GIt_GainGamSat (BC)"]) --> N29(["GIt_Angle (nil)"])
    N7(["G_GamReverse (BC)"]) --> N30(["GIt_AngleReverse (nil)"])
    N25(["GIt_HuntingHighAndGlow (CD)"]) --> N31(["GIt_ctrl (CD)"])
    N17(["GIt_Settings (Bol)"]) --> N32(["GIt_RenderCache (Mrg)"])
    N2(["GIt_PreKey (LKy)"]) --> N33(["GIt_KeepAlphaC (Mat)"])
    N31(["GIt_ctrl (CD)"]) --> N34(["GIt_KeepAlphaA (ADv)"])
    N34(["GIt_KeepAlphaA (ADv)"]) --> N35(["GIt_KeepAlphaB (Mat)"])
    N38(["GIt_AlphaCrusherB (BC)"]) --> N36(["SetDomain1 (DoD)"])
    N8(["GIt_ColOperation (Bol)"]) --> N37(["GIt_AlphaCrusherC (AMl)"])
    N16(["GIt_AlphaCrusherA (ADv)"]) --> N38(["GIt_AlphaCrusherB (BC)"])
    N19(["GIt_DepecheModesApplied (Mrg)"]) --> N39(["GIt_ApplyModeFix (Mat)"])
     
    class N1 GlowIt
    class N2 GIt_PreKey
    class N2 GIt_PreKey
    class N3 GIt_Pass4
    class N3 GIt_Pass4
    class N4 GIt_CB2
    class N4 GIt_CB2
    class N4 GIt_CB2
    class N5 GIt_CB4
    class N5 GIt_CB4
    class N5 GIt_CB4
    class N6 GIt_Booster
    class N6 GIt_Booster
    class N7 G_GamReverse
    class N7 G_GamReverse
    class N8 GIt_ColOperation
    class N8 GIt_ColOperation
    class N8 GIt_ColOperation
    class N9 GIt_PostBlur
    class N9 GIt_PostBlur
    class N10 GIt_CB3
    class N10 GIt_CB3
    class N10 GIt_CB3
    class N11 GIt_Pass3
    class N11 GIt_Pass3
    class N12 GIt_ColorMeSurprised
    class N12 GIt_ColorMeSurprised
    class N13 GIt_Dilate
    class N13 GIt_Dilate
    class N14 GIt_Pass2
    class N14 GIt_Pass2
    class N15 GIt_GlowOnly
    class N15 GIt_GlowOnly
    class N15 GIt_GlowOnly
    class N16 GIt_AlphaCrusherA
    class N16 GIt_AlphaCrusherA
    class N17 GIt_Settings
    class N17 GIt_Settings
    class N17 GIt_Settings
    class N18 GIt_SetDomain
    class N18 GIt_SetDomain
    class N19 GIt_DepecheModesApplied
    class N19 GIt_DepecheModesApplied
    class N19 GIt_DepecheModesApplied
    class N20 GIt_ColorizeStrength
    class N20 GIt_ColorizeStrength
    class N20 GIt_ColorizeStrength
    class N21 GIt_Grain
    class N21 GIt_Grain
    class N22 GIt_Source
    class N22 GIt_Source
    class N22 GIt_Source
    class N23 GIt_4xSatBoost
    class N23 GIt_4xSatBoost
    class N24 GIt_Grad
    class N25 GIt_HuntingHighAndGlow
    class N26 GIt_GainGamSat
    class N26 GIt_GainGamSat
    class N27 GIt_CB1
    class N27 GIt_CB1
    class N27 GIt_CB1
    class N28 GIt_Pass1
    class N28 GIt_Pass1
    class N29 GIt_Angle
    class N29 GIt_Angle
    class N30 GIt_AngleReverse
    class N30 GIt_AngleReverse
    class N31 GIt_ctrl
    class N31 GIt_ctrl
    class N32 GIt_RenderCache
    class N32 GIt_RenderCache
    class N33 GIt_KeepAlphaC
    class N33 GIt_KeepAlphaC
    class N34 GIt_KeepAlphaA
    class N34 GIt_KeepAlphaA
    class N35 GIt_KeepAlphaB
    class N35 GIt_KeepAlphaB
    class N36 SetDomain1
    class N36 SetDomain1
    class N37 GIt_AlphaCrusherC
    class N37 GIt_AlphaCrusherC
    class N38 GIt_AlphaCrusherB
    class N38 GIt_AlphaCrusherB
    class N39 GIt_ApplyModeFix
    class N39 GIt_ApplyModeFix
     
    linkStyle default stroke:#ffffff,stroke-width:2px;

This is the final inline vector rendered result:

    graph TB
            classDef GlowIt fill:#8C5A3F,stroke:#333,color:#fff
            classDef GIt_PreKey fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_PreKey fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB4 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Booster fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_Booster fill:#E98CB5,stroke:#333,color:#fff
            classDef G_GamReverse fill:#79A8D0,stroke:#333,color:#fff
            classDef G_GamReverse fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_ColOperation fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColOperation fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColOperation fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_PostBlur fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_PostBlur fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass3 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorMeSurprised fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorMeSurprised fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Dilate fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_Dilate fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_Pass2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass2 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_GlowOnly fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_GlowOnly fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_GlowOnly fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherA fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherA fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Settings fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Settings fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Settings fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_SetDomain fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_SetDomain fill:#79A8D0,stroke:#333,color:#fff
            classDef GIt_DepecheModesApplied fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_DepecheModesApplied fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_DepecheModesApplied fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorizeStrength fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorizeStrength fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ColorizeStrength fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Grain fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Grain fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Source fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_Source fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_Source fill:#E98CB5,stroke:#333,color:#fff
            classDef GIt_4xSatBoost fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_4xSatBoost fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Grad fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_HuntingHighAndGlow fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_GainGamSat fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_GainGamSat fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_CB1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Pass1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_Angle fill:#996600,stroke:#333,color:#fff
            classDef GIt_Angle fill:#996600,stroke:#333,color:#fff
            classDef GIt_AngleReverse fill:#996600,stroke:#333,color:#fff
            classDef GIt_AngleReverse fill:#996600,stroke:#333,color:#fff
            classDef GIt_ctrl fill:#954BCD,stroke:#333,color:#fff
            classDef GIt_ctrl fill:#954BCD,stroke:#333,color:#fff
            classDef GIt_RenderCache fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_RenderCache fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaC fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaC fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaA fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaA fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaB fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_KeepAlphaB fill:#B9B097,stroke:#333,color:#fff
            classDef SetDomain1 fill:#B9B097,stroke:#333,color:#fff
            classDef SetDomain1 fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherC fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherC fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherB fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_AlphaCrusherB fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ApplyModeFix fill:#B9B097,stroke:#333,color:#fff
            classDef GIt_ApplyModeFix fill:#B9B097,stroke:#333,color:#fff
     
    N35(["GIt_KeepAlphaB (Mat)"]) --> N2(["GIt_PreKey (LKy)"])
    N13(["GIt_Dilate (ErDl)"]) --> N3(["GIt_Pass4 (Blur)"])
    N27(["GIt_CB1 (Bol)"]) --> N4(["GIt_CB2 (Bol)"])
    N14(["GIt_Pass2 (Blur)"]) --> N4(["GIt_CB2 (Bol)"])
    N10(["GIt_CB3 (Bol)"]) --> N5(["GIt_CB4 (Bol)"])
    N3(["GIt_Pass4 (Blur)"]) --> N5(["GIt_CB4 (Bol)"])
    N28(["GIt_Pass1 (Blur)"]) --> N6(["GIt_Booster (BC)"])
    N5(["GIt_CB4 (Bol)"]) --> N7(["G_GamReverse (BC)"])
    N20(["GIt_ColorizeStrength (Bol)"]) --> N8(["GIt_ColOperation (Bol)"])
    N12(["GIt_ColorMeSurprised (Clr)"]) --> N8(["GIt_ColOperation (Bol)"])
    N37(["GIt_AlphaCrusherC (AMl)"]) --> N9(["GIt_PostBlur (Blur)"])
    N4(["GIt_CB2 (Bol)"]) --> N10(["GIt_CB3 (Bol)"])
    N11(["GIt_Pass3 (Blur)"]) --> N10(["GIt_CB3 (Bol)"])
    N13(["GIt_Dilate (ErDl)"]) --> N11(["GIt_Pass3 (Blur)"])
    N20(["GIt_ColorizeStrength (Bol)"]) --> N12(["GIt_ColorMeSurprised (Clr)"])
    N18(["GIt_SetDomain (DoD)"]) --> N13(["GIt_Dilate (ErDl)"])
    N13(["GIt_Dilate (ErDl)"]) --> N14(["GIt_Pass2 (Blur)"])
    N39(["GIt_ApplyModeFix (Mat)"]) --> N15(["GIt_GlowOnly (Bol)"])
    N9(["GIt_PostBlur (Blur)"]) --> N15(["GIt_GlowOnly (Bol)"])
    N30(["GIt_AngleReverse (nil)"]) --> N16(["GIt_AlphaCrusherA (ADv)"])
    N25(["GIt_HuntingHighAndGlow (CD)"]) --> N17(["GIt_Settings (Bol)"])
    N22(["GIt_Source (Bol)"]) --> N17(["GIt_Settings (Bol)"])
    N29(["GIt_Angle (nil)"]) --> N18(["GIt_SetDomain (DoD)"])
    N31(["GIt_ctrl (CD)"]) --> N19(["GIt_DepecheModesApplied (Mrg)"])
    N9(["GIt_PostBlur (Blur)"]) --> N19(["GIt_DepecheModesApplied (Mrg)"])
    N36(["SetDomain1 (DoD)"]) --> N20(["GIt_ColorizeStrength (Bol)"])
    N24(["GIt_Grad (3FN)"]) --> N20(["GIt_ColorizeStrength (Bol)"])
    N15(["GIt_GlowOnly (Bol)"]) --> N21(["GIt_Grain (FGr)"])
    N21(["GIt_Grain (FGr)"]) --> N22(["GIt_Source (Bol)"])
    N23(["GIt_4xSatBoost (BC)"]) --> N22(["GIt_Source (Bol)"])
    N33(["GIt_KeepAlphaC (Mat)"]) --> N23(["GIt_4xSatBoost (BC)"])
    N33(["GIt_KeepAlphaC (Mat)"]) --> N26(["GIt_GainGamSat (BC)"])
    N13(["GIt_Dilate (ErDl)"]) --> N27(["GIt_CB1 (Bol)"])
    N6(["GIt_Booster (BC)"]) --> N27(["GIt_CB1 (Bol)"])
    N13(["GIt_Dilate (ErDl)"]) --> N28(["GIt_Pass1 (Blur)"])
    N26(["GIt_GainGamSat (BC)"]) --> N29(["GIt_Angle (nil)"])
    N7(["G_GamReverse (BC)"]) --> N30(["GIt_AngleReverse (nil)"])
    N25(["GIt_HuntingHighAndGlow (CD)"]) --> N31(["GIt_ctrl (CD)"])
    N17(["GIt_Settings (Bol)"]) --> N32(["GIt_RenderCache (Mrg)"])
    N2(["GIt_PreKey (LKy)"]) --> N33(["GIt_KeepAlphaC (Mat)"])
    N31(["GIt_ctrl (CD)"]) --> N34(["GIt_KeepAlphaA (ADv)"])
    N34(["GIt_KeepAlphaA (ADv)"]) --> N35(["GIt_KeepAlphaB (Mat)"])
    N38(["GIt_AlphaCrusherB (BC)"]) --> N36(["SetDomain1 (DoD)"])
    N8(["GIt_ColOperation (Bol)"]) --> N37(["GIt_AlphaCrusherC (AMl)"])
    N16(["GIt_AlphaCrusherA (ADv)"]) --> N38(["GIt_AlphaCrusherB (BC)"])
    N19(["GIt_DepecheModesApplied (Mrg)"]) --> N39(["GIt_ApplyModeFix (Mat)"])
     
    class N1 GlowIt
    class N2 GIt_PreKey
    class N2 GIt_PreKey
    class N3 GIt_Pass4
    class N3 GIt_Pass4
    class N4 GIt_CB2
    class N4 GIt_CB2
    class N4 GIt_CB2
    class N5 GIt_CB4
    class N5 GIt_CB4
    class N5 GIt_CB4
    class N6 GIt_Booster
    class N6 GIt_Booster
    class N7 G_GamReverse
    class N7 G_GamReverse
    class N8 GIt_ColOperation
    class N8 GIt_ColOperation
    class N8 GIt_ColOperation
    class N9 GIt_PostBlur
    class N9 GIt_PostBlur
    class N10 GIt_CB3
    class N10 GIt_CB3
    class N10 GIt_CB3
    class N11 GIt_Pass3
    class N11 GIt_Pass3
    class N12 GIt_ColorMeSurprised
    class N12 GIt_ColorMeSurprised
    class N13 GIt_Dilate
    class N13 GIt_Dilate
    class N14 GIt_Pass2
    class N14 GIt_Pass2
    class N15 GIt_GlowOnly
    class N15 GIt_GlowOnly
    class N15 GIt_GlowOnly
    class N16 GIt_AlphaCrusherA
    class N16 GIt_AlphaCrusherA
    class N17 GIt_Settings
    class N17 GIt_Settings
    class N17 GIt_Settings
    class N18 GIt_SetDomain
    class N18 GIt_SetDomain
    class N19 GIt_DepecheModesApplied
    class N19 GIt_DepecheModesApplied
    class N19 GIt_DepecheModesApplied
    class N20 GIt_ColorizeStrength
    class N20 GIt_ColorizeStrength
    class N20 GIt_ColorizeStrength
    class N21 GIt_Grain
    class N21 GIt_Grain
    class N22 GIt_Source
    class N22 GIt_Source
    class N22 GIt_Source
    class N23 GIt_4xSatBoost
    class N23 GIt_4xSatBoost
    class N24 GIt_Grad
    class N25 GIt_HuntingHighAndGlow
    class N26 GIt_GainGamSat
    class N26 GIt_GainGamSat
    class N27 GIt_CB1
    class N27 GIt_CB1
    class N27 GIt_CB1
    class N28 GIt_Pass1
    class N28 GIt_Pass1
    class N29 GIt_Angle
    class N29 GIt_Angle
    class N30 GIt_AngleReverse
    class N30 GIt_AngleReverse
    class N31 GIt_ctrl
    class N31 GIt_ctrl
    class N32 GIt_RenderCache
    class N32 GIt_RenderCache
    class N33 GIt_KeepAlphaC
    class N33 GIt_KeepAlphaC
    class N34 GIt_KeepAlphaA
    class N34 GIt_KeepAlphaA
    class N35 GIt_KeepAlphaB
    class N35 GIt_KeepAlphaB
    class N36 SetDomain1
    class N36 SetDomain1
    class N37 GIt_AlphaCrusherC
    class N37 GIt_AlphaCrusherC
    class N38 GIt_AlphaCrusherB
    class N38 GIt_AlphaCrusherB
    class N39 GIt_ApplyModeFix
    class N39 GIt_ApplyModeFix
     
    linkStyle default stroke:#ffffff,stroke-width:2px;
Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment