[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BY0PXGZVX0QJSSSDCPW4N4":3,"skill-same:01M6BY0PXGZVX0QJSSSDCPW4N4":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":12,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6BY0PXGZVX0QJSSSDCPW4N4","motion-background",null,"Build an ambient backdrop on a NodeTool timeline using shape gradients, procedural generator effects, slow loops, or generated video. Use for title cards, hero beds, end cards, lower-third plates, and quiet loops behind a subject.","nodetool-ai\u002Fnodetool","nodetool-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F164873569?v=4","01M6BXPFDW36K9K1MR8ZH63HG2","nodetool.ai","01M6BXPFJ893XM219GQN60B0WK",628,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool\u002Fblob\u002Fmain\u002Fpackages\u002Fsystem-skills\u002Fmotion-background\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"motion background","background","motion","end","title","hero","effects","for","generator","procedural","loops","ambient","timeline","build","shape","use","generated","gradients","nodetool","Video","2026-11-10 10:12:30",false,"---\nname: motion-background\ndescription: Build an ambient backdrop on a NodeTool timeline using shape gradients, procedural generator effects, slow loops, or generated video. Use for title cards, hero beds, end cards, lower-third plates, and quiet loops behind a subject.\n---\n\n# Motion Background → the bed\n\nA background that draws attention has failed. Slow, low contrast, looping with\nno visible join, and cheap enough that the picture in front of it still\ncomposites.\n\n`timeline-edit-ops` carries the op contract for the calls named here.\n`color-motion` chooses the palette the bed is built from, and `motion-curves`\nwrites the loop when no wrapping preset holds the seam.\n\n## Pick the cheapest thing that reads\n\n| Look | Build it from | Cost |\n|---|---|---|\n| Flat or gradient wash | One full-frame `rect` shape with `fillStyle` linear or radial | Shape clips do not count against the video layer cap |\n| Soft mesh or conic wash | One full-frame shape with a `generator` effect, `mode: \"meshGradient\"` or `\"conicGradient\"` | One procedural effect, no model call |\n| Shaped colour blobs | Radial-filled `ellipse` clips, low opacity, blurred | More control over each blob's motion |\n| Noise, fractal, particles, light leak, grid | One full-frame shape with the matching `generator` mode | Procedural and seedable |\n| Drifting texture | An image clip with a `kenBurns` animation | Outside the video layer cap |\n| Smoke, ink, or clouds | A generated video bed, looped | One video layer and a model call |\n| Colour cycle | Any of the above plus a `hueShift` loop | An additional grade |\n\nAt most **eight video layers** composite at once, resolved from the lowest track\nindex. Text, shape and image clips are not counted, so a bed built from shapes\ncosts nothing in that budget. Nine overlapping video clips means the bottom one\nsilently does not draw, reported as `layer_cap_exceeded`.\n\n## A procedural bed\n\nAdd a full-frame shape and apply a generator effect to it. Modes are `noise`,\n`fractal`, `conicGradient`, `meshGradient`, `gradientField`, `particles`,\n`lightLeak`, and `gridPattern`. `colorA` and `colorB` set the two colours;\n`scale`, `amount`, `angle`, `time`, and `seed` shape the field. For movement,\nset `animate: true`, which samples the current timeline time into the effect.\nKeep a fixed `seed` for repeatable frames. This clock keeps moving; it does not\nmake the procedural field wrap at the clip boundary. For a seamless loop, use\na wrapping clip animation or match the endpoints in a rendered loop.\n\n```json\n{\"op\": \"set_effects\", \"target\": \"Bed\", \"effects\": [\n  {\"type\": \"generator\", \"mode\": \"meshGradient\",\n   \"colorA\": \"#10233c\", \"colorB\": \"#ec6b45\", \"scale\": 6,\n   \"amount\": 0.6, \"seed\": 9, \"animate\": true}]}\n```\n\nFor a dark wash that bands, put a fixed-seed `stylize` `dither` after the\ngenerator or gradient in the effect list. Dither breaks up 8-bit steps but\ncannot restore precision lost in the source. `color-motion` covers this look.\n\n## A mesh from shapes\n\nFor individual moving blobs, stack radial fills over a base. Each ellipse is\nits own clip on an overlay track, at 30–60% opacity, with a `blur` effect wide\nenough that no edge reads:\n\n```json\n{\"op\": \"add_shape_clip\", \"shape\": {\"kind\": \"ellipse\",\n \"x\": 0.05, \"y\": 0.1, \"width\": 0.6, \"height\": 0.7,\n \"fillStyle\": {\"type\": \"radial\", \"stops\": [\n   {\"offset\": 0, \"color\": \"#5b8cff\"}, {\"offset\": 1, \"color\": \"#5b8cff00\"}]}},\n \"durationMs\": 12000}\n```\n\n```json\n{\"op\": \"set_effects\", \"target\": \"Ellipse\", \"effects\": [{\"type\": \"blur\", \"radius\": 120}]}\n```\n\nThen give each blob a different `loop`: `float` with `amplitude` 0.01–0.015\n(a fraction of frame height each way, so at most 3% of travel),\n`breathe` at `intensity` 0.03–0.08, and cycle lengths that do not divide each\nother — 9000, 13000, 17000ms — so the composite never visibly repeats.\n\n`blendMode` `screen` or `add` on a blob over a dark base builds light rather than\ncovering it; `multiply` or `soft-light` deepens instead. That choice matters more\nthan the fill colours.\n\n## Loops that actually loop\n\n`float`, `breathe`, `rotate` and `hueShift` are built to wrap: they start and end\nat the same value, so `durationMs` is a period and the seam is invisible. A\ncustom loop curve must do the same — the value at `t: 1` has to equal the value\nat `t: 0` or the bed jumps every cycle.\n\n`kenBurns` is the exception: it is a one-shot across the whole clip, holding at\nits end, so it does not repeat and its `durationMs` is ignored. On a long bed a\ndrift from `kenBurns` finishes and then sits still. For continuous drift over a\nlong clip use `float` with a long period instead.\n\nPeriods that read as ambient: 8000–30000ms. Anything under about 5000ms reads as\na screensaver, and text in front of it becomes hard to hold.\n\n## Keep it behind\n\n- Background sits on the **highest** track index, because the lowest draws on\n  top. A bed that covers the picture is a track-order mistake, not an opacity\n  one.\n- Contrast: pull it down with a `color` effect at `saturation` 0.5–0.7 and\n  `brightness` slightly negative before touching opacity. A desaturated bed\n  reads as depth; a faded one reads as a mistake.\n- Amplitude: nothing in the bed should travel more than about 3% of the frame,\n  or the eye starts tracking it.\n- Give the foreground a scrim if the bed's bright regions cross the type: a black\n  `rect` shape at 40–60% opacity on a track index between the bed and the text.\n  `validate_timeline` reports `text_illegible` for what it can measure, and says\n  nothing about gradients — look at the frame.\n\n## A generated bed\n\nFor smoke, ink, or clouds that the procedural modes cannot draw, generate video.\nUse `find_model` with `text_to_video`, then `generate_video`,\nthen `add_media_clip` with the returned `asset:\u002F\u002F` reference. The `find_model`\nresult names a `prompting_skill` for the line it picked; load it, because each\nline wants the prompt shaped differently. Whatever the line, prompt for slow,\neven motion with no cuts and no subject; a bed with an event in it is a shot,\nnot a bed. On a line that writes native audio (Seedance 2, Veo 3, MiniMax H3,\nKling 2.6 and later) the bed arrives with a soundtrack: either brief it as room\ntone and keep it, or mute the clip under the track you meant to use —\n`video-audio-continuity` is the rule for which.\n\nA generated clip does not loop. Cover a longer sequence by duplicating it and\ncrossfading the joins: overlap the copies by 800–1500ms on one track, which\ndissolves with no call at all, or `set_transition` `crossfade` on the incoming\ncopy to pin the length.\n\n## Reduced motion, and knowing when to stop\n\nA bed exists to sit under something. Before adding a second idea to it, check\nwhether the first one is doing anything at all — a drift too slow to see is\nbudget spent on nothing, and one too fast is the reason nobody read the headline.\nOne idea, one amplitude, one period family.\n\n## Check it\n\n- `preview_timeline_frame` with a `range` across a full cycle and `sheet: true`,\n  which is how you see whether a loop breathes evenly or lurches. Sampling three\n  timecodes will not show a seam.\n- The same sweep with the foreground on, to confirm the type still reads at every\n  point in the cycle rather than only where you happened to look.\n- `render_timeline` at a low `preview_scale` while iterating. A bed is judged\n  over seconds, and a still cannot tell you whether it is calm.\n","# Motion Background → the bed\n\nA background that draws attention has failed. Slow, low contrast, looping with\nno visible join, and cheap enough that the picture in front of it still\ncomposites.\n\n`timeline-edit-ops` carries the op contract for the calls named here.\n`color-motion` chooses the palette the bed is built from, and `motion-curves`\nwrites the loop when no wrapping preset holds the seam.\n\n## Pick the cheapest thing that reads\n\n| Look | Build it from | Cost |\n|---|---|---|\n| Flat or gradient wash | One full-frame `rect` shape with `fillStyle` linear or radial | Shape clips do not count against the video layer cap |\n| Soft mesh or conic wash | One full-frame shape with a `generator` effect, `mode: \"meshGradient\"` or `\"conicGradient\"` | One procedural effect, no model call |\n| Shaped colour blobs | Radial-filled `ellipse` clips, low opacity, blurred | More control over each blob's motion |\n| Noise, fractal, particles, light leak, grid | One full-frame shape with the matching `generator` mode | Procedural and seedable |\n| Drifting texture | An image clip with a `kenBurns` animation | Outside the video layer cap |\n| Smoke, ink, or clouds | A generated video bed, looped | One video layer and a model call |\n| Colour cycle | Any of the above plus a `hueShift` loop | An additional grade |\n\nAt most **eight video layers** composite at once, resolved from the lowest track\nindex. Text, shape and image clips are not counted, so a bed built from shapes\ncosts nothing in that budget. Nine overlapping video clips means the bottom one\nsilently does not draw, reported as `layer_cap_exceeded`.\n\n## A procedural bed\n\nAdd a full-frame shape and apply a generator effect to it. Modes are `noise`,\n`fractal`, `conicGradient`, `meshGradient`, `gradientField`, `particles`,\n`lightLeak`, and `gridPattern`. `colorA` and `colorB` set the two colours;\n`scale`, `amount`, `angle`, `time`, and `seed` shape the field. For movement,\nset `animate: true`, which samples the current timeline time into the effect.\nKeep a fixed `seed` for repeatable frames. This clock keeps moving; it does not\nmake the procedural field wrap at the clip boundary. For a seamless loop, use\na wrapping clip animation or match the endpoints in a rendered loop.\n\n```json\n{\"op\": \"set_effects\", \"target\": \"Bed\", \"effects\": [\n  {\"type\": \"generator\", \"mode\": \"meshGradient\",\n   \"colorA\": \"#10233c\", \"colorB\": \"#ec6b45\", \"scale\": 6,\n   \"amount\": 0.6, \"seed\": 9, \"animate\": true}]}\n```\n\nFor a dark wash that bands, put a fixed-seed `stylize` `dither` after the\ngenerator or gradient in the effect list. Dither breaks up 8-bit steps but\ncannot restore precision lost in the source. `color-motion` covers this look.\n\n## A mesh from shapes\n\nFor individual moving blobs, stack radial fills over a base. Each ellipse is\nits own clip on an overlay track, at 30–60% opacity, with a `blur` effect wide\nenough that no edge reads:\n\n```json\n{\"op\": \"add_shape_clip\", \"shape\": {\"kind\": \"ellipse\",\n \"x\": 0.05, \"y\": 0.1, \"width\": 0.6, \"height\": 0.7,\n \"fillStyle\": {\"type\": \"radial\", \"stops\": [\n   {\"offset\": 0, \"color\": \"#5b8cff\"}, {\"offset\": 1, \"color\": \"#5b8cff00\"}]}},\n \"durationMs\": 12000}\n```\n\n```json\n{\"op\": \"set_effects\", \"target\": \"Ellipse\", \"effects\": [{\"type\": \"blur\", \"radius\": 120}]}\n```\n\nThen give each blob a different `loop`: `float` with `amplitude` 0.01–0.015\n(a fraction of frame height each way, so at most 3% of travel),\n`breathe` at `intensity` 0.03–0.08, and cycle lengths that do not divide each\nother — 9000, 13000, 17000ms — so the composite never visibly repeats.\n\n`blendMode` `screen` or `add` on a blob over a dark base builds light rather than\ncovering it; `multiply` or `soft-light` deepens instead. That choice matters more\nthan the fill colours.\n\n## Loops that actually loop\n\n`float`, `breathe`, `rotate` and `hueShift` are built to wrap: they start and end\nat the same value, so `durationMs` is a period and the seam is invisible. A\ncustom loop curve must do the same — the value at `t: 1` has to equal the value\nat `t: 0` or the bed jumps every cycle.\n\n`kenBurns` is the exception: it is a one-shot across the whole clip, holding at\nits end, so it does not repeat and its `durationMs` is ignored. On a long bed a\ndrift from `kenBurns` finishes and then sits still. For continuous drift over a\nlong clip use `float` with a long period instead.\n\nPeriods that read as ambient: 8000–30000ms. Anything under about 5000ms reads as\na screensaver, and text in front of it becomes hard to hold.\n\n## Keep it behind\n\n- Background sits on the **highest** track index, because the lowest draws on\n  top. A bed that covers the picture is a track-order mistake, not an opacity\n  one.\n- Contrast: pull it down with a `color` effect at `saturation` 0.5–0.7 and\n  `brightness` slightly negative before touching opacity. A desaturated bed\n  reads as depth; a faded one reads as a mistake.\n- Amplitude: nothing in the bed should travel more than about 3% of the frame,\n  or the eye starts tracking it.\n- Give the foreground a scrim if the bed's bright regions cross the type: a black\n  `rect` shape at 40–60% opacity on a track index between the bed and the text.\n  `validate_timeline` reports `text_illegible` for what it can measure, and says\n  nothing about gradients — look at the frame.\n\n## A generated bed\n\nFor smoke, ink, or clouds that the procedural modes cannot draw, generate video.\nUse `find_model` with `text_to_video`, then `generate_video`,\nthen `add_media_clip` with the returned `asset:\u002F\u002F` reference. The `find_model`\nresult names a `prompting_skill` for the line it picked; load it, because each\nline wants the prompt shaped differently. Whatever the line, prompt for slow,\neven motion with no cuts and no subject; a bed with an event in it is a shot,\nnot a bed. On a line that writes native audio (Seedance 2, Veo 3, MiniMax H3,\nKling 2.6 and later) the bed arrives with a soundtrack: either brief it as room\ntone and keep it, or mute the clip under the track you meant to use —\n`video-audio-continuity` is the rule for which.\n\nA generated clip does not loop. Cover a longer sequence by duplicating it and\ncrossfading the joins: overlap the copies by 800–1500ms on one track, which\ndissolves with no call at all, or `set_transition` `crossfade` on the incoming\ncopy to pin the length.\n\n## Reduced motion, and knowing when to stop\n\nA bed exists to sit under something. Before adding a second idea to it, check\nwhether the first one is doing anything at all — a drift too slow to see is\nbudget spent on nothing, and one too fast is the reason nobody read the headline.\nOne idea, one amplitude, one period family.\n\n## Check it\n\n- `preview_timeline_frame` with a `range` across a full cycle and `sheet: true`,\n  which is how you see whether a loop breathes evenly or lurches. Sampling three\n  timecodes will not show a seam.\n- The same sweep with the foreground on, to confirm the type still reads at every\n  point in the cycle rather than only where you happened to look.\n- `render_timeline` at a low `preview_scale` while iterating. A bed is judged\n  over seconds, and a still cannot tell you whether it is calm.\n",{"name":5,"description":7},"main","c7226baa82daca42a19a5855c116544f97aa8bac","packages\u002Fsystem-skills\u002Fmotion-background",90,"https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool","https:\u002F\u002Fnodetool.ai\u002F","https:\u002F\u002Fgithub.com\u002Fnodetool-ai","No-code AI development","2026-11-12 03:00:58",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add nodetool-ai\u002Fnodetool --skill motion-background",{"tool":64,"command":65},"bunx","bunx skills add nodetool-ai\u002Fnodetool --skill motion-background",{"tool":67,"command":68},"pnpm","pnpm dlx skills add nodetool-ai\u002Fnodetool --skill motion-background","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool\u002Fblob\u002Fmain\u002Fpackages\u002Fsystem-skills\u002Fmotion-background\u002FSKILL.md",true,[72],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"scripts\u002Ftdd_setup.py","SCRIPT","脚本",13592,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Ftesting-quality\u002Fskills\u002Ftdd-enforce\u002Fscripts\u002Ftdd_setup.py",[79,112,139,153,169,193],{"skillNo":80,"name":42,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":92,"publishedAt":44},"01M6BY4D93R0Q9400ZHJ04DXP1","Use the NodeTool MCP server to build, validate, run, and debug visual AI workflows, and to work with assets, collections, and jobs. Use when the user mentions NodeTool or asks for a workflow graph, a node, or a media generation run on their NodeTool server.","https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool\u002Fblob\u002Fmain\u002Fplugins\u002Fchatgpt\u002Fnodetool\u002Fskills\u002Fnodetool\u002FSKILL.md",[84,87],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[42,93,94,95,96,97,98,99,100,101,102,103,104,105,39,106,107,108,109,110,31,111],"MCP","mcp server","workflow","workflows","validate","debug","run","graph","server","Media","assets","work","node","visual","generation","collections","media generation","with","when",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":44},"01M6BY4AEB05ZPBRVD078ATR2H","wan-2-6-prompting","Prompt Alibaba's Wan 2.6 video — text-to-video with a global style line plus timing-bracketed shots, and image-to-video that describes only what changes over time. Covers the shot-mode switch per provider, the prompt budget, negative prompts, motion intensity wording, audio input and prompt expansion. Use whenever the model id names a Wan 2.6 video route (alibaba\u002Fwan-2.6\u002Ftext-to-video, alibaba\u002Fwan-2.6\u002Fimage-to-video, wan-video\u002Fwan-2.6-t2v, wan-video\u002Fwan-2.6-i2v, wan-video\u002Fwan2.6-i2v-flash) on generate_video, animate_image or a TextToVideo node. Not for Wan 2.5 or 2.7, or the Wan 2.6 image routes.","https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool\u002Fblob\u002Fmain\u002Fpackages\u002Fsystem-skills\u002Fwan-2-6-prompting\u002FSKILL.md",[118],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[120,121,122,123,124,43,125,126,127,128,129,105,130,131,132,133,134,135,136,137,138],"wan 2 6 prompting","prompting","image","generate","Budget","Audio","text","animate","model","flash","only","route","time","line","input","text-to-video","image-to-video","mode","expansion",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":147,"publishedAt":44},"01M6BY47T4748ZG5ZMTAR97ZWZ","video-workflow","Build a reusable NodeTool video workflow for batches or repeated inputs. For a single finished piece, use a storyboard skill.","https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool\u002Fblob\u002Fmain\u002Fpackages\u002Fsystem-skills\u002Fvideo-workflow\u002FSKILL.md",[145,146],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},[95,43,148,42,39,149,150,37,151,31,152],"video workflow","reusable","storyboard","batches","single",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":160,"publishedAt":44},"01M6BY4587N2SYN315SXGEMZC3","video-clone","Analyze a reference video and recreate its shot structure with a new product or cast in NodeTool.","https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool\u002Fblob\u002Fmain\u002Fpackages\u002Fsystem-skills\u002Fvideo-clone\u002FSKILL.md",[159],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[43,161,162,163,164,42,165,166,167,110,168],"video clone","clone","product","analyze","reference","cast","structure","new",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":176,"publishedAt":44},"01M6BY4257C2KQYYMD9EK6DK8E","video-audio-continuity","Keep sound continuous across a multi-scene piece cut from generated video — why one clip per scene hard-cuts the audio at every boundary, when to write all the scenes into a single generation instead, the sound-design vocabulary that survives a provider's copyright filter, and how to check the length, the aspect ratio and the mix of what came back. Use when a piece has more than one scene and the video model writes its own audio (Seedance 2, Veo 3, MiniMax H3, Kling 2.6 and later), or when a cut's sound drops out at the shot changes.","https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool\u002Fblob\u002Fmain\u002Fpackages\u002Fsystem-skills\u002Fvideo-audio-continuity\u002FSKILL.md",[175],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[43,125,177,178,179,180,181,182,128,183,40,184,185,186,187,188,189,190,191,192,111],"video audio continuity","continuity","design","boundary","how","why","write","later","back","across","cut","how to","filter","mix","at","veo 3",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":200,"publishedAt":44},"01M6BY3ZANBSQMZRH4MG55R8Z7","veo-3-prompting","Prompt Google's Veo 3 video line — the five-element shot\u002Fsetting\u002Fsubject\u002Faction\u002Fdialogue structure, the cinematography vocabulary it reads directly, duration and aspect-ratio tradeoffs, the audio and auto-fix switches per provider, and the fixes for visual drift, temporal inconsistency and audio mismatch. Use whenever the model id contains veo3 or veo-3 (fal-ai\u002Fveo3.1 and its fast, lite, image-to-video, first-last-frame and reference-to-video routes, fal-ai\u002Fveo3\u002Fimage-to-video, google\u002Fveo3.1 on atlascloud, google\u002Fveo-3 and google\u002Fveo-3.1 on replicate, kie's veo-3-1, and Gemini's own veo-3.1-generate-preview) on generate_video, animate_image, generate_video_from_references or a TextToVideo node.","https:\u002F\u002Fgithub.com\u002Fnodetool-ai\u002Fnodetool\u002Fblob\u002Fmain\u002Fpackages\u002Fsystem-skills\u002Fveo-3-prompting\u002FSKILL.md",[199],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[201,202,121,192,122,203,204,123,205,206,43,125,127,128,207,208,209,210,211,212,213,167,214,215,216],"veo 3 prompting","veo","google","gemini","fast","first","fal","kie","replicate","fix","auto","references","drift","preview","element","auto-fix"]