{
  "last_node_id": 21,
  "last_link_id": 30,
  "nodes": [
    {
      "id": 1,
      "type": "FikoYT_MVD_AudioLoader",
      "pos": [
        40,
        250
      ],
      "size": {
        "0": 380,
        "1": 120
      },
      "order": 0,
      "mode": 0,
      "outputs": [
        {
          "name": "audio_bytes",
          "type": "AUDIO_BYTES",
          "links": [
            1
          ],
          "slot_index": 0
        },
        {
          "name": "file_path",
          "type": "STRING",
          "links": [
            10
          ],
          "slot_index": 1
        }
      ],
      "inputs": [],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_AudioLoader"
      },
      "widgets_values": [
        "(input/ klasorune ses dosyasi koy)",
        ""
      ]
    },
    {
      "id": 2,
      "type": "FikoYT_MVD_WhisperTranscriber",
      "pos": [
        460,
        40
      ],
      "size": {
        "0": 380,
        "1": 240
      },
      "order": 1,
      "mode": 0,
      "inputs": [
        {
          "name": "audio_bytes",
          "type": "AUDIO_BYTES",
          "link": 1
        }
      ],
      "outputs": [
        {
          "name": "segments",
          "type": "MVD_SEGMENTS",
          "links": [
            2
          ],
          "slot_index": 0
        },
        {
          "name": "full_text",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_WhisperTranscriber"
      },
      "widgets_values": [
        "large-v3",
        "tr",
        "cuda",
        false,
        8.0,
        20.0
      ]
    },
    {
      "id": 3,
      "type": "FikoYT_MVD_SmartSegmenter",
      "pos": [
        460,
        320
      ],
      "size": {
        "0": 380,
        "1": 260
      },
      "order": 2,
      "mode": 0,
      "inputs": [
        {
          "name": "raw_segments",
          "type": "MVD_SEGMENTS",
          "link": 2
        }
      ],
      "outputs": [
        {
          "name": "segments",
          "type": "MVD_SEGMENTS",
          "links": [
            3
          ],
          "slot_index": 0
        },
        {
          "name": "analysis",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_SmartSegmenter"
      },
      "widgets_values": [
        "http://127.0.0.1:11434",
        "supergemma4-26b-uncensored-fast-v2-Q4_K_M.gguf",
        0,
        12.0,
        30.0,
        ""
      ]
    },
    {
      "id": 4,
      "type": "FikoYT_MVD_SegmentEditor",
      "pos": [
        900,
        40
      ],
      "size": {
        "0": 380,
        "1": 300
      },
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "segments_in",
          "type": "MVD_SEGMENTS",
          "link": 3
        }
      ],
      "outputs": [
        {
          "name": "segments",
          "type": "MVD_SEGMENTS",
          "links": [
            4,
            5
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_SegmentEditor"
      },
      "widgets_values": [
        "[]"
      ]
    },
    {
      "id": 5,
      "type": "FikoYT_MVD_AudioSplitter",
      "pos": [
        460,
        620
      ],
      "size": {
        "0": 380,
        "1": 240
      },
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "segments",
          "type": "MVD_SEGMENTS",
          "link": 4
        },
        {
          "name": "audio_file_path",
          "type": "STRING",
          "link": 10
        }
      ],
      "outputs": [
        {
          "name": "segments",
          "type": "MVD_SEGMENTS",
          "links": [],
          "slot_index": 0
        },
        {
          "name": "project_dir",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        },
        {
          "name": "report",
          "type": "STRING",
          "links": [],
          "slot_index": 2
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_AudioSplitter"
      },
      "widgets_values": [
        "Sarki",
        "mp3",
        false,
        500,
        1000,
        30,
        2
      ]
    },
    {
      "id": 6,
      "type": "FikoYT_MVD_OllamaPromptGen",
      "pos": [
        1340,
        640
      ],
      "size": {
        "0": 440,
        "1": 500
      },
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "segments",
          "type": "MVD_SEGMENTS",
          "link": 5
        },
        {
          "name": "extra_style_notes",
          "type": "STRING",
          "link": 30,
          "widget": {
            "name": "extra_style_notes"
          }
        }
      ],
      "outputs": [
        {
          "name": "prompt_list",
          "type": "MVD_PROMPT_LIST",
          "links": [
            6,
            7
          ],
          "slot_index": 0
        },
        {
          "name": "prompt_json",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_OllamaPromptGen"
      },
      "widgets_values": [
        "http://127.0.0.1:11434",
        "supergemma4-26b-uncensored-fast-v2-Q4_K_M.gguf",
        "Sarki",
        "",
        "lyrical pop ballad about longing",
        "warm golden hour, amber tones",
        "slow dolly in, smooth tracking",
        "Istanbul rooftop at sunset, soft haze",
        "",
        "768x512",
        5,
        "Reference Guide (AI ilham alir)",
        "Dynamic Choice (AI segmente gore secsin)"
      ]
    },
    {
      "id": 7,
      "type": "FikoYT_MVD_CharacterBank",
      "pos": [
        1340,
        1180
      ],
      "size": {
        "0": 440,
        "1": 140
      },
      "order": 6,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "bank",
          "type": "MVD_CHAR_BANK",
          "links": [
            8
          ],
          "slot_index": 0
        },
        {
          "name": "info",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_CharacterBank"
      },
      "widgets_values": [
        ""
      ]
    },
    {
      "id": 8,
      "type": "UNETLoader",
      "pos": [
        40,
        410
      ],
      "size": {
        "0": 380,
        "1": 120
      },
      "order": 7,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": [
            11
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "UNETLoader"
      },
      "widgets_values": [
        "flux1-dev-fp8.safetensors",
        "default"
      ]
    },
    {
      "id": 9,
      "type": "DualCLIPLoader",
      "pos": [
        40,
        570
      ],
      "size": {
        "0": 380,
        "1": 140
      },
      "order": 8,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "CLIP",
          "type": "CLIP",
          "links": [
            12
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "DualCLIPLoader"
      },
      "widgets_values": [
        "t5xxl_fp8_e4m3fn.safetensors",
        "clip_l.safetensors",
        "flux",
        "default"
      ]
    },
    {
      "id": 10,
      "type": "VAELoader",
      "pos": [
        40,
        750
      ],
      "size": {
        "0": 380,
        "1": 80
      },
      "order": 9,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "VAE",
          "type": "VAE",
          "links": [
            13
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "VAELoader"
      },
      "widgets_values": [
        "ae.safetensors"
      ]
    },
    {
      "id": 11,
      "type": "FikoYT_MVD_LoraStacker",
      "pos": [
        900,
        400
      ],
      "size": {
        "0": 380,
        "1": 340
      },
      "order": 10,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 11
        },
        {
          "name": "clip",
          "type": "CLIP",
          "link": 12
        }
      ],
      "outputs": [
        {
          "name": "model",
          "type": "MODEL",
          "links": [
            14
          ],
          "slot_index": 0
        },
        {
          "name": "clip",
          "type": "CLIP",
          "links": [
            15
          ],
          "slot_index": 1
        },
        {
          "name": "report",
          "type": "STRING",
          "links": [],
          "slot_index": 2
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_LoraStacker"
      },
      "widgets_values": [
        "(yok)",
        0.8,
        "(yok)",
        0.8,
        "(yok)",
        0.8,
        "",
        true
      ]
    },
    {
      "id": 12,
      "type": "FikoYT_MVD_SegmentImageGen",
      "pos": [
        1780,
        40
      ],
      "size": {
        "0": 480,
        "1": 560
      },
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "prompt_list",
          "type": "MVD_PROMPT_LIST",
          "link": 6
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": 14
        },
        {
          "name": "clip",
          "type": "CLIP",
          "link": 15
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 13
        },
        {
          "name": "character_bank",
          "type": "MVD_CHAR_BANK",
          "link": 8
        }
      ],
      "outputs": [
        {
          "name": "prompt_list",
          "type": "MVD_PROMPT_LIST",
          "links": [
            16
          ],
          "slot_index": 0
        },
        {
          "name": "last_image",
          "type": "IMAGE",
          "links": [
            17
          ],
          "slot_index": 1
        },
        {
          "name": "report",
          "type": "STRING",
          "links": [],
          "slot_index": 2
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_SegmentImageGen"
      },
      "widgets_values": [
        1024,
        1024,
        20,
        1.0,
        3.5,
        0,
        "euler",
        "beta",
        "",
        true,
        "subject in sharp focus, detailed face, eyes clearly visible, professional photography, cinematic lighting, high detail",
        -1,
        "",
        "",
        0.7,
        "qwen2.5vl:7b",
        "http://127.0.0.1:11434",
        false,
        false
      ]
    },
    {
      "id": 13,
      "type": "FikoYT_MVD_CinematicPost",
      "pos": [
        1780,
        640
      ],
      "size": {
        "0": 480,
        "1": 320
      },
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 17
        }
      ],
      "outputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "links": [
            18
          ],
          "slot_index": 0
        },
        {
          "name": "report",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_CinematicPost"
      },
      "widgets_values": [
        0.04,
        true,
        0.4,
        1.0,
        0.6
      ]
    },
    {
      "id": 14,
      "type": "FikoYT_MVD_PromptOutput",
      "pos": [
        2300,
        40
      ],
      "size": {
        "0": 380,
        "1": 240
      },
      "order": 13,
      "mode": 0,
      "inputs": [
        {
          "name": "prompt_list",
          "type": "MVD_PROMPT_LIST",
          "link": 16
        }
      ],
      "outputs": [
        {
          "name": "positive_prompt",
          "type": "STRING",
          "links": [],
          "slot_index": 0
        },
        {
          "name": "negative_prompt",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        },
        {
          "name": "image_prompt",
          "type": "STRING",
          "links": [],
          "slot_index": 2
        },
        {
          "name": "lyrics",
          "type": "STRING",
          "links": [],
          "slot_index": 3
        },
        {
          "name": "start_time",
          "type": "FLOAT",
          "links": [],
          "slot_index": 4
        },
        {
          "name": "end_time",
          "type": "FLOAT",
          "links": [],
          "slot_index": 5
        },
        {
          "name": "audio_path",
          "type": "STRING",
          "links": [],
          "slot_index": 6
        },
        {
          "name": "image_path",
          "type": "STRING",
          "links": [],
          "slot_index": 7
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_PromptOutput"
      },
      "widgets_values": [
        0
      ]
    },
    {
      "id": 15,
      "type": "FikoYT_MVD_PromptDisplay",
      "pos": [
        2300,
        320
      ],
      "size": {
        "0": 380,
        "1": 100
      },
      "order": 14,
      "mode": 0,
      "inputs": [
        {
          "name": "prompt_list",
          "type": "MVD_PROMPT_LIST",
          "link": 7
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_PromptDisplay"
      },
      "widgets_values": [
        "Sarki"
      ]
    },
    {
      "id": 16,
      "type": "FikoYT_MVD_ProjectSaver",
      "pos": [
        2300,
        460
      ],
      "size": {
        "0": 380,
        "1": 220
      },
      "order": 15,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "project_dir",
          "type": "STRING",
          "links": [],
          "slot_index": 0
        },
        {
          "name": "summary",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_MVD_ProjectSaver"
      },
      "widgets_values": [
        "Sarki",
        "",
        "",
        ""
      ]
    },
    {
      "id": 17,
      "type": "SaveImage",
      "pos": [
        2300,
        720
      ],
      "size": {
        "0": 380,
        "1": 300
      },
      "order": 16,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 18
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "fikoyt_mvd/seg"
      ]
    },
    {
      "id": 18,
      "type": "Note",
      "pos": [
        40,
        40
      ],
      "size": {
        "0": 400,
        "1": 180
      },
      "order": 17,
      "mode": 0,
      "properties": {},
      "widgets_values": [
        "🎵 FikoYT MVD — 2026 PROFESYONEL PIPELINE\n1) Ses yükle → Whisper → SmartSegmenter → SegmentEditor → AudioSplitter\n2) OllamaPromptGen (LLM) → CharacterBank ile bağla\n3) UNETLoader → LoRA Stacker → SegmentImageGen (PuLID otomatik) → CinematicPost\n4) ProjectSaver: her şeyi merkezi proje klasörüne kaydet"
      ]
    },
    {
      "id": 19,
      "type": "Note",
      "pos": [
        1340,
        1340
      ],
      "size": {
        "0": 440,
        "1": 200
      },
      "order": 18,
      "mode": 0,
      "properties": {},
      "widgets_values": [
        "🦙 LLM ENGINE\nSettings → 🦙 LLM Engine:\n• ollama → http://127.0.0.1:11434 (örnek modeller: qwen3:8b, llama3.2:3b-instruct-q4_K_M)\n• local → models/LLM/*.gguf (llama-cpp-python ile in-process)\n\n📦 LoRA Stacker — karakter aktifken otomatik bağlı LoRA'ları uygular.\n🎭 CharacterBank — global kütüphaneden seçili karakterler.\n🎞 CinematicPost — film grain + sharpen + color match son rötuş."
      ]
    },
    {
      "id": 20,
      "type": "FikoYT_LLMChat",
      "pos": [
        1340,
        40
      ],
      "size": {
        "0": 440,
        "1": 560
      },
      "order": 19,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "response",
          "type": "STRING",
          "links": [
            30
          ],
          "slot_index": 0
        },
        {
          "name": "info",
          "type": "STRING",
          "links": [],
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "FikoYT_LLMChat"
      },
      "widgets_values": [
        "You are an award-winning music video director writing a CONCISE visual treatment that will be appended to per-segment image prompts. Rules:\n- Output 1 single line, 30-60 words, NO line breaks\n- Focus on: lighting style, lens choice, color grading, atmospheric details, camera movement\n- DO NOT describe specific actions or subjects (the per-segment LLM handles that)\n- Example output: 'shallow depth of field on 85mm anamorphic lens, soft golden window light with warm rim, teal+orange grade, hazy atmosphere, slow dolly tracking shots, film grain'\n- Output ONLY the treatment line, no preamble, no quotes",
        "Lyrical pop ballad about longing — Istanbul rooftop at sunset, warm golden hour, melancholic but hopeful mood.",
        "auto",
        "(otomatik)",
        "supergemma4-26b-uncensored-fast-v2-Q4_K_M.gguf",
        "http://127.0.0.1:11434",
        0.7,
        256,
        180,
        true,
        true
      ]
    },
    {
      "id": 21,
      "type": "Note",
      "pos": [
        1780,
        1000
      ],
      "size": {
        "0": 480,
        "1": 280
      },
      "order": 20,
      "mode": 0,
      "properties": {},
      "widgets_values": [
        "🦙 LLM Chat — Aktif (style treatment üretici)\n\nuser_prompt'a şarkı fikrini özetle yaz (1-2 cümle).\nLLM bunu 'extra_style_notes' formuna çevirir → OllamaPromptGen'e besler → her segment'in image_prompt'unun sonuna eklenir.\n\n⚡ engine='auto' → Settings → 🦙 LLM Engine'den (Ollama veya Local) seçer.\n⚡ Workflow ÇALIŞTIĞINDA sırayla:\n  1) LLM treatment üretir (~15s)\n  2) LLM unload (auto_unload_after=true)\n  3) OllamaPromptGen segment promptlarını üretir\n  4) Flux her segment için resim üretir"
      ]
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      2,
      0,
      "AUDIO_BYTES"
    ],
    [
      2,
      2,
      0,
      3,
      0,
      "MVD_SEGMENTS"
    ],
    [
      3,
      3,
      0,
      4,
      0,
      "MVD_SEGMENTS"
    ],
    [
      4,
      4,
      0,
      5,
      0,
      "MVD_SEGMENTS"
    ],
    [
      5,
      4,
      0,
      6,
      0,
      "MVD_SEGMENTS"
    ],
    [
      6,
      6,
      0,
      12,
      0,
      "MVD_PROMPT_LIST"
    ],
    [
      7,
      6,
      0,
      15,
      0,
      "MVD_PROMPT_LIST"
    ],
    [
      8,
      7,
      0,
      12,
      4,
      "MVD_CHAR_BANK"
    ],
    [
      10,
      1,
      1,
      5,
      1,
      "STRING"
    ],
    [
      11,
      8,
      0,
      11,
      0,
      "MODEL"
    ],
    [
      12,
      9,
      0,
      11,
      1,
      "CLIP"
    ],
    [
      13,
      10,
      0,
      12,
      3,
      "VAE"
    ],
    [
      14,
      11,
      0,
      12,
      1,
      "MODEL"
    ],
    [
      15,
      11,
      1,
      12,
      2,
      "CLIP"
    ],
    [
      16,
      12,
      0,
      14,
      0,
      "MVD_PROMPT_LIST"
    ],
    [
      17,
      12,
      1,
      13,
      0,
      "IMAGE"
    ],
    [
      18,
      13,
      0,
      17,
      0,
      "IMAGE"
    ],
    [
      30,
      20,
      0,
      6,
      1,
      "STRING"
    ]
  ],
  "groups": [
    {
      "title": "🎵 SES YÜKLE + TRANSKRIPSIYON",
      "bounding": [
        20,
        20,
        850,
        880
      ],
      "color": "#3f789e",
      "font_size": 18
    },
    {
      "title": "🖼 FLUX MODELLERİ",
      "bounding": [
        20,
        380,
        410,
        470
      ],
      "color": "#88a040",
      "font_size": 18
    },
    {
      "title": "✂️ SEGMENT + KESIM",
      "bounding": [
        880,
        20,
        410,
        720
      ],
      "color": "#a83a3a",
      "font_size": 18
    },
    {
      "title": "🦙 LLM + 🎭 KARAKTER",
      "bounding": [
        1320,
        20,
        480,
        1300
      ],
      "color": "#a1309b",
      "font_size": 18
    },
    {
      "title": "🎨 GÖRSEL ÜRETİM + POST",
      "bounding": [
        1760,
        20,
        520,
        940
      ],
      "color": "#88a040",
      "font_size": 18
    },
    {
      "title": "💾 ÇIKTI + KAYIT",
      "bounding": [
        2280,
        20,
        400,
        1020
      ],
      "color": "#c09e3e",
      "font_size": 18
    }
  ],
  "config": {},
  "extra": {},
  "version": 0.4
}